diff options
author | Adam Badura <adam.f.badura@gmail.com> | 2019-07-11 08:20:21 (GMT) |
---|---|---|
committer | Adam Badura <adam.f.badura@gmail.com> | 2020-03-18 00:11:30 (GMT) |
commit | 53740ebc21d54f537f42fc565b0501e690c90dc4 (patch) | |
tree | 6cdd9534fd94cbb113b083ba8bcd742c46fec75c /googlemock/test/gmock-function-mocker_test.cc | |
parent | e41f31f2af3a713e8652d1e091a13bed22781ec3 (diff) | |
download | googletest-53740ebc21d54f537f42fc565b0501e690c90dc4.zip googletest-53740ebc21d54f537f42fc565b0501e690c90dc4.tar.gz googletest-53740ebc21d54f537f42fc565b0501e690c90dc4.tar.bz2 |
Add support for std::function in MockFunction (#2277)refs/pull/2350/head
Diffstat (limited to 'googlemock/test/gmock-function-mocker_test.cc')
-rw-r--r-- | googlemock/test/gmock-function-mocker_test.cc | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/googlemock/test/gmock-function-mocker_test.cc b/googlemock/test/gmock-function-mocker_test.cc index 164c6b4..920b097 100644 --- a/googlemock/test/gmock-function-mocker_test.cc +++ b/googlemock/test/gmock-function-mocker_test.cc @@ -40,6 +40,7 @@ # include <objbase.h> #endif // GTEST_OS_WINDOWS +#include <functional> #include <map> #include <string> #include <type_traits> @@ -802,12 +803,30 @@ using MockMethodMockFunctionSignatureTypes = Types< >; TYPED_TEST_SUITE(MockMethodMockFunctionSignatureTest, MockMethodMockFunctionSignatureTypes); -TYPED_TEST(MockMethodMockFunctionSignatureTest, IsMockFunctionTemplateArgumentDeduced) { +TYPED_TEST(MockMethodMockFunctionSignatureTest, IsMockFunctionTemplateArgumentDeducedForRawSignature) { using Argument = TypeParam; MockFunction<Argument> foo; EXPECT_TRUE(IsMockFunctionTemplateArgumentDeducedTo<Argument>(foo)); } +TYPED_TEST(MockMethodMockFunctionSignatureTest, IsMockFunctionTemplateArgumentDeducedForStdFunction) { + using Argument = std::function<TypeParam>; + MockFunction<Argument> foo; + EXPECT_TRUE(IsMockFunctionTemplateArgumentDeducedTo<Argument>(foo)); +} + +TYPED_TEST(MockMethodMockFunctionSignatureTest, IsMockFunctionCallMethodSignatureTheSameForRawSignatureAndStdFunction) { + using ForRawSignature = decltype(&MockFunction<TypeParam>::Call); + using ForStdFunction = decltype(&MockFunction<std::function<TypeParam>>::Call); + EXPECT_TRUE((std::is_same<ForRawSignature, ForStdFunction>::value)); +} + +TYPED_TEST(MockMethodMockFunctionSignatureTest, IsMockFunctionAsStdFunctionMethodSignatureTheSameForRawSignatureAndStdFunction) { + using ForRawSignature = decltype(&MockFunction<TypeParam>::AsStdFunction); + using ForStdFunction = decltype(&MockFunction<std::function<TypeParam>>::AsStdFunction); + EXPECT_TRUE((std::is_same<ForRawSignature, ForStdFunction>::value)); +} + struct MockMethodSizes0 { MOCK_METHOD(void, func, ()); |