From 244d4cc57b8fa7537f065fb93627207d88f6e3bb Mon Sep 17 00:00:00 2001 From: klugier Date: Wed, 8 Mar 2017 22:07:28 +0000 Subject: [PATCH] .bazaar .google_test added google mock example, git-svn-id: svn://ultimatepp.org/upp/trunk@10926 f0d560ea-af0d-0410-9eb7-867de7ffcac7 --- .../GoogleMockExample/GoogleMockExample.cpp | 37 +++++++++++++------ .../GoogleMockExample/GoogleMockExample.upp | 6 +-- 2 files changed, 29 insertions(+), 14 deletions(-) diff --git a/bazaar/GoogleMockExample/GoogleMockExample.cpp b/bazaar/GoogleMockExample/GoogleMockExample.cpp index 41eb95bc0..55e20bbdc 100644 --- a/bazaar/GoogleMockExample/GoogleMockExample.cpp +++ b/bazaar/GoogleMockExample/GoogleMockExample.cpp @@ -1,39 +1,54 @@ -#include #include +#include + +#include using namespace Upp; +const String CAR_REGISTRATION_NUMBER = "UPP IS THE BEST"; + class Car { public: virtual ~Car() {} virtual void OpenHood() = 0; + virtual String ReadRegistrationNumbers() = 0; }; class MockCar : public Car { public: MOCK_METHOD0(OpenHood, void()); + MOCK_METHOD0(ReadRegistrationNumbers, String()); }; class CarRepairShop final { public: - void Service(Car& car) { + CarRepairShop() + : carsWaitingForService({ CAR_REGISTRATION_NUMBER }) + {} + + bool Service(Car& car) { + if (carsWaitingForService.Find(car.ReadRegistrationNumbers()) < 0) { + return false; + } + car.OpenHood(); + + return true; } + +private: + Index carsWaitingForService; }; TEST(CarRepairShopTest, ServiceChecksAllMainCarElements) { MockCar car; + CarRepairShop repairShop; - EXPECT_CALL(car, OpenHood()) - .Times(::testing::AtLeast(1)); + EXPECT_CALL(car, ReadRegistrationNumbers()).WillOnce(::testing::Return(String(CAR_REGISTRATION_NUMBER))); + EXPECT_CALL(car, OpenHood()).Times(::testing::AtLeast(1)); - CarRepairShop().Service(car); + EXPECT_TRUE(repairShop.Service(car)); } -int main(int argc, char *argv[]) -{ - testing::InitGoogleTest(&argc, argv); - - return RUN_ALL_TESTS(); -} +TEST_APP_MAIN {} diff --git a/bazaar/GoogleMockExample/GoogleMockExample.upp b/bazaar/GoogleMockExample/GoogleMockExample.upp index 22733524a..660f36279 100644 --- a/bazaar/GoogleMockExample/GoogleMockExample.upp +++ b/bazaar/GoogleMockExample/GoogleMockExample.upp @@ -1,8 +1,8 @@ -description "Unit test package that shows how to use Google Test with Google Mock\377"; +description "Google mock in action\377"; uses - Core, - plugin/gmock; + plugin/gmock, + Core; file GoogleMockExample.cpp;