36#ifndef GMOCK_INCLUDE_GMOCK_GMOCK_ACTIONS_H_
37#define GMOCK_INCLUDE_GMOCK_GMOCK_ACTIONS_H_
49#if GTEST_HAS_STD_TYPE_TRAITS_
66template <
typename F1,
typename F2>
74template <
typename T,
bool kDefaultConstructible>
81 Assert(
false, __FILE__, __LINE__,
82 "Default action undefined for the function return type.");
99#if GTEST_HAS_STD_TYPE_TRAITS_
102 return ::std::is_default_constructible<T>::value;
107 T, ::std::is_default_constructible<T>::value>
::Get();
138 static T*
Get() {
return NULL; }
143#define GMOCK_DEFINE_DEFAULT_ACTION_FOR_RETURN_TYPE_(type, value) \
145 class BuiltInDefaultValue<type> { \
147 static bool Exists() { return true; } \
148 static type Get() { return value; } \
152#if GTEST_HAS_GLOBAL_STRING
167#if GMOCK_WCHAR_T_IS_NATIVE_
182#undef GMOCK_DEFINE_DEFAULT_ACTION_FOR_RETURN_TYPE_
375 template <
typename Func>
390 "You are using DoDefault() inside a composite action like "
391 "DoAll() or WithArgs(). This is not supported for technical "
392 "reasons. Please instead spell out the default action, or "
393 "assign the default action to an Action variable and use "
394 "the variable in various places.");
395 return impl_->Perform(args);
399 template <
typename F1,
typename F2>
426template <
typename Impl>
431 template <
typename F>
437 template <
typename F>
474template <
typename Impl>
483template <
typename F1,
typename F2>
492 return impl_->Perform(args);
543 template <
typename F>
556 use_ReturnRef_instead_of_Return_to_return_a_reference);
562 template <
typename R_,
typename F>
583 Result_cannot_be_a_reference_type);
594 template <
typename R_,
typename F>
605 <<
"A ByMove() action should only be performed once.";
628 template <
typename Result,
typename ArgumentTuple>
634 ReturnNull_can_be_used_to_return_a_pointer_only);
644 template <
typename Result,
typename ArgumentTuple>
661 template <
typename F>
668 use_Return_instead_of_ReturnRef_to_return_a_value);
674 template <
typename F>
709 template <
typename F>
717 use_Return_instead_of_ReturnRefOfCopy_to_return_a_value);
723 template <
typename F>
751 template <
typename F>
757template <
typename T1,
typename T2>
762 template <
typename Result,
typename ArgumentTuple>
774#if !GTEST_OS_WINDOWS_MOBILE
784 template <
typename Result,
typename ArgumentTuple>
803template <
size_t N,
typename A,
bool kIsProto>
810 template <
typename Result,
typename ArgumentTuple>
813 *::testing::get<N>(args) =
value_;
822template <
size_t N,
typename Proto>
833 template <
typename Result,
typename ArgumentTuple>
836 ::testing::get<N>(args)->CopyFrom(*
proto_);
850template <
typename FunctionImpl>
860 template <
typename Result,
typename ArgumentTuple>
870template <
class Class,
typename MethodPtr>
876 template <
typename Result,
typename ArgumentTuple>
894 template <
typename F>
913 template <
typename F>
971template <
typename Action1,
typename Action2>
979 template <
typename F>
986 template <
typename F>
1052template <
typename To>
1053template <
typename From>
1060template <
typename R>
1076template <
typename R>
1084template <
typename R>
1093template <
typename R>
1105template <
size_t N,
typename T>
1107 internal::SetArgumentPointeeAction<
1114#if !((GTEST_GCC_VER_ && GTEST_GCC_VER_ < 40000) || GTEST_OS_SYMBIAN)
1120 internal::SetArgumentPointeeAction<N, const char*, false> >
1123 N,
const char*,
false>(p));
1128 internal::SetArgumentPointeeAction<N, const wchar_t*, false> >
1131 N,
const wchar_t*,
false>(p));
1136template <
size_t N,
typename T>
1138 internal::SetArgumentPointeeAction<
1146template <
typename T1,
typename T2>
1151#if !GTEST_OS_WINDOWS_MOBILE
1154template <
typename T>
1155PolymorphicAction<internal::SetErrnoAndReturnAction<T> >
1166template <
typename FunctionImpl>
1167PolymorphicAction<internal::InvokeWithoutArgsAction<FunctionImpl> >
1175template <
class Class,
typename MethodPtr>
1176PolymorphicAction<internal::InvokeMethodWithoutArgsAction<Class, MethodPtr> >
1180 obj_ptr, method_ptr));
1186template <
typename A>
1198template <
typename T>
Definition gmock-actions.h:327
ActionInterface()
Definition gmock-actions.h:332
virtual Result Perform(const ArgumentTuple &args)=0
internal::Function< F >::Result Result
Definition gmock-actions.h:329
virtual ~ActionInterface()
Definition gmock-actions.h:333
GTEST_DISALLOW_COPY_AND_ASSIGN_(ActionInterface)
internal::Function< F >::ArgumentTuple ArgumentTuple
Definition gmock-actions.h:330
Definition gmock-actions.h:355
bool IsDoDefault() const
Definition gmock-actions.h:379
Action(ActionInterface< F > *impl)
Definition gmock-actions.h:366
Action(const Action &action)
Definition gmock-actions.h:369
Action(const Action< Func > &action)
internal::linked_ptr< ActionInterface< F > > impl_
Definition gmock-actions.h:402
Action()
Definition gmock-actions.h:362
internal::Function< F >::Result Result
Definition gmock-actions.h:357
Result Perform(const ArgumentTuple &args) const
Definition gmock-actions.h:387
internal::Function< F >::ArgumentTuple ArgumentTuple
Definition gmock-actions.h:358
Action(const Action< From > &from)
Definition gmock-actions.h:1054
Definition gmock-actions.h:258
GTEST_DISALLOW_COPY_AND_ASSIGN_(FactoryValueProducer)
virtual T Produce()
Definition gmock-actions.h:262
const FactoryFunction factory_
Definition gmock-actions.h:265
FactoryValueProducer(FactoryFunction factory)
Definition gmock-actions.h:260
Definition gmock-actions.h:248
const T value_
Definition gmock-actions.h:254
FixedValueProducer(T value)
Definition gmock-actions.h:250
virtual T Produce()
Definition gmock-actions.h:251
GTEST_DISALLOW_COPY_AND_ASSIGN_(FixedValueProducer)
Definition gmock-actions.h:242
virtual ~ValueProducer()
Definition gmock-actions.h:244
static T & Get()
Definition gmock-actions.h:299
static T * address_
Definition gmock-actions.h:305
static bool Exists()
Definition gmock-actions.h:292
static void Clear()
Definition gmock-actions.h:283
static bool IsSet()
Definition gmock-actions.h:288
static void Set(T &x)
Definition gmock-actions.h:278
static void Get()
Definition gmock-actions.h:314
static bool Exists()
Definition gmock-actions.h:313
Definition gmock-actions.h:200
static T Get()
Definition gmock-actions.h:236
static void Set(T x)
Definition gmock-actions.h:204
T(* FactoryFunction)()
Definition gmock-actions.h:212
static void Clear()
Definition gmock-actions.h:219
static ValueProducer * producer_
Definition gmock-actions.h:269
static bool IsSet()
Definition gmock-actions.h:225
static bool Exists()
Definition gmock-actions.h:229
static void SetFactory(FactoryFunction factory)
Definition gmock-actions.h:213
Definition gmock-actions.h:438
MonomorphicImpl(const Impl &impl)
Definition gmock-actions.h:443
internal::Function< F >::ArgumentTuple ArgumentTuple
Definition gmock-actions.h:441
Impl impl_
Definition gmock-actions.h:450
internal::Function< F >::Result Result
Definition gmock-actions.h:440
virtual Result Perform(const ArgumentTuple &args)
Definition gmock-actions.h:445
GTEST_DISALLOW_ASSIGN_(MonomorphicImpl)
Definition gmock-actions.h:427
PolymorphicAction(const Impl &impl)
Definition gmock-actions.h:429
GTEST_DISALLOW_ASSIGN_(PolymorphicAction)
Impl impl_
Definition gmock-actions.h:455
ActionInterface()
Definition gmock-actions.h:332
friend class internal::ActionAdaptor
Definition gmock-actions.h:400
internal::linked_ptr< ActionInterface< VoidResult > > impl_
Definition gmock-actions.h:402
Definition gmock-actions.h:484
ActionAdaptor(const Action< F2 > &from)
Definition gmock-actions.h:489
internal::Function< F1 >::ArgumentTuple ArgumentTuple
Definition gmock-actions.h:487
const internal::linked_ptr< ActionInterface< F2 > > impl_
Definition gmock-actions.h:496
virtual Result Perform(const ArgumentTuple &args)
Definition gmock-actions.h:491
GTEST_DISALLOW_ASSIGN_(ActionAdaptor)
internal::Function< F1 >::Result Result
Definition gmock-actions.h:486
Definition gmock-actions.h:758
T1 *const ptr_
Definition gmock-actions.h:768
void Perform(const ArgumentTuple &) const
Definition gmock-actions.h:763
const T2 value_
Definition gmock-actions.h:769
AssignAction(T1 *ptr, T2 value)
Definition gmock-actions.h:760
GTEST_DISALLOW_ASSIGN_(AssignAction)
static bool Exists()
Definition gmock-actions.h:137
static T * Get()
Definition gmock-actions.h:138
static bool Exists()
Definition gmock-actions.h:128
static T Get()
Definition gmock-actions.h:129
Definition gmock-actions.h:97
static bool Exists()
Definition gmock-actions.h:112
static T Get()
Definition gmock-actions.h:116
Definition gmock-actions.h:987
Impl(const Action< VoidResult > &action1, const Action< F > &action2)
Definition gmock-actions.h:993
GTEST_DISALLOW_ASSIGN_(Impl)
Function< F >::ArgumentTuple ArgumentTuple
Definition gmock-actions.h:990
Function< F >::MakeResultVoid VoidResult
Definition gmock-actions.h:991
Function< F >::Result Result
Definition gmock-actions.h:989
virtual Result Perform(const ArgumentTuple &args)
Definition gmock-actions.h:996
const Action< F > action2_
Definition gmock-actions.h:1003
const Action< VoidResult > action1_
Definition gmock-actions.h:1002
GTEST_DISALLOW_ASSIGN_(DoBothAction)
Action2 action2_
Definition gmock-actions.h:1009
DoBothAction(Action1 action1, Action2 action2)
Definition gmock-actions.h:974
Action1 action1_
Definition gmock-actions.h:1008
Definition gmock-actions.h:747
Definition gmock-actions.h:914
internal::Function< F >::MakeResultIgnoredValue OriginalFunction
Definition gmock-actions.h:930
Impl(const A &action)
Definition gmock-actions.h:919
internal::Function< F >::ArgumentTuple ArgumentTuple
Definition gmock-actions.h:917
const Action< OriginalFunction > action_
Definition gmock-actions.h:932
internal::Function< F >::Result Result
Definition gmock-actions.h:916
GTEST_DISALLOW_ASSIGN_(Impl)
virtual void Perform(const ArgumentTuple &args)
Definition gmock-actions.h:921
Definition gmock-actions.h:890
const A action_
Definition gmock-actions.h:937
GTEST_DISALLOW_ASSIGN_(IgnoreResultAction)
IgnoreResultAction(const A &action)
Definition gmock-actions.h:892
Definition gmock-generated-internal-utils.h:55
Definition gmock-actions.h:871
const MethodPtr method_ptr_
Definition gmock-actions.h:883
Class *const obj_ptr_
Definition gmock-actions.h:882
GTEST_DISALLOW_ASSIGN_(InvokeMethodWithoutArgsAction)
Result Perform(const ArgumentTuple &) const
Definition gmock-actions.h:877
InvokeMethodWithoutArgsAction(Class *obj_ptr, MethodPtr method_ptr)
Definition gmock-actions.h:873
Definition gmock-actions.h:851
InvokeWithoutArgsAction(FunctionImpl function_impl)
Definition gmock-actions.h:855
GTEST_DISALLOW_ASSIGN_(InvokeWithoutArgsAction)
FunctionImpl function_impl_
Definition gmock-actions.h:864
Result Perform(const ArgumentTuple &)
Definition gmock-actions.h:861
Definition gmock-actions.h:950
T * pointer_
Definition gmock-actions.h:959
ReferenceWrapper(T &l_value)
Definition gmock-actions.h:953
virtual Result Perform(const ArgumentTuple &)
Definition gmock-actions.h:603
Impl(const linked_ptr< R > &wrapper)
Definition gmock-actions.h:600
Function< F >::ArgumentTuple ArgumentTuple
Definition gmock-actions.h:598
const linked_ptr< R > wrapper_
Definition gmock-actions.h:612
GTEST_DISALLOW_ASSIGN_(Impl)
Function< F >::Result Result
Definition gmock-actions.h:597
bool performed_
Definition gmock-actions.h:611
Definition gmock-actions.h:563
R value_before_cast_
Definition gmock-actions.h:586
Function< F >::Result Result
Definition gmock-actions.h:565
Result value_
Definition gmock-actions.h:587
GTEST_COMPILE_ASSERT_(!is_reference< Result >::value, Result_cannot_be_a_reference_type)
GTEST_DISALLOW_COPY_AND_ASSIGN_(Impl)
virtual Result Perform(const ArgumentTuple &)
Definition gmock-actions.h:579
Function< F >::ArgumentTuple ArgumentTuple
Definition gmock-actions.h:566
Impl(const linked_ptr< R > &value)
Definition gmock-actions.h:575
Definition gmock-actions.h:534
GTEST_DISALLOW_ASSIGN_(ReturnAction)
const linked_ptr< R > value_
Definition gmock-actions.h:617
ReturnAction(R value)
Definition gmock-actions.h:539
Definition gmock-actions.h:623
static Result Perform(const ArgumentTuple &)
Definition gmock-actions.h:629
Definition gmock-actions.h:675
Impl(T &ref)
Definition gmock-actions.h:680
T & ref_
Definition gmock-actions.h:687
Function< F >::ArgumentTuple ArgumentTuple
Definition gmock-actions.h:678
Function< F >::Result Result
Definition gmock-actions.h:677
GTEST_DISALLOW_ASSIGN_(Impl)
virtual Result Perform(const ArgumentTuple &)
Definition gmock-actions.h:682
Definition gmock-actions.h:654
ReturnRefAction(T &ref)
Definition gmock-actions.h:657
GTEST_DISALLOW_ASSIGN_(ReturnRefAction)
T & ref_
Definition gmock-actions.h:692
Definition gmock-actions.h:724
GTEST_DISALLOW_ASSIGN_(Impl)
Impl(const T &value)
Definition gmock-actions.h:729
virtual Result Perform(const ArgumentTuple &)
Definition gmock-actions.h:731
Function< F >::ArgumentTuple ArgumentTuple
Definition gmock-actions.h:727
Function< F >::Result Result
Definition gmock-actions.h:726
T value_
Definition gmock-actions.h:736
Definition gmock-actions.h:701
ReturnRefOfCopyAction(const T &value)
Definition gmock-actions.h:705
const T value_
Definition gmock-actions.h:741
GTEST_DISALLOW_ASSIGN_(ReturnRefOfCopyAction)
Definition gmock-actions.h:641
static void Perform(const ArgumentTuple &)
Definition gmock-actions.h:645
GTEST_DISALLOW_ASSIGN_(SetArgumentPointeeAction)
void Perform(const ArgumentTuple &args) const
Definition gmock-actions.h:834
const internal::linked_ptr< Proto > proto_
Definition gmock-actions.h:840
SetArgumentPointeeAction(const Proto &proto)
Definition gmock-actions.h:829
Definition gmock-actions.h:804
void Perform(const ArgumentTuple &args) const
Definition gmock-actions.h:811
const A value_
Definition gmock-actions.h:817
SetArgumentPointeeAction(const A &value)
Definition gmock-actions.h:808
GTEST_DISALLOW_ASSIGN_(SetArgumentPointeeAction)
Definition gmock-actions.h:779
GTEST_DISALLOW_ASSIGN_(SetErrnoAndReturnAction)
const T result_
Definition gmock-actions.h:792
Result Perform(const ArgumentTuple &) const
Definition gmock-actions.h:785
SetErrnoAndReturnAction(int errno_value, T result)
Definition gmock-actions.h:781
const int errno_
Definition gmock-actions.h:791
static void Print(const T &value, ::std::ostream *os)
Definition gtest-printers.h:698
Definition gtest-linked_ptr.h:146
#define GTEST_CHECK_(condition)
Definition gtest-port.h:1295
#define GTEST_COMPILE_ASSERT_(expr, msg)
Definition gtest-port.h:1032
#define const
Definition ipfrdr.c:80
#define L(m0, m1, m2, m3, m4, m5, m6, m7)
Definition jh.c:116
Definition document.h:406
T Invalid()
Definition gmock-internal-utils.h:377
void Assert(bool condition, const char *file, int line)
Definition gmock-internal-utils.h:288
::std::string string
Definition gtest-port.h:1097
void PrintTo(const ReferenceWrapper< T > &ref, ::std::ostream *os)
Definition gmock-actions.h:964
GMOCK_DEFINE_DEFAULT_ACTION_FOR_RETURN_TYPE_(void,)
To ImplicitCast_(To x)
Definition gtest-port.h:1343
const T & move(const T &t)
Definition gtest-port.h:1317
const bool ImplicitlyConvertible< From, To >::value
Definition gtest-internal.h:897
TypeWithSize< 8 >::Int Int64
Definition gtest-port.h:2496
TypeWithSize< 8 >::UInt UInt64
Definition gtest-port.h:2497
Definition gmock-actions.h:53
internal::IgnoreResultAction< A > IgnoreResult(const A &an_action)
Definition gmock-actions.h:1187
PolymorphicAction< internal::InvokeWithoutArgsAction< FunctionImpl > > InvokeWithoutArgs(FunctionImpl function_impl)
Definition gmock-actions.h:1168
internal::ByMoveWrapper< R > ByMove(R x)
Definition gmock-actions.h:1094
PolymorphicAction< Impl > MakePolymorphicAction(const Impl &impl)
Definition gmock-actions.h:475
PolymorphicAction< internal::ReturnVoidAction > Return()
Definition gmock-actions.h:1071
Matcher< T > A()
Definition gmock-matchers.h:3732
internal::IgnoredValue Unused
Definition gmock-actions.h:1046
PolymorphicAction< internal::AssignAction< T1, T2 > > Assign(T1 *ptr, T2 val)
Definition gmock-actions.h:1147
PolymorphicAction< internal::SetErrnoAndReturnAction< T > > SetErrnoAndReturn(int errval, T result)
Definition gmock-actions.h:1156
Action< F > MakeAction(ActionInterface< F > *impl)
Definition gmock-actions.h:463
PolymorphicAction< internal::SetArgumentPointeeAction< N, T, internal::IsAProtocolMessage< T >::value > > SetArgumentPointee(const T &x)
Definition gmock-actions.h:1140
internal::ReturnRefOfCopyAction< R > ReturnRefOfCopy(const R &x)
Definition gmock-actions.h:1085
internal::ReferenceWrapper< T > ByRef(T &l_value)
Definition gmock-actions.h:1199
internal::ReturnRefAction< R > ReturnRef(R &x)
Definition gmock-actions.h:1077
PolymorphicAction< internal::SetArgumentPointeeAction< N, T, internal::IsAProtocolMessage< T >::value > > SetArgPointee(const T &x)
Definition gmock-actions.h:1109
internal::DoDefaultAction DoDefault()
Definition gmock-actions.h:1099
PolymorphicAction< internal::ReturnNullAction > ReturnNull()
Definition gmock-actions.h:1066
const GenericPointer< typename T::ValueType > T2 value
Definition pointer.h:1225
#define F(w, k)
Definition sha512-blocks.c:61
tools::wallet2::message_signature_result_t result
Definition signature.cpp:62
Definition upnpdescgen.h:28
static T Get()
Definition gmock-actions.h:80
Definition gmock-actions.h:75
static T Get()
Definition gmock-actions.h:76
Definition gmock-actions.h:504
ByMoveWrapper(T value)
Definition gmock-actions.h:505
T payload
Definition gmock-actions.h:506
Definition gtest-internal.h:772
Definition gmock-generated-internal-utils.h:154
static const bool value
Definition gtest-port.h:2205