Electroneum
testing::internal::TypedExpectation< F > Class Template Reference

#include <gmock-spec-builders.h>

Inheritance diagram for testing::internal::TypedExpectation< F >:
Collaboration diagram for testing::internal::TypedExpectation< F >:

Public Types

typedef Function< F >::ArgumentTuple ArgumentTuple
 
typedef Function< F >::ArgumentMatcherTuple ArgumentMatcherTuple
 
typedef Function< F >::Result Result
 

Public Member Functions

 TypedExpectation (FunctionMockerBase< F > *owner, const char *a_file, int a_line, const string &a_source_text, const ArgumentMatcherTuple &m)
 
virtual ~TypedExpectation ()
 
TypedExpectationWith (const Matcher< const ArgumentTuple &> &m)
 
TypedExpectationTimes (const Cardinality &a_cardinality)
 
TypedExpectationTimes (int n)
 
TypedExpectationInSequence (const Sequence &s)
 
TypedExpectationInSequence (const Sequence &s1, const Sequence &s2)
 
TypedExpectationInSequence (const Sequence &s1, const Sequence &s2, const Sequence &s3)
 
TypedExpectationInSequence (const Sequence &s1, const Sequence &s2, const Sequence &s3, const Sequence &s4)
 
TypedExpectationInSequence (const Sequence &s1, const Sequence &s2, const Sequence &s3, const Sequence &s4, const Sequence &s5)
 
TypedExpectationAfter (const ExpectationSet &s)
 
TypedExpectationAfter (const ExpectationSet &s1, const ExpectationSet &s2)
 
TypedExpectationAfter (const ExpectationSet &s1, const ExpectationSet &s2, const ExpectationSet &s3)
 
TypedExpectationAfter (const ExpectationSet &s1, const ExpectationSet &s2, const ExpectationSet &s3, const ExpectationSet &s4)
 
TypedExpectationAfter (const ExpectationSet &s1, const ExpectationSet &s2, const ExpectationSet &s3, const ExpectationSet &s4, const ExpectationSet &s5)
 
TypedExpectationWillOnce (const Action< F > &action)
 
TypedExpectationWillRepeatedly (const Action< F > &action)
 
TypedExpectationRetiresOnSaturation ()
 
const ArgumentMatcherTuplematchers () const
 
const Matcher< const ArgumentTuple & > & extra_matcher () const
 
const Action< F > & repeated_action () const
 
virtual void MaybeDescribeExtraMatcherTo (::std::ostream *os)
 
- Public Member Functions inherited from testing::internal::ExpectationBase
 ExpectationBase (const char *file, int line, const string &source_text)
 
virtual ~ExpectationBase ()
 
const char * file () const
 
int line () const
 
const char * source_text () const
 
const Cardinalitycardinality () const
 
void DescribeLocationTo (::std::ostream *os) const
 
void DescribeCallCountTo (::std::ostream *os) const GTEST_EXCLUSIVE_LOCK_REQUIRED_(g_gmock_mutex)
 

Friends

template<typename Function >
class FunctionMockerBase
 

Additional Inherited Members

- Protected Types inherited from testing::internal::ExpectationBase
enum  Clause {
  kNone, kWith, kTimes, kInSequence,
  kAfter, kWillOnce, kWillRepeatedly, kRetiresOnSaturation
}
 
typedef std::vector< const void * > UntypedActions
 
- Protected Member Functions inherited from testing::internal::ExpectationBase
void AssertSpecProperty (bool property, const string &failure_message) const
 
void ExpectSpecProperty (bool property, const string &failure_message) const
 
void SpecifyCardinality (const Cardinality &cardinality)
 
bool cardinality_specified () const
 
void set_cardinality (const Cardinality &a_cardinality)
 
void RetireAllPreRequisites () GTEST_EXCLUSIVE_LOCK_REQUIRED_(g_gmock_mutex)
 
bool is_retired () const GTEST_EXCLUSIVE_LOCK_REQUIRED_(g_gmock_mutex)
 
void Retire () GTEST_EXCLUSIVE_LOCK_REQUIRED_(g_gmock_mutex)
 
bool IsSatisfied () const GTEST_EXCLUSIVE_LOCK_REQUIRED_(g_gmock_mutex)
 
bool IsSaturated () const GTEST_EXCLUSIVE_LOCK_REQUIRED_(g_gmock_mutex)
 
bool IsOverSaturated () const GTEST_EXCLUSIVE_LOCK_REQUIRED_(g_gmock_mutex)
 
bool AllPrerequisitesAreSatisfied () const GTEST_EXCLUSIVE_LOCK_REQUIRED_(g_gmock_mutex)
 
void FindUnsatisfiedPrerequisites (ExpectationSet *result) const GTEST_EXCLUSIVE_LOCK_REQUIRED_(g_gmock_mutex)
 
int call_count () const GTEST_EXCLUSIVE_LOCK_REQUIRED_(g_gmock_mutex)
 
void IncrementCallCount () GTEST_EXCLUSIVE_LOCK_REQUIRED_(g_gmock_mutex)
 
void CheckActionCountIfNotDone () const GTEST_LOCK_EXCLUDED_(mutex_)
 
void UntypedTimes (const Cardinality &a_cardinality)
 
 GTEST_DISALLOW_ASSIGN_ (ExpectationBase)
 
- Protected Attributes inherited from testing::internal::ExpectationBase
const char * file_
 
int line_
 
const string source_text_
 
bool cardinality_specified_
 
Cardinality cardinality_
 
ExpectationSet immediate_prerequisites_
 
int call_count_
 
bool retired_
 
UntypedActions untyped_actions_
 
bool extra_matcher_specified_
 
bool repeated_action_specified_
 
bool retires_on_saturation_
 
Clause last_clause_
 
bool action_count_checked_
 
Mutex mutex_
 

Detailed Description

template<typename F>
class testing::internal::TypedExpectation< F >

Definition at line 99 of file gmock-spec-builders.h.

Member Typedef Documentation

◆ ArgumentMatcherTuple

◆ ArgumentTuple

Definition at line 879 of file gmock-spec-builders.h.

◆ Result

template<typename F>
typedef Function<F>::Result testing::internal::TypedExpectation< F >::Result

Definition at line 881 of file gmock-spec-builders.h.

Constructor & Destructor Documentation

◆ TypedExpectation()

template<typename F>
testing::internal::TypedExpectation< F >::TypedExpectation ( FunctionMockerBase< F > *  owner,
const char *  a_file,
int  a_line,
const string a_source_text,
const ArgumentMatcherTuple m 
)
inline

Definition at line 883 of file gmock-spec-builders.h.

886  : ExpectationBase(a_file, a_line, a_source_text),
887  owner_(owner),
888  matchers_(m),
889  // By default, extra_matcher_ should match anything. However,
890  // we cannot initialize it with _ as that triggers a compiler
891  // bug in Symbian's C++ compiler (cannot decide between two
892  // overloaded constructors of Matcher<const ArgumentTuple&>).
893  extra_matcher_(A<const ArgumentTuple&>()),
894  repeated_action_(DoDefault()) {}
internal::DoDefaultAction DoDefault()
ExpectationBase(const char *file, int line, const string &source_text)

◆ ~TypedExpectation()

template<typename F>
virtual testing::internal::TypedExpectation< F >::~TypedExpectation ( )
inlinevirtual

Definition at line 896 of file gmock-spec-builders.h.

896  {
897  // Check the validity of the action count if it hasn't been done
898  // yet (for example, if the expectation was never used).
900  for (UntypedActions::const_iterator it = untyped_actions_.begin();
901  it != untyped_actions_.end(); ++it) {
902  delete static_cast<const Action<F>*>(*it);
903  }
904  }
void CheckActionCountIfNotDone() const GTEST_LOCK_EXCLUDED_(mutex_)

Member Function Documentation

◆ After() [1/5]

template<typename F>
TypedExpectation& testing::internal::TypedExpectation< F >::After ( const ExpectationSet s)
inline

Definition at line 964 of file gmock-spec-builders.h.

964  {
966  ".After() cannot appear after .WillOnce(),"
967  " .WillRepeatedly(), or "
968  ".RetiresOnSaturation().");
970 
971  for (ExpectationSet::const_iterator it = s.begin(); it != s.end(); ++it) {
973  }
974  return *this;
975  }
void ExpectSpecProperty(bool property, const string &failure_message) const
Expectation::Set::const_iterator const_iterator
Here is the call graph for this function:
Here is the caller graph for this function:

◆ After() [2/5]

template<typename F>
TypedExpectation& testing::internal::TypedExpectation< F >::After ( const ExpectationSet s1,
const ExpectationSet s2 
)
inline

Definition at line 976 of file gmock-spec-builders.h.

976  {
977  return After(s1).After(s2);
978  }
TypedExpectation & After(const ExpectationSet &s)
Here is the call graph for this function:

◆ After() [3/5]

template<typename F>
TypedExpectation& testing::internal::TypedExpectation< F >::After ( const ExpectationSet s1,
const ExpectationSet s2,
const ExpectationSet s3 
)
inline

Definition at line 979 of file gmock-spec-builders.h.

980  {
981  return After(s1, s2).After(s3);
982  }
TypedExpectation & After(const ExpectationSet &s)
Here is the call graph for this function:

◆ After() [4/5]

template<typename F>
TypedExpectation& testing::internal::TypedExpectation< F >::After ( const ExpectationSet s1,
const ExpectationSet s2,
const ExpectationSet s3,
const ExpectationSet s4 
)
inline

Definition at line 983 of file gmock-spec-builders.h.

984  {
985  return After(s1, s2, s3).After(s4);
986  }
TypedExpectation & After(const ExpectationSet &s)
Here is the call graph for this function:

◆ After() [5/5]

template<typename F>
TypedExpectation& testing::internal::TypedExpectation< F >::After ( const ExpectationSet s1,
const ExpectationSet s2,
const ExpectationSet s3,
const ExpectationSet s4,
const ExpectationSet s5 
)
inline

Definition at line 987 of file gmock-spec-builders.h.

989  {
990  return After(s1, s2, s3, s4).After(s5);
991  }
TypedExpectation & After(const ExpectationSet &s)
Here is the call graph for this function:

◆ extra_matcher()

template<typename F>
const Matcher<const ArgumentTuple&>& testing::internal::TypedExpectation< F >::extra_matcher ( ) const
inline

Definition at line 1053 of file gmock-spec-builders.h.

1053  {
1054  return extra_matcher_;
1055  }

◆ InSequence() [1/5]

template<typename F>
TypedExpectation& testing::internal::TypedExpectation< F >::InSequence ( const Sequence s)
inline

Definition at line 936 of file gmock-spec-builders.h.

936  {
938  ".InSequence() cannot appear after .After(),"
939  " .WillOnce(), .WillRepeatedly(), or "
940  ".RetiresOnSaturation().");
942 
943  s.AddExpectation(GetHandle());
944  return *this;
945  }
void ExpectSpecProperty(bool property, const string &failure_message) const
Here is the call graph for this function:

◆ InSequence() [2/5]

template<typename F>
TypedExpectation& testing::internal::TypedExpectation< F >::InSequence ( const Sequence s1,
const Sequence s2 
)
inline

Definition at line 946 of file gmock-spec-builders.h.

946  {
947  return InSequence(s1).InSequence(s2);
948  }
TypedExpectation & InSequence(const Sequence &s)
Here is the call graph for this function:

◆ InSequence() [3/5]

template<typename F>
TypedExpectation& testing::internal::TypedExpectation< F >::InSequence ( const Sequence s1,
const Sequence s2,
const Sequence s3 
)
inline

Definition at line 949 of file gmock-spec-builders.h.

950  {
951  return InSequence(s1, s2).InSequence(s3);
952  }
TypedExpectation & InSequence(const Sequence &s)
Here is the call graph for this function:

◆ InSequence() [4/5]

template<typename F>
TypedExpectation& testing::internal::TypedExpectation< F >::InSequence ( const Sequence s1,
const Sequence s2,
const Sequence s3,
const Sequence s4 
)
inline

Definition at line 953 of file gmock-spec-builders.h.

954  {
955  return InSequence(s1, s2, s3).InSequence(s4);
956  }
TypedExpectation & InSequence(const Sequence &s)
Here is the call graph for this function:

◆ InSequence() [5/5]

template<typename F>
TypedExpectation& testing::internal::TypedExpectation< F >::InSequence ( const Sequence s1,
const Sequence s2,
const Sequence s3,
const Sequence s4,
const Sequence s5 
)
inline

Definition at line 957 of file gmock-spec-builders.h.

959  {
960  return InSequence(s1, s2, s3, s4).InSequence(s5);
961  }
TypedExpectation & InSequence(const Sequence &s)
Here is the call graph for this function:

◆ matchers()

template<typename F>
const ArgumentMatcherTuple& testing::internal::TypedExpectation< F >::matchers ( ) const
inline

Definition at line 1048 of file gmock-spec-builders.h.

1048  {
1049  return matchers_;
1050  }

◆ MaybeDescribeExtraMatcherTo()

template<typename F>
virtual void testing::internal::TypedExpectation< F >::MaybeDescribeExtraMatcherTo ( ::std::ostream *  os)
inlinevirtual

Implements testing::internal::ExpectationBase.

Definition at line 1062 of file gmock-spec-builders.h.

1062  {
1064  *os << " Expected args: ";
1065  extra_matcher_.DescribeTo(os);
1066  *os << "\n";
1067  }
1068  }
void DescribeTo(::std::ostream *os) const

◆ repeated_action()

template<typename F>
const Action<F>& testing::internal::TypedExpectation< F >::repeated_action ( ) const
inline

Definition at line 1058 of file gmock-spec-builders.h.

1058 { return repeated_action_; }

◆ RetiresOnSaturation()

template<typename F>
TypedExpectation& testing::internal::TypedExpectation< F >::RetiresOnSaturation ( )
inline

Definition at line 1033 of file gmock-spec-builders.h.

1033  {
1035  ".RetiresOnSaturation() cannot appear "
1036  "more than once.");
1038  retires_on_saturation_ = true;
1039 
1040  // Now that no more action clauses can be specified, we check
1041  // whether their count makes sense.
1043  return *this;
1044  }
void ExpectSpecProperty(bool property, const string &failure_message) const
void CheckActionCountIfNotDone() const GTEST_LOCK_EXCLUDED_(mutex_)

◆ Times() [1/2]

template<typename F>
TypedExpectation& testing::internal::TypedExpectation< F >::Times ( const Cardinality a_cardinality)
inline

Definition at line 925 of file gmock-spec-builders.h.

925  {
926  ExpectationBase::UntypedTimes(a_cardinality);
927  return *this;
928  }
void UntypedTimes(const Cardinality &a_cardinality)
Here is the call graph for this function:

◆ Times() [2/2]

template<typename F>
TypedExpectation& testing::internal::TypedExpectation< F >::Times ( int  n)
inline

Definition at line 931 of file gmock-spec-builders.h.

931  {
932  return Times(Exactly(n));
933  }
TypedExpectation & Times(const Cardinality &a_cardinality)
GTEST_API_ Cardinality Exactly(int n)
Here is the call graph for this function:

◆ WillOnce()

template<typename F>
TypedExpectation& testing::internal::TypedExpectation< F >::WillOnce ( const Action< F > &  action)
inline

Definition at line 994 of file gmock-spec-builders.h.

994  {
996  ".WillOnce() cannot appear after "
997  ".WillRepeatedly() or .RetiresOnSaturation().");
999 
1000  untyped_actions_.push_back(new Action<F>(action));
1001  if (!cardinality_specified()) {
1002  set_cardinality(Exactly(static_cast<int>(untyped_actions_.size())));
1003  }
1004  return *this;
1005  }
void ExpectSpecProperty(bool property, const string &failure_message) const
GTEST_API_ Cardinality Exactly(int n)
void set_cardinality(const Cardinality &a_cardinality)
Here is the call graph for this function:

◆ WillRepeatedly()

template<typename F>
TypedExpectation& testing::internal::TypedExpectation< F >::WillRepeatedly ( const Action< F > &  action)
inline

Definition at line 1008 of file gmock-spec-builders.h.

1008  {
1009  if (last_clause_ == kWillRepeatedly) {
1010  ExpectSpecProperty(false,
1011  ".WillRepeatedly() cannot appear "
1012  "more than once in an EXPECT_CALL().");
1013  } else {
1015  ".WillRepeatedly() cannot appear "
1016  "after .RetiresOnSaturation().");
1017  }
1020 
1021  repeated_action_ = action;
1022  if (!cardinality_specified()) {
1023  set_cardinality(AtLeast(static_cast<int>(untyped_actions_.size())));
1024  }
1025 
1026  // Now that no more action clauses can be specified, we check
1027  // whether their count makes sense.
1029  return *this;
1030  }
GTEST_API_ Cardinality AtLeast(int n)
void ExpectSpecProperty(bool property, const string &failure_message) const
void set_cardinality(const Cardinality &a_cardinality)
void CheckActionCountIfNotDone() const GTEST_LOCK_EXCLUDED_(mutex_)
Here is the call graph for this function:

◆ With()

template<typename F>
TypedExpectation& testing::internal::TypedExpectation< F >::With ( const Matcher< const ArgumentTuple &> &  m)
inline

Definition at line 907 of file gmock-spec-builders.h.

907  {
908  if (last_clause_ == kWith) {
909  ExpectSpecProperty(false,
910  ".With() cannot appear "
911  "more than once in an EXPECT_CALL().");
912  } else {
914  ".With() must be the first "
915  "clause in an EXPECT_CALL().");
916  }
918 
919  extra_matcher_ = m;
921  return *this;
922  }
void ExpectSpecProperty(bool property, const string &failure_message) const

Friends And Related Function Documentation

◆ FunctionMockerBase

template<typename F>
template<typename Function >
friend class FunctionMockerBase
friend

Definition at line 1072 of file gmock-spec-builders.h.


The documentation for this class was generated from the following file: