diff options
author | zhanyong.wan <zhanyong.wan@8415998a-534a-0410-bf83-d39667b30386> | 2010-10-14 06:51:27 +0000 |
---|---|---|
committer | zhanyong.wan <zhanyong.wan@8415998a-534a-0410-bf83-d39667b30386> | 2010-10-14 06:51:27 +0000 |
commit | 2321b2a6757328bbf30b69af434c28dac3060b83 (patch) | |
tree | 0e4466573cd7a188dc37658acc7b2653f2e67db7 /test/gmock-more-actions_test.cc | |
parent | 7dfbea4976d41421b82c7988017cf1c695104236 (diff) | |
download | googletest-2321b2a6757328bbf30b69af434c28dac3060b83.tar.gz googletest-2321b2a6757328bbf30b69af434c28dac3060b83.tar.bz2 googletest-2321b2a6757328bbf30b69af434c28dac3060b83.zip |
Adds action SaveArgPointee.
Diffstat (limited to 'test/gmock-more-actions_test.cc')
-rw-r--r-- | test/gmock-more-actions_test.cc | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/test/gmock-more-actions_test.cc b/test/gmock-more-actions_test.cc index 64c4e081..43ff55d8 100644 --- a/test/gmock-more-actions_test.cc +++ b/test/gmock-more-actions_test.cc @@ -40,6 +40,7 @@ #include <string> #include "gmock/gmock.h" #include "gtest/gtest.h" +#include "gtest/internal/gtest-linked_ptr.h" namespace testing { namespace gmock_more_actions_test { @@ -59,11 +60,13 @@ using testing::Return; using testing::ReturnArg; using testing::ReturnPointee; using testing::SaveArg; +using testing::SaveArgPointee; using testing::SetArgReferee; using testing::StaticAssertTypeEq; using testing::Unused; using testing::WithArg; using testing::WithoutArgs; +using testing::internal::linked_ptr; // For suppressing compiler warnings on conversion possibly losing precision. inline short Short(short n) { return n; } // NOLINT @@ -506,6 +509,30 @@ TEST(SaveArgActionTest, WorksForCompatibleType) { EXPECT_EQ('a', result); } +TEST(SaveArgPointeeActionTest, WorksForSameType) { + int result = 0; + const int value = 5; + const Action<void(const int*)> a1 = SaveArgPointee<0>(&result); + a1.Perform(make_tuple(&value)); + EXPECT_EQ(5, result); +} + +TEST(SaveArgPointeeActionTest, WorksForCompatibleType) { + int result = 0; + char value = 'a'; + const Action<void(bool, char*)> a1 = SaveArgPointee<1>(&result); + a1.Perform(make_tuple(true, &value)); + EXPECT_EQ('a', result); +} + +TEST(SaveArgPointeeActionTest, WorksForLinkedPtr) { + int result = 0; + linked_ptr<int> value(new int(5)); + const Action<void(linked_ptr<int>)> a1 = SaveArgPointee<0>(&result); + a1.Perform(make_tuple(value)); + EXPECT_EQ(5, result); +} + TEST(SetArgRefereeActionTest, WorksForSameType) { int value = 0; const Action<void(int&)> a1 = SetArgReferee<0>(1); |