aboutsummaryrefslogtreecommitdiff
path: root/unittest/Catch/projects/XCode/OCTest
diff options
context:
space:
mode:
Diffstat (limited to 'unittest/Catch/projects/XCode/OCTest')
-rw-r--r--unittest/Catch/projects/XCode/OCTest/OCTest.xcodeproj/project.pbxproj265
-rw-r--r--unittest/Catch/projects/XCode/OCTest/OCTest.xcodeproj/project.xcworkspace/contents.xcworkspacedata7
-rw-r--r--unittest/Catch/projects/XCode/OCTest/OCTest.xcodeproj/project.xcworkspace/xcshareddata/OCTest.xccheckout41
-rw-r--r--unittest/Catch/projects/XCode/OCTest/OCTest/CatchOCTestCase.h25
-rw-r--r--unittest/Catch/projects/XCode/OCTest/OCTest/CatchOCTestCase.mm83
-rw-r--r--unittest/Catch/projects/XCode/OCTest/OCTest/Main.mm2
-rw-r--r--unittest/Catch/projects/XCode/OCTest/OCTest/OCTest.179
-rw-r--r--unittest/Catch/projects/XCode/OCTest/OCTest/OCTest.mm28
-rw-r--r--unittest/Catch/projects/XCode/OCTest/OCTest/TestObj.h28
-rw-r--r--unittest/Catch/projects/XCode/OCTest/OCTest/TestObj.m25
10 files changed, 583 insertions, 0 deletions
diff --git a/unittest/Catch/projects/XCode/OCTest/OCTest.xcodeproj/project.pbxproj b/unittest/Catch/projects/XCode/OCTest/OCTest.xcodeproj/project.pbxproj
new file mode 100644
index 0000000..6777e8e
--- /dev/null
+++ b/unittest/Catch/projects/XCode/OCTest/OCTest.xcodeproj/project.pbxproj
@@ -0,0 +1,265 @@
+// !$*UTF8*$!
+{
+ archiveVersion = 1;
+ classes = {
+ };
+ objectVersion = 46;
+ objects = {
+
+/* Begin PBXBuildFile section */
+ 4A63D2AC14E3C1A900F615CB /* OCTest.1 in CopyFiles */ = {isa = PBXBuildFile; fileRef = 4A63D2AB14E3C1A900F615CB /* OCTest.1 */; };
+ 4A63D2B314E3C1E600F615CB /* Main.mm in Sources */ = {isa = PBXBuildFile; fileRef = 4A63D2B214E3C1E600F615CB /* Main.mm */; };
+ 4A63D2C014E4544700F615CB /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4A63D2BF14E4544700F615CB /* Foundation.framework */; };
+ 4A63D2C614E454CC00F615CB /* CatchOCTestCase.mm in Sources */ = {isa = PBXBuildFile; fileRef = 4A63D2C214E454CC00F615CB /* CatchOCTestCase.mm */; };
+ 4A63D2C714E454CC00F615CB /* OCTest.mm in Sources */ = {isa = PBXBuildFile; fileRef = 4A63D2C314E454CC00F615CB /* OCTest.mm */; };
+ 4A63D2C814E454CC00F615CB /* TestObj.m in Sources */ = {isa = PBXBuildFile; fileRef = 4A63D2C514E454CC00F615CB /* TestObj.m */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXCopyFilesBuildPhase section */
+ 4A63D2A314E3C1A900F615CB /* CopyFiles */ = {
+ isa = PBXCopyFilesBuildPhase;
+ buildActionMask = 2147483647;
+ dstPath = /usr/share/man/man1/;
+ dstSubfolderSpec = 0;
+ files = (
+ 4A63D2AC14E3C1A900F615CB /* OCTest.1 in CopyFiles */,
+ );
+ runOnlyForDeploymentPostprocessing = 1;
+ };
+/* End PBXCopyFilesBuildPhase section */
+
+/* Begin PBXFileReference section */
+ 4A63D2A514E3C1A900F615CB /* OCTest */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = OCTest; sourceTree = BUILT_PRODUCTS_DIR; };
+ 4A63D2AB14E3C1A900F615CB /* OCTest.1 */ = {isa = PBXFileReference; lastKnownFileType = text.man; path = OCTest.1; sourceTree = "<group>"; };
+ 4A63D2B214E3C1E600F615CB /* Main.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = Main.mm; sourceTree = "<group>"; };
+ 4A63D2BF14E4544700F615CB /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
+ 4A63D2C114E454CC00F615CB /* CatchOCTestCase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CatchOCTestCase.h; sourceTree = "<group>"; };
+ 4A63D2C214E454CC00F615CB /* CatchOCTestCase.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = CatchOCTestCase.mm; sourceTree = "<group>"; };
+ 4A63D2C314E454CC00F615CB /* OCTest.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = OCTest.mm; sourceTree = "<group>"; };
+ 4A63D2C414E454CC00F615CB /* TestObj.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TestObj.h; sourceTree = "<group>"; };
+ 4A63D2C514E454CC00F615CB /* TestObj.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TestObj.m; sourceTree = "<group>"; };
+ 4AA0D951154C0A7A004B4193 /* catch_objc.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = catch_objc.hpp; path = ../../../include/internal/catch_objc.hpp; sourceTree = "<group>"; };
+ 4ABEA80615C90E10009F0424 /* catch_objc_arc.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = catch_objc_arc.hpp; path = ../../../include/internal/catch_objc_arc.hpp; sourceTree = "<group>"; };
+ 4ABEA80815C90E38009F0424 /* catch_tostring.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = catch_tostring.hpp; path = ../../../include/internal/catch_tostring.hpp; sourceTree = "<group>"; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+ 4A63D2A214E3C1A900F615CB /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 4A63D2C014E4544700F615CB /* Foundation.framework in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+ 4A63D29A14E3C1A900F615CB = {
+ isa = PBXGroup;
+ children = (
+ 4AA0D94F154C0A63004B4193 /* Catch */,
+ 4A63D2BF14E4544700F615CB /* Foundation.framework */,
+ 4A63D2A814E3C1A900F615CB /* OCTest */,
+ 4A63D2A614E3C1A900F615CB /* Products */,
+ );
+ sourceTree = "<group>";
+ };
+ 4A63D2A614E3C1A900F615CB /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ 4A63D2A514E3C1A900F615CB /* OCTest */,
+ );
+ name = Products;
+ sourceTree = "<group>";
+ };
+ 4A63D2A814E3C1A900F615CB /* OCTest */ = {
+ isa = PBXGroup;
+ children = (
+ 4A63D2C114E454CC00F615CB /* CatchOCTestCase.h */,
+ 4A63D2C214E454CC00F615CB /* CatchOCTestCase.mm */,
+ 4A63D2C314E454CC00F615CB /* OCTest.mm */,
+ 4A63D2C414E454CC00F615CB /* TestObj.h */,
+ 4A63D2C514E454CC00F615CB /* TestObj.m */,
+ 4A63D2B214E3C1E600F615CB /* Main.mm */,
+ 4A63D2AB14E3C1A900F615CB /* OCTest.1 */,
+ );
+ path = OCTest;
+ sourceTree = "<group>";
+ };
+ 4AA0D94F154C0A63004B4193 /* Catch */ = {
+ isa = PBXGroup;
+ children = (
+ 4ABEA80815C90E38009F0424 /* catch_tostring.hpp */,
+ 4ABEA80615C90E10009F0424 /* catch_objc_arc.hpp */,
+ 4AA0D951154C0A7A004B4193 /* catch_objc.hpp */,
+ );
+ name = Catch;
+ sourceTree = "<group>";
+ };
+/* End PBXGroup section */
+
+/* Begin PBXNativeTarget section */
+ 4A63D2A414E3C1A900F615CB /* OCTest */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = 4A63D2AF14E3C1A900F615CB /* Build configuration list for PBXNativeTarget "OCTest" */;
+ buildPhases = (
+ 4A63D2A114E3C1A900F615CB /* Sources */,
+ 4A63D2A214E3C1A900F615CB /* Frameworks */,
+ 4A63D2A314E3C1A900F615CB /* CopyFiles */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = OCTest;
+ productName = OCTest;
+ productReference = 4A63D2A514E3C1A900F615CB /* OCTest */;
+ productType = "com.apple.product-type.tool";
+ };
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+ 4A63D29C14E3C1A900F615CB /* Project object */ = {
+ isa = PBXProject;
+ attributes = {
+ LastUpgradeCheck = 0500;
+ };
+ buildConfigurationList = 4A63D29F14E3C1A900F615CB /* Build configuration list for PBXProject "OCTest" */;
+ compatibilityVersion = "Xcode 3.2";
+ developmentRegion = English;
+ hasScannedForEncodings = 0;
+ knownRegions = (
+ en,
+ );
+ mainGroup = 4A63D29A14E3C1A900F615CB;
+ productRefGroup = 4A63D2A614E3C1A900F615CB /* Products */;
+ projectDirPath = "";
+ projectRoot = "";
+ targets = (
+ 4A63D2A414E3C1A900F615CB /* OCTest */,
+ );
+ };
+/* End PBXProject section */
+
+/* Begin PBXSourcesBuildPhase section */
+ 4A63D2A114E3C1A900F615CB /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 4A63D2B314E3C1E600F615CB /* Main.mm in Sources */,
+ 4A63D2C614E454CC00F615CB /* CatchOCTestCase.mm in Sources */,
+ 4A63D2C714E454CC00F615CB /* OCTest.mm in Sources */,
+ 4A63D2C814E454CC00F615CB /* TestObj.m in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXSourcesBuildPhase section */
+
+/* Begin XCBuildConfiguration section */
+ 4A63D2AD14E3C1A900F615CB /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ CLANG_WARN_BOOL_CONVERSION = YES;
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
+ CLANG_WARN_EMPTY_BODY = YES;
+ CLANG_WARN_ENUM_CONVERSION = YES;
+ CLANG_WARN_INT_CONVERSION = YES;
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+ COPY_PHASE_STRIP = NO;
+ GCC_C_LANGUAGE_STANDARD = gnu99;
+ GCC_DYNAMIC_NO_PIC = NO;
+ GCC_ENABLE_OBJC_EXCEPTIONS = YES;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ GCC_PREPROCESSOR_DEFINITIONS = (
+ "DEBUG=1",
+ "$(inherited)",
+ );
+ GCC_SYMBOLS_PRIVATE_EXTERN = NO;
+ GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+ GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES;
+ GCC_WARN_UNUSED_FUNCTION = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ HEADER_SEARCH_PATHS = ../../../include;
+ MACOSX_DEPLOYMENT_TARGET = 10.7;
+ ONLY_ACTIVE_ARCH = YES;
+ SDKROOT = macosx;
+ };
+ name = Debug;
+ };
+ 4A63D2AE14E3C1A900F615CB /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ CLANG_WARN_BOOL_CONVERSION = YES;
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
+ CLANG_WARN_EMPTY_BODY = YES;
+ CLANG_WARN_ENUM_CONVERSION = YES;
+ CLANG_WARN_INT_CONVERSION = YES;
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+ COPY_PHASE_STRIP = YES;
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ GCC_C_LANGUAGE_STANDARD = gnu99;
+ GCC_ENABLE_OBJC_EXCEPTIONS = YES;
+ GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+ GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES;
+ GCC_WARN_UNUSED_FUNCTION = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ HEADER_SEARCH_PATHS = ../../../include;
+ MACOSX_DEPLOYMENT_TARGET = 10.7;
+ SDKROOT = macosx;
+ };
+ name = Release;
+ };
+ 4A63D2B014E3C1A900F615CB /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ CLANG_ENABLE_OBJC_ARC = YES;
+ HEADER_SEARCH_PATHS = ../../../include;
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ };
+ name = Debug;
+ };
+ 4A63D2B114E3C1A900F615CB /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ CLANG_ENABLE_OBJC_ARC = YES;
+ HEADER_SEARCH_PATHS = ../../../include;
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ };
+ name = Release;
+ };
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+ 4A63D29F14E3C1A900F615CB /* Build configuration list for PBXProject "OCTest" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 4A63D2AD14E3C1A900F615CB /* Debug */,
+ 4A63D2AE14E3C1A900F615CB /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ 4A63D2AF14E3C1A900F615CB /* Build configuration list for PBXNativeTarget "OCTest" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 4A63D2B014E3C1A900F615CB /* Debug */,
+ 4A63D2B114E3C1A900F615CB /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+/* End XCConfigurationList section */
+ };
+ rootObject = 4A63D29C14E3C1A900F615CB /* Project object */;
+}
diff --git a/unittest/Catch/projects/XCode/OCTest/OCTest.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/unittest/Catch/projects/XCode/OCTest/OCTest.xcodeproj/project.xcworkspace/contents.xcworkspacedata
new file mode 100644
index 0000000..119e61c
--- /dev/null
+++ b/unittest/Catch/projects/XCode/OCTest/OCTest.xcodeproj/project.xcworkspace/contents.xcworkspacedata
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Workspace
+ version = "1.0">
+ <FileRef
+ location = "self:OCTest.xcodeproj">
+ </FileRef>
+</Workspace>
diff --git a/unittest/Catch/projects/XCode/OCTest/OCTest.xcodeproj/project.xcworkspace/xcshareddata/OCTest.xccheckout b/unittest/Catch/projects/XCode/OCTest/OCTest.xcodeproj/project.xcworkspace/xcshareddata/OCTest.xccheckout
new file mode 100644
index 0000000..2480364
--- /dev/null
+++ b/unittest/Catch/projects/XCode/OCTest/OCTest.xcodeproj/project.xcworkspace/xcshareddata/OCTest.xccheckout
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>IDESourceControlProjectFavoriteDictionaryKey</key>
+ <false/>
+ <key>IDESourceControlProjectIdentifier</key>
+ <string>2F99C19E-ADF6-4D99-86C7-7A7830677E7D</string>
+ <key>IDESourceControlProjectName</key>
+ <string>OCTest</string>
+ <key>IDESourceControlProjectOriginsDictionary</key>
+ <dict>
+ <key>DE66138E-2FC7-4C1B-9901-82CBF6694223</key>
+ <string>ssh://github.com/philsquared/Catch.git</string>
+ </dict>
+ <key>IDESourceControlProjectPath</key>
+ <string>projects/XCode4/OCTest/OCTest.xcodeproj/project.xcworkspace</string>
+ <key>IDESourceControlProjectRelativeInstallPathDictionary</key>
+ <dict>
+ <key>DE66138E-2FC7-4C1B-9901-82CBF6694223</key>
+ <string>../../../../..</string>
+ </dict>
+ <key>IDESourceControlProjectURL</key>
+ <string>ssh://github.com/philsquared/Catch.git</string>
+ <key>IDESourceControlProjectVersion</key>
+ <integer>110</integer>
+ <key>IDESourceControlProjectWCCIdentifier</key>
+ <string>DE66138E-2FC7-4C1B-9901-82CBF6694223</string>
+ <key>IDESourceControlProjectWCConfigurations</key>
+ <array>
+ <dict>
+ <key>IDESourceControlRepositoryExtensionIdentifierKey</key>
+ <string>public.vcs.git</string>
+ <key>IDESourceControlWCCIdentifierKey</key>
+ <string>DE66138E-2FC7-4C1B-9901-82CBF6694223</string>
+ <key>IDESourceControlWCCName</key>
+ <string>Catch</string>
+ </dict>
+ </array>
+</dict>
+</plist>
diff --git a/unittest/Catch/projects/XCode/OCTest/OCTest/CatchOCTestCase.h b/unittest/Catch/projects/XCode/OCTest/OCTest/CatchOCTestCase.h
new file mode 100644
index 0000000..bd26239
--- /dev/null
+++ b/unittest/Catch/projects/XCode/OCTest/OCTest/CatchOCTestCase.h
@@ -0,0 +1,25 @@
+//
+// CatchOCTestCase.h
+// OCTest
+//
+// Created by Phil on 13/11/2010.
+// Copyright 2010 Two Blue Cubes Ltd. All rights reserved.
+//
+// Distributed under the Boost Software License, Version 1.0. (See accompanying
+// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+#ifndef TWOBLUECUBES_CATCHOCTESTCASE_H_INCLUDED
+#define TWOBLUECUBES_CATCHOCTESTCASE_H_INCLUDED
+
+#include "catch.hpp"
+
+#import <Cocoa/Cocoa.h>
+#import "TestObj.h"
+
+@interface TestFixture : NSObject <OcFixture>
+{
+ TestObj* obj;
+}
+
+@end
+
+#endif // TWOBLUECUBES_CATCHOCTESTCASE_H_INCLUDED
diff --git a/unittest/Catch/projects/XCode/OCTest/OCTest/CatchOCTestCase.mm b/unittest/Catch/projects/XCode/OCTest/OCTest/CatchOCTestCase.mm
new file mode 100644
index 0000000..fb20287
--- /dev/null
+++ b/unittest/Catch/projects/XCode/OCTest/OCTest/CatchOCTestCase.mm
@@ -0,0 +1,83 @@
+//
+// CatchOCTestCase.mm
+// OCTest
+//
+// Created by Phil Nash on 13/11/2010.
+// Copyright 2010 Two Blue Cubes Ltd. All rights reserved.
+//
+// Distributed under the Boost Software License, Version 1.0. (See accompanying
+// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+#import "CatchOCTestCase.h"
+
+
+@implementation TestFixture
+
+
+-(void) setUp
+{
+ obj = [[TestObj alloc] init];
+}
+
+-(void) tearDown
+{
+ arcSafeRelease( obj );
+}
+
+OC_TEST_CASE( "OCTest/test1", "This is a test case" )
+{
+ REQUIRE( obj.int_val == 0 );
+
+ obj.int_val = 1;
+
+ REQUIRE( obj.int_val == 1 );
+}
+
+OC_TEST_CASE( "OCTest/test2", "This is another test case" )
+{
+ REQUIRE( obj.int_val == 0 );
+
+ obj.int_val = 2;
+
+ REQUIRE( obj.int_val == 2 );
+}
+
+OC_TEST_CASE( "OCTest/BOOL", "tests a boolean value" )
+{
+ CHECK( [obj isTrue] == NO );
+ CHECK( [obj isFalse] == YES );
+}
+
+OC_TEST_CASE( "OCTest/throws/objc", "throws an Objective-C exception" )
+{
+ @throw [[NSException alloc] initWithName: NSGenericException
+ reason: @"Objective-C exception"
+ userInfo: nil];
+}
+OC_TEST_CASE( "OCTest/throws/stdc++", "throws a std c++ exception" )
+{
+ throw std::domain_error( "std C++ exception" );
+}
+
+///////////////////////////////////////////////////////////////////////////
+template<typename T>
+void useObject( const T& object ){}
+
+template<typename T>
+void useObject( const T* object ){}
+
+OC_TEST_CASE( "OCTest/matchers", "Matches work with OC types (NSString so far)" )
+{
+ REQUIRE_THAT( @"This is a string", Equals( @"This isnt a string" ) );
+ REQUIRE_THAT( @"This is a string", Contains( @"is a" ) );
+ REQUIRE_THAT( @"This is a string", StartsWith( @"This" ) );
+ REQUIRE_THAT( @"This is a string", EndsWith( @"string" ) );
+}
+
+OC_TEST_CASE( "OCTest/matchers/nil", "nil NSString should not crash the test" )
+{
+ CHECK_THAT( (NSString*)nil, Equals( @"This should fail, but not crash" ) );
+ CHECK_THAT( (NSString*)nil, StartsWith( @"anything" ) );
+}
+
+@end
diff --git a/unittest/Catch/projects/XCode/OCTest/OCTest/Main.mm b/unittest/Catch/projects/XCode/OCTest/OCTest/Main.mm
new file mode 100644
index 0000000..569dc4d
--- /dev/null
+++ b/unittest/Catch/projects/XCode/OCTest/OCTest/Main.mm
@@ -0,0 +1,2 @@
+#define CATCH_CONFIG_MAIN
+#import "catch.hpp"
diff --git a/unittest/Catch/projects/XCode/OCTest/OCTest/OCTest.1 b/unittest/Catch/projects/XCode/OCTest/OCTest/OCTest.1
new file mode 100644
index 0000000..7915d02
--- /dev/null
+++ b/unittest/Catch/projects/XCode/OCTest/OCTest/OCTest.1
@@ -0,0 +1,79 @@
+.\"Modified from man(1) of FreeBSD, the NetBSD mdoc.template, and mdoc.samples.
+.\"See Also:
+.\"man mdoc.samples for a complete listing of options
+.\"man mdoc for the short list of editing options
+.\"/usr/share/misc/mdoc.template
+.Dd 09/02/2012 \" DATE
+.Dt OCTest 1 \" Program name and manual section number
+.Os Darwin
+.Sh NAME \" Section Header - required - don't modify
+.Nm OCTest,
+.\" The following lines are read in generating the apropos(man -k) database. Use only key
+.\" words here as the database is built based on the words here and in the .ND line.
+.Nm Other_name_for_same_program(),
+.Nm Yet another name for the same program.
+.\" Use .Nm macro to designate other names for the documented program.
+.Nd This line parsed for whatis database.
+.Sh SYNOPSIS \" Section Header - required - don't modify
+.Nm
+.Op Fl abcd \" [-abcd]
+.Op Fl a Ar path \" [-a path]
+.Op Ar file \" [file]
+.Op Ar \" [file ...]
+.Ar arg0 \" Underlined argument - use .Ar anywhere to underline
+arg2 ... \" Arguments
+.Sh DESCRIPTION \" Section Header - required - don't modify
+Use the .Nm macro to refer to your program throughout the man page like such:
+.Nm
+Underlining is accomplished with the .Ar macro like this:
+.Ar underlined text .
+.Pp \" Inserts a space
+A list of items with descriptions:
+.Bl -tag -width -indent \" Begins a tagged list
+.It item a \" Each item preceded by .It macro
+Description of item a
+.It item b
+Description of item b
+.El \" Ends the list
+.Pp
+A list of flags and their descriptions:
+.Bl -tag -width -indent \" Differs from above in tag removed
+.It Fl a \"-a flag as a list item
+Description of -a flag
+.It Fl b
+Description of -b flag
+.El \" Ends the list
+.Pp
+.\" .Sh ENVIRONMENT \" May not be needed
+.\" .Bl -tag -width "ENV_VAR_1" -indent \" ENV_VAR_1 is width of the string ENV_VAR_1
+.\" .It Ev ENV_VAR_1
+.\" Description of ENV_VAR_1
+.\" .It Ev ENV_VAR_2
+.\" Description of ENV_VAR_2
+.\" .El
+.Sh FILES \" File used or created by the topic of the man page
+.Bl -tag -width "/Users/joeuser/Library/really_long_file_name" -compact
+.It Pa /usr/share/file_name
+FILE_1 description
+.It Pa /Users/joeuser/Library/really_long_file_name
+FILE_2 description
+.El \" Ends the list
+.\" .Sh DIAGNOSTICS \" May not be needed
+.\" .Bl -diag
+.\" .It Diagnostic Tag
+.\" Diagnostic informtion here.
+.\" .It Diagnostic Tag
+.\" Diagnostic informtion here.
+.\" .El
+.Sh SEE ALSO
+.\" List links in ascending order by section, alphabetically within a section.
+.\" Please do not reference files that do not exist without filing a bug report
+.Xr a 1 ,
+.Xr b 1 ,
+.Xr c 1 ,
+.Xr a 2 ,
+.Xr b 2 ,
+.Xr a 3 ,
+.Xr b 3
+.\" .Sh BUGS \" Document known, unremedied bugs
+.\" .Sh HISTORY \" Document history if command behaves in a unique manner \ No newline at end of file
diff --git a/unittest/Catch/projects/XCode/OCTest/OCTest/OCTest.mm b/unittest/Catch/projects/XCode/OCTest/OCTest/OCTest.mm
new file mode 100644
index 0000000..bfb2ca2
--- /dev/null
+++ b/unittest/Catch/projects/XCode/OCTest/OCTest/OCTest.mm
@@ -0,0 +1,28 @@
+/*
+ * OCTest.mm
+ * OCTest
+ *
+ * Created by Phil on 13/11/2010.
+ * Copyright 2010 Two Blue Cubes Ltd. All rights reserved.
+ *
+ * Distributed under the Boost Software License, Version 1.0. (See accompanying
+ * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ *
+ */
+
+#import "catch.hpp"
+
+#import "TestObj.h"
+
+TEST_CASE( "OCTest/TestObj", "tests TestObj" )
+{
+ TestObj* obj = [[TestObj alloc] init];
+
+ REQUIRE( obj.int_val == 0 );
+
+ obj.int_val = 1;
+
+ REQUIRE( obj.int_val == 1 );
+
+ arcSafeRelease( obj );
+}
diff --git a/unittest/Catch/projects/XCode/OCTest/OCTest/TestObj.h b/unittest/Catch/projects/XCode/OCTest/OCTest/TestObj.h
new file mode 100644
index 0000000..8443921
--- /dev/null
+++ b/unittest/Catch/projects/XCode/OCTest/OCTest/TestObj.h
@@ -0,0 +1,28 @@
+//
+// TestObj.h
+// OCTest
+//
+// Created by Phil on 13/11/2010.
+// Copyright 2010 Two Blue Cubes Ltd. All rights reserved.
+//
+// Distributed under the Boost Software License, Version 1.0. (See accompanying
+// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+#ifndef TWOBLUECUBES_TESTOBJ_H_INCLUDED
+#define TWOBLUECUBES_TESTOBJ_H_INCLUDED
+
+#import <Foundation/Foundation.h>
+
+
+@interface TestObj : NSObject {
+
+ int int_val;
+}
+
+-(BOOL) isTrue;
+-(BOOL) isFalse;
+
+@property (nonatomic, assign ) int int_val;
+
+@end
+
+#endif // TWOBLUECUBES_TESTOBJ_H_INCLUDED
diff --git a/unittest/Catch/projects/XCode/OCTest/OCTest/TestObj.m b/unittest/Catch/projects/XCode/OCTest/OCTest/TestObj.m
new file mode 100644
index 0000000..2c7dc99
--- /dev/null
+++ b/unittest/Catch/projects/XCode/OCTest/OCTest/TestObj.m
@@ -0,0 +1,25 @@
+//
+// TestObj.m
+// OCTest
+//
+// Created by Phil on 13/11/2010.
+// Copyright 2010 Two Blue Cubes Ltd. All rights reserved.
+//
+// Distributed under the Boost Software License, Version 1.0. (See accompanying
+// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+#import "TestObj.h"
+
+
+@implementation TestObj
+
+@synthesize int_val;
+
+-(BOOL) isTrue {
+ return YES;
+}
+-(BOOL) isFalse {
+ return NO;
+}
+
+@end