Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: code/branches/core6/test/core/class/SubclassIdentifierTest.cc @ 9647

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

fixed tests (caused problem with MSVC because they were executed in a different order)

  • Property svn:eol-style set to native
File size: 2.3 KB
Line 
1#include <gtest/gtest.h>
2#include "core/CoreIncludes.h"
3#include "core/class/Identifiable.h"
4#include "core/class/SubclassIdentifier.h"
5#include "core/class/OrxonoxClass.h"
6
7namespace orxonox
8{
9    namespace
10    {
11        class TestClass : public OrxonoxClass
12        {
13            public:
14                TestClass(Context* context = NULL) { RegisterRootObject(TestClass); }
15        };
16
17        class TestSubclass : public TestClass
18        {
19            public:
20                TestSubclass(Context* context = NULL) { RegisterObject(TestSubclass); }
21        };
22
23        // Fixture
24        class SubclassIdentifierTest : public ::testing::Test
25        {
26            public:
27                virtual void SetUp()
28                {
29                    registerClass("OrxonoxClass", new ClassFactoryNoArgs<OrxonoxClass>());
30                    registerClass("TestClass", new ClassFactoryWithContext<TestClass>());
31                    registerClass("TestSubclass", new ClassFactoryWithContext<TestSubclass>());
32
33                    IdentifierManager::getInstance().createClassHierarchy();
34                }
35
36                virtual void TearDown()
37                {
38                    IdentifierManager::getInstance().destroyAllIdentifiers();
39                }
40        };
41    }
42
43    TEST_F(SubclassIdentifierTest, CanCreateIdentifier)
44    {
45        TestSubclass test;
46
47        SubclassIdentifier<TestClass> subclassIdentifier;
48    }
49
50    TEST_F(SubclassIdentifierTest, DefaultsToNormalIdentifier)
51    {
52        TestSubclass test;
53
54        SubclassIdentifier<TestClass> subclassIdentifier;
55        EXPECT_EQ(Class(TestClass), subclassIdentifier.getIdentifier());
56    }
57
58    TEST_F(SubclassIdentifierTest, CanAssignIdentifierOfSubclass)
59    {
60        TestSubclass test;
61        SubclassIdentifier<TestClass> subclassIdentifier;
62        subclassIdentifier = Class(TestSubclass);
63        EXPECT_EQ(Class(TestSubclass), subclassIdentifier.getIdentifier());
64    }
65
66    TEST_F(SubclassIdentifierTest, CanCreateSubclass)
67    {
68        TestSubclass test;
69        SubclassIdentifier<TestClass> subclassIdentifier;
70        subclassIdentifier = Class(TestSubclass);
71
72        TestClass* instance = subclassIdentifier.fabricate(NULL);
73        ASSERT_TRUE(instance != NULL);
74        EXPECT_EQ(Class(TestSubclass), instance->getIdentifier());
75        delete instance;
76    }
77}
Note: See TracBrowser for help on using the repository browser.