Introduced common unit test .pri file
[ptas] / tests / ut_gmocktest / ut_gmocktest.cpp
1 #include "mock_turtle.h"
2 #include "painter.h"
3
4 #include <gmock/gmock.h>
5 #include <gtest/gtest.h>
6
7 #include <QSignalSpy>
8 #include "stlhelpers4qt.h"
9
10 using ::testing::AtLeast;
11
12 TEST(PainterTest, TestTurtlePenDownCalledAtLeastOnceWhenDrawCircleCalled)
13 {
14     MockTurtle turtle;
15     EXPECT_CALL(turtle, PenDown()).Times(AtLeast(1));
16
17     Painter painter(&turtle);
18
19     EXPECT_TRUE(painter.DrawCircle(0, 0, 10));
20 }
21
22 TEST(PainterTest, TestSignalEmittedWhenDrawCircleCalled)
23 {
24     MockTurtle turtle;
25
26     Painter painter(&turtle);
27
28     QSignalSpy spy(&painter, SIGNAL(DrawCircleCalled(int,int,int)));
29
30     painter.DrawCircle(0, 0, 10);
31     ASSERT_EQ(1, spy.count());
32     QList<QVariant> expected = QList<QVariant>() << 0 << 0 << 10;
33     ASSERT_EQ(expected, spy.at(0));
34 }
35
36 int main(int argc, char *argv[])
37 {
38     ::testing::InitGoogleMock(&argc, argv);
39     return RUN_ALL_TESTS();
40 }