From 1c98fc98effed0d733c251f5c902e1a7575d4a40 Mon Sep 17 00:00:00 2001 From: Phil Nash Date: Thu, 24 May 2012 08:27:50 +0100 Subject: [PATCH] Added Equals matcher for strings --- include/internal/catch_matchers.hpp | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/include/internal/catch_matchers.hpp b/include/internal/catch_matchers.hpp index 81085bbe..79f9a2af 100644 --- a/include/internal/catch_matchers.hpp +++ b/include/internal/catch_matchers.hpp @@ -13,7 +13,23 @@ namespace Matchers { namespace Impl { namespace StdString { - struct Contains { + struct Equals { + Equals( const std::string& str ) : m_str( str ){} + + bool operator()( const std::string& str ) const + { + return str == m_str; + } + + friend std::ostream& operator<<( std::ostream& os, const Equals& matcher ) + { + os << "equals: \"" << matcher.m_str << "\""; + return os; + } + std::string m_str; + }; + + struct Contains { Contains( const std::string& substr ) : m_substr( substr ){} bool operator()( const std::string& str ) const @@ -63,6 +79,7 @@ namespace Matchers { } // namespace StdString } // namespace Impl + inline Impl::StdString::Equals Equals( const std::string& str ){ return Impl::StdString::Equals( str ); } inline Impl::StdString::Contains Contains( const std::string& substr ){ return Impl::StdString::Contains( substr ); } inline Impl::StdString::StartsWith StartsWith( const std::string& substr ){ return Impl::StdString::StartsWith( substr ); } inline Impl::StdString::EndsWith EndsWith( const std::string& substr ){ return Impl::StdString::EndsWith( substr ); }