[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