[Orxonox-commit 4981] r9650 - in code/branches/core6: src/libraries/core/object test/core/object
landauf at orxonox.net
landauf at orxonox.net
Wed Aug 14 19:04:40 CEST 2013
Author: landauf
Date: 2013-08-14 19:04:40 +0200 (Wed, 14 Aug 2013)
New Revision: 9650
Modified:
code/branches/core6/src/libraries/core/object/Context.cc
code/branches/core6/test/core/object/ContextTest.cc
Log:
add context to objectlist
Modified: code/branches/core6/src/libraries/core/object/Context.cc
===================================================================
--- code/branches/core6/src/libraries/core/object/Context.cc 2013-08-14 16:42:28 UTC (rev 9649)
+++ code/branches/core6/src/libraries/core/object/Context.cc 2013-08-14 17:04:40 UTC (rev 9650)
@@ -33,9 +33,12 @@
#include "Context.h"
#include "core/class/Identifier.h"
+#include "core/CoreIncludes.h"
namespace orxonox
{
+ RegisterClass(Context);
+
Context* Context::rootContext_s = 0;
Context::Context(Context* context) : Listable(this), parentContext_(context)
@@ -45,6 +48,8 @@
// and each subclass must call its constructor individually, so either all subclasses add Listable(this) to their initialization list or we call
// setContext(this) here).
this->setContext(this);
+
+ RegisterObject(Context);
}
Context::~Context()
Modified: code/branches/core6/test/core/object/ContextTest.cc
===================================================================
--- code/branches/core6/test/core/object/ContextTest.cc 2013-08-14 16:42:28 UTC (rev 9649)
+++ code/branches/core6/test/core/object/ContextTest.cc 2013-08-14 17:04:40 UTC (rev 9650)
@@ -57,4 +57,24 @@
EXPECT_EQ(&context, context.getContext());
EXPECT_EQ(1u, context.getObjectList<SubclassContext>()->size());
}
+
+ TEST_F(ContextTest, ContextIsAddedToItsOwnObjectList)
+ {
+ Context context(NULL);
+ ASSERT_EQ(1u, context.getObjectList<Context>()->size());
+ EXPECT_TRUE(context.getObjectList<Context>()->begin()->objectBase_ == static_cast<Listable*>(&context));
+ }
+
+ TEST_F(ContextTest, ContextIsAddedToObjectListOfBaseContext)
+ {
+ Context baseContext(NULL);
+ Context subContext(&baseContext);
+
+ ASSERT_EQ(1u, subContext.getObjectList<Context>()->size());
+ EXPECT_TRUE(subContext.getObjectList<Context>()->begin()->objectBase_ == static_cast<Listable*>(&subContext));
+
+ ASSERT_EQ(2u, baseContext.getObjectList<Context>()->size());
+ EXPECT_TRUE(baseContext.getObjectList<Context>()->begin()->objectBase_ == static_cast<Listable*>(&baseContext));
+ EXPECT_TRUE(baseContext.getObjectList<Context>()->begin()->next_->objectBase_ == static_cast<Listable*>(&subContext));
+ }
}
More information about the Orxonox-commit
mailing list