115#ifndef GMOCK_TEST_GMOCK_LINK_TEST_H_
116#define GMOCK_TEST_GMOCK_LINK_TEST_H_
120#if !GTEST_OS_WINDOWS_MOBILE
136using testing::ContainerEq;
139using testing::DoubleEq;
140using testing::ElementsAre;
141using testing::ElementsAreArray;
142using testing::EndsWith;
145using testing::FloatEq;
148using testing::HasSubstr;
151using testing::InvokeArgument;
153using testing::IsNull;
154using testing::IsSubsetOf;
155using testing::IsSupersetOf;
159using testing::MatcherCast;
160using testing::NanSensitiveDoubleEq;
161using testing::NanSensitiveFloatEq;
164using testing::NotNull;
165using testing::Pointee;
166using testing::Property;
168using testing::ResultOf;
173using testing::SetArrayArgument;
174using testing::StartsWith;
175using testing::StrCaseEq;
176using testing::StrCaseNe;
180using testing::TypedEq;
185#if !GTEST_OS_WINDOWS_MOBILE
189#if GTEST_HAS_EXCEPTIONS
193using testing::ContainsRegex;
194using testing::MatchesRegex;
250 EXPECT_CALL(mock, VoidFromString(_)).WillOnce(Return());
259 EXPECT_CALL(mock, StringFromString(_)).WillOnce(Return(&
ch));
267 EXPECT_CALL(mock, VoidFromString(_)).WillOnce(Return());
276 EXPECT_CALL(mock, IntRefFromString(_)).WillOnce(ReturnRef(n));
285 EXPECT_CALL(mock, VoidFromString(_)).WillOnce(Assign(&
ch,
'y'));
294 EXPECT_CALL(mock, VoidFromString(_)).WillOnce(SetArgPointee<0>(
'y'));
304 EXPECT_CALL(mock, VoidFromString(_)).WillOnce(SetArrayArgument<0>(&ch2,
309#if !GTEST_OS_WINDOWS_MOBILE
315 int saved_errno = errno;
316 EXPECT_CALL(mock, IntFromString(_)).WillOnce(SetErrnoAndReturn(1, -1));
342 .WillOnce(InvokeWithoutArgs(&test_invoke_helper,
353 EXPECT_CALL(mock, VoidFromFunc(_)).WillOnce(InvokeArgument<0>(&
ch));
379 EXPECT_CALL(mock, VoidFromString(_)).WillOnce(WithoutArgs(Return()));
389 .WillOnce(DoAll(SetArgPointee<0>(
'y'), Return()));
398 ON_CALL(mock, VoidFromString(_)).WillByDefault(Return());
399 EXPECT_CALL(mock, VoidFromString(_)).WillOnce(DoDefault());
407 EXPECT_CALL(mock, VoidFromString(_)).WillOnce(IgnoreResult(Return(42)));
411#if GTEST_HAS_EXCEPTIONS
416 EXPECT_CALL(mock, VoidFromString(_)).WillOnce(Throw(42));
427# pragma warning(push)
428# pragma warning(disable:4100)
433ACTION(Return1) {
return 1; }
439 EXPECT_CALL(mock, IntFromString(_)).WillOnce(Return1());
445ACTION_P(ReturnArgument, ret_value) {
return ret_value; }
451 EXPECT_CALL(mock, IntFromString(_)).WillOnce(ReturnArgument(42));
457ACTION_P2(ReturnEqualsEitherOf, first, second) {
458 return arg0 == first || arg0 == second;
471 .WillOnce(ReturnEqualsEitherOf(
"one",
"two"));
479 ON_CALL(mock, VoidFromString(_)).WillByDefault(Return());
486 ON_CALL(mock, VoidFromString(A<char*>())).WillByDefault(Return());
494 ON_CALL(mock, VoidFromString(Eq(
p))).WillByDefault(Return());
495 ON_CALL(mock, VoidFromString(
const_cast<char*
>(
"y")))
496 .WillByDefault(Return());
503 ON_CALL(mock, VoidFromFloat(Lt(1.0f))).WillByDefault(Return());
504 ON_CALL(mock, VoidFromFloat(Gt(1.0f))).WillByDefault(Return());
505 ON_CALL(mock, VoidFromFloat(Le(1.0f))).WillByDefault(Return());
506 ON_CALL(mock, VoidFromFloat(Ge(1.0f))).WillByDefault(Return());
507 ON_CALL(mock, VoidFromFloat(Ne(1.0f))).WillByDefault(Return());
514 ON_CALL(mock, VoidFromString(NotNull())).WillByDefault(Return());
521 ON_CALL(mock, VoidFromString(IsNull())).WillByDefault(Return());
529 ON_CALL(mock, VoidFromIntRef(Ref(
a))).WillByDefault(Return());
537 ON_CALL(mock, VoidFromIntRef(TypedEq<int&>(
a))).WillByDefault(Return());
546 ON_CALL(mock, VoidFromFloat(FloatEq(
a))).WillByDefault(Return());
547 ON_CALL(mock, VoidFromDouble(DoubleEq(
a))).WillByDefault(Return());
548 ON_CALL(mock, VoidFromFloat(NanSensitiveFloatEq(
a))).WillByDefault(Return());
549 ON_CALL(mock, VoidFromDouble(NanSensitiveDoubleEq(
a)))
550 .WillByDefault(Return());
557 ON_CALL(mock, VoidFromString(ContainsRegex(
".*"))).WillByDefault(Return());
564 ON_CALL(mock, VoidFromString(MatchesRegex(
".*"))).WillByDefault(Return());
571 ON_CALL(mock, VoidFromString(StartsWith(
"a"))).WillByDefault(Return());
572 ON_CALL(mock, VoidFromString(EndsWith(
"c"))).WillByDefault(Return());
573 ON_CALL(mock, VoidFromString(HasSubstr(
"b"))).WillByDefault(Return());
579 ON_CALL(mock, VoidFromString(StrEq(
"a"))).WillByDefault(Return());
580 ON_CALL(mock, VoidFromString(StrNe(
"a"))).WillByDefault(Return());
581 ON_CALL(mock, VoidFromString(StrCaseEq(
"a"))).WillByDefault(Return());
582 ON_CALL(mock, VoidFromString(StrCaseNe(
"a"))).WillByDefault(Return());
589 ON_CALL(mock, VoidFromVector(ElementsAre(
'a', _))).WillByDefault(Return());
595 char arr[] = {
'a',
'b' };
597 ON_CALL(mock, VoidFromVector(ElementsAreArray(arr))).WillByDefault(Return());
603 char arr[] = {
'a',
'b'};
605 ON_CALL(mock, VoidFromVector(IsSubsetOf(arr))).WillByDefault(Return());
611 char arr[] = {
'a',
'b'};
613 ON_CALL(mock, VoidFromVector(IsSupersetOf(arr))).WillByDefault(Return());
621 ON_CALL(mock, VoidFromVector(ContainerEq(v))).WillByDefault(Return());
const T func(int n, T *x)
virtual void VoidFromString(char *str)=0
virtual void VoidFromFunc(void(*func)(char *str))=0
virtual int & IntRefFromString(char *str)=0
virtual void VoidFromIntRef(int &n)=0
virtual void VoidFromDouble(double n)=0
virtual char * StringFromString(char *str)=0
virtual int IntFromString(char *str)=0
virtual void VoidFromFloat(float n)=0
virtual void VoidFromVector(const std::vector< int > &v)=0
static int StaticIntFromString(char *)
static void StaticVoidFromString(char *)
void VoidFromString(char *)
static void StaticVoidFromVoid()
static bool StaticBoolFromString(const char *)
MOCK_METHOD1(IntRefFromString, int &(char *str))
MOCK_METHOD1(StringFromString, char *(char *str))
MOCK_METHOD1(VoidFromFloat, void(float n))
MOCK_METHOD1(VoidFromVector, void(const std::vector< int > &v))
MOCK_METHOD1(VoidFromDouble, void(double n))
GTEST_DISALLOW_COPY_AND_ASSIGN_(Mock)
MOCK_METHOD1(VoidFromFunc, void(void(*func)(char *str)))
MOCK_METHOD1(VoidFromString, void(char *str))
MOCK_METHOD1(VoidFromIntRef, void(int &n))
MOCK_METHOD1(IntFromString, int(char *str))
#define ACTION_P2(name,...)
#define ACTION_P(name,...)
#define EXPECT_CALL(obj, call)
#define ON_CALL(obj, call)
#define EXPECT_THROW(statement, expected_exception)
#define TEST(test_suite_name, test_name)
#define EXPECT_TRUE(condition)
#define EXPECT_FALSE(condition)
internal::WithArgsAction< typename std::decay< InnerAction >::type > WithoutArgs(InnerAction &&action)
internal::IgnoreResultAction< A > IgnoreResult(const A &an_action)
internal::DoAllAction< typename std::decay< Action >::type... > DoAll(Action &&... action)
PolymorphicAction< internal::ReturnVoidAction > Return()
internal::WithArgsAction< typename std::decay< InnerAction >::type, k, ks... > WithArgs(InnerAction &&action)
PolymorphicAction< internal::AssignAction< T1, T2 > > Assign(T1 *ptr, T2 val)
internal::SetArgumentPointeeAction< N, T > SetArgPointee(T value)
PolymorphicAction< internal::SetErrnoAndReturnAction< T > > SetErrnoAndReturn(int errval, T result)
internal::InvokeWithoutArgsAction< typename std::decay< FunctionImpl >::type > InvokeWithoutArgs(FunctionImpl function_impl)
internal::WithArgsAction< typename std::decay< InnerAction >::type, k > WithArg(InnerAction &&action)
internal::ReturnRefAction< R > ReturnRef(R &x)
internal::DoDefaultAction DoDefault()
PolymorphicAction< internal::ReturnNullAction > ReturnNull()
std::decay< FunctionImpl >::type Invoke(FunctionImpl &&function_impl)