Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

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

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

added tests

  • Property svn:eol-style set to native
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                    registerClass("Interface", new ClassFactoryNoArgs<Interface>());
27                    registerClass("BaseClass", new ClassFactoryNoArgs<BaseClass>());
28                    registerClass("RealClass", new ClassFactoryNoArgs<RealClass>());
29
30                    IdentifierManager::createClassHierarchy();
31                }
32
33                virtual void TearDown()
34                {
35                    IdentifierManager::destroyAllIdentifiers();
36                }
37        };
38    }
39
40    TEST(IdentifierSimpleClassHierarchyTest_NoFixture, NoInitialization)
41    {
42        {
43            Identifier* identifier = Class(Interface);
44            EXPECT_EQ(0u, identifier->getChildren().size());
45            EXPECT_EQ(0u, identifier->getParents().size());
46        }
47        {
48            Identifier* identifier = Class(BaseClass);
49            EXPECT_EQ(0u, identifier->getChildren().size());
50            EXPECT_EQ(0u, identifier->getParents().size());
51        }
52        {
53            Identifier* identifier = Class(RealClass);
54            EXPECT_EQ(0u, identifier->getChildren().size());
55            EXPECT_EQ(0u, identifier->getParents().size());
56        }
57    }
58
59    TEST_F(IdentifierSimpleClassHierarchyTest, TestInterface)
60    {
61        Identifier* identifier = Class(Interface);
62
63        EXPECT_EQ(1u, identifier->getChildren().size());
64        EXPECT_EQ(0u, identifier->getParents().size());
65    }
66
67    TEST_F(IdentifierSimpleClassHierarchyTest, BaseClass)
68    {
69        Identifier* identifier = Class(BaseClass);
70
71        EXPECT_EQ(1u, identifier->getChildren().size());
72        EXPECT_EQ(0u, identifier->getParents().size());
73    }
74
75    TEST_F(IdentifierSimpleClassHierarchyTest, RealClass)
76    {
77        Identifier* identifier = Class(RealClass);
78
79        EXPECT_EQ(0u, identifier->getChildren().size());
80        EXPECT_EQ(2u, identifier->getParents().size());
81    }
82}
Note: See TracBrowser for help on using the repository browser.