aboutsummaryrefslogtreecommitdiffstats
path: root/googlemock/test/gmock-spec-builders_test.cc
diff options
context:
space:
mode:
authorGennadiy Civil <gennadiycivil@users.noreply.github.com>2018-04-19 18:44:01 -0400
committerGitHub <noreply@github.com>2018-04-19 18:44:01 -0400
commita6f06bf2fd3b832822cd4e9e554b7d47f32ec084 (patch)
treea508ec458b7fee2f711bc40a29e197b1ea3f0647 /googlemock/test/gmock-spec-builders_test.cc
parent1114a0202a3147c1ce548c9a2883ce29e80df9e3 (diff)
parent884bcdaf182da9c1739858ff13f093f7db6ed0bc (diff)
downloadgoogletest-a6f06bf2fd3b832822cd4e9e554b7d47f32ec084.tar.gz
googletest-a6f06bf2fd3b832822cd4e9e554b7d47f32ec084.tar.bz2
googletest-a6f06bf2fd3b832822cd4e9e554b7d47f32ec084.zip
Merge pull request #1582 from dnsunderland/parameterless
Introduce parameterless expectations
Diffstat (limited to 'googlemock/test/gmock-spec-builders_test.cc')
-rw-r--r--googlemock/test/gmock-spec-builders_test.cc70
1 files changed, 70 insertions, 0 deletions
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