Merge branch 'common_services'
[ptas] / tests / ut_gmocktest / ut_gmocktest.cpp
diff --git a/tests/ut_gmocktest/ut_gmocktest.cpp b/tests/ut_gmocktest/ut_gmocktest.cpp
new file mode 100644 (file)
index 0000000..e756c8c
--- /dev/null
@@ -0,0 +1,40 @@
+#include "mock_turtle.h"
+#include "painter.h"
+
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
+
+#include <QSignalSpy>
+#include "stlhelpers4qt.h"
+
+using ::testing::AtLeast;
+
+TEST(PainterTest, TestTurtlePenDownCalledAtLeastOnceWhenDrawCircleCalled)
+{
+    MockTurtle turtle;
+    EXPECT_CALL(turtle, PenDown()).Times(AtLeast(1));
+
+    Painter painter(&turtle);
+
+    EXPECT_TRUE(painter.DrawCircle(0, 0, 10));
+}
+
+TEST(PainterTest, TestSignalEmittedWhenDrawCircleCalled)
+{
+    MockTurtle turtle;
+
+    Painter painter(&turtle);
+
+    QSignalSpy spy(&painter, SIGNAL(DrawCircleCalled(int,int,int)));
+
+    painter.DrawCircle(0, 0, 10);
+    ASSERT_EQ(1, spy.count());
+    QList<QVariant> expected = QList<QVariant>() << 0 << 0 << 10;
+    ASSERT_EQ(expected, spy.at(0));
+}
+
+int main(int argc, char *argv[])
+{
+    ::testing::InitGoogleMock(&argc, argv);
+    return RUN_ALL_TESTS();
+}