42 using std::stringstream;
47 using testing::Cardinality;
48 using testing::CardinalityInterface;
51 using testing::MakeCardinality;
59 MockFoo(
const MockFoo&) =
delete;
64 TEST(CardinalityTest, IsDefaultConstructable) { Cardinality
c; }
67 TEST(CardinalityTest, IsCopyable) {
81 TEST(CardinalityTest, IsOverSaturatedByCallCountWorks) {
82 const Cardinality c =
AtMost(5);
90 TEST(CardinalityTest, CanDescribeActualCallCount) {
92 Cardinality::DescribeActualCallCountTo(0, &ss0);
96 Cardinality::DescribeActualCallCountTo(1, &ss1);
100 Cardinality::DescribeActualCallCountTo(2, &ss2);
104 Cardinality::DescribeActualCallCountTo(3, &ss3);
125 TEST(AnyNumberTest, HasCorrectBounds) {
127 EXPECT_EQ(0, c.ConservativeLowerBound());
128 EXPECT_EQ(INT_MAX, c.ConservativeUpperBound());
133 TEST(AtLeastTest, OnNegativeNumber) {
138 "The invocation lower bound must be >= 0");
141 TEST(AtLeastTest, OnZero) {
142 const Cardinality c =
AtLeast(0);
154 TEST(AtLeastTest, OnPositiveNumber) {
155 const Cardinality c =
AtLeast(2);
178 TEST(AtLeastTest, HasCorrectBounds) {
179 const Cardinality c =
AtLeast(2);
180 EXPECT_EQ(2, c.ConservativeLowerBound());
181 EXPECT_EQ(INT_MAX, c.ConservativeUpperBound());
186 TEST(AtMostTest, OnNegativeNumber) {
191 "The invocation upper bound must be >= 0");
194 TEST(AtMostTest, OnZero) {
195 const Cardinality c =
AtMost(0);
207 TEST(AtMostTest, OnPositiveNumber) {
208 const Cardinality c =
AtMost(2);
219 AtMost(1).DescribeTo(&ss1);
227 AtMost(3).DescribeTo(&ss3);
231 TEST(AtMostTest, HasCorrectBounds) {
232 const Cardinality c =
AtMost(2);
233 EXPECT_EQ(0, c.ConservativeLowerBound());
234 EXPECT_EQ(2, c.ConservativeUpperBound());
239 TEST(BetweenTest, OnNegativeStart) {
244 "The invocation lower bound must be >= 0, but is actually -1");
247 TEST(BetweenTest, OnNegativeEnd) {
252 "The invocation upper bound must be >= 0, but is actually -2");
255 TEST(BetweenTest, OnStartBiggerThanEnd) {
260 "The invocation upper bound (1) must be >= "
261 "the invocation lower bound (2)");
264 TEST(BetweenTest, OnZeroStartAndZeroEnd) {
265 const Cardinality c =
Between(0, 0);
278 TEST(BetweenTest, OnZeroStartAndNonZeroEnd) {
279 const Cardinality c =
Between(0, 2);
295 TEST(BetweenTest, OnSameStartAndEnd) {
296 const Cardinality c =
Between(3, 3);
312 TEST(BetweenTest, OnDifferentStartAndEnd) {
313 const Cardinality c =
Between(3, 5);
332 TEST(BetweenTest, HasCorrectBounds) {
333 const Cardinality c =
Between(3, 5);
334 EXPECT_EQ(3, c.ConservativeLowerBound());
335 EXPECT_EQ(5, c.ConservativeUpperBound());
340 TEST(ExactlyTest, OnNegativeNumber) {
345 "The invocation lower bound must be >= 0");
348 TEST(ExactlyTest, OnZero) {
349 const Cardinality c =
Exactly(0);
361 TEST(ExactlyTest, OnPositiveNumber) {
362 const Cardinality c =
Exactly(2);
382 TEST(ExactlyTest, HasCorrectBounds) {
383 const Cardinality c =
Exactly(3);
384 EXPECT_EQ(3, c.ConservativeLowerBound());
385 EXPECT_EQ(3, c.ConservativeUpperBound());
391 class EvenCardinality :
public CardinalityInterface {
395 bool IsSatisfiedByCallCount(
int call_count)
const override {
396 return (call_count % 2 == 0);
401 bool IsSaturatedByCallCount(
int )
const override {
406 void DescribeTo(::std::ostream* ss)
const override {
407 *ss <<
"called even number of times";
411 TEST(MakeCardinalityTest, ConstructsCardinalityFromInterface) {
412 const Cardinality c = MakeCardinality(
new EvenCardinality);
421 EXPECT_EQ(
"called even number of times", ss.str());
#define EXPECT_PRED_FORMAT2(pred_format, v1, v2)
GTEST_API_ Cardinality AtLeast(int n)
#define EXPECT_NONFATAL_FAILURE(statement, substr)
GTEST_API_ Cardinality AtMost(int n)
#define MOCK_METHOD0(m,...)
#define TEST(test_suite_name, test_name)
expr expr1 expr1 expr1 c expr2 expr1 expr2 expr1 expr2 expr1 expr1 expr1 expr1 c expr2 expr1 expr2 expr1 expr2 expr1 expr1 expr1 expr1 c *expr2 expr1 expr2 expr1 expr2 expr1 expr1 expr1 expr1 c expr2 expr1 expr2 expr1 expr2 expr1 expr1 expr1 expr2 expr1 expr2 expr1 expr1 expr1 expr2 expr1 expr2 expr1 expr1 expr1 c
MockFoo & operator=(const MockFoo &)=delete
GTEST_API_ AssertionResult IsSubstring(const char *needle_expr, const char *haystack_expr, const char *needle, const char *haystack)
GTEST_API_ Cardinality Between(int min, int max)
GTEST_API_ Cardinality Exactly(int n)
GTEST_API_ Cardinality AnyNumber()
#define EXPECT_EQ(val1, val2)
#define EXPECT_TRUE(condition)
#define EXPECT_FALSE(condition)