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_ISSAME_H
00035 #define MOCKPP_ISSAME_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 isSameComparison(const T &left, const T &right)
00057 {
00058 return &left == &right;
00059 }
00060
00061
00071 template <typename T>
00072 class IsSame : public Constraint<T>
00073 {
00074 public:
00075
00079 IsSame( const T &object )
00080 : ref( object )
00081 {}
00082
00085 virtual ~IsSame( )
00086 {}
00087
00093 virtual bool eval( const T &arg ) const
00094 {
00095 return isSameComparison(arg, ref);
00096 }
00097
00102 virtual String describeTo( String &buffer ) const
00103 {
00104 String fmt = MOCKPP_PCHAR( "sameAs %1" );
00105 fmt << ref;
00106 buffer += fmt;
00107 return buffer;
00108 }
00109
00110 private:
00111
00112 const T &ref;
00113 };
00114
00115
00116 MOCKPP_NS_END
00117
00118
00119 #endif // MOCKPP_ISSAME_H