00001
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034 #ifndef MOCKPP_ISEQUAL_H
00035 #define MOCKPP_ISEQUAL_H
00036
00037 #include <mockpp/mockpp.h>
00038
00039 #include <mockpp/constraint/Constraint.h>
00040 #include <mockpp/compat/Formatter.h>
00041
00042
00043 MOCKPP_NS_START
00044
00045
00055 template <class T>
00056 bool isEqualComparison(const T &left, const T &right)
00057 {
00058 return left == right;
00059 }
00060
00061
00069 template <typename T>
00070 class IsEqual : public Constraint<T>
00071 {
00072 public:
00073
00077 IsEqual( const T &equalArg )
00078 : ref( equalArg )
00079 {}
00080
00083 virtual ~IsEqual()
00084 {}
00085
00091 virtual bool eval( const T &arg ) const
00092 {
00093 return isEqualComparison(arg, ref);
00094 }
00095
00100 virtual String describeTo( String &buffer ) const
00101 {
00102 String fmt = MOCKPP_PCHAR( "equalTo %1" );
00103 fmt << ref;
00104 buffer += fmt;
00105 return buffer;
00106 }
00107
00108 private:
00109
00110 const T ref;
00111 };
00112
00113
00114 MOCKPP_NS_END
00115
00116
00117 #endif // MOCKPP_ISEQUAL_H