Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Aug 13, 2013, 11:35:26 PM (11 years ago)
Author:
landauf
Message:

implemented new concept to initialize the class hierarchy: each identifier is initialized individually by creating an object of the corresponding class. identifiers of abstract classes must be told explicitly about their direct parents. this allows to build the class tree correctly also for complicated setups like multiple inheritance of abstract classes.

Location:
code/branches/core6/test/core/class
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • code/branches/core6/test/core/class/IdentifierClassHierarchyTest.cc

    r9640 r9646  
    2020    {
    2121        class BaseInterface1 : public OrxonoxInterface
    22             { public: BaseInterface1() { RegisterRootObject(BaseInterface1); } };
     22        {
     23            public:
     24                BaseInterface1()
     25                {
     26                    RegisterRootObject(BaseInterface1);
     27                }
     28
     29                virtual void test1() = 0;
     30        };
    2331
    2432        class BaseInterface2 : public OrxonoxInterface
    25             { public: BaseInterface2() { RegisterRootObject(BaseInterface2); } };
     33        {
     34            public:
     35                BaseInterface2()
     36                {
     37                    RegisterRootObject(BaseInterface2);
     38                }
     39
     40                virtual void test2() = 0;
     41        };
    2642
    2743        class Interface1 : public BaseInterface1
    28             { public: Interface1() { RegisterObject(Interface1); } };
     44        {
     45            public:
     46                Interface1()
     47                {
     48                    RegisterObject(Interface1);
     49                }
     50        };
    2951
    3052        class Interface2 : public BaseInterface2
    31             { public: Interface2() { RegisterObject(Interface2); } };
     53        {
     54            public:
     55                Interface2()
     56                {
     57                    RegisterObject(Interface2);
     58                }
     59        };
    3260
    3361        class BaseClass : public OrxonoxClass
    34             { public: BaseClass() { RegisterRootObject(BaseClass); } };
     62        {
     63            public:
     64                BaseClass()
     65                {
     66                    RegisterRootObject(BaseClass);
     67                }
     68        };
    3569
    3670        class Class0 : public BaseClass
    37             { public: Class0() { RegisterObject(Class0); } };
     71        {
     72            public:
     73                Class0()
     74                {
     75                    RegisterObject(Class0);
     76                }
     77        };
    3878
    3979        class Class1 : public BaseClass, public Interface1
    40             { public: Class1() { RegisterObject(Class1); } };
     80        {
     81            public:
     82                Class1()
     83                {
     84                    RegisterObject(Class1);
     85                }
     86
     87                virtual void test1() {}
     88        };
    4189
    4290        class Class2a : public BaseClass, public Interface1, Interface2
    43             { public: Class2a() { RegisterObject(Class2a); } };
     91        {
     92            public:
     93                Class2a()
     94                {
     95                    RegisterObject(Class2a);
     96                }
     97
     98                virtual void test1() {}
     99                virtual void test2() {}
     100        };
    44101
    45102        class Class2b : public BaseClass, public Interface2, Interface1
    46             { public: Class2b() { RegisterObject(Class2b); } };
     103        {
     104            public:
     105                Class2b()
     106                {
     107                    RegisterObject(Class2b);
     108                }
     109
     110                virtual void test1() {}
     111                virtual void test2() {}
     112        };
    47113
    48114        class Class3 : public BaseClass, public BaseInterface1, BaseInterface2
    49             { public: Class3() { RegisterObject(Class3); } };
     115        {
     116            public:
     117                Class3()
     118                {
     119                    RegisterObject(Class3);
     120                }
     121
     122                virtual void test1() {}
     123                virtual void test2() {}
     124        };
    50125
    51126        // Fixture
     
    55130                virtual void SetUp()
    56131                {
    57                     registerClass("BaseInterface1", new ClassFactoryNoArgs<BaseInterface1>());
    58                     registerClass("BaseInterface2", new ClassFactoryNoArgs<BaseInterface2>());
    59                     registerClass("Interface1", new ClassFactoryNoArgs<Interface1>());
    60                     registerClass("Interface2", new ClassFactoryNoArgs<Interface2>());
     132                    registerClass("OrxonoxInterface", new ClassFactoryNoArgs<OrxonoxInterface>());
     133                    registerClass("OrxonoxClass", new ClassFactoryNoArgs<OrxonoxClass>());
     134                    registerClass("BaseInterface1", static_cast<ClassFactory<BaseInterface1>*>(NULL), false).inheritsFrom(Class(OrxonoxInterface));
     135                    registerClass("BaseInterface2", static_cast<ClassFactory<BaseInterface2>*>(NULL), false).inheritsFrom(Class(OrxonoxInterface));
     136                    registerClass("Interface1", static_cast<ClassFactory<Interface1>*>(NULL), false).inheritsFrom(Class(BaseInterface1));
     137                    registerClass("Interface2", static_cast<ClassFactory<Interface2>*>(NULL), false).inheritsFrom(Class(BaseInterface2));
    61138                    registerClass("BaseClass", new ClassFactoryNoArgs<BaseClass>());
    62139                    registerClass("Class0", new ClassFactoryNoArgs<Class0>());
     
    74151                }
    75152        };
     153
     154        bool contains(const std::set<const Identifier*> identifiers, Identifier* identifier)
     155        {
     156            return identifiers.find(identifier) != identifiers.end();
     157        }
    76158    }
    77159
     
    135217
    136218        EXPECT_EQ(2u, identifier->getDirectChildren().size());
     219        EXPECT_TRUE(contains(identifier->getDirectChildren(), Class(Interface1)));
     220        EXPECT_TRUE(contains(identifier->getDirectChildren(), Class(Class3)));
     221
    137222        EXPECT_EQ(5u, identifier->getChildren().size());
    138         EXPECT_EQ(0u, identifier->getDirectParents().size());
    139         EXPECT_EQ(0u, identifier->getParents().size());
     223        EXPECT_TRUE(contains(identifier->getChildren(), Class(Interface1)));
     224        EXPECT_TRUE(contains(identifier->getChildren(), Class(Class3)));
     225        EXPECT_TRUE(contains(identifier->getChildren(), Class(Class1)));
     226        EXPECT_TRUE(contains(identifier->getChildren(), Class(Class2a)));
     227        EXPECT_TRUE(contains(identifier->getChildren(), Class(Class2b)));
     228
     229        EXPECT_EQ(1u, identifier->getDirectParents().size());
     230        EXPECT_TRUE(contains(identifier->getDirectParents(), Class(OrxonoxInterface)));
     231
     232        EXPECT_EQ(2u, identifier->getParents().size());
     233        EXPECT_TRUE(contains(identifier->getParents(), Class(Identifiable)));
     234        EXPECT_TRUE(contains(identifier->getParents(), Class(OrxonoxInterface)));
    140235    }
    141236
     
    145240
    146241        EXPECT_EQ(2u, identifier->getDirectChildren().size());
     242        EXPECT_TRUE(contains(identifier->getDirectChildren(), Class(Interface2)));
     243        EXPECT_TRUE(contains(identifier->getDirectChildren(), Class(Class3)));
     244
    147245        EXPECT_EQ(4u, identifier->getChildren().size());
    148         EXPECT_EQ(0u, identifier->getDirectParents().size());
    149         EXPECT_EQ(0u, identifier->getParents().size());
     246        EXPECT_TRUE(contains(identifier->getChildren(), Class(Interface2)));
     247        EXPECT_TRUE(contains(identifier->getChildren(), Class(Class3)));
     248        EXPECT_TRUE(contains(identifier->getChildren(), Class(Class2a)));
     249        EXPECT_TRUE(contains(identifier->getChildren(), Class(Class2b)));
     250
     251        EXPECT_EQ(1u, identifier->getDirectParents().size());
     252        EXPECT_TRUE(contains(identifier->getDirectParents(), Class(OrxonoxInterface)));
     253
     254        EXPECT_EQ(2u, identifier->getParents().size());
     255        EXPECT_TRUE(contains(identifier->getParents(), Class(Identifiable)));
     256        EXPECT_TRUE(contains(identifier->getParents(), Class(OrxonoxInterface)));
    150257    }
    151258
     
    155262
    156263        EXPECT_EQ(3u, identifier->getDirectChildren().size());
     264        EXPECT_TRUE(contains(identifier->getDirectChildren(), Class(Class1)));
     265        EXPECT_TRUE(contains(identifier->getDirectChildren(), Class(Class2a)));
     266        EXPECT_TRUE(contains(identifier->getDirectChildren(), Class(Class2b)));
     267
    157268        EXPECT_EQ(3u, identifier->getChildren().size());
    158         EXPECT_EQ(1u, identifier->getDirectParents().size());
    159         EXPECT_EQ(1u, identifier->getParents().size());
     269        EXPECT_TRUE(contains(identifier->getChildren(), Class(Class1)));
     270        EXPECT_TRUE(contains(identifier->getChildren(), Class(Class2a)));
     271        EXPECT_TRUE(contains(identifier->getChildren(), Class(Class2b)));
     272
     273        EXPECT_EQ(1u, identifier->getDirectParents().size());
     274        EXPECT_TRUE(contains(identifier->getDirectParents(), Class(BaseInterface1)));
     275
     276        EXPECT_EQ(3u, identifier->getParents().size());
     277        EXPECT_TRUE(contains(identifier->getParents(), Class(Identifiable)));
     278        EXPECT_TRUE(contains(identifier->getParents(), Class(OrxonoxInterface)));
     279        EXPECT_TRUE(contains(identifier->getParents(), Class(BaseInterface1)));
    160280    }
    161281
     
    165285
    166286        EXPECT_EQ(2u, identifier->getDirectChildren().size());
     287        EXPECT_TRUE(contains(identifier->getDirectChildren(), Class(Class2a)));
     288        EXPECT_TRUE(contains(identifier->getDirectChildren(), Class(Class2b)));
     289
    167290        EXPECT_EQ(2u, identifier->getChildren().size());
    168         EXPECT_EQ(1u, identifier->getDirectParents().size());
    169         EXPECT_EQ(1u, identifier->getParents().size());
     291        EXPECT_TRUE(contains(identifier->getChildren(), Class(Class2a)));
     292        EXPECT_TRUE(contains(identifier->getChildren(), Class(Class2b)));
     293
     294        EXPECT_EQ(1u, identifier->getDirectParents().size());
     295        EXPECT_TRUE(contains(identifier->getDirectParents(), Class(BaseInterface2)));
     296
     297        EXPECT_EQ(3u, identifier->getParents().size());
     298        EXPECT_TRUE(contains(identifier->getParents(), Class(Identifiable)));
     299        EXPECT_TRUE(contains(identifier->getParents(), Class(OrxonoxInterface)));
     300        EXPECT_TRUE(contains(identifier->getParents(), Class(BaseInterface2)));
    170301    }
    171302
     
    175306
    176307        EXPECT_EQ(5u, identifier->getDirectChildren().size());
     308        EXPECT_TRUE(contains(identifier->getDirectChildren(), Class(Class0)));
     309        EXPECT_TRUE(contains(identifier->getDirectChildren(), Class(Class1)));
     310        EXPECT_TRUE(contains(identifier->getDirectChildren(), Class(Class2a)));
     311        EXPECT_TRUE(contains(identifier->getDirectChildren(), Class(Class2b)));
     312        EXPECT_TRUE(contains(identifier->getDirectChildren(), Class(Class3)));
     313
    177314        EXPECT_EQ(5u, identifier->getChildren().size());
    178         EXPECT_EQ(0u, identifier->getDirectParents().size());
    179         EXPECT_EQ(0u, identifier->getParents().size());
     315        EXPECT_TRUE(contains(identifier->getChildren(), Class(Class0)));
     316        EXPECT_TRUE(contains(identifier->getChildren(), Class(Class1)));
     317        EXPECT_TRUE(contains(identifier->getChildren(), Class(Class2a)));
     318        EXPECT_TRUE(contains(identifier->getChildren(), Class(Class2b)));
     319        EXPECT_TRUE(contains(identifier->getChildren(), Class(Class3)));
     320
     321        EXPECT_EQ(1u, identifier->getDirectParents().size());
     322        EXPECT_TRUE(contains(identifier->getDirectParents(), Class(OrxonoxClass)));
     323
     324        EXPECT_EQ(2u, identifier->getParents().size());
     325        EXPECT_TRUE(contains(identifier->getParents(), Class(Identifiable)));
     326        EXPECT_TRUE(contains(identifier->getParents(), Class(OrxonoxClass)));
    180327    }
    181328
     
    185332
    186333        EXPECT_EQ(0u, identifier->getDirectChildren().size());
     334
    187335        EXPECT_EQ(0u, identifier->getChildren().size());
    188         EXPECT_EQ(1u, identifier->getDirectParents().size());
    189         EXPECT_EQ(1u, identifier->getParents().size());
     336
     337        EXPECT_EQ(1u, identifier->getDirectParents().size());
     338        EXPECT_TRUE(contains(identifier->getDirectParents(), Class(BaseClass)));
     339
     340        EXPECT_EQ(3u, identifier->getParents().size());
     341        EXPECT_TRUE(contains(identifier->getParents(), Class(Identifiable)));
     342        EXPECT_TRUE(contains(identifier->getParents(), Class(OrxonoxClass)));
     343        EXPECT_TRUE(contains(identifier->getParents(), Class(BaseClass)));
    190344    }
    191345
     
    195349
    196350        EXPECT_EQ(0u, identifier->getDirectChildren().size());
     351
    197352        EXPECT_EQ(0u, identifier->getChildren().size());
     353
    198354        EXPECT_EQ(2u, identifier->getDirectParents().size());
    199         EXPECT_EQ(3u, identifier->getParents().size());
     355        EXPECT_TRUE(contains(identifier->getDirectParents(), Class(BaseClass)));
     356        EXPECT_TRUE(contains(identifier->getDirectParents(), Class(Interface1)));
     357
     358        EXPECT_EQ(6u, identifier->getParents().size());
     359        EXPECT_TRUE(contains(identifier->getParents(), Class(Identifiable)));
     360        EXPECT_TRUE(contains(identifier->getParents(), Class(OrxonoxClass)));
     361        EXPECT_TRUE(contains(identifier->getParents(), Class(BaseClass)));
     362        EXPECT_TRUE(contains(identifier->getParents(), Class(OrxonoxInterface)));
     363        EXPECT_TRUE(contains(identifier->getParents(), Class(BaseInterface1)));
     364        EXPECT_TRUE(contains(identifier->getParents(), Class(Interface1)));
    200365    }
    201366
     
    205370
    206371        EXPECT_EQ(0u, identifier->getDirectChildren().size());
     372
    207373        EXPECT_EQ(0u, identifier->getChildren().size());
     374
    208375        EXPECT_EQ(3u, identifier->getDirectParents().size());
    209         EXPECT_EQ(5u, identifier->getParents().size());
     376        EXPECT_TRUE(contains(identifier->getDirectParents(), Class(BaseClass)));
     377        EXPECT_TRUE(contains(identifier->getDirectParents(), Class(Interface1)));
     378        EXPECT_TRUE(contains(identifier->getDirectParents(), Class(Interface2)));
     379
     380        EXPECT_EQ(8u, identifier->getParents().size());
     381        EXPECT_TRUE(contains(identifier->getParents(), Class(Identifiable)));
     382        EXPECT_TRUE(contains(identifier->getParents(), Class(OrxonoxClass)));
     383        EXPECT_TRUE(contains(identifier->getParents(), Class(BaseClass)));
     384        EXPECT_TRUE(contains(identifier->getParents(), Class(OrxonoxInterface)));
     385        EXPECT_TRUE(contains(identifier->getParents(), Class(BaseInterface1)));
     386        EXPECT_TRUE(contains(identifier->getParents(), Class(Interface1)));
     387        EXPECT_TRUE(contains(identifier->getParents(), Class(BaseInterface2)));
     388        EXPECT_TRUE(contains(identifier->getParents(), Class(Interface2)));
    210389    }
    211390
     
    215394
    216395        EXPECT_EQ(0u, identifier->getDirectChildren().size());
     396
    217397        EXPECT_EQ(0u, identifier->getChildren().size());
     398
    218399        EXPECT_EQ(3u, identifier->getDirectParents().size());
    219         EXPECT_EQ(5u, identifier->getParents().size());
     400        EXPECT_TRUE(contains(identifier->getDirectParents(), Class(BaseClass)));
     401        EXPECT_TRUE(contains(identifier->getDirectParents(), Class(Interface1)));
     402        EXPECT_TRUE(contains(identifier->getDirectParents(), Class(Interface2)));
     403
     404        EXPECT_EQ(8u, identifier->getParents().size());
     405        EXPECT_TRUE(contains(identifier->getParents(), Class(Identifiable)));
     406        EXPECT_TRUE(contains(identifier->getParents(), Class(OrxonoxClass)));
     407        EXPECT_TRUE(contains(identifier->getParents(), Class(BaseClass)));
     408        EXPECT_TRUE(contains(identifier->getParents(), Class(OrxonoxInterface)));
     409        EXPECT_TRUE(contains(identifier->getParents(), Class(BaseInterface1)));
     410        EXPECT_TRUE(contains(identifier->getParents(), Class(Interface1)));
     411        EXPECT_TRUE(contains(identifier->getParents(), Class(BaseInterface2)));
     412        EXPECT_TRUE(contains(identifier->getParents(), Class(Interface2)));
    220413    }
    221414
     
    225418
    226419        EXPECT_EQ(0u, identifier->getDirectChildren().size());
     420
    227421        EXPECT_EQ(0u, identifier->getChildren().size());
     422
    228423        EXPECT_EQ(3u, identifier->getDirectParents().size());
    229         EXPECT_EQ(3u, identifier->getParents().size());
     424        EXPECT_TRUE(contains(identifier->getDirectParents(), Class(BaseClass)));
     425        EXPECT_TRUE(contains(identifier->getDirectParents(), Class(BaseInterface1)));
     426        EXPECT_TRUE(contains(identifier->getDirectParents(), Class(BaseInterface2)));
     427
     428        EXPECT_EQ(6u, identifier->getParents().size());
     429        EXPECT_TRUE(contains(identifier->getParents(), Class(Identifiable)));
     430        EXPECT_TRUE(contains(identifier->getParents(), Class(OrxonoxClass)));
     431        EXPECT_TRUE(contains(identifier->getParents(), Class(BaseClass)));
     432        EXPECT_TRUE(contains(identifier->getParents(), Class(OrxonoxInterface)));
     433        EXPECT_TRUE(contains(identifier->getParents(), Class(BaseInterface1)));
     434        EXPECT_TRUE(contains(identifier->getParents(), Class(BaseInterface2)));
    230435    }
    231436}
  • code/branches/core6/test/core/class/IdentifierExternalClassHierarchyTest.cc

    r9640 r9646  
    88    {
    99        class Interface : virtual public Identifiable
    10             { public: Interface() { RegisterRootObject(Interface); } };
     10        {
     11            public:
     12                Interface()
     13                {
     14                    RegisterRootObject(Interface);
     15                }
     16
     17                virtual void test() = 0;
     18        };
    1119
    1220        class BaseClass : virtual public Identifiable
    13             { public: BaseClass() { RegisterRootObject(BaseClass); } };
     21        {
     22            public:
     23                BaseClass()
     24                {
     25                    RegisterRootObject(BaseClass);
     26                }
     27        };
    1428
    1529        class RealClass : public BaseClass, public Interface
    16             { public: RealClass() { RegisterObject(RealClass); } };
     30        {
     31            public:
     32                RealClass()
     33                {
     34                    RegisterObject(RealClass);
     35                }
     36
     37                virtual void test() {}
     38        };
    1739
    1840        // Fixture
     
    2244                virtual void SetUp()
    2345                {
    24                     registerClass("Interface", new ClassFactoryNoArgs<Interface>());
     46                    registerClass("Interface", static_cast<ClassFactory<Interface>*>(NULL), false).inheritsFrom(Class(Identifiable));
    2547                    registerClass("BaseClass", new ClassFactoryNoArgs<BaseClass>());
    2648                    registerClass("RealClass", new ClassFactoryNoArgs<RealClass>());
     
    3456                }
    3557        };
     58
     59        bool contains(const std::set<const Identifier*> identifiers, Identifier* identifier)
     60        {
     61            return identifiers.find(identifier) != identifiers.end();
     62        }
    3663    }
    3764
     
    5986        Identifier* identifier = Class(Interface);
    6087
     88        EXPECT_EQ(1u, identifier->getDirectChildren().size());
     89        EXPECT_TRUE(contains(identifier->getDirectChildren(), Class(RealClass)));
     90
    6191        EXPECT_EQ(1u, identifier->getChildren().size());
    62         EXPECT_EQ(0u, identifier->getParents().size());
     92        EXPECT_TRUE(contains(identifier->getChildren(), Class(RealClass)));
     93
     94        EXPECT_EQ(1u, identifier->getDirectParents().size());
     95        EXPECT_TRUE(contains(identifier->getDirectParents(), Class(Identifiable)));
     96
     97        EXPECT_EQ(1u, identifier->getParents().size());
     98        EXPECT_TRUE(contains(identifier->getParents(), Class(Identifiable)));
    6399    }
    64100
     
    67103        Identifier* identifier = Class(BaseClass);
    68104
     105        EXPECT_EQ(1u, identifier->getDirectChildren().size());
     106        EXPECT_TRUE(contains(identifier->getDirectChildren(), Class(RealClass)));
     107
    69108        EXPECT_EQ(1u, identifier->getChildren().size());
    70         EXPECT_EQ(0u, identifier->getParents().size());
     109        EXPECT_TRUE(contains(identifier->getChildren(), Class(RealClass)));
     110
     111        EXPECT_EQ(1u, identifier->getDirectParents().size());
     112        EXPECT_TRUE(contains(identifier->getDirectParents(), Class(Identifiable)));
     113
     114        EXPECT_EQ(1u, identifier->getParents().size());
     115        EXPECT_TRUE(contains(identifier->getParents(), Class(Identifiable)));
    71116    }
    72117
     
    75120        Identifier* identifier = Class(RealClass);
    76121
     122        EXPECT_EQ(0u, identifier->getDirectChildren().size());
     123
    77124        EXPECT_EQ(0u, identifier->getChildren().size());
    78         EXPECT_EQ(2u, identifier->getParents().size());
     125
     126        EXPECT_EQ(2u, identifier->getDirectParents().size());
     127        EXPECT_TRUE(contains(identifier->getDirectParents(), Class(Interface)));
     128        EXPECT_TRUE(contains(identifier->getDirectParents(), Class(BaseClass)));
     129
     130        EXPECT_EQ(3u, identifier->getParents().size());
     131        EXPECT_TRUE(contains(identifier->getParents(), Class(Identifiable)));
     132        EXPECT_TRUE(contains(identifier->getParents(), Class(Interface)));
     133        EXPECT_TRUE(contains(identifier->getParents(), Class(BaseClass)));
    79134    }
    80135}
  • code/branches/core6/test/core/class/IdentifierSimpleClassHierarchyTest.cc

    r9640 r9646  
    1010    {
    1111        class Interface : public OrxonoxInterface
    12             { public: Interface() { RegisterRootObject(Interface); } };
     12        {
     13            public:
     14                Interface()
     15                {
     16                    RegisterRootObject(Interface);
     17                }
     18
     19                virtual void test() = 0;
     20        };
    1321
    1422        class BaseClass : public OrxonoxClass
    15             { public: BaseClass() { RegisterRootObject(BaseClass); } };
     23        {
     24            public:
     25                BaseClass()
     26                {
     27                    RegisterRootObject(BaseClass);
     28                }
     29        };
    1630
    1731        class RealClass : public BaseClass, public Interface
    18             { public: RealClass() { RegisterObject(RealClass); } };
     32        {
     33            public:
     34                RealClass()
     35                {
     36                    RegisterObject(RealClass);
     37                }
     38
     39                virtual void test() {}
     40        };
    1941
    2042        // Fixture
     
    2446                virtual void SetUp()
    2547                {
    26                     registerClass("Interface", new ClassFactoryNoArgs<Interface>());
     48                    registerClass("OrxonoxInterface", new ClassFactoryNoArgs<OrxonoxInterface>());
     49                    registerClass("OrxonoxClass", new ClassFactoryNoArgs<OrxonoxClass>());
     50                    registerClass("Interface", static_cast<ClassFactory<Interface>*>(NULL), false).inheritsFrom(Class(OrxonoxInterface));
    2751                    registerClass("BaseClass", new ClassFactoryNoArgs<BaseClass>());
    2852                    registerClass("RealClass", new ClassFactoryNoArgs<RealClass>());
     
    3660                }
    3761        };
     62
     63        bool contains(const std::set<const Identifier*> identifiers, Identifier* identifier)
     64        {
     65            return identifiers.find(identifier) != identifiers.end();
     66        }
    3867    }
    3968
     
    6190        Identifier* identifier = Class(Interface);
    6291
     92        EXPECT_EQ(1u, identifier->getDirectChildren().size());
     93        EXPECT_TRUE(contains(identifier->getDirectChildren(), Class(RealClass)));
     94
    6395        EXPECT_EQ(1u, identifier->getChildren().size());
    64         EXPECT_EQ(0u, identifier->getParents().size());
     96        EXPECT_TRUE(contains(identifier->getChildren(), Class(RealClass)));
     97
     98        EXPECT_EQ(1u, identifier->getDirectParents().size());
     99        EXPECT_TRUE(contains(identifier->getDirectParents(), Class(OrxonoxInterface)));
     100
     101        EXPECT_EQ(2u, identifier->getParents().size());
     102        EXPECT_TRUE(contains(identifier->getParents(), Class(Identifiable)));
     103        EXPECT_TRUE(contains(identifier->getParents(), Class(OrxonoxInterface)));
    65104    }
    66105
     
    69108        Identifier* identifier = Class(BaseClass);
    70109
     110        EXPECT_EQ(1u, identifier->getDirectChildren().size());
     111        EXPECT_TRUE(contains(identifier->getDirectChildren(), Class(RealClass)));
     112
    71113        EXPECT_EQ(1u, identifier->getChildren().size());
    72         EXPECT_EQ(0u, identifier->getParents().size());
     114        EXPECT_TRUE(contains(identifier->getChildren(), Class(RealClass)));
     115
     116        EXPECT_EQ(1u, identifier->getDirectParents().size());
     117        EXPECT_TRUE(contains(identifier->getDirectParents(), Class(OrxonoxClass)));
     118
     119        EXPECT_EQ(2u, identifier->getParents().size());
     120        EXPECT_TRUE(contains(identifier->getParents(), Class(Identifiable)));
     121        EXPECT_TRUE(contains(identifier->getParents(), Class(OrxonoxClass)));
    73122    }
    74123
     
    77126        Identifier* identifier = Class(RealClass);
    78127
     128        EXPECT_EQ(0u, identifier->getDirectChildren().size());
     129
    79130        EXPECT_EQ(0u, identifier->getChildren().size());
    80         EXPECT_EQ(2u, identifier->getParents().size());
     131
     132        EXPECT_EQ(2u, identifier->getDirectParents().size());
     133        EXPECT_TRUE(contains(identifier->getDirectParents(), Class(Interface)));
     134        EXPECT_TRUE(contains(identifier->getDirectParents(), Class(BaseClass)));
     135
     136        EXPECT_EQ(5u, identifier->getParents().size());
     137        EXPECT_TRUE(contains(identifier->getParents(), Class(Identifiable)));
     138        EXPECT_TRUE(contains(identifier->getParents(), Class(OrxonoxInterface)));
     139        EXPECT_TRUE(contains(identifier->getParents(), Class(OrxonoxClass)));
     140        EXPECT_TRUE(contains(identifier->getParents(), Class(Interface)));
     141        EXPECT_TRUE(contains(identifier->getParents(), Class(BaseClass)));
    81142    }
    82143}
Note: See TracChangeset for help on using the changeset viewer.