diff options
author | zhanyong.wan <zhanyong.wan@8415998a-534a-0410-bf83-d39667b30386> | 2011-04-14 19:37:06 +0000 |
---|---|---|
committer | zhanyong.wan <zhanyong.wan@8415998a-534a-0410-bf83-d39667b30386> | 2011-04-14 19:37:06 +0000 |
commit | 8d3dc0cdd870ecc53d8a8ba30566b3cd70910863 (patch) | |
tree | 4b1f0d5319d0f31df63166329cc734fb73b30377 /test | |
parent | 8d7c5ad6d3f8aa9715815613b5d244bd4a0e073e (diff) | |
download | googletest-8d3dc0cdd870ecc53d8a8ba30566b3cd70910863.tar.gz googletest-8d3dc0cdd870ecc53d8a8ba30566b3cd70910863.tar.bz2 googletest-8d3dc0cdd870ecc53d8a8ba30566b3cd70910863.zip |
simplifies TrulyMatcher and adds a test for it
Diffstat (limited to 'test')
-rw-r--r-- | test/gmock-matchers_test.cc | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/test/gmock-matchers_test.cc b/test/gmock-matchers_test.cc index 6f93fbd7..9ad62c47 100644 --- a/test/gmock-matchers_test.cc +++ b/test/gmock-matchers_test.cc @@ -2256,6 +2256,29 @@ TEST(TrulyTest, CanBeUsedWithFunctor) { EXPECT_FALSE(m.Matches(4)); } +// A class that can be implicitly converted to bool. +class ConvertibleToBool { + public: + explicit ConvertibleToBool(int number) : number_(number) {} + operator bool() const { return number_ != 0; } + + private: + int number_; +}; + +ConvertibleToBool IsNotZero(int number) { + return ConvertibleToBool(number); +} + +// Tests that the predicate used in Truly() may return a class that's +// implicitly convertible to bool, even when the class has no +// operator!(). +TEST(TrulyTest, PredicateCanReturnAClassConvertibleToBool) { + Matcher<int> m = Truly(IsNotZero); + EXPECT_TRUE(m.Matches(1)); + EXPECT_FALSE(m.Matches(0)); +} + // Tests that Truly(predicate) can describe itself properly. TEST(TrulyTest, CanDescribeSelf) { Matcher<double> m = Truly(IsPositive); |