Adds the IsNull() matcher.

This commit is contained in:
zhanyong.wan
2009-09-24 21:41:36 +00:00
parent f7af24c7de
commit 2d970ee3ba
3 changed files with 53 additions and 0 deletions

View File

@@ -621,6 +621,19 @@ GMOCK_IMPLEMENT_COMPARISON_MATCHER_(Ne, !=, "not equal to");
#undef GMOCK_IMPLEMENT_COMPARISON_MATCHER_
// Implements the polymorphic IsNull() matcher, which matches any
// pointer that is NULL.
class IsNullMatcher {
public:
template <typename T>
bool Matches(T* p) const { return p == NULL; }
void DescribeTo(::std::ostream* os) const { *os << "is NULL"; }
void DescribeNegationTo(::std::ostream* os) const {
*os << "is not NULL";
}
};
// Implements the polymorphic NotNull() matcher, which matches any
// pointer that is not NULL.
class NotNullMatcher {
@@ -2319,6 +2332,11 @@ inline internal::NeMatcher<Rhs> Ne(Rhs x) {
return internal::NeMatcher<Rhs>(x);
}
// Creates a polymorphic matcher that matches any NULL pointer.
inline PolymorphicMatcher<internal::IsNullMatcher > IsNull() {
return MakePolymorphicMatcher(internal::IsNullMatcher());
}
// Creates a polymorphic matcher that matches any non-NULL pointer.
// This is convenient as Not(NULL) doesn't compile (the compiler
// thinks that that expression is comparing a pointer with an integer).