@Test
public void testResolve_Configuration__ExcludedTypes__ParentType() throws Exception {

  // child
  ServiceInfo info = new ServiceInfo();
  info.setExcludedConfigTypes(Collections.singleton("BAR"));
  //FOO
  Collection<PropertyInfo> fooProperties = new ArrayList<PropertyInfo>();
  PropertyInfo prop1 = new PropertyInfo();
  prop1.setName("name1");
  prop1.setValue("val1");
  fooProperties.add(prop1);
  PropertyInfo prop2 = new PropertyInfo();
  prop2.setName("name2");
  prop2.setValue("val2");
  fooProperties.add(prop2);
  ConfigurationModule childConfigModule = createConfigurationModule("FOO", fooProperties);
  Collection<ConfigurationModule> childConfigModules = new ArrayList<ConfigurationModule>();
  childConfigModules.add(childConfigModule);
  // parent
  ServiceInfo parentInfo = new ServiceInfo();
  //BAR
  Collection<PropertyInfo> barProperties = new ArrayList<PropertyInfo>();
  PropertyInfo prop3 = new PropertyInfo();
  prop3.setName("name1");
  prop3.setValue("val3");
  barProperties.add(prop3);
  ConfigurationModule parentConfigModule = createConfigurationModule("BAR", barProperties);
  Collection<ConfigurationModule> parentConfigModules = new ArrayList<ConfigurationModule>();
  parentConfigModules.add(parentConfigModule);
  // create service modules
  ServiceModule service = createServiceModule(info, childConfigModules);
  ServiceModule parentService = createServiceModule(parentInfo, parentConfigModules);
  // resolve child with parent
  resolveService(service, parentService);
  // assertions
  List<PropertyInfo> properties = service.getModuleInfo().getProperties();
  assertEquals(2, properties.size());
  Map<String, Map<String, Map<String, String>>> attributes = service.getModuleInfo().getConfigTypeAttributes();
  assertEquals(1, attributes.size());
  assertTrue(attributes.containsKey("FOO"));
  Map<String, Map<String, Map<String, String>>> parentAttributes = parentService.getModuleInfo().getConfigTypeAttributes();
  assertEquals(1, parentAttributes.size());
  assertTrue(parentAttributes.containsKey("BAR"));
}