ConfigValue implements Serializable { ConfigValue getPrefix(String prefix) { ImmutableMap<ImmutableSet<String>, String> filteredPrefixedValues = getFilteredPrefixedValues(prefix); String currentValue = getPrefixValue(prefix, filteredPrefixedValues); ImmutableMap.Builder<ImmutableSet<String>, String> prefixedValues = ImmutableMap.builder(); filteredPrefixedValues.forEach((prefixes, value) -> { ImmutableSet<String> updatedPrefixes = removePrefix(prefix, prefixes); if (!updatedPrefixes.isEmpty()) { prefixedValues.put(updatedPrefixes, value); } }); return new ConfigValue(currentValue, prefixedValues.build()); } ConfigValue(String currentValue, ImmutableMap<ImmutableSet<String>, String> prefixedValues);   }
@Test void testCase_twoPrefixes_checkOnlyFirstPrefix() { assertThat(configValue.getPrefix("Prefix2").prefixedValues.keySet().stream() .filter(key -> key.contains("Prefix3")) .findAny() .orElse(null)) .isNotEqualTo(null); assertThat(configValue.getPrefix("Prefix2").currentValue).isEqualTo("1"); }
@Test void testCase_twoPrefixes_checkOnlySecondPrefix() { assertThat(configValue.getPrefix("Prefix3").prefixedValues.keySet().stream() .filter(key -> key.contains("Prefix2")) .findAny() .orElse(null)) .isNotEqualTo(null); assertThat(configValue.getPrefix("Prefix3").currentValue).isEqualTo("1"); }
@Test void testCase_twoPrefixes_checkBothPrefixes_beginWithPrefix2() { ConfigValue prefixedConfigValue = configValue.getPrefix("Prefix2").getPrefix("Prefix3"); assertThat(prefixedConfigValue.prefixedValues).isEmpty(); assertThat(prefixedConfigValue.currentValue).isEqualTo("3"); }
@Test void testCase_twoPrefixes_checkBothPrefixes_beginWithPrefix3() { ConfigValue prefixedConfigValue = configValue.getPrefix("Prefix3").getPrefix("Prefix2"); assertThat(prefixedConfigValue.prefixedValues).isEmpty(); assertThat(prefixedConfigValue.currentValue).isEqualTo("3"); }
@Test void testCase_prefixDoesntExist() { ConfigValue prefixedConfigValue = configValue.getPrefix("Prefix0"); assertThat(prefixedConfigValue.prefixedValues).isEqualTo(ImmutableMap.of()); assertThat(prefixedConfigValue.currentValue).isEqualTo("1"); }
@Test void testCase_onePrefix() { assertThat(configValue.getPrefix("Prefix1").prefixedValues).isEmpty(); assertThat(configValue.getPrefix("Prefix1").currentValue).isEqualTo("2"); assertThat(configValue.getPrefix("Prefix2").currentValue).isEqualTo("1"); assertThat(configValue.getPrefix("Prefix3").currentValue).isEqualTo("1"); }