@Test public void testGetMergedConfig_with2LevelsParent() { TestConfigurable l0 = new TestConfigurable(); { Map<String, Object> config = new HashMap<>(); config.put(PROP_0, 0); l0.setConfig(config); } TestConfigurable l1 = new TestConfigurable(); l1.setParent(l0); { Map<String, Object> config = new HashMap<>(); config.put(PROP_1, 1); config.put(PROP_2, 2); l1.setConfig(config); } TestConfigurable l2 = new TestConfigurable(); l2.setParent(l1); { Map<String, Object> config = new HashMap<>(); config.put(PROP_1, 3); l2.setConfig(config); } Map<String, Object> mergedConfig = l2.getKafkaConfig(); assertThat(mergedConfig.get(PROP_0), equalTo(0)); assertThat(mergedConfig.get(PROP_1), equalTo(3)); // overrides the same value in the parent assertThat(mergedConfig.get(PROP_2), equalTo(2)); }
@Test public void testGetMergedConfig_noParent() { TestConfigurable child = new TestConfigurable(); { Map<String, Object> config = new HashMap<>(); config.put(PROP_1, 1); child.setConfig(config); } Map<String, Object> mergedConfig = child.getKafkaConfig(); assertThat(mergedConfig.get(PROP_1), equalTo(1)); assertThat(mergedConfig.get(PROP_2), nullValue()); }