41using std::stringstream;
46using testing::Cardinality;
47using testing::CardinalityInterface;
50using testing::MakeCardinality;
62TEST(CardinalityTest, IsDefaultConstructable) {
67TEST(CardinalityTest, IsCopyable) {
69 Cardinality
c = Exactly(1);
81TEST(CardinalityTest, IsOverSaturatedByCallCountWorks) {
82 const Cardinality
c = AtMost(5);
90TEST(CardinalityTest, CanDescribeActualCallCount) {
92 Cardinality::DescribeActualCallCountTo(0, &ss0);
96 Cardinality::DescribeActualCallCountTo(1, &ss1);
100 Cardinality::DescribeActualCallCountTo(2, &ss2);
104 Cardinality::DescribeActualCallCountTo(3, &ss3);
109TEST(AnyNumber, Works) {
110 const Cardinality
c = AnyNumber();
126TEST(AnyNumberTest, HasCorrectBounds) {
127 const Cardinality
c = AnyNumber();
129 EXPECT_EQ(INT_MAX,
c.ConservativeUpperBound());
134TEST(AtLeastTest, OnNegativeNumber) {
137 },
"The invocation lower bound must be >= 0");
140TEST(AtLeastTest, OnZero) {
141 const Cardinality
c = AtLeast(0);
154TEST(AtLeastTest, OnPositiveNumber) {
155 const Cardinality
c = AtLeast(2);
166 AtLeast(1).DescribeTo(&ss1);
176 AtLeast(3).DescribeTo(&ss3);
181TEST(AtLeastTest, HasCorrectBounds) {
182 const Cardinality
c = AtLeast(2);
184 EXPECT_EQ(INT_MAX,
c.ConservativeUpperBound());
189TEST(AtMostTest, OnNegativeNumber) {
192 },
"The invocation upper bound must be >= 0");
195TEST(AtMostTest, OnZero) {
196 const Cardinality
c = AtMost(0);
209TEST(AtMostTest, OnPositiveNumber) {
210 const Cardinality
c = AtMost(2);
221 AtMost(1).DescribeTo(&ss1);
231 AtMost(3).DescribeTo(&ss3);
236TEST(AtMostTest, HasCorrectBounds) {
237 const Cardinality
c = AtMost(2);
244TEST(BetweenTest, OnNegativeStart) {
247 },
"The invocation lower bound must be >= 0, but is actually -1");
250TEST(BetweenTest, OnNegativeEnd) {
253 },
"The invocation upper bound must be >= 0, but is actually -2");
256TEST(BetweenTest, OnStartBiggerThanEnd) {
259 },
"The invocation upper bound (1) must be >= "
260 "the invocation lower bound (2)");
263TEST(BetweenTest, OnZeroStartAndZeroEnd) {
264 const Cardinality
c = Between(0, 0);
278TEST(BetweenTest, OnZeroStartAndNonZeroEnd) {
279 const Cardinality
c = Between(0, 2);
296TEST(BetweenTest, OnSameStartAndEnd) {
297 const Cardinality
c = Between(3, 3);
314TEST(BetweenTest, OnDifferentStartAndEnd) {
315 const Cardinality
c = Between(3, 5);
335TEST(BetweenTest, HasCorrectBounds) {
336 const Cardinality
c = Between(3, 5);
343TEST(ExactlyTest, OnNegativeNumber) {
346 },
"The invocation lower bound must be >= 0");
349TEST(ExactlyTest, OnZero) {
350 const Cardinality
c = Exactly(0);
363TEST(ExactlyTest, OnPositiveNumber) {
364 const Cardinality
c = Exactly(2);
372 Exactly(1).DescribeTo(&ss1);
382 Exactly(3).DescribeTo(&ss3);
387TEST(ExactlyTest, HasCorrectBounds) {
388 const Cardinality
c = Exactly(3);
396class EvenCardinality :
public CardinalityInterface {
400 bool IsSatisfiedByCallCount(
int call_count)
const override {
401 return (call_count % 2 == 0);
406 bool IsSaturatedByCallCount(
int )
const override {
411 void DescribeTo(::std::ostream* ss)
const override {
412 *ss <<
"called even number of times";
416TEST(MakeCardinalityTest, ConstructsCardinalityFromInterface) {
417 const Cardinality
c = MakeCardinality(
new EvenCardinality);
426 EXPECT_EQ(
"called even number of times", ss.str());
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
#define MOCK_METHOD0(m,...)
#define GTEST_DISALLOW_COPY_AND_ASSIGN_(type)
#define EXPECT_NONFATAL_FAILURE(statement, substr)
#define EXPECT_EQ(val1, val2)
#define TEST(test_suite_name, test_name)
#define EXPECT_TRUE(condition)
#define EXPECT_FALSE(condition)
#define EXPECT_PRED_FORMAT2(pred_format, v1, v2)
GTEST_API_ Cardinality AtLeast(int n)
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 AtMost(int n)
GTEST_API_ Cardinality AnyNumber()
GTEST_API_ Cardinality Exactly(int n)