- Timestamp:
- Oct 4, 2015, 9:12:21 PM (10 years ago)
- Location:
- code/trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
code/trunk
-
code/trunk/test/core/class/IdentifierClassHierarchyTest.cc
r9659 r10624 4 4 #include "core/class/OrxonoxClass.h" 5 5 #include "core/class/OrxonoxInterface.h" 6 #include "core/module/ModuleInstance.h" 6 7 7 8 namespace orxonox … … 19 20 namespace 20 21 { 21 class BaseInterface1 : public OrxonoxInterface22 class BaseInterface1 : virtual public OrxonoxInterface 22 23 { 23 24 public: … … 30 31 }; 31 32 32 class BaseInterface2 : public OrxonoxInterface33 class BaseInterface2 : virtual public OrxonoxInterface 33 34 { 34 35 public: … … 124 125 }; 125 126 127 RegisterAbstractClass(BaseInterface1).inheritsFrom<OrxonoxInterface>(); 128 RegisterAbstractClass(BaseInterface2).inheritsFrom<OrxonoxInterface>(); 129 RegisterAbstractClass(Interface1).inheritsFrom<BaseInterface1>(); 130 RegisterAbstractClass(Interface2).inheritsFrom<BaseInterface2>(); 131 RegisterClassNoArgs(BaseClass); 132 RegisterClassNoArgs(Class0); 133 RegisterClassNoArgs(Class1); 134 RegisterClassNoArgs(Class2a); 135 RegisterClassNoArgs(Class2b); 136 RegisterClassNoArgs(Class3); 137 126 138 // Fixture 127 139 class IdentifierClassHierarchyTest : public ::testing::Test … … 130 142 virtual void SetUp() 131 143 { 132 registerClass("Context", new ClassFactoryWithContext<Context>()); 133 registerClass("Listable", new ClassFactoryWithContext<Listable>()); 134 registerClass("Configurable", new ClassFactoryNoArgs<Configurable>()); 135 registerClass("OrxonoxInterface", new ClassFactoryNoArgs<OrxonoxInterface>()); 136 registerClass("OrxonoxClass", new ClassFactoryNoArgs<OrxonoxClass>()); 137 registerClass("BaseInterface1", static_cast<ClassFactory<BaseInterface1>*>(NULL), false).inheritsFrom(Class(OrxonoxInterface)); 138 registerClass("BaseInterface2", static_cast<ClassFactory<BaseInterface2>*>(NULL), false).inheritsFrom(Class(OrxonoxInterface)); 139 registerClass("Interface1", static_cast<ClassFactory<Interface1>*>(NULL), false).inheritsFrom(Class(BaseInterface1)); 140 registerClass("Interface2", static_cast<ClassFactory<Interface2>*>(NULL), false).inheritsFrom(Class(BaseInterface2)); 141 registerClass("BaseClass", new ClassFactoryNoArgs<BaseClass>()); 142 registerClass("Class0", new ClassFactoryNoArgs<Class0>()); 143 registerClass("Class1", new ClassFactoryNoArgs<Class1>()); 144 registerClass("Class2a", new ClassFactoryNoArgs<Class2a>()); 145 registerClass("Class2b", new ClassFactoryNoArgs<Class2b>()); 146 registerClass("Class3", new ClassFactoryNoArgs<Class3>()); 147 144 new IdentifierManager(); 145 ModuleInstance::getCurrentModuleInstance()->loadAllStaticallyInitializedInstances(StaticInitialization::IDENTIFIER); 146 Context::setRootContext(new Context(NULL)); 147 Identifier::initConfigValues_s = false; // TODO: hack! 148 148 IdentifierManager::getInstance().createClassHierarchy(); 149 149 } … … 151 151 virtual void TearDown() 152 152 { 153 IdentifierManager::getInstance().destroyAllIdentifiers(); 154 } 155 }; 153 IdentifierManager::getInstance().destroyClassHierarchy(); 154 Context::destroyRootContext(); 155 ModuleInstance::getCurrentModuleInstance()->unloadAllStaticallyInitializedInstances(StaticInitialization::IDENTIFIER); 156 delete &IdentifierManager::getInstance(); 157 } 158 }; 159 160 bool contains(const std::list<const Identifier*> identifiers, Identifier* identifier) 161 { 162 return std::find(identifiers.begin(), identifiers.end(), identifier) != identifiers.end(); 163 } 156 164 157 165 bool contains(const std::set<const Identifier*> identifiers, Identifier* identifier) 158 166 { 159 167 return identifiers.find(identifier) != identifiers.end(); 160 }161 }162 163 TEST(IdentifierClassHierarchyTest_NoFixture, NoInitialization)164 {165 {166 Identifier* identifier = Class(BaseInterface1);167 EXPECT_EQ(0u, identifier->getChildren().size());168 EXPECT_EQ(0u, identifier->getParents().size());169 }170 {171 Identifier* identifier = Class(BaseInterface2);172 EXPECT_EQ(0u, identifier->getChildren().size());173 EXPECT_EQ(0u, identifier->getParents().size());174 }175 {176 Identifier* identifier = Class(Interface1);177 EXPECT_EQ(0u, identifier->getChildren().size());178 EXPECT_EQ(0u, identifier->getParents().size());179 }180 {181 Identifier* identifier = Class(Interface2);182 EXPECT_EQ(0u, identifier->getChildren().size());183 EXPECT_EQ(0u, identifier->getParents().size());184 }185 {186 Identifier* identifier = Class(BaseClass);187 EXPECT_EQ(0u, identifier->getChildren().size());188 EXPECT_EQ(0u, identifier->getParents().size());189 }190 {191 Identifier* identifier = Class(Class0);192 EXPECT_EQ(0u, identifier->getChildren().size());193 EXPECT_EQ(0u, identifier->getParents().size());194 }195 {196 Identifier* identifier = Class(Class1);197 EXPECT_EQ(0u, identifier->getChildren().size());198 EXPECT_EQ(0u, identifier->getParents().size());199 }200 {201 Identifier* identifier = Class(Class2a);202 EXPECT_EQ(0u, identifier->getChildren().size());203 EXPECT_EQ(0u, identifier->getParents().size());204 }205 {206 Identifier* identifier = Class(Class2b);207 EXPECT_EQ(0u, identifier->getChildren().size());208 EXPECT_EQ(0u, identifier->getParents().size());209 }210 {211 Identifier* identifier = Class(Class3);212 EXPECT_EQ(0u, identifier->getChildren().size());213 EXPECT_EQ(0u, identifier->getParents().size());214 168 } 215 169 }
Note: See TracChangeset
for help on using the changeset viewer.