Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: code/branches/core6/test/core/class/IdentifierExternalClassHierarchyTest.cc @ 9636

Last change on this file since 9636 was 9636, checked in by landauf, 11 years ago

added tests

File size: 2.5 KB
Line 
1#include <gtest/gtest.h>
2#include "core/CoreIncludes.h"
3#include "core/class/Identifiable.h"
4
5namespace orxonox
6{
7    namespace
8    {
9        class Interface : virtual public Identifiable
10            { public: Interface() { RegisterRootObject(Interface); } };
11
12        class BaseClass : virtual public Identifiable
13            { public: BaseClass() { RegisterRootObject(BaseClass); } };
14
15        class RealClass : public BaseClass, public Interface
16            { public: RealClass() { RegisterObject(RealClass); } };
17
18        // Fixture
19        class IdentifierExternalClassHierarchyTest : public ::testing::Test
20        {
21            public:
22                virtual void SetUp()
23                {
24                    new ClassFactory<Interface>("Interface");
25                    new ClassFactory<BaseClass>("BaseClass");
26                    new ClassFactory<RealClass>("RealClass");
27                    IdentifierManager::createClassHierarchy();
28                }
29
30                virtual void TearDown()
31                {
32                    IdentifierManager::destroyAllIdentifiers();
33                }
34        };
35    }
36
37    TEST(IdentifierExternalClassHierarchyTest_NoFixture, NoInitialization)
38    {
39        {
40            Identifier* identifier = Class(Interface);
41            EXPECT_EQ(0u, identifier->getChildren().size());
42            EXPECT_EQ(0u, identifier->getParents().size());
43        }
44        {
45            Identifier* identifier = Class(BaseClass);
46            EXPECT_EQ(0u, identifier->getChildren().size());
47            EXPECT_EQ(0u, identifier->getParents().size());
48        }
49        {
50            Identifier* identifier = Class(RealClass);
51            EXPECT_EQ(0u, identifier->getChildren().size());
52            EXPECT_EQ(0u, identifier->getParents().size());
53        }
54    }
55
56    TEST_F(IdentifierExternalClassHierarchyTest, TestInterface)
57    {
58        Identifier* identifier = Class(Interface);
59
60        EXPECT_EQ(1u, identifier->getChildren().size());
61        EXPECT_EQ(0u, identifier->getParents().size());
62    }
63
64    TEST_F(IdentifierExternalClassHierarchyTest, BaseClass)
65    {
66        Identifier* identifier = Class(BaseClass);
67
68        EXPECT_EQ(1u, identifier->getChildren().size());
69        EXPECT_EQ(0u, identifier->getParents().size());
70    }
71
72    TEST_F(IdentifierExternalClassHierarchyTest, RealClass)
73    {
74        Identifier* identifier = Class(RealClass);
75
76        EXPECT_EQ(0u, identifier->getChildren().size());
77        EXPECT_EQ(2u, identifier->getParents().size());
78    }
79}
Note: See TracBrowser for help on using the repository browser.