NerfUS mobile node that manages a target for the Nerf gun firing range

Dependencies:   LedController mbed-rtos mbed NerfUSXbee Servomotor TargetManager

Fork of NerfUS by NerfUS

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers GoogleMockTest.cpp Source File

GoogleMockTest.cpp

00001 #include "gmock/gmock.h"
00002 #include "gtest/gtest.h"
00003 
00004 class Adder
00005 {
00006     public:
00007         virtual ~Adder() {}
00008         virtual int add(int a, int b)
00009         {
00010             return a + b;
00011         }
00012         virtual int add_array(int some_array[8], int count)
00013         {
00014             int sum = 0;
00015             for(int i=0; i<count; i++)
00016             {
00017                 sum += some_array[i];
00018             }
00019             return sum;
00020         }
00021     virtual int add_vector(std::vector<int> some_vector)
00022         {
00023             int sum = 0;
00024             for(int i=0; i<some_vector.size(); i++)
00025             {
00026                 sum += some_vector[i];
00027             }
00028             return sum;
00029         }
00030 };
00031 
00032 class MockAdder : public Adder
00033 {
00034     public:
00035         MOCK_METHOD2(add, int(int a, int b));
00036         MOCK_METHOD2(add_array, int(int some_array[8], int count));
00037         MOCK_METHOD1(add_vector, int(std::vector<int> some_vector));
00038 };
00039 
00040 TEST(GoogleMockTest, ExpectCalled)
00041 {
00042     MockAdder adder;
00043 
00044     EXPECT_CALL(adder, add(1, 2));
00045 
00046     adder.add(1, 2);
00047 }
00048 
00049 TEST(GoogleMockTest, DefineReturnedValue)
00050 {
00051     using ::testing::Return;
00052     MockAdder adder;
00053 
00054     EXPECT_CALL(adder, add(1, 2))
00055         .WillOnce(Return(42));
00056 
00057     ASSERT_EQ(42, adder.add(1, 2));
00058 }
00059 
00060 int expected_array[8] = {1,2,3,4,5,6,7,8};
00061 TEST(GoogleMockTest, AssertCalledWithArrayPointer)
00062 {
00063     MockAdder adder;
00064 
00065     EXPECT_CALL(adder, add_array(expected_array, 8))
00066         .WillOnce(::testing::Return(36));
00067 
00068     adder.add_array(expected_array, 8);
00069 }
00070 
00071 TEST(GoogleMockTest, UseMatcherOnMethodParameter)
00072 {
00073     MockAdder adder;
00074 
00075     std::vector<int> expected_vector;
00076     expected_vector.push_back(1);
00077     expected_vector.push_back(2);
00078     expected_vector.push_back(3);
00079 
00080     std::vector<int> some_vector;
00081     some_vector.push_back(1);
00082     some_vector.push_back(2);
00083     some_vector.push_back(3);
00084 
00085     EXPECT_CALL(adder, add_vector(::testing::ContainerEq(expected_vector)))
00086         .WillOnce(::testing::Return(6));
00087 
00088     adder.add_vector(some_vector);
00089 }
00090 
00091 TEST(GoogleMockTest, UseMatcherOnArrayPointerPointedContent)
00092 {
00093     MockAdder adder;
00094 
00095     int expected_array[8] = {1,2,3,4,5,6,7,8};
00096 
00097     EXPECT_CALL(adder, add_array(::testing::_, 8))
00098     .With(::testing::Args<0,1>(::testing::ContainerEq(expected_array)))
00099         .WillOnce(::testing::Return(36));
00100 
00101     int actual_array[8] = {1,2,3,4,5,6,7,8};
00102     adder.add_array(actual_array, 8);
00103 }