Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1177)

Side by Side Diff: testing/gmock/test/gmock-generated-function-mockers_test.cc

Issue 521012: Update gmock and gtest. (Closed)
Patch Set: update readme Created 10 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2007, Google Inc. 1 // Copyright 2007, Google Inc.
2 // All rights reserved. 2 // All rights reserved.
3 // 3 //
4 // Redistribution and use in source and binary forms, with or without 4 // Redistribution and use in source and binary forms, with or without
5 // modification, are permitted provided that the following conditions are 5 // modification, are permitted provided that the following conditions are
6 // met: 6 // met:
7 // 7 //
8 // * Redistributions of source code must retain the above copyright 8 // * Redistributions of source code must retain the above copyright
9 // notice, this list of conditions and the following disclaimer. 9 // notice, this list of conditions and the following disclaimer.
10 // * Redistributions in binary form must reproduce the above 10 // * Redistributions in binary form must reproduce the above
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
107 STDMETHOD_(int, CTNullary)() = 0; 107 STDMETHOD_(int, CTNullary)() = 0;
108 STDMETHOD_(bool, CTUnary)(int x) = 0; 108 STDMETHOD_(bool, CTUnary)(int x) = 0;
109 STDMETHOD_(int, CTDecimal)(bool b, char c, short d, int e, long f, // NOLINT 109 STDMETHOD_(int, CTDecimal)(bool b, char c, short d, int e, long f, // NOLINT
110 float g, double h, unsigned i, char* j, const string& k) = 0; 110 float g, double h, unsigned i, char* j, const string& k) = 0;
111 STDMETHOD_(char, CTConst)(int x) const = 0; 111 STDMETHOD_(char, CTConst)(int x) const = 0;
112 #endif // GTEST_OS_WINDOWS 112 #endif // GTEST_OS_WINDOWS
113 }; 113 };
114 114
115 class MockFoo : public FooInterface { 115 class MockFoo : public FooInterface {
116 public: 116 public:
117 MockFoo() {}
118
117 // Makes sure that a mock function parameter can be named. 119 // Makes sure that a mock function parameter can be named.
118 MOCK_METHOD1(VoidReturning, void(int n)); // NOLINT 120 MOCK_METHOD1(VoidReturning, void(int n)); // NOLINT
119 121
120 MOCK_METHOD0(Nullary, int()); // NOLINT 122 MOCK_METHOD0(Nullary, int()); // NOLINT
121 123
122 // Makes sure that a mock function parameter can be unnamed. 124 // Makes sure that a mock function parameter can be unnamed.
123 MOCK_METHOD1(Unary, bool(int)); // NOLINT 125 MOCK_METHOD1(Unary, bool(int)); // NOLINT
124 MOCK_METHOD2(Binary, long(short, int)); // NOLINT 126 MOCK_METHOD2(Binary, long(short, int)); // NOLINT
125 MOCK_METHOD10(Decimal, int(bool, char, short, int, long, float, // NOLINT 127 MOCK_METHOD10(Decimal, int(bool, char, short, int, long, float, // NOLINT
126 double, unsigned, char*, const string& str)); 128 double, unsigned, char*, const string& str));
(...skipping 15 matching lines...) Expand all
142 MOCK_METHOD1(TypeWithHole, int(int (*)())); // NOLINT 144 MOCK_METHOD1(TypeWithHole, int(int (*)())); // NOLINT
143 MOCK_METHOD1(TypeWithComma, int(const std::map<int, string>&)); // NOLINT 145 MOCK_METHOD1(TypeWithComma, int(const std::map<int, string>&)); // NOLINT
144 #if GTEST_OS_WINDOWS 146 #if GTEST_OS_WINDOWS
145 MOCK_METHOD0_WITH_CALLTYPE(STDMETHODCALLTYPE, CTNullary, int()); 147 MOCK_METHOD0_WITH_CALLTYPE(STDMETHODCALLTYPE, CTNullary, int());
146 MOCK_METHOD1_WITH_CALLTYPE(STDMETHODCALLTYPE, CTUnary, bool(int)); 148 MOCK_METHOD1_WITH_CALLTYPE(STDMETHODCALLTYPE, CTUnary, bool(int));
147 MOCK_METHOD10_WITH_CALLTYPE(STDMETHODCALLTYPE, CTDecimal, int(bool b, char c, 149 MOCK_METHOD10_WITH_CALLTYPE(STDMETHODCALLTYPE, CTDecimal, int(bool b, char c,
148 short d, int e, long f, float g, double h, unsigned i, char* j, 150 short d, int e, long f, float g, double h, unsigned i, char* j,
149 const string& k)); 151 const string& k));
150 MOCK_CONST_METHOD1_WITH_CALLTYPE(STDMETHODCALLTYPE, CTConst, char(int)); 152 MOCK_CONST_METHOD1_WITH_CALLTYPE(STDMETHODCALLTYPE, CTConst, char(int));
151 #endif // GTEST_OS_WINDOWS 153 #endif // GTEST_OS_WINDOWS
154
155 private:
156 GTEST_DISALLOW_COPY_AND_ASSIGN_(MockFoo);
152 }; 157 };
153 158
154 class FunctionMockerTest : public testing::Test { 159 class FunctionMockerTest : public testing::Test {
155 protected: 160 protected:
156 FunctionMockerTest() : foo_(&mock_foo_) {} 161 FunctionMockerTest() : foo_(&mock_foo_) {}
157 162
158 FooInterface* const foo_; 163 FooInterface* const foo_;
159 MockFoo mock_foo_; 164 MockFoo mock_foo_;
160 }; 165 };
161 166
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after
298 EXPECT_CALL(Const(mock_foo_), CTConst(_)) 303 EXPECT_CALL(Const(mock_foo_), CTConst(_))
299 .WillOnce(Return('a')); 304 .WillOnce(Return('a'));
300 305
301 EXPECT_EQ('a', Const(*foo_).CTConst(0)); 306 EXPECT_EQ('a', Const(*foo_).CTConst(0));
302 } 307 }
303 308
304 #endif // GTEST_OS_WINDOWS 309 #endif // GTEST_OS_WINDOWS
305 310
306 class MockB { 311 class MockB {
307 public: 312 public:
313 MockB() {}
314
308 MOCK_METHOD0(DoB, void()); 315 MOCK_METHOD0(DoB, void());
316
317 private:
318 GTEST_DISALLOW_COPY_AND_ASSIGN_(MockB);
309 }; 319 };
310 320
311 // Tests that functions with no EXPECT_CALL() ruls can be called any 321 // Tests that functions with no EXPECT_CALL() ruls can be called any
312 // number of times. 322 // number of times.
313 TEST(ExpectCallTest, UnmentionedFunctionCanBeCalledAnyNumberOfTimes) { 323 TEST(ExpectCallTest, UnmentionedFunctionCanBeCalledAnyNumberOfTimes) {
314 { 324 {
315 MockB b; 325 MockB b;
316 } 326 }
317 327
318 { 328 {
(...skipping 19 matching lines...) Expand all
338 virtual void Push(const T& value) = 0; 348 virtual void Push(const T& value) = 0;
339 virtual void Pop() = 0; 349 virtual void Pop() = 0;
340 virtual int GetSize() const = 0; 350 virtual int GetSize() const = 0;
341 // Template parameter appears in function return type. 351 // Template parameter appears in function return type.
342 virtual const T& GetTop() const = 0; 352 virtual const T& GetTop() const = 0;
343 }; 353 };
344 354
345 template <typename T> 355 template <typename T>
346 class MockStack : public StackInterface<T> { 356 class MockStack : public StackInterface<T> {
347 public: 357 public:
358 MockStack() {}
359
348 MOCK_METHOD1_T(Push, void(const T& elem)); 360 MOCK_METHOD1_T(Push, void(const T& elem));
349 MOCK_METHOD0_T(Pop, void()); 361 MOCK_METHOD0_T(Pop, void());
350 MOCK_CONST_METHOD0_T(GetSize, int()); // NOLINT 362 MOCK_CONST_METHOD0_T(GetSize, int()); // NOLINT
351 MOCK_CONST_METHOD0_T(GetTop, const T&()); 363 MOCK_CONST_METHOD0_T(GetTop, const T&());
364
365 private:
366 GTEST_DISALLOW_COPY_AND_ASSIGN_(MockStack);
352 }; 367 };
353 368
354 // Tests that template mock works. 369 // Tests that template mock works.
355 TEST(TemplateMockTest, Works) { 370 TEST(TemplateMockTest, Works) {
356 MockStack<int> mock; 371 MockStack<int> mock;
357 372
358 EXPECT_CALL(mock, GetSize()) 373 EXPECT_CALL(mock, GetSize())
359 .WillOnce(Return(0)) 374 .WillOnce(Return(0))
360 .WillOnce(Return(1)) 375 .WillOnce(Return(1))
361 .WillOnce(Return(0)); 376 .WillOnce(Return(0));
(...skipping 24 matching lines...) Expand all
386 STDMETHOD_(void, Push)(const T& value) = 0; 401 STDMETHOD_(void, Push)(const T& value) = 0;
387 STDMETHOD_(void, Pop)() = 0; 402 STDMETHOD_(void, Pop)() = 0;
388 STDMETHOD_(int, GetSize)() const = 0; 403 STDMETHOD_(int, GetSize)() const = 0;
389 // Template parameter appears in function return type. 404 // Template parameter appears in function return type.
390 STDMETHOD_(const T&, GetTop)() const = 0; 405 STDMETHOD_(const T&, GetTop)() const = 0;
391 }; 406 };
392 407
393 template <typename T> 408 template <typename T>
394 class MockStackWithCallType : public StackInterfaceWithCallType<T> { 409 class MockStackWithCallType : public StackInterfaceWithCallType<T> {
395 public: 410 public:
411 MockStackWithCallType() {}
412
396 MOCK_METHOD1_T_WITH_CALLTYPE(STDMETHODCALLTYPE, Push, void(const T& elem)); 413 MOCK_METHOD1_T_WITH_CALLTYPE(STDMETHODCALLTYPE, Push, void(const T& elem));
397 MOCK_METHOD0_T_WITH_CALLTYPE(STDMETHODCALLTYPE, Pop, void()); 414 MOCK_METHOD0_T_WITH_CALLTYPE(STDMETHODCALLTYPE, Pop, void());
398 MOCK_CONST_METHOD0_T_WITH_CALLTYPE(STDMETHODCALLTYPE, GetSize, int()); 415 MOCK_CONST_METHOD0_T_WITH_CALLTYPE(STDMETHODCALLTYPE, GetSize, int());
399 MOCK_CONST_METHOD0_T_WITH_CALLTYPE(STDMETHODCALLTYPE, GetTop, const T&()); 416 MOCK_CONST_METHOD0_T_WITH_CALLTYPE(STDMETHODCALLTYPE, GetTop, const T&());
417
418 private:
419 GTEST_DISALLOW_COPY_AND_ASSIGN_(MockStackWithCallType);
400 }; 420 };
401 421
402 // Tests that template mock with calltype works. 422 // Tests that template mock with calltype works.
403 TEST(TemplateMockTestWithCallType, Works) { 423 TEST(TemplateMockTestWithCallType, Works) {
404 MockStackWithCallType<int> mock; 424 MockStackWithCallType<int> mock;
405 425
406 EXPECT_CALL(mock, GetSize()) 426 EXPECT_CALL(mock, GetSize())
407 .WillOnce(Return(0)) 427 .WillOnce(Return(0))
408 .WillOnce(Return(1)) 428 .WillOnce(Return(1))
409 .WillOnce(Return(0)); 429 .WillOnce(Return(0));
(...skipping 13 matching lines...) Expand all
423 } 443 }
424 #endif // GTEST_OS_WINDOWS 444 #endif // GTEST_OS_WINDOWS
425 445
426 #define MY_MOCK_METHODS1_ \ 446 #define MY_MOCK_METHODS1_ \
427 MOCK_METHOD0(Overloaded, void()); \ 447 MOCK_METHOD0(Overloaded, void()); \
428 MOCK_CONST_METHOD1(Overloaded, int(int n)); \ 448 MOCK_CONST_METHOD1(Overloaded, int(int n)); \
429 MOCK_METHOD2(Overloaded, bool(bool f, int n)) 449 MOCK_METHOD2(Overloaded, bool(bool f, int n))
430 450
431 class MockOverloadedOnArgNumber { 451 class MockOverloadedOnArgNumber {
432 public: 452 public:
453 MockOverloadedOnArgNumber() {}
454
433 MY_MOCK_METHODS1_; 455 MY_MOCK_METHODS1_;
456
457 private:
458 GTEST_DISALLOW_COPY_AND_ASSIGN_(MockOverloadedOnArgNumber);
434 }; 459 };
435 460
436 TEST(OverloadedMockMethodTest, CanOverloadOnArgNumberInMacroBody) { 461 TEST(OverloadedMockMethodTest, CanOverloadOnArgNumberInMacroBody) {
437 MockOverloadedOnArgNumber mock; 462 MockOverloadedOnArgNumber mock;
438 EXPECT_CALL(mock, Overloaded()); 463 EXPECT_CALL(mock, Overloaded());
439 EXPECT_CALL(mock, Overloaded(1)).WillOnce(Return(2)); 464 EXPECT_CALL(mock, Overloaded(1)).WillOnce(Return(2));
440 EXPECT_CALL(mock, Overloaded(true, 1)).WillOnce(Return(true)); 465 EXPECT_CALL(mock, Overloaded(true, 1)).WillOnce(Return(true));
441 466
442 mock.Overloaded(); 467 mock.Overloaded();
443 EXPECT_EQ(2, mock.Overloaded(1)); 468 EXPECT_EQ(2, mock.Overloaded(1));
444 EXPECT_TRUE(mock.Overloaded(true, 1)); 469 EXPECT_TRUE(mock.Overloaded(true, 1));
445 } 470 }
446 471
447 #define MY_MOCK_METHODS2_ \ 472 #define MY_MOCK_METHODS2_ \
448 MOCK_CONST_METHOD1(Overloaded, int(int n)); \ 473 MOCK_CONST_METHOD1(Overloaded, int(int n)); \
449 MOCK_METHOD1(Overloaded, int(int n)); 474 MOCK_METHOD1(Overloaded, int(int n));
450 475
451 class MockOverloadedOnConstness { 476 class MockOverloadedOnConstness {
452 public: 477 public:
478 MockOverloadedOnConstness() {}
479
453 MY_MOCK_METHODS2_; 480 MY_MOCK_METHODS2_;
481
482 private:
483 GTEST_DISALLOW_COPY_AND_ASSIGN_(MockOverloadedOnConstness);
454 }; 484 };
455 485
456 TEST(OverloadedMockMethodTest, CanOverloadOnConstnessInMacroBody) { 486 TEST(OverloadedMockMethodTest, CanOverloadOnConstnessInMacroBody) {
457 MockOverloadedOnConstness mock; 487 MockOverloadedOnConstness mock;
458 const MockOverloadedOnConstness* const_mock = &mock; 488 const MockOverloadedOnConstness* const_mock = &mock;
459 EXPECT_CALL(mock, Overloaded(1)).WillOnce(Return(2)); 489 EXPECT_CALL(mock, Overloaded(1)).WillOnce(Return(2));
460 EXPECT_CALL(*const_mock, Overloaded(1)).WillOnce(Return(3)); 490 EXPECT_CALL(*const_mock, Overloaded(1)).WillOnce(Return(3));
461 491
462 EXPECT_EQ(2, mock.Overloaded(1)); 492 EXPECT_EQ(2, mock.Overloaded(1));
463 EXPECT_EQ(3, const_mock->Overloaded(1)); 493 EXPECT_EQ(3, const_mock->Overloaded(1));
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
501 int a5, int a6, char a7, int a8, bool a9)> foo; 531 int a5, int a6, char a7, int a8, bool a9)> foo;
502 EXPECT_CALL(foo, Call(_, 'a', _, _, _, _, _, _, _, _)) 532 EXPECT_CALL(foo, Call(_, 'a', _, _, _, _, _, _, _, _))
503 .WillOnce(Return(1)) 533 .WillOnce(Return(1))
504 .WillOnce(Return(2)); 534 .WillOnce(Return(2));
505 EXPECT_EQ(1, foo.Call(false, 'a', 0, 0, 0, 0, 0, 'b', 0, true)); 535 EXPECT_EQ(1, foo.Call(false, 'a', 0, 0, 0, 0, 0, 'b', 0, true));
506 EXPECT_EQ(2, foo.Call(true, 'a', 0, 0, 0, 0, 0, 'b', 1, false)); 536 EXPECT_EQ(2, foo.Call(true, 'a', 0, 0, 0, 0, 0, 'b', 1, false));
507 } 537 }
508 538
509 } // namespace gmock_generated_function_mockers_test 539 } // namespace gmock_generated_function_mockers_test
510 } // namespace testing 540 } // namespace testing
OLDNEW
« no previous file with comments | « testing/gmock/test/gmock-generated-actions_test.cc ('k') | testing/gmock/test/gmock-generated-matchers_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698