log.info("starting testInheritedProperties()...");
String repositoryId = getRepositoryId();
String typeId = UnitTestTypeSystemCreator.TOPLEVEL_TYPE;
// get top level type
TypeDefinition typeContainer = fRepSvc.getTypeDefinition(repositoryId, typeId, null);
assertNotNull(typeContainer);
Map<String, PropertyDefinition<?>> propDefMap = typeContainer.getPropertyDefinitions();
assertTrue(propDefMap.containsKey("StringPropTopLevel"));
assertFalse(propDefMap.get("StringPropTopLevel").isInherited());
assertFalse(propDefMap.containsKey("StringPropLevel1"));
assertFalse(propDefMap.containsKey("StringPropLevel2"));
containsAllBasePropertyDefinitions(typeContainer);
// get level 1 type
typeId = UnitTestTypeSystemCreator.LEVEL1_TYPE;
typeContainer = fRepSvc.getTypeDefinition(repositoryId, typeId, null);
assertNotNull(typeContainer);
propDefMap = typeContainer.getPropertyDefinitions();
assertTrue(propDefMap.containsKey("StringPropTopLevel"));
assertTrue(propDefMap.get("StringPropTopLevel").isInherited());
assertTrue(propDefMap.containsKey("StringPropLevel1"));
assertFalse(propDefMap.get("StringPropLevel1").isInherited());
assertFalse(propDefMap.containsKey("StringPropLevel2"));
containsAllBasePropertyDefinitions(typeContainer);
// get level 2 type
typeId = UnitTestTypeSystemCreator.LEVEL2_TYPE;
typeContainer = fRepSvc.getTypeDefinition(repositoryId, typeId, null);
assertNotNull(typeContainer);
propDefMap = typeContainer.getPropertyDefinitions();
assertTrue(propDefMap.containsKey("StringPropTopLevel"));
assertTrue(propDefMap.get("StringPropTopLevel").isInherited());
assertTrue(propDefMap.containsKey("StringPropLevel1"));
assertTrue(propDefMap.get("StringPropLevel1").isInherited());
assertTrue(propDefMap.containsKey("StringPropLevel2"));