mirror of
				https://github.com/catchorg/Catch2.git
				synced 2025-10-31 20:27:11 +01:00 
			
		
		
		
	Updated obj-c bindings for new Matchers and TestCaseInfo changes
This commit is contained in:
		| @@ -15,9 +15,11 @@ namespace Matchers { | |||||||
|     template<typename ExpressionT> |     template<typename ExpressionT> | ||||||
|     struct Matcher : SharedImpl<IShared> |     struct Matcher : SharedImpl<IShared> | ||||||
|     { |     { | ||||||
|  |         typedef ExpressionT ExpressionType; | ||||||
|  |  | ||||||
|         virtual ~Matcher() {} |         virtual ~Matcher() {} | ||||||
|         virtual Ptr<Matcher> clone() const = 0; |         virtual Ptr<Matcher> clone() const = 0; | ||||||
|         virtual bool match( const ExpressionT& expr ) const = 0; |         virtual bool match( ExpressionT const& expr ) const = 0; | ||||||
|         virtual std::string toString() const = 0; |         virtual std::string toString() const = 0; | ||||||
|     }; |     }; | ||||||
|  |  | ||||||
|   | |||||||
| @@ -93,7 +93,7 @@ namespace Catch { | |||||||
|                         std::string name = Detail::getAnnotation( cls, "Name", testCaseName ); |                         std::string name = Detail::getAnnotation( cls, "Name", testCaseName ); | ||||||
|                         std::string desc = Detail::getAnnotation( cls, "Description", testCaseName ); |                         std::string desc = Detail::getAnnotation( cls, "Description", testCaseName ); | ||||||
|                          |                          | ||||||
|                         getMutableRegistryHub().registerTest( TestCase( new OcMethod( cls, selector ), name.c_str(), desc.c_str(), SourceLineInfo() ) ); |                         getMutableRegistryHub().registerTest( makeTestCase( new OcMethod( cls, selector ), "", name.c_str(), desc.c_str(), SourceLineInfo() ) ); | ||||||
|                         noTestMethods++; |                         noTestMethods++; | ||||||
|                     } |                     } | ||||||
|                 } |                 } | ||||||
| @@ -107,8 +107,10 @@ namespace Catch { | |||||||
|         namespace Impl { |         namespace Impl { | ||||||
|         namespace NSStringMatchers { |         namespace NSStringMatchers { | ||||||
|  |  | ||||||
|             struct StringHolder { |             template<typename MatcherT> | ||||||
|  |             struct StringHolder : MatcherImpl<MatcherT, NSString*>{ | ||||||
|                 StringHolder( NSString* substr ) : m_substr( [substr copy] ){} |                 StringHolder( NSString* substr ) : m_substr( [substr copy] ){} | ||||||
|  |                 StringHolder( StringHolder const& other ) : m_substr( [other.m_substr copy] ){} | ||||||
|                 StringHolder() { |                 StringHolder() { | ||||||
|                     arcSafeRelease( m_substr ); |                     arcSafeRelease( m_substr ); | ||||||
|                 } |                 } | ||||||
| @@ -116,54 +118,50 @@ namespace Catch { | |||||||
|                 NSString* m_substr; |                 NSString* m_substr; | ||||||
|             }; |             }; | ||||||
|              |              | ||||||
|             struct Equals : StringHolder { |             struct Equals : StringHolder<Equals> { | ||||||
|                 Equals( NSString* substr ) : StringHolder( substr ){} |                 Equals( NSString* substr ) : StringHolder( substr ){} | ||||||
|                  |                  | ||||||
|                 bool operator()( NSString* str ) const { |                 virtual bool match( ExpressionType const& str ) const { | ||||||
|                     return [str isEqualToString:m_substr]; |                     return [str isEqualToString:m_substr]; | ||||||
|                 } |                 } | ||||||
|                  |                  | ||||||
|                 friend std::ostream& operator<<( std::ostream& os, const Equals& matcher ) { |                 virtual std::string toString() const { | ||||||
|                     os << "equals string: " << Catch::toString( matcher.m_substr ); |                     return "equals string: \"" + Catch::toString( m_substr ) + "\""; | ||||||
|                     return os; |  | ||||||
|                 } |                 } | ||||||
|             }; |             }; | ||||||
|              |              | ||||||
|             struct Contains : StringHolder { |             struct Contains : StringHolder<Contains> { | ||||||
|                 Contains( NSString* substr ) : StringHolder( substr ){} |                 Contains( NSString* substr ) : StringHolder( substr ){} | ||||||
|                  |                  | ||||||
|                 bool operator()( NSString* str ) const { |                 virtual bool match( ExpressionType const& str ) const { | ||||||
|                     return [str rangeOfString:m_substr].location != NSNotFound; |                     return [str rangeOfString:m_substr].location != NSNotFound; | ||||||
|                 } |                 } | ||||||
|                  |                  | ||||||
|                 friend std::ostream& operator<<( std::ostream& os, const Contains& matcher ) { |                 virtual std::string toString() const { | ||||||
|                     os << "contains: " << Catch::toString( matcher.m_substr ); |                     return "contains string: \"" + Catch::toString( m_substr ) + "\""; | ||||||
|                     return os; |  | ||||||
|                 } |                 } | ||||||
|             }; |             }; | ||||||
|  |  | ||||||
|             struct StartsWith : StringHolder { |             struct StartsWith : StringHolder<StartsWith> { | ||||||
|                 StartsWith( NSString* substr ) : StringHolder( substr ){} |                 StartsWith( NSString* substr ) : StringHolder( substr ){} | ||||||
|                  |                  | ||||||
|                 bool operator()( NSString* str ) const { |                 virtual bool match( ExpressionType const& str ) const { | ||||||
|                     return [str rangeOfString:m_substr].location == 0; |                     return [str rangeOfString:m_substr].location == 0; | ||||||
|                 } |                 } | ||||||
|                  |                  | ||||||
|                 friend std::ostream& operator<<( std::ostream& os, const StartsWith& matcher ) { |                 virtual std::string toString() const { | ||||||
|                     os << "starts with: " << Catch::toString( matcher.m_substr ); |                     return "starts with: \"" + Catch::toString( m_substr ) + "\""; | ||||||
|                     return os; |  | ||||||
|                 } |                 } | ||||||
|             }; |             }; | ||||||
|             struct EndsWith : StringHolder { |             struct EndsWith : StringHolder<EndsWith> { | ||||||
|                 EndsWith( NSString* substr ) : StringHolder( substr ){} |                 EndsWith( NSString* substr ) : StringHolder( substr ){} | ||||||
|                  |                  | ||||||
|                 bool operator()( NSString* str ) const { |                 virtual bool match( ExpressionType const& str ) const { | ||||||
|                     return [str rangeOfString:m_substr].location == [str length] - [m_substr length]; |                     return [str rangeOfString:m_substr].location == [str length] - [m_substr length]; | ||||||
|                 } |                 } | ||||||
|                  |                  | ||||||
|                 friend std::ostream& operator<<( std::ostream& os, const EndsWith& matcher ) { |                 virtual std::string toString() const { | ||||||
|                     os << "ends with: " << Catch::toString( matcher.m_substr ); |                     return "ends with: \"" + Catch::toString( m_substr ) + "\""; | ||||||
|                     return os; |  | ||||||
|                 } |                 } | ||||||
|             }; |             }; | ||||||
|              |              | ||||||
|   | |||||||
| @@ -208,7 +208,7 @@ | |||||||
| 			isa = XCBuildConfiguration; | 			isa = XCBuildConfiguration; | ||||||
| 			buildSettings = { | 			buildSettings = { | ||||||
| 				CLANG_ENABLE_OBJC_ARC = YES; | 				CLANG_ENABLE_OBJC_ARC = YES; | ||||||
| 				HEADER_SEARCH_PATHS = ../../../single_include; | 				HEADER_SEARCH_PATHS = ../../../include; | ||||||
| 				PRODUCT_NAME = "$(TARGET_NAME)"; | 				PRODUCT_NAME = "$(TARGET_NAME)"; | ||||||
| 			}; | 			}; | ||||||
| 			name = Debug; | 			name = Debug; | ||||||
| @@ -217,7 +217,7 @@ | |||||||
| 			isa = XCBuildConfiguration; | 			isa = XCBuildConfiguration; | ||||||
| 			buildSettings = { | 			buildSettings = { | ||||||
| 				CLANG_ENABLE_OBJC_ARC = YES; | 				CLANG_ENABLE_OBJC_ARC = YES; | ||||||
| 				HEADER_SEARCH_PATHS = ../../../single_include; | 				HEADER_SEARCH_PATHS = ../../../include; | ||||||
| 				PRODUCT_NAME = "$(TARGET_NAME)"; | 				PRODUCT_NAME = "$(TARGET_NAME)"; | ||||||
| 			}; | 			}; | ||||||
| 			name = Release; | 			name = Release; | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Phil Nash
					Phil Nash