Map<String, String> unprocessedNodes(ConfigNode node) {
        List<ConfigNode> nodes = new ArrayList<>();

        findAllUnreadNodes(nodes, node);

        return nodes.stream().map(this::process).collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
    }
@Test
    public void shouldDetectUnappliedClientConfigEntries() {
        Map<String, String> entries = new HashMap<>();
        entries.put("HZCLIENT_FOO", "foo");
        entries.put("HZCLIENT_NETWORK_SOCKETINTERCEPTOR_ENABLE", "true");
        entries.put("HZCLIENT_NETWORK_SMARTROUTING", "true");

        ConfigNode configNode = PropertiesToNodeConverter.propsToNode(EnvVariablesConfigParser.client().parse(entries));

        new YamlClientDomConfigProcessor(true, new ClientConfig(), false)
          .buildConfig(new ConfigOverrideElementAdapter(configNode));

        Map<String, String> unprocessed = new ConfigNodeStateTracker().unprocessedNodes(configNode);
        assertTrue(unprocessed.containsKey("hazelcast-client.foo"));
        assertTrue(unprocessed.containsKey("hazelcast-client.network.socketinterceptor.enable"));
        assertFalse(unprocessed.containsKey("hazelcast-client.network.smartrouting"));
    }