diff options
Diffstat (limited to 'googlemock/test')
| -rw-r--r-- | googlemock/test/gmock-matchers_test.cc | 39 | ||||
| -rw-r--r-- | googlemock/test/gmock-spec-builders_test.cc | 70 | 
2 files changed, 108 insertions, 1 deletions
diff --git a/googlemock/test/gmock-matchers_test.cc b/googlemock/test/gmock-matchers_test.cc index 8b115cd8..f906b4c6 100644 --- a/googlemock/test/gmock-matchers_test.cc +++ b/googlemock/test/gmock-matchers_test.cc @@ -3093,6 +3093,44 @@ TEST(AllArgsTest, WorksInWithClause) {    EXPECT_EQ(2, helper.Helper('a', 1));  } +class OptionalMatchersHelper { + public: +  OptionalMatchersHelper() {} + +  MOCK_METHOD0(NoArgs, int()); + +  MOCK_METHOD1(OneArg, int(int y)); + +  MOCK_METHOD2(TwoArgs, int(char x, int y)); + +  MOCK_METHOD1(Overloaded, int(char x)); +  MOCK_METHOD2(Overloaded, int(char x, int y)); + + private: +  GTEST_DISALLOW_COPY_AND_ASSIGN_(OptionalMatchersHelper); +}; + +TEST(AllArgsTest, WorksWithoutMatchers) { +  OptionalMatchersHelper helper; + +  ON_CALL(helper, NoArgs).WillByDefault(Return(10)); +  ON_CALL(helper, OneArg).WillByDefault(Return(20)); +  ON_CALL(helper, TwoArgs).WillByDefault(Return(30)); + +  EXPECT_EQ(10, helper.NoArgs()); +  EXPECT_EQ(20, helper.OneArg(1)); +  EXPECT_EQ(30, helper.TwoArgs('\1', 2)); + +  EXPECT_CALL(helper, NoArgs).Times(1); +  EXPECT_CALL(helper, OneArg).WillOnce(Return(100)); +  EXPECT_CALL(helper, OneArg(17)).WillOnce(Return(200)); +  EXPECT_CALL(helper, TwoArgs).Times(0); + +  EXPECT_EQ(10, helper.NoArgs()); +  EXPECT_EQ(100, helper.OneArg(1)); +  EXPECT_EQ(200, helper.OneArg(17)); +} +  // Tests that ASSERT_THAT() and EXPECT_THAT() work when the value  // matches the matcher.  TEST(MatcherAssertionTest, WorksWhenMatcherIsSatisfied) { @@ -6726,4 +6764,3 @@ TEST(NotTest, WorksOnMoveOnlyType) {  #if defined_MSC_VER  # pragma warning(pop)  #endif - diff --git a/googlemock/test/gmock-spec-builders_test.cc b/googlemock/test/gmock-spec-builders_test.cc index f1d571be..715aac8c 100644 --- a/googlemock/test/gmock-spec-builders_test.cc +++ b/googlemock/test/gmock-spec-builders_test.cc @@ -89,6 +89,7 @@ using testing::Mock;  using testing::NaggyMock;  using testing::Ne;  using testing::Return; +using testing::SaveArg;  using testing::Sequence;  using testing::SetArgPointee;  using testing::internal::ExpectationTester; @@ -2681,6 +2682,75 @@ TEST(SynchronizationTest, CanCallMockMethodInAction) {    // EXPECT_CALL() did not specify an action.  } +TEST(ParameterlessExpectationsTest, CanSetExpectationsWithoutMatchers) { +  MockA a; +  int do_a_arg0 = 0; +  ON_CALL(a, DoA).WillByDefault(SaveArg<0>(&do_a_arg0)); +  int do_a_47_arg0 = 0; +  ON_CALL(a, DoA(47)).WillByDefault(SaveArg<0>(&do_a_47_arg0)); + +  a.DoA(17); +  EXPECT_THAT(do_a_arg0, 17); +  EXPECT_THAT(do_a_47_arg0, 0); +  a.DoA(47); +  EXPECT_THAT(do_a_arg0, 17); +  EXPECT_THAT(do_a_47_arg0, 47); + +  ON_CALL(a, Binary).WillByDefault(Return(true)); +  ON_CALL(a, Binary(_, 14)).WillByDefault(Return(false)); +  EXPECT_THAT(a.Binary(14, 17), true); +  EXPECT_THAT(a.Binary(17, 14), false); +} + +TEST(ParameterlessExpectationsTest, CanSetExpectationsForOverloadedMethods) { +  MockB b; +  ON_CALL(b, DoB()).WillByDefault(Return(9)); +  ON_CALL(b, DoB(5)).WillByDefault(Return(11)); + +  EXPECT_THAT(b.DoB(), 9); +  EXPECT_THAT(b.DoB(1), 0);  // default value +  EXPECT_THAT(b.DoB(5), 11); +} + +struct MockWithConstMethods { + public: +  MOCK_CONST_METHOD1(Foo, int(int)); +  MOCK_CONST_METHOD2(Bar, int(int, const char*)); +}; + +TEST(ParameterlessExpectationsTest, CanSetExpectationsForConstMethods) { +  MockWithConstMethods mock; +  ON_CALL(mock, Foo).WillByDefault(Return(7)); +  ON_CALL(mock, Bar).WillByDefault(Return(33)); + +  EXPECT_THAT(mock.Foo(17), 7); +  EXPECT_THAT(mock.Bar(27, "purple"), 33); +} + +class MockConstOverload { + public: +  MOCK_METHOD1(Overloaded, int(int)); +  MOCK_CONST_METHOD1(Overloaded, int(int)); +}; + +TEST(ParameterlessExpectationsTest, +     CanSetExpectationsForConstOverloadedMethods) { +  MockConstOverload mock; +  ON_CALL(mock, Overloaded(_)).WillByDefault(Return(7)); +  ON_CALL(mock, Overloaded(5)).WillByDefault(Return(9)); +  ON_CALL(Const(mock), Overloaded(5)).WillByDefault(Return(11)); +  ON_CALL(Const(mock), Overloaded(7)).WillByDefault(Return(13)); + +  EXPECT_THAT(mock.Overloaded(1), 7); +  EXPECT_THAT(mock.Overloaded(5), 9); +  EXPECT_THAT(mock.Overloaded(7), 7); + +  const MockConstOverload& const_mock = mock; +  EXPECT_THAT(const_mock.Overloaded(1), 0); +  EXPECT_THAT(const_mock.Overloaded(5), 11); +  EXPECT_THAT(const_mock.Overloaded(7), 13); +} +  }  // namespace  // Allows the user to define their own main and then invoke gmock_main  | 
