public void deregisterListener(String groupName, String serviceName, NamingSelectorWrapper wrapper) {
        if (wrapper == null) {
            return;
        }
        String subId = NamingUtils.getGroupedName(serviceName, groupName);
        selectorManager.removeSelectorWrapper(subId, wrapper);
    }
@Test
    void testDeregisterListener() {
        List<String> clusters = Collections.singletonList(CLUSTER_STR_CASE);
        EventListener listener = Mockito.mock(EventListener.class);
        NamingSelector selector = NamingSelectorFactory.newClusterSelector(clusters);
        NamingSelectorWrapper wrapper = new NamingSelectorWrapper(selector, listener);
        instancesChangeNotifier.registerListener(GROUP_CASE, SERVICE_NAME_CASE, wrapper);
        List<ServiceInfo> subscribeServices = instancesChangeNotifier.getSubscribeServices();
        assertEquals(1, subscribeServices.size());
        
        instancesChangeNotifier.deregisterListener(GROUP_CASE, SERVICE_NAME_CASE, wrapper);
        
        List<ServiceInfo> subscribeServices2 = instancesChangeNotifier.getSubscribeServices();
        assertEquals(0, subscribeServices2.size());
    }