@Override
    public void invoke(NamingEvent event) {
        logInvoke(event);
        if (listener instanceof AbstractEventListener && ((AbstractEventListener) listener).getExecutor() != null) {
            ((AbstractEventListener) listener).getExecutor().execute(() -> listener.onEvent(event));
        } else {
            listener.onEvent(event);
        }
    }
@Test
    public void testAbstractNamingChaneEventListener() {
        AbstractNamingChangeListener listener = spy(AbstractNamingChangeListener.class);
        NamingListenerInvoker listenerInvoker = new NamingListenerInvoker(listener);
        NamingChangeEvent event = new NamingChangeEvent("serviceName", Collections.emptyList(), new InstancesDiff());
        listenerInvoker.invoke(event);
        verify(listener).onChange(event);
    }