Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: code/branches/cpp11_v2/test/core/command/ExecutorPtrTest.cc @ 10822

Last change on this file since 10822 was 10822, checked in by landauf, 8 years ago

added tests for FunctorPtr and ExecutorPtr

  • Property svn:eol-style set to native
File size: 2.0 KB
Line 
1#include <gtest/gtest.h>
2#include "core/command/Executor.h"
3
4namespace orxonox
5{
6    namespace
7    {
8        class Testclass : public Destroyable
9        {
10            public:
11                void testMember() {}
12                static void testStatic() {}
13        };
14
15        // Fixture
16        class ExecutorPtrTest : public ::testing::Test
17        {
18            public:
19                virtual void SetUp()
20                {
21                }
22
23                virtual void TearDown()
24                {
25                }
26        };
27    }
28
29    TEST_F(ExecutorPtrTest, emptyPtr)
30    {
31        ExecutorMemberPtr<Testclass> ptr1;
32        ExecutorStaticPtr ptr2;
33        ExecutorPtr ptr3;
34
35        ASSERT_FALSE(static_cast<bool>(ptr1));
36        ASSERT_FALSE(static_cast<bool>(ptr2));
37        ASSERT_FALSE(static_cast<bool>(ptr3));
38    }
39
40    TEST_F(ExecutorPtrTest, canAssignToExecutorMemberPtr)
41    {
42        ExecutorMemberPtr<Testclass> ptr = createExecutor(createFunctor(&Testclass::testMember));
43        ASSERT_TRUE(static_cast<bool>(ptr));
44    }
45
46    TEST_F(ExecutorPtrTest, canAssignToExecutorStaticPtr)
47    {
48        ExecutorStaticPtr ptr = createExecutor(createFunctor(&Testclass::testStatic));
49        ASSERT_TRUE(static_cast<bool>(ptr));
50    }
51
52    TEST_F(ExecutorPtrTest, canAssignToExecutorPtr)
53    {
54        ExecutorPtr ptr1 = createExecutor(createFunctor(&Testclass::testMember));
55        ASSERT_TRUE(static_cast<bool>(ptr1));
56        ExecutorPtr ptr2 = createExecutor(createFunctor(&Testclass::testStatic));
57        ASSERT_TRUE(static_cast<bool>(ptr2));
58    }
59
60    TEST_F(ExecutorPtrTest, canCastFromExecutorMemberPtr)
61    {
62        ExecutorMemberPtr<Testclass> ptr1 = createExecutor(createFunctor(&Testclass::testMember));
63        ExecutorPtr ptr2 = ptr1;
64        ASSERT_TRUE(static_cast<bool>(ptr2));
65    }
66
67    TEST_F(ExecutorPtrTest, canCastFromExecutorStaticPtr)
68    {
69        ExecutorStaticPtr ptr1 = createExecutor(createFunctor(&Testclass::testStatic));
70        ExecutorPtr ptr2 = ptr1;
71        ASSERT_TRUE(static_cast<bool>(ptr2));
72    }
73}
Note: See TracBrowser for help on using the repository browser.