diff options
Diffstat (limited to 'googletest/samples')
-rw-r--r-- | googletest/samples/sample4.cc | 10 | ||||
-rw-r--r-- | googletest/samples/sample4.h | 3 | ||||
-rw-r--r-- | googletest/samples/sample4_unittest.cc | 5 |
3 files changed, 18 insertions, 0 deletions
diff --git a/googletest/samples/sample4.cc b/googletest/samples/sample4.cc index 2f7c87a..b0ee609 100644 --- a/googletest/samples/sample4.cc +++ b/googletest/samples/sample4.cc @@ -38,6 +38,16 @@ int Counter::Increment() { return counter_++; } +// Returns the current counter value, and decrements it. +// counter can not be less than 0, return 0 in this case +int Counter::Decrement() { + if (counter_ == 0) { + return counter_; + } else { + return counter_--; + } +} + // Prints the current counter value to STDOUT. void Counter::Print() const { printf("%d", counter_); diff --git a/googletest/samples/sample4.h b/googletest/samples/sample4.h index fda5f33..e256f40 100644 --- a/googletest/samples/sample4.h +++ b/googletest/samples/sample4.h @@ -43,6 +43,9 @@ class Counter { // Returns the current counter value, and increments it. int Increment(); + // Returns the current counter value, and decrements it. + int Decrement(); + // Prints the current counter value to STDOUT. void Print() const; }; diff --git a/googletest/samples/sample4_unittest.cc b/googletest/samples/sample4_unittest.cc index 079a70d..d5144c0 100644 --- a/googletest/samples/sample4_unittest.cc +++ b/googletest/samples/sample4_unittest.cc @@ -37,12 +37,17 @@ namespace { TEST(Counter, Increment) { Counter c; + // Test that counter 0 returns 0 + EXPECT_EQ(0, c.Decrement()); + // EXPECT_EQ() evaluates its arguments exactly once, so they // can have side effects. EXPECT_EQ(0, c.Increment()); EXPECT_EQ(1, c.Increment()); EXPECT_EQ(2, c.Increment()); + + EXPECT_EQ(3, c.Decrement()); } } // namespace |