Index: /code/branches/cpp11_v2/test/core/CMakeLists.txt
===================================================================
--- /code/branches/cpp11_v2/test/core/CMakeLists.txt	(revision 10921)
+++ /code/branches/cpp11_v2/test/core/CMakeLists.txt	(revision 10922)
@@ -20,4 +20,5 @@
     command/CommandTest.cc
     command/FunctorPtrTest.cc
+    command/FunctorTest.cc
     command/ExecutorPtrTest.cc
     object/ClassFactoryTest.cc
Index: /code/branches/cpp11_v2/test/core/command/FunctorPtrTest.cc
===================================================================
--- /code/branches/cpp11_v2/test/core/command/FunctorPtrTest.cc	(revision 10921)
+++ /code/branches/cpp11_v2/test/core/command/FunctorPtrTest.cc	(revision 10922)
@@ -29,17 +29,4 @@
                 }
         };
-
-        void f1(int, double)
-        {
-        }
-
-        void f2(int, double, double)
-        {
-        }
-
-        int f3(int, double, double)
-        {
-            return 0;
-        }
     }
 
@@ -95,57 +82,3 @@
         ASSERT_TRUE(static_cast<bool>(ptr2));
     }
-
-    TEST_F(FunctorPtrTest, canCompareHeaderIdentifiers)
-    {
-        FunctorPtr fp1 = createFunctor(&f1);
-        FunctorPtr fp2 = createFunctor(&f2);
-        FunctorPtr fp3 = createFunctor(&f3);
-        ASSERT_TRUE(fp1->getHeaderIdentifier(1) == fp2->getHeaderIdentifier(1));
-        ASSERT_TRUE(fp1->getHeaderIdentifier(2) == fp2->getHeaderIdentifier(2));
-        ASSERT_FALSE(fp1->getHeaderIdentifier(1) == fp2->getHeaderIdentifier(2));
-        ASSERT_FALSE(fp1->getHeaderIdentifier(10) == fp2->getHeaderIdentifier(10));
-        ASSERT_FALSE(fp2->getHeaderIdentifier(2) == fp3->getHeaderIdentifier(2));
-        ASSERT_FALSE(fp1->getHeaderIdentifier() == fp2->getHeaderIdentifier());
-        ASSERT_FALSE(fp2->getHeaderIdentifier() == fp3->getHeaderIdentifier());
-    }
-
-    TEST_F(FunctorPtrTest, canCompareTypenames)
-    {
-        FunctorPtr fp1 = createFunctor(&f1);
-        FunctorPtr fp2 = createFunctor(&f2);
-        FunctorPtr fp3 = createFunctor(&f3);
-        ASSERT_TRUE(fp1->getTypenameReturnvalue() == fp2->getTypenameReturnvalue());
-        ASSERT_TRUE(fp1->getTypenameParam(0) == fp3->getTypenameParam(0));
-        ASSERT_EQ("void", fp1->getTypenameReturnvalue());
-        ASSERT_EQ("int", fp3->getTypenameReturnvalue());
-        ASSERT_EQ("int", fp2->getTypenameParam(0));
-        ASSERT_EQ("double", fp3->getTypenameParam(2));
-        ASSERT_EQ("", fp3->getTypenameParam(6));
-    }
-
-    TEST_F(FunctorPtrTest, testGetParamCountAndHasReturnValue)
-    {
-        FunctorPtr fp1 = createFunctor(&f1);
-        FunctorPtr fp2 = createFunctor(&f2);
-        FunctorPtr fp3 = createFunctor(&f3);
-        ASSERT_EQ(3, fp2->getParamCount());
-        ASSERT_FALSE(fp1->getParamCount() == fp3->getParamCount());
-        ASSERT_FALSE(fp2->hasReturnvalue());
-        ASSERT_TRUE(fp3->hasReturnvalue());
-    }
-
-    TEST_F(FunctorPtrTest, canEvaluateArgument)
-    {
-        FunctorPtr fp1 = createFunctor(&f1);
-        MultiType mttype = "2";
-        fp1->evaluateArgument(0, mttype);
-        ASSERT_TRUE(mttype.isType<int>());
-        ASSERT_EQ(2, mttype.get<int>());
-        fp1->evaluateArgument(1, mttype);
-        ASSERT_TRUE(mttype.isType<double>());
-        ASSERT_EQ(2.0, mttype.get<double>());
-        mttype.reset();
-        fp1->evaluateArgument(5, mttype);
-        ASSERT_TRUE(mttype.null());
-    }
 }
Index: /code/branches/cpp11_v2/test/core/command/FunctorTest.cc
===================================================================
--- /code/branches/cpp11_v2/test/core/command/FunctorTest.cc	(revision 10922)
+++ /code/branches/cpp11_v2/test/core/command/FunctorTest.cc	(revision 10922)
@@ -0,0 +1,88 @@
+#include <gtest/gtest.h>
+#include "core/command/Functor.h"
+
+namespace orxonox
+{
+    namespace
+    {
+        // Fixture
+        class FunctorTest : public ::testing::Test
+        {
+            public:
+                virtual void SetUp() override
+                {
+                }
+
+                virtual void TearDown() override
+                {
+                }
+        };
+
+        void f1(int, double)
+        {
+        }
+
+        void f2(int, double, double)
+        {
+        }
+
+        int f3(int, double, double)
+        {
+            return 0;
+        }
+    }
+
+    TEST_F(FunctorTest, canCompareHeaderIdentifiers)
+    {
+        FunctorPtr fp1 = createFunctor(&f1);
+        FunctorPtr fp2 = createFunctor(&f2);
+        FunctorPtr fp3 = createFunctor(&f3);
+        ASSERT_TRUE(fp1->getHeaderIdentifier(1) == fp2->getHeaderIdentifier(1));
+        ASSERT_TRUE(fp1->getHeaderIdentifier(2) == fp2->getHeaderIdentifier(2));
+        ASSERT_FALSE(fp1->getHeaderIdentifier(1) == fp2->getHeaderIdentifier(2));
+        ASSERT_FALSE(fp1->getHeaderIdentifier(10) == fp2->getHeaderIdentifier(10));
+        ASSERT_FALSE(fp2->getHeaderIdentifier(2) == fp3->getHeaderIdentifier(2));
+        ASSERT_FALSE(fp1->getHeaderIdentifier() == fp2->getHeaderIdentifier());
+        ASSERT_FALSE(fp2->getHeaderIdentifier() == fp3->getHeaderIdentifier());
+    }
+
+    TEST_F(FunctorTest, canCompareTypenames)
+    {
+        FunctorPtr fp1 = createFunctor(&f1);
+        FunctorPtr fp2 = createFunctor(&f2);
+        FunctorPtr fp3 = createFunctor(&f3);
+        ASSERT_TRUE(fp1->getTypenameReturnvalue() == fp2->getTypenameReturnvalue());
+        ASSERT_TRUE(fp1->getTypenameParam(0) == fp3->getTypenameParam(0));
+        ASSERT_EQ("void", fp1->getTypenameReturnvalue());
+        ASSERT_EQ("int", fp3->getTypenameReturnvalue());
+        ASSERT_EQ("int", fp2->getTypenameParam(0));
+        ASSERT_EQ("double", fp3->getTypenameParam(2));
+        ASSERT_EQ("", fp3->getTypenameParam(6));
+    }
+
+    TEST_F(FunctorTest, testGetParamCountAndHasReturnValue)
+    {
+        FunctorPtr fp1 = createFunctor(&f1);
+        FunctorPtr fp2 = createFunctor(&f2);
+        FunctorPtr fp3 = createFunctor(&f3);
+        ASSERT_EQ(3, fp2->getParamCount());
+        ASSERT_FALSE(fp1->getParamCount() == fp3->getParamCount());
+        ASSERT_FALSE(fp2->hasReturnvalue());
+        ASSERT_TRUE(fp3->hasReturnvalue());
+    }
+
+    TEST_F(FunctorTest, canEvaluateArgument)
+    {
+        FunctorPtr fp1 = createFunctor(&f1);
+        MultiType mttype = "2";
+        fp1->evaluateArgument(0, mttype);
+        ASSERT_TRUE(mttype.isType<int>());
+        ASSERT_EQ(2, mttype.get<int>());
+        fp1->evaluateArgument(1, mttype);
+        ASSERT_TRUE(mttype.isType<double>());
+        ASSERT_EQ(2.0, mttype.get<double>());
+        mttype.reset();
+        fp1->evaluateArgument(5, mttype);
+        ASSERT_TRUE(mttype.null());
+    }
+}
