Adds the ReturnArg<k>() action (by Tim Hockin); refactors gmock-matchers.h (by Zhanyong Wan).
diff --git a/test/gmock-generated-actions_test.cc b/test/gmock-generated-actions_test.cc
index cf3c789..885097c 100644
--- a/test/gmock-generated-actions_test.cc
+++ b/test/gmock-generated-actions_test.cc
@@ -59,6 +59,7 @@
using testing::Invoke;
using testing::InvokeArgument;
using testing::Return;
+using testing::ReturnArg;
using testing::ReturnNew;
using testing::SaveArg;
using testing::SetArgReferee;
@@ -1382,6 +1383,21 @@
EXPECT_EQ(55, a.Perform(empty));
}
+TEST(ReturnArgActionTest, WorksForOneArgIntArg0) {
+ const Action<int(int)> a = ReturnArg<0>();
+ EXPECT_EQ(5, a.Perform(make_tuple(5)));
+}
+
+TEST(ReturnArgActionTest, WorksForMultiArgBoolArg0) {
+ const Action<bool(bool, bool, bool)> a = ReturnArg<0>();
+ EXPECT_TRUE(a.Perform(make_tuple(true, false, false)));
+}
+
+TEST(ReturnArgActionTest, WorksForMultiArgStringArg2) {
+ const Action<string(int, int, string, int)> a = ReturnArg<2>();
+ EXPECT_EQ("seven", a.Perform(make_tuple(5, 6, string("seven"), 8)));
+}
+
TEST(SaveArgActionTest, WorksForSameType) {
int result = 0;
const Action<void(int n)> a1 = SaveArg<0>(&result);