[Orxonox-commit 6207] r10865 - code/branches/cpp11_v2/test/core/command

muemart at orxonox.net muemart at orxonox.net
Thu Nov 26 10:44:03 CET 2015


Author: muemart
Date: 2015-11-26 10:44:02 +0100 (Thu, 26 Nov 2015)
New Revision: 10865

Modified:
   code/branches/cpp11_v2/test/core/command/FunctorPtrTest.cc
Log:
Add some more tests for Functor(Ptr)

Modified: code/branches/cpp11_v2/test/core/command/FunctorPtrTest.cc
===================================================================
--- code/branches/cpp11_v2/test/core/command/FunctorPtrTest.cc	2015-11-26 08:08:11 UTC (rev 10864)
+++ code/branches/cpp11_v2/test/core/command/FunctorPtrTest.cc	2015-11-26 09:44:02 UTC (rev 10865)
@@ -28,6 +28,19 @@
                 {
                 }
         };
+
+        void f1(int, double)
+        {
+        }
+
+        void f2(int, double, double)
+        {
+        }
+
+        int f3(int, double, double)
+        {
+            return 0;
+        }
     }
 
     TEST_F(FunctorPtrTest, emptyPtr)
@@ -81,4 +94,58 @@
         FunctorMemberPtr<Subclass> ptr2 = std::static_pointer_cast<FunctorMember<Subclass>>(ptr1);
         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());
+    }
 }




More information about the Orxonox-commit mailing list