Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: code/branches/core7/test/core/object/ContextTest.cc @ 10530

Last change on this file since 10530 was 10530, checked in by landauf, 9 years ago

statically initialized instances may contain a type. currently not used.

  • Property svn:eol-style set to native
File size: 2.6 KB
Line 
1#include <gtest/gtest.h>
2#include "core/object/Context.h"
3#include "core/class/OrxonoxClass.h"
4#include "core/CoreIncludes.h"
5#include "core/module/ModuleInstance.h"
6
7namespace orxonox
8{
9    namespace
10    {
11        class SubclassContext : public OrxonoxClass, public Context
12        {
13            public:
14                SubclassContext() : Context(NULL) { RegisterObject(SubclassContext); }
15        };
16
17        RegisterClassNoArgs(SubclassContext);
18
19        // Fixture
20        class ContextTest : public ::testing::Test
21        {
22            public:
23                virtual void SetUp()
24                {
25                    Context::setRootContext(new Context(NULL));
26                    ModuleInstance::getCurrentModuleInstance()->loadAllStaticallyInitializedInstances(0);
27                }
28
29                virtual void TearDown()
30                {
31                    ModuleInstance::getCurrentModuleInstance()->unloadAllStaticallyInitializedInstances(0);
32                    Context::setRootContext(NULL);
33                }
34        };
35    }
36
37    TEST_F(ContextTest, CanCreateContext)
38    {
39        Context context(NULL);
40    }
41
42    TEST_F(ContextTest, CanCreateSubclassContext)
43    {
44        SubclassContext context;
45    }
46
47    TEST_F(ContextTest, ContextIsItsOwnContext)
48    {
49        Context context(NULL);
50        EXPECT_EQ(&context, context.getContext());
51    }
52
53    TEST_F(ContextTest, SubclassContextIsItsOwnContext)
54    {
55        SubclassContext context;
56        EXPECT_EQ(&context, context.getContext());
57    }
58
59    TEST_F(ContextTest, SubclassAddsToItsOwnObjectList)
60    {
61        SubclassContext context;
62        EXPECT_EQ(&context, context.getContext());
63        EXPECT_EQ(1u, context.getObjectList<SubclassContext>()->size());
64    }
65
66    TEST_F(ContextTest, ContextIsAddedToItsOwnObjectList)
67    {
68        Context context(NULL);
69        ASSERT_EQ(1u, context.getObjectList<Context>()->size());
70        EXPECT_TRUE(context.getObjectList<Context>()->begin()->objectBase_ == static_cast<Listable*>(&context));
71    }
72
73    TEST_F(ContextTest, ContextIsAddedToObjectListOfBaseContext)
74    {
75        Context baseContext(NULL);
76        Context subContext(&baseContext);
77
78        ASSERT_EQ(1u, subContext.getObjectList<Context>()->size());
79        EXPECT_TRUE(subContext.getObjectList<Context>()->begin()->objectBase_ == static_cast<Listable*>(&subContext));
80
81        ASSERT_EQ(2u, baseContext.getObjectList<Context>()->size());
82        EXPECT_TRUE(baseContext.getObjectList<Context>()->begin()->objectBase_ == static_cast<Listable*>(&baseContext));
83        EXPECT_TRUE(baseContext.getObjectList<Context>()->begin()->next_->objectBase_ == static_cast<Listable*>(&subContext));
84    }
85}
Note: See TracBrowser for help on using the repository browser.