Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

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

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

added tests

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