114 #ifndef GOOGLEMOCK_TEST_GMOCK_LINK_TEST_H_
115 #define GOOGLEMOCK_TEST_GMOCK_LINK_TEST_H_
119 #ifndef GTEST_OS_WINDOWS_MOBILE
132 using testing::AllOf;
133 using testing::AnyOf;
135 using testing::ContainerEq;
138 using testing::DoubleEq;
139 using testing::ElementsAre;
140 using testing::ElementsAreArray;
143 using testing::Field;
144 using testing::FloatEq;
147 using testing::HasSubstr;
153 using testing::IsSubsetOf;
154 using testing::IsSupersetOf;
158 using testing::MatcherCast;
159 using testing::NanSensitiveDoubleEq;
160 using testing::NanSensitiveFloatEq;
163 using testing::NotNull;
164 using testing::Pointee;
165 using testing::Property;
167 using testing::ResultOf;
174 using testing::StrCaseEq;
175 using testing::StrCaseNe;
176 using testing::StrEq;
177 using testing::StrNe;
178 using testing::Truly;
179 using testing::TypedEq;
184 #ifndef GTEST_OS_WINDOWS_MOBILE
188 #if GTEST_HAS_EXCEPTIONS
189 using testing::Rethrow;
190 using testing::Throw;
193 using testing::ContainsRegex;
194 using testing::MatchesRegex;
295 EXPECT_CALL(mock, VoidFromString(
_)).WillOnce(SetArgPointee<0>(
'y'));
306 .WillOnce(SetArrayArgument<0>(&ch2, &ch2 + 1));
310 #ifndef GTEST_OS_WINDOWS_MOBILE
316 int saved_errno = errno;
322 #endif // !GTEST_OS_WINDOWS_MOBILE
354 EXPECT_CALL(mock, VoidFromFunc(
_)).WillOnce(InvokeArgument<0>(&ch));
412 #if GTEST_HAS_EXCEPTIONS
417 EXPECT_CALL(mock, VoidFromString(
_)).WillOnce(Throw(42));
425 .WillOnce(Rethrow(std::make_exception_ptr(42)));
428 #endif // GTEST_HAS_EXCEPTIONS
439 ACTION(Return1) {
return 1; }
445 EXPECT_CALL(mock, IntFromString(
_)).WillOnce(Return1());
451 ACTION_P(ReturnArgument, ret_value) {
return ret_value; }
457 EXPECT_CALL(mock, IntFromString(
_)).WillOnce(ReturnArgument(42));
463 ACTION_P2(ReturnEqualsEitherOf, first, second) {
464 return arg0 == first || arg0 == second;
475 .WillOnce(ReturnEqualsEitherOf(
"one",
"two"));
480 TEST(LinkTest, TestMatcherAnything) {
494 TEST(LinkTest, TestMatchersEq) {
498 ON_CALL(mock, VoidFromString(Eq(p))).WillByDefault(
Return());
499 ON_CALL(mock, VoidFromString(const_cast<char*>(
"y"))).WillByDefault(
Return());
503 TEST(LinkTest, TestMatchersRelations) {
514 TEST(LinkTest, TestMatcherNotNull) {
517 ON_CALL(mock, VoidFromString(NotNull())).WillByDefault(
Return());
521 TEST(LinkTest, TestMatcherIsNull) {
528 TEST(LinkTest, TestMatcherRef) {
532 ON_CALL(mock, VoidFromIntRef(Ref(a))).WillByDefault(
Return());
536 TEST(LinkTest, TestMatcherTypedEq) {
540 ON_CALL(mock, VoidFromIntRef(TypedEq<int&>(a))).WillByDefault(
Return());
545 TEST(LinkTest, TestMatchersFloatingPoint) {
549 ON_CALL(mock, VoidFromFloat(FloatEq(a))).WillByDefault(
Return());
550 ON_CALL(mock, VoidFromDouble(DoubleEq(a))).WillByDefault(
Return());
551 ON_CALL(mock, VoidFromFloat(NanSensitiveFloatEq(a))).WillByDefault(
Return());
552 ON_CALL(mock, VoidFromDouble(NanSensitiveDoubleEq(a)))
557 TEST(LinkTest, TestMatcherContainsRegex) {
560 ON_CALL(mock, VoidFromString(ContainsRegex(
".*"))).WillByDefault(
Return());
564 TEST(LinkTest, TestMatcherMatchesRegex) {
567 ON_CALL(mock, VoidFromString(MatchesRegex(
".*"))).WillByDefault(
Return());
571 TEST(LinkTest, TestMatchersSubstrings) {
576 ON_CALL(mock, VoidFromString(HasSubstr(
"b"))).WillByDefault(
Return());
580 TEST(LinkTest, TestMatchersStringEquality) {
582 ON_CALL(mock, VoidFromString(StrEq(
"a"))).WillByDefault(
Return());
583 ON_CALL(mock, VoidFromString(StrNe(
"a"))).WillByDefault(
Return());
584 ON_CALL(mock, VoidFromString(StrCaseEq(
"a"))).WillByDefault(
Return());
585 ON_CALL(mock, VoidFromString(StrCaseNe(
"a"))).WillByDefault(
Return());
589 TEST(LinkTest, TestMatcherElementsAre) {
592 ON_CALL(mock, VoidFromVector(ElementsAre(
'a',
_))).WillByDefault(
Return());
596 TEST(LinkTest, TestMatcherElementsAreArray) {
598 char arr[] = {
'a',
'b'};
600 ON_CALL(mock, VoidFromVector(ElementsAreArray(arr))).WillByDefault(
Return());
604 TEST(LinkTest, TestMatcherIsSubsetOf) {
606 char arr[] = {
'a',
'b'};
608 ON_CALL(mock, VoidFromVector(IsSubsetOf(arr))).WillByDefault(
Return());
612 TEST(LinkTest, TestMatcherIsSupersetOf) {
614 char arr[] = {
'a',
'b'};
616 ON_CALL(mock, VoidFromVector(IsSupersetOf(arr))).WillByDefault(
Return());
620 TEST(LinkTest, TestMatcherContainerEq) {
624 ON_CALL(mock, VoidFromVector(ContainerEq(v))).WillByDefault(
Return());
628 TEST(LinkTest, TestMatcherField) {
639 TEST(LinkTest, TestMatcherProperty) {
650 TEST(LinkTest, TestMatcherResultOf) {
656 TEST(LinkTest, TestMatcherPointee) {
664 TEST(LinkTest, TestMatcherTruly) {
670 TEST(LinkTest, TestMatcherAllOf) {
676 TEST(LinkTest, TestMatcherAnyOf) {
682 TEST(LinkTest, TestMatcherNot) {
688 TEST(LinkTest, TestMatcherCast) {
693 #endif // GOOGLEMOCK_TEST_GMOCK_LINK_TEST_H_
void VoidFromString(char *)
constexpr bool StartsWith(const char(&prefix)[N], const char(&str)[M])
PolymorphicAction< internal::ReturnNullAction > ReturnNull()
GTEST_DISABLE_MSC_WARNINGS_POP_() TEST(LinkTest
virtual void VoidFromVector(const std::vector< int > &v)=0
#define EXPECT_THROW(statement, expected_exception)
virtual int IntFromString(char *str)=0
#define ACTION_P(name,...)
constexpr bool EndsWith(const char(&suffix)[N], const char(&str)[M])
virtual void VoidFromFloat(float n)=0
static void StaticVoidFromVoid()
PolymorphicAction< internal::AssignAction< T1, T2 > > Assign(T1 *ptr, T2 val)
static bool StaticBoolFromString(const char *)
virtual int & IntRefFromString(char *str)=0
internal::DoAllAction< typename std::decay< Action >::type...> DoAll(Action &&...action)
#define TEST(test_suite_name, test_name)
#define ON_CALL(obj, call)
internal::InvokeWithoutArgsAction< typename std::decay< FunctionImpl >::type > InvokeWithoutArgs(FunctionImpl function_impl)
static void StaticVoidFromString(char *)
MOCK_METHOD1(VoidFromString, void(char *str))
internal::WithArgsAction< typename std::decay< InnerAction >::type, k, ks...> WithArgs(InnerAction &&action)
PolymorphicAction< internal::SetErrnoAndReturnAction< T > > SetErrnoAndReturn(int errval, T result)
internal::ReturnRefAction< R > ReturnRef(R &x)
std::decay< FunctionImpl >::type Invoke(FunctionImpl &&function_impl)
virtual void VoidFromDouble(double n)=0
#define GTEST_DISABLE_MSC_WARNINGS_PUSH_(warnings)
internal::WithArgsAction< typename std::decay< InnerAction >::type > WithoutArgs(InnerAction &&action)
#define ACTION_P2(name,...)
internal::SetArgumentPointeeAction< N, T > SetArgPointee(T value)
virtual void VoidFromString(char *str)=0
static int StaticIntFromString(char *)
internal::DoDefaultAction DoDefault()
internal::ReturnAction< R > Return(R value)
#define EXPECT_CALL(obj, call)
virtual char * StringFromString(char *str)=0
internal::SetArrayArgumentAction< k, I1, I2 > SetArrayArgument(I1 first, I2 last)
internal::WithArgsAction< typename std::decay< InnerAction >::type, k > WithArg(InnerAction &&action)
Mock & operator=(const Mock &)=delete
const T func(int n, T *x)
virtual ~Interface()=default
#define EXPECT_TRUE(condition)
virtual void VoidFromIntRef(int &n)=0
internal::IgnoreResultAction< A > IgnoreResult(const A &an_action)
virtual void VoidFromFunc(void(*func)(char *str))=0
#define EXPECT_FALSE(condition)
AssertionResult IsNull(const char *str)
internal::InvokeArgumentAction< index, typename std::decay< Params >::type...> InvokeArgument(Params &&...params)