ModulesYamlConfigLoader implements ModulesConfigLoader { @Override public List<Integer> loadIntegerListOrDefault(String moduleName, String property, List<Integer> defaultValue) { JsonNode propertyNode = loadPropertyNode(moduleName, property); if (propertyNode == null || propertyNode.isNull()) { return defaultValue; } List<Integer> values = new ArrayList<>(); propertyNode.iterator().forEachRemaining(node -> values.add(node.isNull() ? null : node.asInt())); return values; } ModulesYamlConfigLoader();  ModulesYamlConfigLoader(String modulesDirPath); @Override String loadString(String moduleName, String property); @Override String loadStringOrDefault(String moduleName, String property, String defaultValue); @Override Integer loadInteger(String moduleName, String property); @Override Integer loadIntegerOrDefault(String moduleName, String property, Integer defaultValue); @Override List<String> loadStringList(String moduleName, String property); @Override List<String> loadStringListOrDefault(String moduleName, String property, List<String> defaultValue); @Override List<Integer> loadIntegerList(String moduleName, String property); @Override List<Integer> loadIntegerListOrDefault(String moduleName, String property, List<Integer> defaultValue);  }
@Test public void testLoadIntegerListPropertyReturnsValueIfFound() { List<Integer> defaultValues = new ArrayList<>(); List<Integer> values = loader.loadIntegerListOrDefault(CONFIG_FILE, "integerList", defaultValues); assertThat(values).containsExactly(1, 2); }
@Test public void testLoadIntegerListPropertyReturnsDefaultIfNotFound() { List<Integer> defaultValues = new ArrayList<>(); List<Integer> values = loader.loadIntegerListOrDefault(CONFIG_FILE, NOT_EXISTING_PROPERTY, defaultValues); assertThat(values).isEqualTo(defaultValues); }
@Test public void testLoadIntegerListPropertyReturnsDefaultIfNullValueFound() { List<Integer> defaultValues = new ArrayList<>(); List<Integer> values = loader.loadIntegerListOrDefault(CONFIG_FILE, NULL_PROPERTY, defaultValues); assertThat(values).isEqualTo(defaultValues); }