@Override
    public boolean equals(Object o) {
        if (o == null || getClass() != o.getClass()) {
            return false;
        }
        
        if (this == o) {
            return true;
        }
        
        NamingListenerInvoker that = (NamingListenerInvoker) o;
        return Objects.equals(listener, that.listener);
    }
@Test
    public void testEquals() {
        EventListener listener1 = mock(EventListener.class);
        EventListener listener2 = mock(EventListener.class);
        NamingListenerInvoker invoker1 = new NamingListenerInvoker(listener1);
        NamingListenerInvoker invoker2 = new NamingListenerInvoker(listener1);
        NamingListenerInvoker invoker3 = new NamingListenerInvoker(listener2);
        assertEquals(invoker1.hashCode(), invoker2.hashCode());
        assertEquals(invoker1, invoker2);
        assertNotEquals(invoker1.hashCode(), invoker3.hashCode());
        assertNotEquals(invoker1, invoker3);
    }