From 2d970ee3bad530703ff24bc3a011390b45cdd293 Mon Sep 17 00:00:00 2001 From: "zhanyong.wan" Date: Thu, 24 Sep 2009 21:41:36 +0000 Subject: Adds the IsNull() matcher. --- include/gmock/gmock-matchers.h | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'include/gmock/gmock-matchers.h') diff --git a/include/gmock/gmock-matchers.h b/include/gmock/gmock-matchers.h index 688ce64f..e2beff4e 100644 --- a/include/gmock/gmock-matchers.h +++ b/include/gmock/gmock-matchers.h @@ -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 + 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 Ne(Rhs x) { return internal::NeMatcher(x); } +// Creates a polymorphic matcher that matches any NULL pointer. +inline PolymorphicMatcher 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). -- cgit v1.2.3