Index: /code/branches/cpp11_v2/test/core/CMakeLists.txt
===================================================================
--- /code/branches/cpp11_v2/test/core/CMakeLists.txt	(revision 10821)
+++ /code/branches/cpp11_v2/test/core/CMakeLists.txt	(revision 10822)
@@ -19,4 +19,6 @@
     class/SuperTest.cc
     command/CommandTest.cc
+    command/FunctorPtrTest.cc
+    command/ExecutorPtrTest.cc
     object/ClassFactoryTest.cc
     object/ContextTest.cc
Index: /code/branches/cpp11_v2/test/core/command/ExecutorPtrTest.cc
===================================================================
--- /code/branches/cpp11_v2/test/core/command/ExecutorPtrTest.cc	(revision 10822)
+++ /code/branches/cpp11_v2/test/core/command/ExecutorPtrTest.cc	(revision 10822)
@@ -0,0 +1,73 @@
+#include <gtest/gtest.h>
+#include "core/command/Executor.h"
+
+namespace orxonox
+{
+    namespace
+    {
+        class Testclass : public Destroyable
+        {
+            public:
+                void testMember() {}
+                static void testStatic() {}
+        };
+
+        // Fixture
+        class ExecutorPtrTest : public ::testing::Test
+        {
+            public:
+                virtual void SetUp()
+                {
+                }
+
+                virtual void TearDown()
+                {
+                }
+        };
+    }
+
+    TEST_F(ExecutorPtrTest, emptyPtr)
+    {
+        ExecutorMemberPtr<Testclass> ptr1;
+        ExecutorStaticPtr ptr2;
+        ExecutorPtr ptr3;
+
+        ASSERT_FALSE(static_cast<bool>(ptr1));
+        ASSERT_FALSE(static_cast<bool>(ptr2));
+        ASSERT_FALSE(static_cast<bool>(ptr3));
+    }
+
+    TEST_F(ExecutorPtrTest, canAssignToExecutorMemberPtr)
+    {
+        ExecutorMemberPtr<Testclass> ptr = createExecutor(createFunctor(&Testclass::testMember));
+        ASSERT_TRUE(static_cast<bool>(ptr));
+    }
+
+    TEST_F(ExecutorPtrTest, canAssignToExecutorStaticPtr)
+    {
+        ExecutorStaticPtr ptr = createExecutor(createFunctor(&Testclass::testStatic));
+        ASSERT_TRUE(static_cast<bool>(ptr));
+    }
+
+    TEST_F(ExecutorPtrTest, canAssignToExecutorPtr)
+    {
+        ExecutorPtr ptr1 = createExecutor(createFunctor(&Testclass::testMember));
+        ASSERT_TRUE(static_cast<bool>(ptr1));
+        ExecutorPtr ptr2 = createExecutor(createFunctor(&Testclass::testStatic));
+        ASSERT_TRUE(static_cast<bool>(ptr2));
+    }
+
+    TEST_F(ExecutorPtrTest, canCastFromExecutorMemberPtr)
+    {
+        ExecutorMemberPtr<Testclass> ptr1 = createExecutor(createFunctor(&Testclass::testMember));
+        ExecutorPtr ptr2 = ptr1;
+        ASSERT_TRUE(static_cast<bool>(ptr2));
+    }
+
+    TEST_F(ExecutorPtrTest, canCastFromExecutorStaticPtr)
+    {
+        ExecutorStaticPtr ptr1 = createExecutor(createFunctor(&Testclass::testStatic));
+        ExecutorPtr ptr2 = ptr1;
+        ASSERT_TRUE(static_cast<bool>(ptr2));
+    }
+}
Index: /code/branches/cpp11_v2/test/core/command/FunctorPtrTest.cc
===================================================================
--- /code/branches/cpp11_v2/test/core/command/FunctorPtrTest.cc	(revision 10822)
+++ /code/branches/cpp11_v2/test/core/command/FunctorPtrTest.cc	(revision 10822)
@@ -0,0 +1,73 @@
+#include <gtest/gtest.h>
+#include "core/command/Functor.h"
+
+namespace orxonox
+{
+    namespace
+    {
+        class Testclass : public Destroyable
+        {
+            public:
+                void testMember() {}
+                static void testStatic() {}
+        };
+
+        // Fixture
+        class FunctorPtrTest : public ::testing::Test
+        {
+            public:
+                virtual void SetUp()
+                {
+                }
+
+                virtual void TearDown()
+                {
+                }
+        };
+    }
+
+    TEST_F(FunctorPtrTest, emptyPtr)
+    {
+        FunctorMemberPtr<Testclass> ptr1;
+        FunctorStaticPtr ptr2;
+        FunctorPtr ptr3;
+
+        ASSERT_FALSE(static_cast<bool>(ptr1));
+        ASSERT_FALSE(static_cast<bool>(ptr2));
+        ASSERT_FALSE(static_cast<bool>(ptr3));
+    }
+
+    TEST_F(FunctorPtrTest, canAssignToFunctorMemberPtr)
+    {
+        FunctorMemberPtr<Testclass> ptr = createFunctor(&Testclass::testMember);
+        ASSERT_TRUE(static_cast<bool>(ptr));
+    }
+
+    TEST_F(FunctorPtrTest, canAssignToFunctorStaticPtr)
+    {
+        FunctorStaticPtr ptr = createFunctor(&Testclass::testStatic);
+        ASSERT_TRUE(static_cast<bool>(ptr));
+    }
+
+    TEST_F(FunctorPtrTest, canAssignToFunctorPtr)
+    {
+        FunctorPtr ptr1 = createFunctor(&Testclass::testMember);
+        ASSERT_TRUE(static_cast<bool>(ptr1));
+        FunctorPtr ptr2 = createFunctor(&Testclass::testStatic);
+        ASSERT_TRUE(static_cast<bool>(ptr2));
+    }
+
+    TEST_F(FunctorPtrTest, canCastFromFunctorMemberPtr)
+    {
+        FunctorMemberPtr<Testclass> ptr1 = createFunctor(&Testclass::testMember);
+        FunctorPtr ptr2 = ptr1;
+        ASSERT_TRUE(static_cast<bool>(ptr2));
+    }
+
+    TEST_F(FunctorPtrTest, canCastFromFunctorStaticPtr)
+    {
+        FunctorStaticPtr ptr1 = createFunctor(&Testclass::testStatic);
+        FunctorPtr ptr2 = ptr1;
+        ASSERT_TRUE(static_cast<bool>(ptr2));
+    }
+}
