[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