ConfigDescriptionRegistry { public Collection<ConfigDescription> getConfigDescriptions(@Nullable Locale locale) { Map<URI, ConfigDescription> configMap = new HashMap<>(); for (ConfigDescriptionProvider configDescriptionProvider : configDescriptionProviders) { for (ConfigDescription configDescription : configDescriptionProvider.getConfigDescriptions(locale)) { ConfigDescription configFromMap = configMap.get(configDescription.getUID()); if (configFromMap != null) { List<ConfigDescriptionParameter> parameters = new ArrayList<>(); parameters.addAll(configFromMap.getParameters()); parameters.addAll(configDescription.getParameters()); List<ConfigDescriptionParameterGroup> parameterGroups = new ArrayList<>(); parameterGroups.addAll(configFromMap.getParameterGroups()); parameterGroups.addAll(configDescription.getParameterGroups()); configMap.put(configDescription.getUID(), ConfigDescriptionBuilder.create(configDescription.getUID()).withParameters(parameters) .withParameterGroups(parameterGroups).build()); } else { configMap.put(configDescription.getUID(), configDescription); } } } Collection<ConfigDescription> configDescriptions = new ArrayList<>(configMap.size()); for (ConfigDescription configDescription : configMap.values()) { configDescriptions.add(configDescription); } return Collections.unmodifiableCollection(configDescriptions); }  Collection<ConfigDescription> getConfigDescriptions(@Nullable Locale locale); Collection<ConfigDescription> getConfigDescriptions(); @Nullable ConfigDescription getConfigDescription(URI uri, @Nullable Locale locale); @Nullable ConfigDescription getConfigDescription(URI uri);  }
@Test public void testGetConfigDescriptions() throws Exception { assertThat(configDescriptionRegistry.getConfigDescriptions().size(), is(0)); configDescriptionRegistry.addConfigDescriptionProvider(configDescriptionProviderMock); assertThat(configDescriptionRegistry.getConfigDescriptions().size(), is(1)); List<ConfigDescription> configDescriptions = new ArrayList<>(configDescriptionRegistry.getConfigDescriptions()); assertThat(configDescriptions.get(0).getUID(), is(equalTo(uriDummy))); assertThat(configDescriptions.get(0).toParametersMap().size(), is(1)); assertThat(configDescriptions.get(0).toParametersMap().get("param1"), notNullValue()); configDescriptionRegistry.addConfigDescriptionProvider(configDescriptionProviderMock1); assertThat(configDescriptionRegistry.getConfigDescriptions().size(), is(2)); configDescriptionRegistry.removeConfigDescriptionProvider(configDescriptionProviderMock); assertThat(configDescriptionRegistry.getConfigDescriptions().size(), is(1)); configDescriptionRegistry.removeConfigDescriptionProvider(configDescriptionProviderMock1); assertThat(configDescriptionRegistry.getConfigDescriptions().size(), is(0)); }