Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Oct 4, 2015, 9:12:21 PM (10 years ago)
Author:
landauf
Message:

merged branch core7 back to trunk

Location:
code/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • code/trunk

  • code/trunk/test/core/class/IdentifierClassHierarchyTest.cc

    r9659 r10624  
    44#include "core/class/OrxonoxClass.h"
    55#include "core/class/OrxonoxInterface.h"
     6#include "core/module/ModuleInstance.h"
    67
    78namespace orxonox
     
    1920    namespace
    2021    {
    21         class BaseInterface1 : public OrxonoxInterface
     22        class BaseInterface1 : virtual public OrxonoxInterface
    2223        {
    2324            public:
     
    3031        };
    3132
    32         class BaseInterface2 : public OrxonoxInterface
     33        class BaseInterface2 : virtual public OrxonoxInterface
    3334        {
    3435            public:
     
    124125        };
    125126
     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
    126138        // Fixture
    127139        class IdentifierClassHierarchyTest : public ::testing::Test
     
    130142                virtual void SetUp()
    131143                {
    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!
    148148                    IdentifierManager::getInstance().createClassHierarchy();
    149149                }
     
    151151                virtual void TearDown()
    152152                {
    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        }
    156164
    157165        bool contains(const std::set<const Identifier*> identifiers, Identifier* identifier)
    158166        {
    159167            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());
    214168        }
    215169    }
Note: See TracChangeset for help on using the changeset viewer.