diff --git a/External/OCHamcrest.framework/Headers b/External/OCHamcrest.framework/Headers
deleted file mode 120000
index a177d2a6b..000000000
--- a/External/OCHamcrest.framework/Headers
+++ /dev/null
@@ -1 +0,0 @@
-Versions/Current/Headers
\ No newline at end of file
diff --git a/External/OCHamcrest.framework/OCHamcrest b/External/OCHamcrest.framework/OCHamcrest
deleted file mode 120000
index 7d4d801eb..000000000
--- a/External/OCHamcrest.framework/OCHamcrest
+++ /dev/null
@@ -1 +0,0 @@
-Versions/Current/OCHamcrest
\ No newline at end of file
diff --git a/External/OCHamcrest.framework/Resources b/External/OCHamcrest.framework/Resources
deleted file mode 120000
index 953ee36f3..000000000
--- a/External/OCHamcrest.framework/Resources
+++ /dev/null
@@ -1 +0,0 @@
-Versions/Current/Resources
\ No newline at end of file
diff --git a/External/OCHamcrest.framework/Versions/A/OCHamcrest b/External/OCHamcrest.framework/Versions/A/OCHamcrest
deleted file mode 100755
index 9f006d946..000000000
Binary files a/External/OCHamcrest.framework/Versions/A/OCHamcrest and /dev/null differ
diff --git a/External/OCHamcrest.framework/Versions/A/Resources/Info.plist b/External/OCHamcrest.framework/Versions/A/Resources/Info.plist
deleted file mode 100644
index a3bd3b3b4..000000000
--- a/External/OCHamcrest.framework/Versions/A/Resources/Info.plist
+++ /dev/null
@@ -1,42 +0,0 @@
-
-
-
-
- BuildMachineOSBuild
- 12C60
- CFBundleDevelopmentRegion
- English
- CFBundleExecutable
- OCHamcrest
- CFBundleIdentifier
- org.hamcrest.OCHamcrest
- CFBundleInfoDictionaryVersion
- 6.0
- CFBundleName
- OCHamcrest
- CFBundlePackageType
- FMWK
- CFBundleShortVersionString
- 1.9
- CFBundleSignature
- ????
- CFBundleVersion
- 1.9
- DTCompiler
-
- DTPlatformBuild
- 4G2008a
- DTPlatformVersion
- GM
- DTSDKBuild
- 12C37
- DTSDKName
- macosx10.8
- DTXcode
- 0452
- DTXcodeBuild
- 4G2008a
- NSHumanReadableCopyright
- Copyright © 2012 hamcrest.org
-
-
diff --git a/External/OCHamcrest.framework/Versions/Current b/External/OCHamcrest.framework/Versions/Current
deleted file mode 120000
index 8c7e5a667..000000000
--- a/External/OCHamcrest.framework/Versions/Current
+++ /dev/null
@@ -1 +0,0 @@
-A
\ No newline at end of file
diff --git a/External/OCMockito.framework/OCMockito b/External/OCMockito.framework/OCMockito
deleted file mode 100755
index 496169864..000000000
Binary files a/External/OCMockito.framework/OCMockito and /dev/null differ
diff --git a/External/OCMockito.framework/Resources/Info.plist b/External/OCMockito.framework/Resources/Info.plist
deleted file mode 100644
index c0e01b00d..000000000
--- a/External/OCMockito.framework/Resources/Info.plist
+++ /dev/null
@@ -1,42 +0,0 @@
-
-
-
-
- BuildMachineOSBuild
- 12C60
- CFBundleDevelopmentRegion
- English
- CFBundleExecutable
- OCMockito
- CFBundleIdentifier
- org.mockito.OCMockito
- CFBundleInfoDictionaryVersion
- 6.0
- CFBundleName
- OCMockito
- CFBundlePackageType
- FMWK
- CFBundleShortVersionString
- 0.23
- CFBundleSignature
- ????
- CFBundleVersion
- 1
- DTCompiler
-
- DTPlatformBuild
- 4G2008a
- DTPlatformVersion
- GM
- DTSDKBuild
- 12C37
- DTSDKName
- macosx10.8
- DTXcode
- 0452
- DTXcodeBuild
- 4G2008a
- NSHumanReadableCopyright
- Copyright © 2012 Jonathan M. Reid
-
-
diff --git a/External/OCMockito.framework/Versions/A/Headers/MKTClassObjectMock.h b/External/OCMockito.framework/Versions/A/Headers/MKTClassObjectMock.h
deleted file mode 100644
index 1e5df26de..000000000
--- a/External/OCMockito.framework/Versions/A/Headers/MKTClassObjectMock.h
+++ /dev/null
@@ -1,22 +0,0 @@
-//
-// OCMockito - MKTClassObjectMock.h
-// Copyright 2012 Jonathan M. Reid. See LICENSE.txt
-//
-// Created by: Jon Reid, http://qualitycoding.org/
-// Source: https://github.com/jonreid/OCMockito
-//
-// Created by: David Hart
-//
-
-#import "MKTBaseMockObject.h"
-
-
-/**
- Mock object of a given class object.
- */
-@interface MKTClassObjectMock : MKTBaseMockObject
-
-+ (id)mockForClass:(Class)aClass;
-- (id)initWithClass:(Class)aClass;
-
-@end
diff --git a/External/OCMockito.framework/Versions/A/Headers/MKTObjectAndProtocolMock.h b/External/OCMockito.framework/Versions/A/Headers/MKTObjectAndProtocolMock.h
deleted file mode 100644
index 298906072..000000000
--- a/External/OCMockito.framework/Versions/A/Headers/MKTObjectAndProtocolMock.h
+++ /dev/null
@@ -1,20 +0,0 @@
-//
-// OCMockito - MKTObjectAndProtocolMock.h
-// Copyright 2012 Jonathan M. Reid. See LICENSE.txt
-//
-// Created by: Kevin Lundberg
-// Source: https://github.com/jonreid/OCMockito
-//
-
-#import "MKTProtocolMock.h"
-
-
-/**
- Mock object of a given class that also implements a given protocol.
- */
-@interface MKTObjectAndProtocolMock : MKTProtocolMock
-
-+ (id)mockForClass:(Class)aClass protocol:(Protocol *)protocol;
-- (id)initWithClass:(Class)aClass protocol:(Protocol *)protocol;
-
-@end
diff --git a/External/OCMockito.framework/Versions/A/Headers/MKTObjectMock.h b/External/OCMockito.framework/Versions/A/Headers/MKTObjectMock.h
deleted file mode 100644
index e8dfd7dc7..000000000
--- a/External/OCMockito.framework/Versions/A/Headers/MKTObjectMock.h
+++ /dev/null
@@ -1,20 +0,0 @@
-//
-// OCMockito - MKTObjectMock.h
-// Copyright 2012 Jonathan M. Reid. See LICENSE.txt
-//
-// Created by: Jon Reid, http://qualitycoding.org/
-// Source: https://github.com/jonreid/OCMockito
-//
-
-#import "MKTBaseMockObject.h"
-
-
-/**
- Mock object of a given class.
- */
-@interface MKTObjectMock : MKTBaseMockObject
-
-+ (id)mockForClass:(Class)aClass;
-- (id)initWithClass:(Class)aClass;
-
-@end
diff --git a/External/OCMockito.framework/Versions/A/Headers/MKTOngoingStubbing.h b/External/OCMockito.framework/Versions/A/Headers/MKTOngoingStubbing.h
deleted file mode 100644
index 7aa1cb7fd..000000000
--- a/External/OCMockito.framework/Versions/A/Headers/MKTOngoingStubbing.h
+++ /dev/null
@@ -1,70 +0,0 @@
-//
-// OCMockito - MKTOngoingStubbing.h
-// Copyright 2012 Jonathan M. Reid. See LICENSE.txt
-//
-// Created by: Jon Reid, http://qualitycoding.org/
-// Source: https://github.com/jonreid/OCMockito
-//
-
-#import
-#import "MKTPrimitiveArgumentMatching.h"
-
-@class MKTInvocationContainer;
-
-
-/**
- Methods to invoke on @c given(methodCall) to return stubbed values.
- */
-@interface MKTOngoingStubbing : NSObject
-
-- (id)initWithInvocationContainer:(MKTInvocationContainer *)invocationContainer;
-
-/// Stubs given object as return value.
-- (MKTOngoingStubbing *)willReturn:(id)object;
-
-/// Stubs given @c BOOL as return value.
-- (MKTOngoingStubbing *)willReturnBool:(BOOL)value;
-
-/// Stubs given @c char as return value.
-- (MKTOngoingStubbing *)willReturnChar:(char)value;
-
-/// Stubs given @c int as return value.
-- (MKTOngoingStubbing *)willReturnInt:(int)value;
-
-/// Stubs given @c short as return value.
-- (MKTOngoingStubbing *)willReturnShort:(short)value;
-
-/// Stubs given @c long as return value.
-- (MKTOngoingStubbing *)willReturnLong:(long)value;
-
-/// Stubs given long long
as return value.
-- (MKTOngoingStubbing *)willReturnLongLong:(long long)value;
-
-/// Stubs given @c NSInteger as return value.
-- (MKTOngoingStubbing *)willReturnInteger:(NSInteger)value;
-
-/// Stubs given unsigned char
as return value.
-- (MKTOngoingStubbing *)willReturnUnsignedChar:(unsigned char)value;
-
-/// Stubs given unsigned int
as return value.
-- (MKTOngoingStubbing *)willReturnUnsignedInt:(unsigned int)value;
-
-/// Stubs given unsigned short
as return value.
-- (MKTOngoingStubbing *)willReturnUnsignedShort:(unsigned short)value;
-
-/// Stubs given unsigned long
as return value.
-- (MKTOngoingStubbing *)willReturnUnsignedLong:(unsigned long)value;
-
-/// Stubs given unsigned long long
as return value.
-- (MKTOngoingStubbing *)willReturnUnsignedLongLong:(unsigned long long)value;
-
-/// Stubs given @c NSUInteger as return value.
-- (MKTOngoingStubbing *)willReturnUnsignedInteger:(NSUInteger)value;
-
-/// Stubs given @c float as return value.
-- (MKTOngoingStubbing *)willReturnFloat:(float)value;
-
-/// Stubs given @c double as return value.
-- (MKTOngoingStubbing *)willReturnDouble:(double)value;
-
-@end
diff --git a/External/OCMockito.framework/Versions/A/Headers/MKTPrimitiveArgumentMatching.h b/External/OCMockito.framework/Versions/A/Headers/MKTPrimitiveArgumentMatching.h
deleted file mode 100644
index e3684c72d..000000000
--- a/External/OCMockito.framework/Versions/A/Headers/MKTPrimitiveArgumentMatching.h
+++ /dev/null
@@ -1,50 +0,0 @@
-//
-// OCMockito - MKTPrimitiveArgumentMatching.h
-// Copyright 2012 Jonathan M. Reid. See LICENSE.txt
-//
-// Created by: Jon Reid, http://qualitycoding.org/
-// Source: https://github.com/jonreid/OCMockito
-//
-
-@protocol HCMatcher;
-
-
-/**
- Ability to specify OCHamcrest matchers for primitive numeric arguments.
- */
-@protocol MKTPrimitiveArgumentMatching
-
-/**
- Specifies OCHamcrest matcher for a specific argument of a method.
-
- For methods arguments that take objects, just pass the matcher directly as a method call. But
- for arguments that take primitive numeric types, call this to specify the matcher before passing
- in a dummy value. Upon verification, the actual numeric argument received will be converted to
- an NSNumber before being checked by the matcher.
-
- The argument index is 0-based, so the first argument of a method has index 0.
-
- Example:
-@code
-[[verify(mockArray) withMatcher:greaterThan([NSNumber numberWithInt:1]) forArgument:0]
- removeObjectAtIndex:0];
-@endcode
- This verifies that @c removeObjectAtIndex: was called with a number greater than 1.
- */
-- (id)withMatcher:(id )matcher forArgument:(NSUInteger)index;
-
-/**
- Specifies OCHamcrest matcher for the first argument of a method.
-
- Equivalent to withMatcher:matcher forArgument:0
.
-
- Example:
-@code
-[[verify(mockArray) withMatcher:greaterThan([NSNumber numberWithInt:1]) forArgument:0]
- removeObjectAtIndex:0];
-@endcode
- This verifies that @c removeObjectAtIndex: was called with a number greater than 1.
-*/
-- (id)withMatcher:(id )matcher;
-
-@end
diff --git a/External/OCMockito.framework/Versions/A/Headers/MKTProtocolMock.h b/External/OCMockito.framework/Versions/A/Headers/MKTProtocolMock.h
deleted file mode 100644
index 45a8e388e..000000000
--- a/External/OCMockito.framework/Versions/A/Headers/MKTProtocolMock.h
+++ /dev/null
@@ -1,20 +0,0 @@
-//
-// OCMockito - MKTProtocolMock.h
-// Copyright 2012 Jonathan M. Reid. See LICENSE.txt
-//
-// Created by: Jon Reid, http://qualitycoding.org/
-// Source: https://github.com/jonreid/OCMockito
-//
-
-#import "MKTBaseMockObject.h"
-
-
-/**
- Mock object implementing a given protocol.
- */
-@interface MKTProtocolMock : MKTBaseMockObject
-
-+ (id)mockForProtocol:(Protocol *)aProtocol;
-- (id)initWithProtocol:(Protocol *)aProtocol;
-
-@end
diff --git a/External/OCMockito.framework/Versions/A/Headers/OCMockito.h b/External/OCMockito.framework/Versions/A/Headers/OCMockito.h
deleted file mode 100644
index 7072b09d7..000000000
--- a/External/OCMockito.framework/Versions/A/Headers/OCMockito.h
+++ /dev/null
@@ -1,221 +0,0 @@
-//
-// OCMockito - OCMockito.h
-// Copyright 2012 Jonathan M. Reid. See LICENSE.txt
-//
-// Created by: Jon Reid, http://qualitycoding.org/
-// Source: https://github.com/jonreid/OCMockito
-//
-
-#import
-
-#import "MKTClassObjectMock.h"
-#import "MKTObjectMock.h"
-#import "MKTObjectAndProtocolMock.h"
-#import "MKTOngoingStubbing.h"
-#import "MKTProtocolMock.h"
-#import
-
-
-#define MKTMock(aClass) [MKTObjectMock mockForClass:aClass]
-
-/**
- Returns a mock object of a given class.
-
- (In the event of a name clash, don't \#define @c MOCKITO_SHORTHAND and use the synonym
- @c MKTMock instead.)
- */
-#ifdef MOCKITO_SHORTHAND
- #define mock(aClass) MKTMock(aClass)
-#endif
-
-
-#define MKTMockClass(aClass) [MKTClassObjectMock mockForClass:aClass]
-
-/**
- Returns a mock class object of a given class.
-
- (In the event of a name clash, don't \#define @c MOCKITO_SHORTHAND and use the synonym
- @c MKTMockClass instead.)
- */
-#ifdef MOCKITO_SHORTHAND
- #define mockClass(aClass) MKTMockClass(aClass)
-#endif
-
-
-#define MKTMockProtocol(aProtocol) [MKTProtocolMock mockForProtocol:aProtocol]
-
-/**
- Returns a mock object implementing a given protocol.
-
- (In the event of a name clash, don't \#define @c MOCKITO_SHORTHAND and use the synonym
- @c MKTMockProtocol instead.)
- */
-#ifdef MOCKITO_SHORTHAND
- #define mockProtocol(aProtocol) MKTMockProtocol(aProtocol)
-#endif
-
-
-#define MKTMockObjectAndProtocol(aClass, aProtocol) [MKTObjectAndProtocolMock mockForClass:aClass protocol:aProtocol]
-
-/**
- Returns a mock object of a given class that also implements a given protocol.
-
- (In the event of a name clash, don't \#define @c MOCKITO_SHORTHAND and use the synonym
- @c MKTMockObjectAndProtocol instead.)
- */
-#ifdef MOCKITO_SHORTHAND
- #define mockObjectAndProtocol(aClass, aProtocol) MKTMockObjectAndProtocol(aClass, aProtocol)
-#endif
-
-OBJC_EXPORT MKTOngoingStubbing *MKTGivenWithLocation(id testCase, const char *fileName, int lineNumber, ...);
-
-
-#define MKTGiven(methodCall) MKTGivenWithLocation(self, __FILE__, __LINE__, methodCall)
-
-/**
- Enables method stubbing.
-
- Use @c given when you want the mock to return particular value when particular method is called.
-
- Example:
- @li @ref [given([mockObject methodReturningString]) willReturn:@"foo"];
-
- See @ref MKTOngoingStubbing for other methods to stub different types of return values.
-
- (In the event of a name clash, don't \#define @c MOCKITO_SHORTHAND and use the synonym
- @c MKTGiven instead.)
- */
-#ifdef MOCKITO_SHORTHAND
- #define given(methodCall) MKTGiven(methodCall)
-#endif
-
-
-OBJC_EXPORT id MKTVerifyWithLocation(id mock, id testCase, const char *fileName, int lineNumber);
-
-#define MKTVerify(mock) MKTVerifyWithLocation(mock, self, __FILE__, __LINE__)
-
-/**
- Verifies certain behavior happened once.
-
- @c verify checks that a method was invoked once, with arguments that match given OCHamcrest
- matchers. If an argument is not a matcher, it is implicitly wrapped in an @c equalTo matcher to
- check for equality.
-
- Examples:
-@code
-[verify(mockObject) someMethod:startsWith(@"foo")];
-[verify(mockObject) someMethod:@"bar"];
-@endcode
-
- @c verify(mockObject) is equivalent to
-@code
-verifyCount(mockObject, times(1))
-@endcode
-
- (In the event of a name clash, don't \#define @c MOCKITO_SHORTHAND and use the synonym
- @c MKTVerify instead.)
- */
-#ifdef MOCKITO_SHORTHAND
- #undef verify
- #define verify(mock) MKTVerify(mock)
-#endif
-
-
-OBJC_EXPORT id MKTVerifyCountWithLocation(id mock, id mode, id testCase, const char *fileName, int lineNumber);
-
-#define MKTVerifyCount(mock, mode) MKTVerifyCountWithLocation(mock, mode, self, __FILE__, __LINE__)
-
-/**
- Verifies certain behavior happened a given number of times.
-
- Examples:
-@code
-[verifyCount(mockObject, times(5)) someMethod:@"was called five times"];
-[verifyCount(mockObject, never()) someMethod:@"was never called"];
-@endcode
-
- @c verifyCount checks that a method was invoked a given number of times, with arguments that
- match given OCHamcrest matchers. If an argument is not a matcher, it is implicitly wrapped in an
- @c equalTo matcher to check for equality.
-
- (In the event of a name clash, don't \#define @c MOCKITO_SHORTHAND and use the synonym
- @c MKTVerifyCount instead.)
- */
-#ifdef MOCKITO_SHORTHAND
- #define verifyCount(mock, mode) MKTVerifyCount(mock, mode)
-#endif
-
-
-OBJC_EXPORT id MKTTimes(NSUInteger wantedNumberOfInvocations);
-
-/**
- Verifies exact number of invocations.
-
- Example:
-@code
-[verifyCount(mockObject, times(2)) someMethod:@"some arg"];
-@endcode
-
- (In the event of a name clash, don't \#define @c MOCKITO_SHORTHAND and use the synonym
- @c MKTTimes instead.)
- */
-#ifdef MOCKITO_SHORTHAND
- #define times(wantedNumberOfInvocations) MKTTimes(wantedNumberOfInvocations)
-#endif
-
-
-OBJC_EXPORT id MKTNever(void);
-
-/**
- Verifies that interaction did not happen.
-
- Example:
- @code
- [verifyCount(mockObject, never()) someMethod:@"some arg"];
- @endcode
-
- (In the event of a name clash, don't \#define @c MOCKITO_SHORTHAND and use the synonym
- @c MKTNever instead.)
- */
-#ifdef MOCKITO_SHORTHAND
- #define never() MKTNever()
-#endif
-
-
-OBJC_EXPORT id MKTAtLeast(NSUInteger minimumWantedNumberOfInvocations);
-
-/**
- Verifies minimum number of invocations.
-
- The verification will succeed if the specified invocation happened the number of times
- specified or more.
-
- Example:
-@code
-[verifyCount(mockObject, atLeast(2)) someMethod:@"some arg"];
-@endcode
-
- (In the event of a name clash, don't \#define @c MOCKITO_SHORTHAND and use the synonym
- @c MKTAtLeast instead.)
- */
-#ifdef MOCKITO_SHORTHAND
- #define atLeast(minimumWantedNumberOfInvocations) MKTAtLeast(minimumWantedNumberOfInvocations)
-#endif
-
-
-OBJC_EXPORT id MKTAtLeastOnce(void);
-
-/**
- Verifies that interaction happened once or more.
-
- Example:
-@code
-[verifyCount(mockObject, atLeastOnce()) someMethod:@"some arg"];
-@endcode
-
- (In the event of a name clash, don't \#define @c MOCKITO_SHORTHAND and use the synonym
- @c MKTAtLeastOnce instead.)
- */
-#ifdef MOCKITO_SHORTHAND
- #define atLeastOnce() MKTAtLeastOnce()
-#endif
diff --git a/External/OCMockito.framework/Versions/A/OCMockito b/External/OCMockito.framework/Versions/A/OCMockito
deleted file mode 100755
index 496169864..000000000
Binary files a/External/OCMockito.framework/Versions/A/OCMockito and /dev/null differ
diff --git a/External/OCMockito.framework/Versions/A/Resources/Info.plist b/External/OCMockito.framework/Versions/A/Resources/Info.plist
deleted file mode 100644
index c0e01b00d..000000000
--- a/External/OCMockito.framework/Versions/A/Resources/Info.plist
+++ /dev/null
@@ -1,42 +0,0 @@
-
-
-
-
- BuildMachineOSBuild
- 12C60
- CFBundleDevelopmentRegion
- English
- CFBundleExecutable
- OCMockito
- CFBundleIdentifier
- org.mockito.OCMockito
- CFBundleInfoDictionaryVersion
- 6.0
- CFBundleName
- OCMockito
- CFBundlePackageType
- FMWK
- CFBundleShortVersionString
- 0.23
- CFBundleSignature
- ????
- CFBundleVersion
- 1
- DTCompiler
-
- DTPlatformBuild
- 4G2008a
- DTPlatformVersion
- GM
- DTSDKBuild
- 12C37
- DTSDKName
- macosx10.8
- DTXcode
- 0452
- DTXcodeBuild
- 4G2008a
- NSHumanReadableCopyright
- Copyright © 2012 Jonathan M. Reid
-
-
diff --git a/External/OCMockito.framework/Versions/Current/Headers/MKTBaseMockObject.h b/External/OCMockito.framework/Versions/Current/Headers/MKTBaseMockObject.h
deleted file mode 100644
index 5a3e35d03..000000000
--- a/External/OCMockito.framework/Versions/Current/Headers/MKTBaseMockObject.h
+++ /dev/null
@@ -1,17 +0,0 @@
-//
-// OCMockito - MKTBaseMockObject.h
-// Copyright 2012 Jonathan M. Reid. See LICENSE.txt
-//
-// Created by: Jon Reid, http://qualitycoding.org/
-// Source: https://github.com/jonreid/OCMockito
-//
-
-#import
-#import "MKTPrimitiveArgumentMatching.h"
-
-
-@interface MKTBaseMockObject : NSProxy
-
-- (id)init;
-
-@end
diff --git a/External/OCMockito.framework/Versions/Current/Headers/MKTClassObjectMock.h b/External/OCMockito.framework/Versions/Current/Headers/MKTClassObjectMock.h
deleted file mode 100644
index 1e5df26de..000000000
--- a/External/OCMockito.framework/Versions/Current/Headers/MKTClassObjectMock.h
+++ /dev/null
@@ -1,22 +0,0 @@
-//
-// OCMockito - MKTClassObjectMock.h
-// Copyright 2012 Jonathan M. Reid. See LICENSE.txt
-//
-// Created by: Jon Reid, http://qualitycoding.org/
-// Source: https://github.com/jonreid/OCMockito
-//
-// Created by: David Hart
-//
-
-#import "MKTBaseMockObject.h"
-
-
-/**
- Mock object of a given class object.
- */
-@interface MKTClassObjectMock : MKTBaseMockObject
-
-+ (id)mockForClass:(Class)aClass;
-- (id)initWithClass:(Class)aClass;
-
-@end
diff --git a/External/OCMockito.framework/Versions/Current/Headers/MKTObjectAndProtocolMock.h b/External/OCMockito.framework/Versions/Current/Headers/MKTObjectAndProtocolMock.h
deleted file mode 100644
index 298906072..000000000
--- a/External/OCMockito.framework/Versions/Current/Headers/MKTObjectAndProtocolMock.h
+++ /dev/null
@@ -1,20 +0,0 @@
-//
-// OCMockito - MKTObjectAndProtocolMock.h
-// Copyright 2012 Jonathan M. Reid. See LICENSE.txt
-//
-// Created by: Kevin Lundberg
-// Source: https://github.com/jonreid/OCMockito
-//
-
-#import "MKTProtocolMock.h"
-
-
-/**
- Mock object of a given class that also implements a given protocol.
- */
-@interface MKTObjectAndProtocolMock : MKTProtocolMock
-
-+ (id)mockForClass:(Class)aClass protocol:(Protocol *)protocol;
-- (id)initWithClass:(Class)aClass protocol:(Protocol *)protocol;
-
-@end
diff --git a/External/OCMockito.framework/Versions/Current/Headers/MKTObjectMock.h b/External/OCMockito.framework/Versions/Current/Headers/MKTObjectMock.h
deleted file mode 100644
index e8dfd7dc7..000000000
--- a/External/OCMockito.framework/Versions/Current/Headers/MKTObjectMock.h
+++ /dev/null
@@ -1,20 +0,0 @@
-//
-// OCMockito - MKTObjectMock.h
-// Copyright 2012 Jonathan M. Reid. See LICENSE.txt
-//
-// Created by: Jon Reid, http://qualitycoding.org/
-// Source: https://github.com/jonreid/OCMockito
-//
-
-#import "MKTBaseMockObject.h"
-
-
-/**
- Mock object of a given class.
- */
-@interface MKTObjectMock : MKTBaseMockObject
-
-+ (id)mockForClass:(Class)aClass;
-- (id)initWithClass:(Class)aClass;
-
-@end
diff --git a/External/OCMockito.framework/Versions/Current/Headers/MKTOngoingStubbing.h b/External/OCMockito.framework/Versions/Current/Headers/MKTOngoingStubbing.h
deleted file mode 100644
index 7aa1cb7fd..000000000
--- a/External/OCMockito.framework/Versions/Current/Headers/MKTOngoingStubbing.h
+++ /dev/null
@@ -1,70 +0,0 @@
-//
-// OCMockito - MKTOngoingStubbing.h
-// Copyright 2012 Jonathan M. Reid. See LICENSE.txt
-//
-// Created by: Jon Reid, http://qualitycoding.org/
-// Source: https://github.com/jonreid/OCMockito
-//
-
-#import
-#import "MKTPrimitiveArgumentMatching.h"
-
-@class MKTInvocationContainer;
-
-
-/**
- Methods to invoke on @c given(methodCall) to return stubbed values.
- */
-@interface MKTOngoingStubbing : NSObject
-
-- (id)initWithInvocationContainer:(MKTInvocationContainer *)invocationContainer;
-
-/// Stubs given object as return value.
-- (MKTOngoingStubbing *)willReturn:(id)object;
-
-/// Stubs given @c BOOL as return value.
-- (MKTOngoingStubbing *)willReturnBool:(BOOL)value;
-
-/// Stubs given @c char as return value.
-- (MKTOngoingStubbing *)willReturnChar:(char)value;
-
-/// Stubs given @c int as return value.
-- (MKTOngoingStubbing *)willReturnInt:(int)value;
-
-/// Stubs given @c short as return value.
-- (MKTOngoingStubbing *)willReturnShort:(short)value;
-
-/// Stubs given @c long as return value.
-- (MKTOngoingStubbing *)willReturnLong:(long)value;
-
-/// Stubs given long long
as return value.
-- (MKTOngoingStubbing *)willReturnLongLong:(long long)value;
-
-/// Stubs given @c NSInteger as return value.
-- (MKTOngoingStubbing *)willReturnInteger:(NSInteger)value;
-
-/// Stubs given unsigned char
as return value.
-- (MKTOngoingStubbing *)willReturnUnsignedChar:(unsigned char)value;
-
-/// Stubs given unsigned int
as return value.
-- (MKTOngoingStubbing *)willReturnUnsignedInt:(unsigned int)value;
-
-/// Stubs given unsigned short
as return value.
-- (MKTOngoingStubbing *)willReturnUnsignedShort:(unsigned short)value;
-
-/// Stubs given unsigned long
as return value.
-- (MKTOngoingStubbing *)willReturnUnsignedLong:(unsigned long)value;
-
-/// Stubs given unsigned long long
as return value.
-- (MKTOngoingStubbing *)willReturnUnsignedLongLong:(unsigned long long)value;
-
-/// Stubs given @c NSUInteger as return value.
-- (MKTOngoingStubbing *)willReturnUnsignedInteger:(NSUInteger)value;
-
-/// Stubs given @c float as return value.
-- (MKTOngoingStubbing *)willReturnFloat:(float)value;
-
-/// Stubs given @c double as return value.
-- (MKTOngoingStubbing *)willReturnDouble:(double)value;
-
-@end
diff --git a/External/OCMockito.framework/Versions/Current/Headers/MKTPrimitiveArgumentMatching.h b/External/OCMockito.framework/Versions/Current/Headers/MKTPrimitiveArgumentMatching.h
deleted file mode 100644
index e3684c72d..000000000
--- a/External/OCMockito.framework/Versions/Current/Headers/MKTPrimitiveArgumentMatching.h
+++ /dev/null
@@ -1,50 +0,0 @@
-//
-// OCMockito - MKTPrimitiveArgumentMatching.h
-// Copyright 2012 Jonathan M. Reid. See LICENSE.txt
-//
-// Created by: Jon Reid, http://qualitycoding.org/
-// Source: https://github.com/jonreid/OCMockito
-//
-
-@protocol HCMatcher;
-
-
-/**
- Ability to specify OCHamcrest matchers for primitive numeric arguments.
- */
-@protocol MKTPrimitiveArgumentMatching
-
-/**
- Specifies OCHamcrest matcher for a specific argument of a method.
-
- For methods arguments that take objects, just pass the matcher directly as a method call. But
- for arguments that take primitive numeric types, call this to specify the matcher before passing
- in a dummy value. Upon verification, the actual numeric argument received will be converted to
- an NSNumber before being checked by the matcher.
-
- The argument index is 0-based, so the first argument of a method has index 0.
-
- Example:
-@code
-[[verify(mockArray) withMatcher:greaterThan([NSNumber numberWithInt:1]) forArgument:0]
- removeObjectAtIndex:0];
-@endcode
- This verifies that @c removeObjectAtIndex: was called with a number greater than 1.
- */
-- (id)withMatcher:(id )matcher forArgument:(NSUInteger)index;
-
-/**
- Specifies OCHamcrest matcher for the first argument of a method.
-
- Equivalent to withMatcher:matcher forArgument:0
.
-
- Example:
-@code
-[[verify(mockArray) withMatcher:greaterThan([NSNumber numberWithInt:1]) forArgument:0]
- removeObjectAtIndex:0];
-@endcode
- This verifies that @c removeObjectAtIndex: was called with a number greater than 1.
-*/
-- (id)withMatcher:(id )matcher;
-
-@end
diff --git a/External/OCMockito.framework/Versions/Current/Headers/MKTProtocolMock.h b/External/OCMockito.framework/Versions/Current/Headers/MKTProtocolMock.h
deleted file mode 100644
index 45a8e388e..000000000
--- a/External/OCMockito.framework/Versions/Current/Headers/MKTProtocolMock.h
+++ /dev/null
@@ -1,20 +0,0 @@
-//
-// OCMockito - MKTProtocolMock.h
-// Copyright 2012 Jonathan M. Reid. See LICENSE.txt
-//
-// Created by: Jon Reid, http://qualitycoding.org/
-// Source: https://github.com/jonreid/OCMockito
-//
-
-#import "MKTBaseMockObject.h"
-
-
-/**
- Mock object implementing a given protocol.
- */
-@interface MKTProtocolMock : MKTBaseMockObject
-
-+ (id)mockForProtocol:(Protocol *)aProtocol;
-- (id)initWithProtocol:(Protocol *)aProtocol;
-
-@end
diff --git a/External/OCMockito.framework/Versions/Current/Headers/OCMockito.h b/External/OCMockito.framework/Versions/Current/Headers/OCMockito.h
deleted file mode 100644
index 7072b09d7..000000000
--- a/External/OCMockito.framework/Versions/Current/Headers/OCMockito.h
+++ /dev/null
@@ -1,221 +0,0 @@
-//
-// OCMockito - OCMockito.h
-// Copyright 2012 Jonathan M. Reid. See LICENSE.txt
-//
-// Created by: Jon Reid, http://qualitycoding.org/
-// Source: https://github.com/jonreid/OCMockito
-//
-
-#import
-
-#import "MKTClassObjectMock.h"
-#import "MKTObjectMock.h"
-#import "MKTObjectAndProtocolMock.h"
-#import "MKTOngoingStubbing.h"
-#import "MKTProtocolMock.h"
-#import
-
-
-#define MKTMock(aClass) [MKTObjectMock mockForClass:aClass]
-
-/**
- Returns a mock object of a given class.
-
- (In the event of a name clash, don't \#define @c MOCKITO_SHORTHAND and use the synonym
- @c MKTMock instead.)
- */
-#ifdef MOCKITO_SHORTHAND
- #define mock(aClass) MKTMock(aClass)
-#endif
-
-
-#define MKTMockClass(aClass) [MKTClassObjectMock mockForClass:aClass]
-
-/**
- Returns a mock class object of a given class.
-
- (In the event of a name clash, don't \#define @c MOCKITO_SHORTHAND and use the synonym
- @c MKTMockClass instead.)
- */
-#ifdef MOCKITO_SHORTHAND
- #define mockClass(aClass) MKTMockClass(aClass)
-#endif
-
-
-#define MKTMockProtocol(aProtocol) [MKTProtocolMock mockForProtocol:aProtocol]
-
-/**
- Returns a mock object implementing a given protocol.
-
- (In the event of a name clash, don't \#define @c MOCKITO_SHORTHAND and use the synonym
- @c MKTMockProtocol instead.)
- */
-#ifdef MOCKITO_SHORTHAND
- #define mockProtocol(aProtocol) MKTMockProtocol(aProtocol)
-#endif
-
-
-#define MKTMockObjectAndProtocol(aClass, aProtocol) [MKTObjectAndProtocolMock mockForClass:aClass protocol:aProtocol]
-
-/**
- Returns a mock object of a given class that also implements a given protocol.
-
- (In the event of a name clash, don't \#define @c MOCKITO_SHORTHAND and use the synonym
- @c MKTMockObjectAndProtocol instead.)
- */
-#ifdef MOCKITO_SHORTHAND
- #define mockObjectAndProtocol(aClass, aProtocol) MKTMockObjectAndProtocol(aClass, aProtocol)
-#endif
-
-OBJC_EXPORT MKTOngoingStubbing *MKTGivenWithLocation(id testCase, const char *fileName, int lineNumber, ...);
-
-
-#define MKTGiven(methodCall) MKTGivenWithLocation(self, __FILE__, __LINE__, methodCall)
-
-/**
- Enables method stubbing.
-
- Use @c given when you want the mock to return particular value when particular method is called.
-
- Example:
- @li @ref [given([mockObject methodReturningString]) willReturn:@"foo"];
-
- See @ref MKTOngoingStubbing for other methods to stub different types of return values.
-
- (In the event of a name clash, don't \#define @c MOCKITO_SHORTHAND and use the synonym
- @c MKTGiven instead.)
- */
-#ifdef MOCKITO_SHORTHAND
- #define given(methodCall) MKTGiven(methodCall)
-#endif
-
-
-OBJC_EXPORT id MKTVerifyWithLocation(id mock, id testCase, const char *fileName, int lineNumber);
-
-#define MKTVerify(mock) MKTVerifyWithLocation(mock, self, __FILE__, __LINE__)
-
-/**
- Verifies certain behavior happened once.
-
- @c verify checks that a method was invoked once, with arguments that match given OCHamcrest
- matchers. If an argument is not a matcher, it is implicitly wrapped in an @c equalTo matcher to
- check for equality.
-
- Examples:
-@code
-[verify(mockObject) someMethod:startsWith(@"foo")];
-[verify(mockObject) someMethod:@"bar"];
-@endcode
-
- @c verify(mockObject) is equivalent to
-@code
-verifyCount(mockObject, times(1))
-@endcode
-
- (In the event of a name clash, don't \#define @c MOCKITO_SHORTHAND and use the synonym
- @c MKTVerify instead.)
- */
-#ifdef MOCKITO_SHORTHAND
- #undef verify
- #define verify(mock) MKTVerify(mock)
-#endif
-
-
-OBJC_EXPORT id MKTVerifyCountWithLocation(id mock, id mode, id testCase, const char *fileName, int lineNumber);
-
-#define MKTVerifyCount(mock, mode) MKTVerifyCountWithLocation(mock, mode, self, __FILE__, __LINE__)
-
-/**
- Verifies certain behavior happened a given number of times.
-
- Examples:
-@code
-[verifyCount(mockObject, times(5)) someMethod:@"was called five times"];
-[verifyCount(mockObject, never()) someMethod:@"was never called"];
-@endcode
-
- @c verifyCount checks that a method was invoked a given number of times, with arguments that
- match given OCHamcrest matchers. If an argument is not a matcher, it is implicitly wrapped in an
- @c equalTo matcher to check for equality.
-
- (In the event of a name clash, don't \#define @c MOCKITO_SHORTHAND and use the synonym
- @c MKTVerifyCount instead.)
- */
-#ifdef MOCKITO_SHORTHAND
- #define verifyCount(mock, mode) MKTVerifyCount(mock, mode)
-#endif
-
-
-OBJC_EXPORT id MKTTimes(NSUInteger wantedNumberOfInvocations);
-
-/**
- Verifies exact number of invocations.
-
- Example:
-@code
-[verifyCount(mockObject, times(2)) someMethod:@"some arg"];
-@endcode
-
- (In the event of a name clash, don't \#define @c MOCKITO_SHORTHAND and use the synonym
- @c MKTTimes instead.)
- */
-#ifdef MOCKITO_SHORTHAND
- #define times(wantedNumberOfInvocations) MKTTimes(wantedNumberOfInvocations)
-#endif
-
-
-OBJC_EXPORT id MKTNever(void);
-
-/**
- Verifies that interaction did not happen.
-
- Example:
- @code
- [verifyCount(mockObject, never()) someMethod:@"some arg"];
- @endcode
-
- (In the event of a name clash, don't \#define @c MOCKITO_SHORTHAND and use the synonym
- @c MKTNever instead.)
- */
-#ifdef MOCKITO_SHORTHAND
- #define never() MKTNever()
-#endif
-
-
-OBJC_EXPORT id MKTAtLeast(NSUInteger minimumWantedNumberOfInvocations);
-
-/**
- Verifies minimum number of invocations.
-
- The verification will succeed if the specified invocation happened the number of times
- specified or more.
-
- Example:
-@code
-[verifyCount(mockObject, atLeast(2)) someMethod:@"some arg"];
-@endcode
-
- (In the event of a name clash, don't \#define @c MOCKITO_SHORTHAND and use the synonym
- @c MKTAtLeast instead.)
- */
-#ifdef MOCKITO_SHORTHAND
- #define atLeast(minimumWantedNumberOfInvocations) MKTAtLeast(minimumWantedNumberOfInvocations)
-#endif
-
-
-OBJC_EXPORT id MKTAtLeastOnce(void);
-
-/**
- Verifies that interaction happened once or more.
-
- Example:
-@code
-[verifyCount(mockObject, atLeastOnce()) someMethod:@"some arg"];
-@endcode
-
- (In the event of a name clash, don't \#define @c MOCKITO_SHORTHAND and use the synonym
- @c MKTAtLeastOnce instead.)
- */
-#ifdef MOCKITO_SHORTHAND
- #define atLeastOnce() MKTAtLeastOnce()
-#endif
diff --git a/External/OCMockito.framework/Versions/Current/OCMockito b/External/OCMockito.framework/Versions/Current/OCMockito
deleted file mode 100755
index 496169864..000000000
Binary files a/External/OCMockito.framework/Versions/Current/OCMockito and /dev/null differ
diff --git a/External/OCMockito.framework/Versions/Current/Resources/Info.plist b/External/OCMockito.framework/Versions/Current/Resources/Info.plist
deleted file mode 100644
index c0e01b00d..000000000
--- a/External/OCMockito.framework/Versions/Current/Resources/Info.plist
+++ /dev/null
@@ -1,42 +0,0 @@
-
-
-
-
- BuildMachineOSBuild
- 12C60
- CFBundleDevelopmentRegion
- English
- CFBundleExecutable
- OCMockito
- CFBundleIdentifier
- org.mockito.OCMockito
- CFBundleInfoDictionaryVersion
- 6.0
- CFBundleName
- OCMockito
- CFBundlePackageType
- FMWK
- CFBundleShortVersionString
- 0.23
- CFBundleSignature
- ????
- CFBundleVersion
- 1
- DTCompiler
-
- DTPlatformBuild
- 4G2008a
- DTPlatformVersion
- GM
- DTSDKBuild
- 12C37
- DTSDKName
- macosx10.8
- DTXcode
- 0452
- DTXcodeBuild
- 4G2008a
- NSHumanReadableCopyright
- Copyright © 2012 Jonathan M. Reid
-
-
diff --git a/Source/Component/Initializer/TyphoonInitializer.h b/Source/Component/Initializer/TyphoonInitializer.h
index 017fd433b..a42b33c18 100644
--- a/Source/Component/Initializer/TyphoonInitializer.h
+++ b/Source/Component/Initializer/TyphoonInitializer.h
@@ -46,23 +46,25 @@ typedef enum
- (void)injectParameterAtIndex:(NSUInteger)index withValueAsText:(NSString*)text requiredTypeOrNil:(id)requiredClass;
+- (void)injectParameterAtIndex:(NSUInteger)index withObject:(id)value;
+
+- (void)injectParameterNamed:(NSString*)name withObject:(id)value;
+
/* ====================================================================================================================================== */
#pragma mark - Block assembly
- (void)injectWithDefinition:(TyphoonDefinition*)definition;
-- (void)injectWithText:(NSString*)text;
+- (void)injectWithValueAsText:(NSString*)text;
-- (void)injectWithText:(NSString*)text requiredTypeOrNil:(id)requiredTypeOrNil;
+- (void)injectWithValueAsText:(NSString*)text requiredTypeOrNil:(id)requiredTypeOrNil;
- (void)injectParameterNamed:(NSString*)name withDefinition:(TyphoonDefinition*)definition;
- (void)injectParameterAtIndex:(NSUInteger)index1 withDefinition:(TyphoonDefinition*)definition;
-- (void)injectParameterAtIndex:(NSUInteger)index withValue:(id)value;
+- (void)injectParameterWithObject:(id)value;
-- (void)injectParameterNamed:(NSString*)name withValue:(id)value;
-- (void)injectParameterWithValue:(id)value;
@end
\ No newline at end of file
diff --git a/Source/Component/Initializer/TyphoonInitializer.m b/Source/Component/Initializer/TyphoonInitializer.m
index d95e7b9f6..430febfbc 100644
--- a/Source/Component/Initializer/TyphoonInitializer.m
+++ b/Source/Component/Initializer/TyphoonInitializer.m
@@ -91,17 +91,17 @@ - (void)injectWithDefinition:(TyphoonDefinition*)definition;
[self injectParameterAtIndex:[_injectedParameters count] withDefinition:definition];
}
-- (void)injectWithText:(NSString*)text
+- (void)injectWithValueAsText:(NSString*)text
{
- [self injectWithText:text requiredTypeOrNil:nil];
+ [self injectWithValueAsText:text requiredTypeOrNil:nil];
}
-- (void)injectWithText:(NSString*)text requiredTypeOrNil:(id)requiredTypeOrNil
+- (void)injectWithValueAsText:(NSString*)text requiredTypeOrNil:(id)requiredTypeOrNil
{
[self injectParameterAtIndex:[_injectedParameters count] withValueAsText:text requiredTypeOrNil:requiredTypeOrNil];
}
-- (void)injectParameterAtIndex:(NSUInteger)index withValue:(id)value
+- (void)injectParameterAtIndex:(NSUInteger)index withObject:(id)value
{
if (index != NSUIntegerMax && index < [_parameterNames count])
{
@@ -109,14 +109,14 @@ - (void)injectParameterAtIndex:(NSUInteger)index withValue:(id)value
}
}
-- (void)injectParameterNamed:(NSString*)name withValue:(id)value
+- (void)injectParameterNamed:(NSString*)name withObject:(id)value
{
- [self injectParameterAtIndex:[self indexOfParameter:name] withValue:value];
+ [self injectParameterAtIndex:[self indexOfParameter:name] withObject:value];
}
-- (void)injectParameterWithValue:(id)value
+- (void)injectParameterWithObject:(id)value
{
- [self injectParameterAtIndex:[_injectedParameters count] withValue:value];
+ [self injectParameterAtIndex:[_injectedParameters count] withObject:value];
}
/* ====================================================================================================================================== */
diff --git a/Source/Component/TyphoonDefinition.h b/Source/Component/TyphoonDefinition.h
index 72787ebe6..c8e2d4773 100644
--- a/Source/Component/TyphoonDefinition.h
+++ b/Source/Component/TyphoonDefinition.h
@@ -20,10 +20,13 @@
typedef enum
{
TyphoonScopeDefault,
- TyphoonScopePrototype,
TyphoonScopeSingleton
} TyphoonScope;
+typedef void(^TyphoonInitializerBlock)(TyphoonInitializer* initializer);
+typedef void(^TyphoonDefinitionBlock)(TyphoonDefinition* definition);
+
+
@interface TyphoonDefinition : NSObject
{
@@ -53,12 +56,11 @@ typedef enum
+ (TyphoonDefinition*)withClass:(Class)clazz key:(NSString*)key;
-+ (TyphoonDefinition*)withClass:(Class)clazz initialization:(void (^)(TyphoonInitializer*))initialization
- properties:(void (^)(TyphoonDefinition*))properties;
++ (TyphoonDefinition*)withClass:(Class)clazz initialization:(TyphoonInitializerBlock)initialization properties:(TyphoonDefinitionBlock)properties;
-+ (TyphoonDefinition*)withClass:(Class)clazz initialization:(void (^)(TyphoonInitializer*))initialization;
++ (TyphoonDefinition*)withClass:(Class)clazz initialization:(TyphoonInitializerBlock)initialization;
-+ (TyphoonDefinition*)withClass:(Class)clazz properties:(void (^)(TyphoonDefinition*))properties;
++ (TyphoonDefinition*)withClass:(Class)clazz properties:(TyphoonDefinitionBlock)properties;
/* ====================================================================================================================================== */
#pragma mark Initializers
diff --git a/Source/Component/TyphoonDefinition.m b/Source/Component/TyphoonDefinition.m
index 746b3c353..ee42e5b40 100644
--- a/Source/Component/TyphoonDefinition.m
+++ b/Source/Component/TyphoonDefinition.m
@@ -34,26 +34,24 @@ + (TyphoonDefinition*)withClass:(Class)clazz key:(NSString*)key
return [[TyphoonDefinition alloc] initWithClass:clazz key:key];
}
-+ (TyphoonDefinition*)withClass:(Class)clazz initialization:(void (^)(TyphoonInitializer*))initialization
++ (TyphoonDefinition*)withClass:(Class)clazz initialization:(TyphoonInitializerBlock)initialization
{
return [TyphoonDefinition withClass:clazz key:nil initialization:initialization properties:nil];
}
-+ (TyphoonDefinition*)withClass:(Class)clazz properties:(void (^)(TyphoonDefinition*))properties
++ (TyphoonDefinition*)withClass:(Class)clazz properties:(TyphoonDefinitionBlock)properties
{
return [TyphoonDefinition withClass:clazz key:nil initialization:nil properties:properties];
}
-+ (TyphoonDefinition*)withClass:(Class)clazz initialization:(void (^)(TyphoonInitializer*))initialization
- properties:(void (^)(TyphoonDefinition*))properties
++ (TyphoonDefinition*)withClass:(Class)clazz initialization:(TyphoonInitializerBlock)initialization properties:(TyphoonDefinitionBlock)properties
{
return [TyphoonDefinition withClass:clazz key:nil initialization:initialization properties:properties];
}
-+ (TyphoonDefinition*)withClass:(Class)clazz key:(NSString*)key initialization:(void (^)(TyphoonInitializer*))initialization
- properties:(void (^)(TyphoonDefinition*))properties
++ (TyphoonDefinition*)withClass:(Class)clazz key:(NSString*)key initialization:(TyphoonInitializerBlock)initialization properties:(TyphoonDefinitionBlock)properties
{
-
+
TyphoonDefinition* definition = [[TyphoonDefinition alloc] initWithClass:clazz key:key];
if (initialization)
{
@@ -70,12 +68,12 @@ + (TyphoonDefinition*)withClass:(Class)clazz key:(NSString*)key initialization:(
return definition;
}
-+ (TyphoonDefinition*)withClass:(Class)clazz key:(NSString*)key initialization:(void (^)(TyphoonInitializer*))initialization
++ (TyphoonDefinition*)withClass:(Class)clazz key:(NSString*)key initialization:(TyphoonInitializerBlock)initialization
{
return [TyphoonDefinition withClass:clazz key:key initialization:initialization properties:nil];
}
-+ (TyphoonDefinition*)withClass:(Class)clazz key:(NSString*)key properties:(void (^)(TyphoonDefinition*))properties
++ (TyphoonDefinition*)withClass:(Class)clazz key:(NSString*)key properties:(TyphoonDefinitionBlock)properties
{
return [TyphoonDefinition withClass:clazz key:key initialization:nil properties:properties];
}
diff --git a/Source/Factory/TyphoonComponentFactory.h b/Source/Factory/TyphoonComponentFactory.h
index 1df34cf10..d45e8a22f 100644
--- a/Source/Factory/TyphoonComponentFactory.h
+++ b/Source/Factory/TyphoonComponentFactory.h
@@ -13,7 +13,7 @@
#import
#import "TyphoonComponentFactoryMutator.h"
-#import "TyphoonDefinition.h"
+@class TyphoonDefinition;
/**
* This is the base class for for all spring component factories. Although, it could be used as-is, the intention is to use a
@@ -39,11 +39,6 @@
*/
@property (nonatomic, assign, getter = isLoaded) BOOL loaded;
-/**
-* Setting default scope
-*/
-@property (nonatomic, assign) TyphoonScope defaultScope;
-
/**
* Mutate the component definitions with the mutators and
* build the not-lazy singletons.
diff --git a/Source/Factory/TyphoonComponentFactory.m b/Source/Factory/TyphoonComponentFactory.m
index 6e628490f..4360411f3 100644
--- a/Source/Factory/TyphoonComponentFactory.m
+++ b/Source/Factory/TyphoonComponentFactory.m
@@ -24,7 +24,7 @@ @interface TyphoonDefinition (TyphoonComponentFactory)
@end
@implementation TyphoonComponentFactory
-@synthesize defaultScope = _defaultScope;
+
static TyphoonComponentFactory* defaultFactory;
@@ -44,8 +44,6 @@ - (id)init
_singletons = [[NSMutableDictionary alloc] init];
_currentlyResolvingReferences = [[NSMutableDictionary alloc] init];
_mutators = [[NSMutableArray alloc] init];
-
- self.defaultScope = TyphoonScopePrototype;
}
return self;
}
@@ -215,24 +213,11 @@ - (NSString*)description
return description;
}
-- (void)setDefaultScope:(TyphoonScope)defaultScope
-{
- if (defaultScope == TyphoonScopeDefault) {
- defaultScope = TyphoonScopePrototype;
- }
-
- _defaultScope = defaultScope;
-}
/* ============================================================ Private Methods ========================================================= */
- (id)objectForDefinition:(TyphoonDefinition*)definition
{
if (definition.scope == TyphoonScopeDefault)
- {
- definition.scope = self.defaultScope;
- }
-
- if (definition.scope == TyphoonScopePrototype)
{
return [self buildInstanceWithDefinition:definition];
}
diff --git a/Source/Factory/Xml/TyphoonRXMLElement+XmlComponentFactory.h b/Source/Factory/Xml/TyphoonRXMLElement+XmlComponentFactory.h
index 35476bdc0..f7304495f 100644
--- a/Source/Factory/Xml/TyphoonRXMLElement+XmlComponentFactory.h
+++ b/Source/Factory/Xml/TyphoonRXMLElement+XmlComponentFactory.h
@@ -29,5 +29,4 @@
- (TyphoonInitializer*)asInitializer;
-
@end
\ No newline at end of file
diff --git a/Source/Factory/Xml/TyphoonRXMLElement+XmlComponentFactory.m b/Source/Factory/Xml/TyphoonRXMLElement+XmlComponentFactory.m
index 05f6b6d11..13ac01374 100644
--- a/Source/Factory/Xml/TyphoonRXMLElement+XmlComponentFactory.m
+++ b/Source/Factory/Xml/TyphoonRXMLElement+XmlComponentFactory.m
@@ -154,14 +154,12 @@ - (TyphoonScope)scopeForStringValue:(NSString*)scope
[NSException raise:NSInvalidArgumentException format:@"Scope was '%@', but can only be 'singleton' or 'prototype'", scope];
}
- TyphoonScope result = self.defaultScope;
+ // Here, we don't follow the Spring's implementation :
+ // the "default" scope is the prototype.
+ TyphoonScope result = TyphoonScopeDefault;
if ([scope isEqualToString:@"singleton"]) {
result = TyphoonScopeSingleton;
}
- else if ([scope isEqualToString:@"prototype"])
- {
- result = TyphoonScopePrototype;
- }
return result;
}
diff --git a/Source/Factory/Xml/TyphoonXmlComponentFactory.m b/Source/Factory/Xml/TyphoonXmlComponentFactory.m
index 23ef9e552..fd163cb6e 100644
--- a/Source/Factory/Xml/TyphoonXmlComponentFactory.m
+++ b/Source/Factory/Xml/TyphoonXmlComponentFactory.m
@@ -13,7 +13,6 @@
#import "TyphoonXmlComponentFactory.h"
#import "TyphoonBundleResource.h"
#import "TyphoonRXMLElement+XmlComponentFactory.h"
-#import "TyphoonDefinition.h"
@implementation TyphoonXmlComponentFactory
@@ -57,7 +56,6 @@ - (void)parseComponentDefinitions
{
if ([[child tag] isEqualToString:@"component"])
{
- [child setDefaultScope:self.defaultScope];
[self register:[child asComponentDefinition]];
}
}];
diff --git a/Typhoon.xcodeproj/project.pbxproj b/Static Library.xcodeproj/project.pbxproj
similarity index 50%
rename from Typhoon.xcodeproj/project.pbxproj
rename to Static Library.xcodeproj/project.pbxproj
index e9ed1b701..eb4ad91e1 100644
--- a/Typhoon.xcodeproj/project.pbxproj
+++ b/Static Library.xcodeproj/project.pbxproj
@@ -7,249 +7,107 @@
objects = {
/* Begin PBXBuildFile section */
- 65EB6978177F61A500391D0B /* ClassDDependsOnC.m in Sources */ = {isa = PBXBuildFile; fileRef = 65EB6977177F61A500391D0B /* ClassDDependsOnC.m */; };
- 65EB697B177F61BE00391D0B /* ClassEDependsOnC.m in Sources */ = {isa = PBXBuildFile; fileRef = 65EB697A177F61BE00391D0B /* ClassEDependsOnC.m */; };
- 65EB697E177F626B00391D0B /* ClassCDependsOnDAndE.m in Sources */ = {isa = PBXBuildFile; fileRef = 65EB697D177F626B00391D0B /* ClassCDependsOnDAndE.m */; };
- 6B3F399716ABF8E5001A601C /* SenTestingKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6B3F399616ABF8E5001A601C /* SenTestingKit.framework */; };
- 6B3F399916ABF8E5001A601C /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6B3F399816ABF8E5001A601C /* Cocoa.framework */; };
- 6B3F39A316ABF8E5001A601C /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 6B3F39A116ABF8E5001A601C /* InfoPlist.strings */; };
6B3F39C216ABFAC3001A601C /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6B3F399816ABF8E5001A601C /* Cocoa.framework */; };
- 6B6922A716C7675800C6858B /* OCMockito.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6B7CE44416C74919002E0107 /* OCMockito.framework */; };
- 6B7CE44516C74919002E0107 /* OCMockito.framework in Install Hamcrest and Mockito */ = {isa = PBXBuildFile; fileRef = 6B7CE44416C74919002E0107 /* OCMockito.framework */; };
- 6BD2B6DE16AC02DD0066C5DB /* OCHamcrest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6BD2B6DD16AC02DD0066C5DB /* OCHamcrest.framework */; };
- 6BD2B6E216AC031B0066C5DB /* OCHamcrest.framework in Install Hamcrest and Mockito */ = {isa = PBXBuildFile; fileRef = 6BD2B6E116AC031B0066C5DB /* OCHamcrest.framework */; };
- B594F87F174DF32800BF5DC5 /* TyphoonParameterInjectedByRawValue.m in Sources */ = {isa = PBXBuildFile; fileRef = B594F87E174DF32800BF5DC5 /* TyphoonParameterInjectedByRawValue.m */; };
B594F880174DF32E00BF5DC5 /* TyphoonParameterInjectedByRawValue.m in Sources */ = {isa = PBXBuildFile; fileRef = B594F87E174DF32800BF5DC5 /* TyphoonParameterInjectedByRawValue.m */; };
BA79800736608E888611A7B3 /* TyphoonParameterInjectedByReference.h in Headers */ = {isa = PBXBuildFile; fileRef = BA798E2173A9C04887B7291B /* TyphoonParameterInjectedByReference.h */; };
- BA79800B110019810E388455 /* TyphoonXmlComponentFactoryTests.m in Sources */ = {isa = PBXBuildFile; fileRef = BA798CE9339A8FBFF40E4B13 /* TyphoonXmlComponentFactoryTests.m */; };
- BA79800FBAC7DD90540E5AD0 /* AutoWiringKnight.m in Sources */ = {isa = PBXBuildFile; fileRef = BA798705F411B8128A8D3DE5 /* AutoWiringKnight.m */; };
- BA798013E4E4CFD7732EB0B3 /* CavalryMan.m in Sources */ = {isa = PBXBuildFile; fileRef = BA7986994ECC51FA92D9307B /* CavalryMan.m */; };
BA798029705C5C0E65B08592 /* TyphoonParameterInjectedByValue.m in Sources */ = {isa = PBXBuildFile; fileRef = BA7987099DAD3FC6A242E863 /* TyphoonParameterInjectedByValue.m */; };
- BA798029B4DDE871019DCF56 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = BA798CAF61DB9F5B65068218 /* InfoPlist.strings */; };
BA798097479D73266D1D3679 /* TyphoonAssembly.h in Headers */ = {isa = PBXBuildFile; fileRef = BA798F0B0FA574136DA6A52A /* TyphoonAssembly.h */; };
BA7980F06792726585C8F808 /* TyphoonJRSwizzle.m in Sources */ = {isa = PBXBuildFile; fileRef = BA798BDAEB237C52367719BA /* TyphoonJRSwizzle.m */; };
BA798112DDEA33F0FD848B66 /* Typhoon.pch in Headers */ = {isa = PBXBuildFile; fileRef = BA7988D81E615CF122461784 /* Typhoon.pch */; };
- BA79814120BF924C0FA796BC /* TyphoonDefinition+InstanceBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = BA7982FA13B86C2E09083297 /* TyphoonDefinition+InstanceBuilder.m */; };
BA79815B423FE0B1ACA3D9A4 /* TyphoonTestUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = BA798066F287498A7F5B6CB9 /* TyphoonTestUtils.m */; };
BA79816C5A42F3C9EAEC935E /* TyphoonPrimitiveTypeConverter.m in Sources */ = {isa = PBXBuildFile; fileRef = BA7989D868CD199C5FDDB864 /* TyphoonPrimitiveTypeConverter.m */; };
BA798173C5D4C7590346B9C8 /* TyphoonPropertyInjectedAsCollection.h in Headers */ = {isa = PBXBuildFile; fileRef = BA798C412A56850A9B848048 /* TyphoonPropertyInjectedAsCollection.h */; };
- BA79819589A82CE9C1B7ABB1 /* ExceptionTestAssembly.xml in Resources */ = {isa = PBXBuildFile; fileRef = BA798F939EF6855E92D46BDB /* ExceptionTestAssembly.xml */; };
BA7981AEE54D2BF33C0C6B69 /* TyphoonComponentFactoryMutator.h in Headers */ = {isa = PBXBuildFile; fileRef = BA7985CDE7DE45524AFB2C7A /* TyphoonComponentFactoryMutator.h */; };
- BA7981B20236201C0B82CE0F /* MiddleAgesAssembly.xml in Resources */ = {isa = PBXBuildFile; fileRef = BA798202AE023A0FAABDA909 /* MiddleAgesAssembly.xml */; };
- BA7981C6C1CFB28CF4FED014 /* MiddleAgesAssembly.m in Sources */ = {isa = PBXBuildFile; fileRef = BA7988E402E5F36CBBC4C2B8 /* MiddleAgesAssembly.m */; };
- BA7981D8FE4ADA0C736391D0 /* TyphoonComponentFactory+InstanceBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = BA798518E11F23A1021A6528 /* TyphoonComponentFactory+InstanceBuilder.m */; };
BA7981F6247963CF6E1B207C /* TyphoonShorthand.h in Headers */ = {isa = PBXBuildFile; fileRef = BA79844939DE1F872B92FEFB /* TyphoonShorthand.h */; };
- BA7981F9B98A5E5E2CEF89CD /* Sword.m in Sources */ = {isa = PBXBuildFile; fileRef = BA7985045C39C7636A4D01AB /* Sword.m */; };
BA79820B847F8AC6A2AC87D3 /* TyphoonInitializer+InstanceBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = BA7985774337D73B3DD5657D /* TyphoonInitializer+InstanceBuilder.m */; };
- BA79821793AF809161BFA2A4 /* TyphoonPropertyInjectedAsCollection.m in Sources */ = {isa = PBXBuildFile; fileRef = BA798332154152305525C6A3 /* TyphoonPropertyInjectedAsCollection.m */; };
- BA79825F81334DDC12B885B9 /* TyphoonDefinition+InstanceBuilder.h in Install Hamcrest and Mockito */ = {isa = PBXBuildFile; fileRef = BA798ACD4D056E79086E21E3 /* TyphoonDefinition+InstanceBuilder.h */; };
BA79827762D1F2CDB0656ECF /* TyphoonNSURLTypeConverter.h in Headers */ = {isa = PBXBuildFile; fileRef = BA7985E15C51C91ECC86FF4D /* TyphoonNSURLTypeConverter.h */; };
BA79827EEB8CA87219EE5DC1 /* TyphoonPropertyInjectedByValue.h in Headers */ = {isa = PBXBuildFile; fileRef = BA798B3CB0EE595B87ED5B1C /* TyphoonPropertyInjectedByValue.h */; };
- BA7982B2B41D180D262E7B7B /* TyphoonPassThroughTypeConverterTests.m in Sources */ = {isa = PBXBuildFile; fileRef = BA798756CFE130835BBCD41E /* TyphoonPassThroughTypeConverterTests.m */; };
BA7982BC5F867D9873FBE358 /* TyphoonJRSwizzle.h in Headers */ = {isa = PBXBuildFile; fileRef = BA7986DF1FADC2BBC51A7F09 /* TyphoonJRSwizzle.h */; };
- BA7982E1BDA4C7924D7285BB /* TyphoonPropertyInjectedAsCollectionTests.m in Sources */ = {isa = PBXBuildFile; fileRef = BA7983B56DF3A5A7E8419D82 /* TyphoonPropertyInjectedAsCollectionTests.m */; };
- BA798307E7C694F4D7BD9120 /* TyphoonBlockComponentFactoryTests.m in Sources */ = {isa = PBXBuildFile; fileRef = BA7981FA89E44727928240C1 /* TyphoonBlockComponentFactoryTests.m */; };
- BA798313AA1BD03055560FAB /* TyphoonXmlComponentFactory.m in Sources */ = {isa = PBXBuildFile; fileRef = BA798DB938D859CED0C5327C /* TyphoonXmlComponentFactory.m */; };
- BA79832A081876F9671009E9 /* TyphoonTestUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = BA798066F287498A7F5B6CB9 /* TyphoonTestUtils.m */; };
- BA79833ECE531B1CF0BC0770 /* TyphoonBundleResourceTests.m in Sources */ = {isa = PBXBuildFile; fileRef = BA7986A3B5CB00D08F51703A /* TyphoonBundleResourceTests.m */; };
- BA798358FB32F41E63EFE237 /* AutoWiringSubClassedKnight.h in Headers */ = {isa = PBXBuildFile; fileRef = BA7985C6B5BCA87DFBDDE9D5 /* AutoWiringSubClassedKnight.h */; };
BA79835B7CF6ED2D07D2C1C8 /* TyphoonBundleResource.m in Sources */ = {isa = PBXBuildFile; fileRef = BA7981CFE5706A810FB96168 /* TyphoonBundleResource.m */; };
- BA798374A23B455695401235 /* TyphoonBlockComponentFactory.m in Sources */ = {isa = PBXBuildFile; fileRef = BA7984002D3A4775329743B4 /* TyphoonBlockComponentFactory.m */; };
BA798382D833C4F5F13420B3 /* TyphoonPropertyPlaceholderConfigurer.m in Sources */ = {isa = PBXBuildFile; fileRef = BA7987E97990354BA94F2FB8 /* TyphoonPropertyPlaceholderConfigurer.m */; };
- BA798389BE9BA57143AE4AE3 /* MiddleAgesAssembly.h in Headers */ = {isa = PBXBuildFile; fileRef = BA798DC1ABB84C7568A95693 /* MiddleAgesAssembly.h */; };
BA79838BB4BCFFD9DD50DD25 /* TyphoonIntrospectionUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = BA7984898252E6336CCA405B /* TyphoonIntrospectionUtils.m */; };
BA79838EC0B25B8F61282068 /* TyphoonXmlComponentFactory.m in Sources */ = {isa = PBXBuildFile; fileRef = BA798DB938D859CED0C5327C /* TyphoonXmlComponentFactory.m */; };
BA798395EF6F246A6CE90B33 /* TyphoonParameterInjectedByReference.m in Sources */ = {isa = PBXBuildFile; fileRef = BA79832904B8D31EAB17C3CE /* TyphoonParameterInjectedByReference.m */; };
BA7983A5AB140D6C97FCD503 /* TyphoonComponentFactory.h in Headers */ = {isa = PBXBuildFile; fileRef = BA7982DFFB32EDBAE645CC9E /* TyphoonComponentFactory.h */; };
BA7983A83850C8B809303BFF /* TyphoonIntrospectiveNSObject.h in Headers */ = {isa = PBXBuildFile; fileRef = BA798D90E444A0899D50CD00 /* TyphoonIntrospectiveNSObject.h */; };
- BA7983EEB6EBA69190912DD2 /* TyphoonComponentFactory.m in Sources */ = {isa = PBXBuildFile; fileRef = BA798D99C65094EE9E3D6FDE /* TyphoonComponentFactory.m */; };
BA798410D85DE95CC8DF4DDC /* TyphoonPropertyInjectedByType.m in Sources */ = {isa = PBXBuildFile; fileRef = BA79870838865A2BC2EF0C12 /* TyphoonPropertyInjectedByType.m */; };
- BA7984A273860B8DEF364551 /* TyphoonComponentFactoryTests.m in Sources */ = {isa = PBXBuildFile; fileRef = BA7988174548286897AFA5BD /* TyphoonComponentFactoryTests.m */; };
- BA7984E8725A13D73BDDE103 /* TyphoonTypeDescriptorTests.m in Sources */ = {isa = PBXBuildFile; fileRef = BA7980EA659972E591843F3F /* TyphoonTypeDescriptorTests.m */; };
- BA7984EE5599C0226566B89F /* TyphoonPropertyInjectedByType.m in Sources */ = {isa = PBXBuildFile; fileRef = BA79870838865A2BC2EF0C12 /* TyphoonPropertyInjectedByType.m */; };
- BA798517BD08DD842E9CCBB9 /* ClassBDependsOnA.m in Sources */ = {isa = PBXBuildFile; fileRef = BA79856D23D2E1F11B2D98A8 /* ClassBDependsOnA.m */; };
BA798520440B17DB1AA9D6A6 /* TyphoonTypeConverterRegistry.h in Headers */ = {isa = PBXBuildFile; fileRef = BA798DAAE13D2354A9CFD5E1 /* TyphoonTypeConverterRegistry.h */; };
BA798532B43FB3D827EFA950 /* TyphoonPropertyInjectedByReference.m in Sources */ = {isa = PBXBuildFile; fileRef = BA798F3057F2763006387D93 /* TyphoonPropertyInjectedByReference.m */; };
- BA79854B3F3A6A853EC82A36 /* NSObject+TyphoonIntrospectionUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = BA798263556BF9A8D3735540 /* NSObject+TyphoonIntrospectionUtils.m */; };
BA798576613C0F22AFCBC4A8 /* TyphoonAssembly.m in Sources */ = {isa = PBXBuildFile; fileRef = BA798D912CB8052A1A8B131F /* TyphoonAssembly.m */; };
- BA79857ECF0C173BA7EFAD53 /* TyphoonSharedComponentFactoryTests.m in Sources */ = {isa = PBXBuildFile; fileRef = BA79851B85612ACD01D5770A /* TyphoonSharedComponentFactoryTests.m */; };
- BA798596614379B0E6E34DA2 /* TyphoonDefinition.m in Sources */ = {isa = PBXBuildFile; fileRef = BA798F905F4B216CEA7A4D8A /* TyphoonDefinition.m */; };
BA798599D566C651112D759F /* TyphoonDefinition+InstanceBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = BA798ACD4D056E79086E21E3 /* TyphoonDefinition+InstanceBuilder.h */; };
- BA7985BD33B70D3EE2B09C5D /* TyphoonRXMLElement.m in Sources */ = {isa = PBXBuildFile; fileRef = BA7984360A52643AABE03C09 /* TyphoonRXMLElement.m */; };
BA7985CC3C95239BC358DD3F /* TyphoonRXMLElement.m in Sources */ = {isa = PBXBuildFile; fileRef = BA7984360A52643AABE03C09 /* TyphoonRXMLElement.m */; };
- BA7985DE18A762911B70D30D /* SwordFactory.m in Sources */ = {isa = PBXBuildFile; fileRef = BA7988F59C11104B728D7B71 /* SwordFactory.m */; };
BA79862145369748B16E342D /* TyphoonBundleResource.h in Headers */ = {isa = PBXBuildFile; fileRef = BA798E63DD460355D43BBB6F /* TyphoonBundleResource.h */; };
- BA79863BC931512FAFAB5FA5 /* TyphoonTypeConverterRegistryTests.m in Sources */ = {isa = PBXBuildFile; fileRef = BA7987F1C0401ECAC64471DA /* TyphoonTypeConverterRegistryTests.m */; };
- BA79863D88B23FC8196FA4E8 /* TyphoonTypeConvertedCollectionValue.h in Install Hamcrest and Mockito */ = {isa = PBXBuildFile; fileRef = BA7987F7029AF099EE905E31 /* TyphoonTypeConvertedCollectionValue.h */; };
- BA798645C06B7F823F2EEF21 /* PropertyPlaceholderAssembly.xml in Resources */ = {isa = PBXBuildFile; fileRef = BA79830E94815F5399DE80A9 /* PropertyPlaceholderAssembly.xml */; };
- BA798661770DB8B48238696F /* TyphoonPassThroughTypeConverterTests.m in Sources */ = {isa = PBXBuildFile; fileRef = BA798756CFE130835BBCD41E /* TyphoonPassThroughTypeConverterTests.m */; };
- BA7986855DF6978DACD0301F /* TyphoonRXMLElement+XmlComponentFactory.m in Sources */ = {isa = PBXBuildFile; fileRef = BA79882A81566B59CD4717ED /* TyphoonRXMLElement+XmlComponentFactory.m */; };
BA79869E6884D3F82DFD7F95 /* TyphoonTypeDescriptor.h in Headers */ = {isa = PBXBuildFile; fileRef = BA798DE01D62ABB44B05EDC5 /* TyphoonTypeDescriptor.h */; };
- BA7986BD674CAA7BAEFF62FC /* TyphoonInitializer.m in Sources */ = {isa = PBXBuildFile; fileRef = BA798CD7662D6BB212BA5A02 /* TyphoonInitializer.m */; };
- BA7986E857D4DC792F8DD2DF /* TyphoonCollectionValue.h in Install Hamcrest and Mockito */ = {isa = PBXBuildFile; fileRef = BA79828A1DD5F7A0AD5C645F /* TyphoonCollectionValue.h */; };
- BA7986F3CC6538C5D6F2FB14 /* AutoWiringKnight.h in Headers */ = {isa = PBXBuildFile; fileRef = BA798AB536AD3A7E6F7A3F6C /* AutoWiringKnight.h */; };
BA7986F5C5D07F9A92B7B1CE /* TyphoonInjectedParameter.h in Headers */ = {isa = PBXBuildFile; fileRef = BA7982E57238CCD057BE270A /* TyphoonInjectedParameter.h */; };
- BA7986F8CCD4AD133960EF6F /* TyphoonParameterInjectedByReference.m in Sources */ = {isa = PBXBuildFile; fileRef = BA79832904B8D31EAB17C3CE /* TyphoonParameterInjectedByReference.m */; };
- BA798715D2E37056C1410435 /* SomeProperties.properties in Resources */ = {isa = PBXBuildFile; fileRef = BA798A14A75896A016E940AB /* SomeProperties.properties */; };
BA798723D1979317A5ED010B /* NSObject+TyphoonIntrospectionUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = BA798479971ACE88BD0EEBDF /* NSObject+TyphoonIntrospectionUtils.h */; };
BA7987403907558358D85F99 /* TyphoonNSURLTypeConverter.m in Sources */ = {isa = PBXBuildFile; fileRef = BA798AC8A5E199CCE249DBB6 /* TyphoonNSURLTypeConverter.m */; };
BA798752E313147944EF6FBA /* TyphoonTestUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = BA7988CD6D8A9C4FC32994A1 /* TyphoonTestUtils.h */; };
BA79875C3ED5E330B6486602 /* TyphoonPrimitiveTypeConverter.h in Headers */ = {isa = PBXBuildFile; fileRef = BA7981AA0BF70EC52DD18152 /* TyphoonPrimitiveTypeConverter.h */; };
- BA7987AAA9E0C091CC18E478 /* TyphoonTypeDescriptor.m in Sources */ = {isa = PBXBuildFile; fileRef = BA79801A7ED2DD0708D6AF5F /* TyphoonTypeDescriptor.m */; };
- BA7987AAC1C417DC47209D39 /* TyphoonTestUtils.h in Install Hamcrest and Mockito */ = {isa = PBXBuildFile; fileRef = BA7988CD6D8A9C4FC32994A1 /* TyphoonTestUtils.h */; };
- BA7987ABAA5B89C6479A0557 /* AutoWiringSubClassedKnight.m in Sources */ = {isa = PBXBuildFile; fileRef = BA798696C3B88C132B7AE167 /* AutoWiringSubClassedKnight.m */; };
- BA7987C61D0426020A9F99D6 /* ClassADependsOnB.m in Sources */ = {isa = PBXBuildFile; fileRef = BA798C719DB799A72B877AA6 /* ClassADependsOnB.m */; };
BA79880E0C2659895AB6D1EE /* TyphoonPropertyPlaceholderConfigurer.h in Headers */ = {isa = PBXBuildFile; fileRef = BA798BF4AEF367ED85994D24 /* TyphoonPropertyPlaceholderConfigurer.h */; };
BA79881648C73845A3DEEFAF /* TyphoonIntrospectionUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = BA7989B103528037045BF026 /* TyphoonIntrospectionUtils.h */; };
- BA798846F132F1B27ACC50AB /* TyphoonBundleResource.m in Sources */ = {isa = PBXBuildFile; fileRef = BA7981CFE5706A810FB96168 /* TyphoonBundleResource.m */; };
BA79885689274B5A4D5404A7 /* Typhoon.h in Headers */ = {isa = PBXBuildFile; fileRef = BA79822F46BE0B8FB00814D8 /* Typhoon.h */; };
- BA798893CDBA08800B357A20 /* ExceptionTestAssembly.m in Sources */ = {isa = PBXBuildFile; fileRef = BA798FF63253FDE4538CCC56 /* ExceptionTestAssembly.m */; };
BA7988B88E27909DDF8502EF /* TyphoonTypeConverterRegistry.m in Sources */ = {isa = PBXBuildFile; fileRef = BA7983ED26EB786633CAD66E /* TyphoonTypeConverterRegistry.m */; };
- BA7988BBFF5261E02753A6E9 /* AssemblyWithInvalidClassName.xml in Resources */ = {isa = PBXBuildFile; fileRef = BA7984CC02E96BCA9CFBD86D /* AssemblyWithInvalidClassName.xml */; };
- BA7988EC60A6908CA4C3A3F0 /* TyphoonJRSwizzle.m in Sources */ = {isa = PBXBuildFile; fileRef = BA798BDAEB237C52367719BA /* TyphoonJRSwizzle.m */; };
BA798917A7860D9B8DC321BE /* TyphoonPropertyInjectedAsCollection.m in Sources */ = {isa = PBXBuildFile; fileRef = BA798332154152305525C6A3 /* TyphoonPropertyInjectedAsCollection.m */; };
- BA79891E383DF51AC87B08CE /* TyphoonPropertyPlaceholderConfigurer.m in Sources */ = {isa = PBXBuildFile; fileRef = BA7987E97990354BA94F2FB8 /* TyphoonPropertyPlaceholderConfigurer.m */; };
BA798925FDAC1BC6E2937A2C /* TyphoonPropertyInjectedByReference.h in Headers */ = {isa = PBXBuildFile; fileRef = BA798FEB8B4BF76B9D0717DF /* TyphoonPropertyInjectedByReference.h */; };
- BA798931977D8AAE448C076B /* TyphoonPropertyInjectedByValue.m in Sources */ = {isa = PBXBuildFile; fileRef = BA7987DD059001676C6BDD67 /* TyphoonPropertyInjectedByValue.m */; };
BA7989431B39DCE65DC22CF4 /* TyphoonTypeConvertedCollectionValue.h in Headers */ = {isa = PBXBuildFile; fileRef = BA7987F7029AF099EE905E31 /* TyphoonTypeConvertedCollectionValue.h */; };
BA79894BAEA538B8166596FA /* TyphoonInjectedProperty.h in Headers */ = {isa = PBXBuildFile; fileRef = BA7989A3EBBC958882FB3165 /* TyphoonInjectedProperty.h */; };
- BA7989527EE13EF94A5F1092 /* MiddleAgesAssembly.m in Sources */ = {isa = PBXBuildFile; fileRef = BA7988E402E5F36CBBC4C2B8 /* MiddleAgesAssembly.m */; };
BA79897DD52D123AC065C637 /* TyphoonBlockComponentFactory.h in Headers */ = {isa = PBXBuildFile; fileRef = BA7981B0A8AB21B6A5B628EE /* TyphoonBlockComponentFactory.h */; };
- BA798987C59D4992D579970A /* ClassWithCollectionProperties.m in Sources */ = {isa = PBXBuildFile; fileRef = BA798EA73AA4E7181ACB1002 /* ClassWithCollectionProperties.m */; };
- BA7989888A03458D5C8566A5 /* TyphoonNSURLTypeConverter.m in Sources */ = {isa = PBXBuildFile; fileRef = BA798AC8A5E199CCE249DBB6 /* TyphoonNSURLTypeConverter.m */; };
BA79899502CBAEE235B62757 /* TyphoonInitializer.h in Headers */ = {isa = PBXBuildFile; fileRef = BA798012692BC6CFD0CCB60F /* TyphoonInitializer.h */; };
BA7989A288AA5FD437CFF984 /* TyphoonAutowire.h in Headers */ = {isa = PBXBuildFile; fileRef = BA79890C0F10164E6B504106 /* TyphoonAutowire.h */; };
BA7989A7C8AE7E636C08962A /* TyphoonComponentFactory+InstanceBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = BA798518E11F23A1021A6528 /* TyphoonComponentFactory+InstanceBuilder.m */; };
- BA7989C3DE4051ED51A806BC /* TyphoonComponentFactory+InstanceBuilderTests.m in Sources */ = {isa = PBXBuildFile; fileRef = BA79885EE04AD31869497804 /* TyphoonComponentFactory+InstanceBuilderTests.m */; };
- BA7989C7EC5DA27BFA491C1B /* TyphoonIntrospectionUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = BA7984898252E6336CCA405B /* TyphoonIntrospectionUtils.m */; };
BA798A0D8F6CE3D38773C960 /* TyphoonRXMLElement.h in Headers */ = {isa = PBXBuildFile; fileRef = BA798A1BEE9506D755255FF8 /* TyphoonRXMLElement.h */; };
- BA798A3F17051D24B526A979 /* TyphoonPropertyInjectedAsCollection.h in Install Hamcrest and Mockito */ = {isa = PBXBuildFile; fileRef = BA798C412A56850A9B848048 /* TyphoonPropertyInjectedAsCollection.h */; };
- BA798A476979921D836CB3A7 /* TyphoonPrimitiveTypeConverter.m in Sources */ = {isa = PBXBuildFile; fileRef = BA7989D868CD199C5FDDB864 /* TyphoonPrimitiveTypeConverter.m */; };
BA798A4C71CEC4CDB76D64B1 /* TyphoonByReferenceCollectionValue.m in Sources */ = {isa = PBXBuildFile; fileRef = BA798C477488DE1A076E6C50 /* TyphoonByReferenceCollectionValue.m */; };
BA798A8812579A95065326A4 /* TyphoonRXMLElement+XmlComponentFactory.h in Headers */ = {isa = PBXBuildFile; fileRef = BA7983460EDFA97511B4691C /* TyphoonRXMLElement+XmlComponentFactory.h */; };
- BA798A9ECE0D7897F0F48219 /* TyphoonInitializer+InstanceBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = BA7985774337D73B3DD5657D /* TyphoonInitializer+InstanceBuilder.m */; };
- BA798AAC862D17A0BD033E58 /* CampaignQuest.m in Sources */ = {isa = PBXBuildFile; fileRef = BA7984F5AEA25EB9B86D2472 /* CampaignQuest.m */; };
BA798AB191332D52B99B01C8 /* TyphoonDefinition+InstanceBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = BA7982FA13B86C2E09083297 /* TyphoonDefinition+InstanceBuilder.m */; };
- BA798AD940B4B352D710AF7B /* TyphoonAssembly.m in Sources */ = {isa = PBXBuildFile; fileRef = BA798D912CB8052A1A8B131F /* TyphoonAssembly.m */; };
BA798ADC644922BAE4940888 /* TyphoonPropertyInjectedByValue.m in Sources */ = {isa = PBXBuildFile; fileRef = BA7987DD059001676C6BDD67 /* TyphoonPropertyInjectedByValue.m */; };
BA798AE180BBE3B239D5ECBA /* TyphoonPassThroughTypeConverter.m in Sources */ = {isa = PBXBuildFile; fileRef = BA798A46F8E4B67A6227042B /* TyphoonPassThroughTypeConverter.m */; };
BA798B0664B6ED4C352C0DD6 /* TyphoonByReferenceCollectionValue.h in Headers */ = {isa = PBXBuildFile; fileRef = BA798C53085482547B7C9EEC /* TyphoonByReferenceCollectionValue.h */; };
- BA798B0E98DACFF7F724848B /* CircularDependenciesAssembly.m in Sources */ = {isa = PBXBuildFile; fileRef = BA798718B12F783930A46333 /* CircularDependenciesAssembly.m */; };
BA798B291EDCA2E25701D626 /* TyphoonDefinition.h in Headers */ = {isa = PBXBuildFile; fileRef = BA798CA3A88193EC0242E6EC /* TyphoonDefinition.h */; };
- BA798B54D4BC92444B25A81E /* ClassWithCollectionProperties.h in Install Hamcrest and Mockito */ = {isa = PBXBuildFile; fileRef = BA798A87A055C6C6BEB2A006 /* ClassWithCollectionProperties.h */; };
- BA798B82BE8C9399E0DAC53C /* TyphoonParameterInjectedByValue.m in Sources */ = {isa = PBXBuildFile; fileRef = BA7987099DAD3FC6A242E863 /* TyphoonParameterInjectedByValue.m */; };
- BA798B8C40CBB04CFA2AC82E /* Harlot.h in Install Hamcrest and Mockito */ = {isa = PBXBuildFile; fileRef = BA798B9A1B9A8AA11D46EF95 /* Harlot.h */; };
BA798BB4D9038A4C5E6B8FFF /* TyphoonTypeConverter.h in Headers */ = {isa = PBXBuildFile; fileRef = BA7983E3C21E67A0ABCEB3C4 /* TyphoonTypeConverter.h */; };
- BA798BBAFE0BD0E6B8595BC7 /* Info-iOS.plist in Resources */ = {isa = PBXBuildFile; fileRef = BA798F0C33EBF7B9102B886A /* Info-iOS.plist */; };
BA798BDEB1CC7332643D534F /* TyphoonCollectionValue.h in Headers */ = {isa = PBXBuildFile; fileRef = BA79828A1DD5F7A0AD5C645F /* TyphoonCollectionValue.h */; };
- BA798BE56FC8C7D40AEC1ECB /* TyphoonPrimitiveTypeConverterTests.m in Sources */ = {isa = PBXBuildFile; fileRef = BA79835B6157EAC72445EC18 /* TyphoonPrimitiveTypeConverterTests.m */; };
BA798C2625716A576AD32B0D /* TyphoonPropertyInjectedByType.h in Headers */ = {isa = PBXBuildFile; fileRef = BA798D84E3DDB8ABE3396063 /* TyphoonPropertyInjectedByType.h */; };
BA798CC420E311724097700A /* TyphoonParameterInjectedByValue.h in Headers */ = {isa = PBXBuildFile; fileRef = BA79866B01F50CC47F6507CE /* TyphoonParameterInjectedByValue.h */; };
BA798CEF2FA97482AE3742F6 /* TyphoonPropertyInjectionDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = BA79854418EB7AA8D5399AEF /* TyphoonPropertyInjectionDelegate.h */; };
BA798D2B1BB50A61CDF74553 /* TyphoonInitializer+InstanceBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = BA79885BB9DCAEAA342A19C9 /* TyphoonInitializer+InstanceBuilder.h */; };
- BA798D6CDBD76677C4828D51 /* TyphoonDefinitionTests.m in Sources */ = {isa = PBXBuildFile; fileRef = BA79801AE4DCFB941CCC29CF /* TyphoonDefinitionTests.m */; };
- BA798D707379A4F111542564 /* Champion.m in Sources */ = {isa = PBXBuildFile; fileRef = BA798323D6AA60720D3C1F46 /* Champion.m */; };
BA798D8355A4FA0E648A5682 /* TyphoonRXMLElement+XmlComponentFactory.m in Sources */ = {isa = PBXBuildFile; fileRef = BA79882A81566B59CD4717ED /* TyphoonRXMLElement+XmlComponentFactory.m */; };
BA798D926C56398967B69144 /* TyphoonResource.h in Headers */ = {isa = PBXBuildFile; fileRef = BA798C631D05251F461B43CC /* TyphoonResource.h */; };
BA798DA01100FCD8AA272792 /* TyphoonXmlComponentFactory.h in Headers */ = {isa = PBXBuildFile; fileRef = BA7987602D56180375A9A626 /* TyphoonXmlComponentFactory.h */; };
- BA798DD2A268AC8ED68A5CD0 /* TyphoonPassThroughTypeConverter.m in Sources */ = {isa = PBXBuildFile; fileRef = BA798A46F8E4B67A6227042B /* TyphoonPassThroughTypeConverter.m */; };
- BA798DD3EBC66FE1FFBF4B84 /* TyphoonByReferenceCollectionValue.h in Install Hamcrest and Mockito */ = {isa = PBXBuildFile; fileRef = BA798C53085482547B7C9EEC /* TyphoonByReferenceCollectionValue.h */; };
- BA798E43AD023DC48C064BDD /* TyphoonBundleResourceTests.m in Sources */ = {isa = PBXBuildFile; fileRef = BA7986A3B5CB00D08F51703A /* TyphoonBundleResourceTests.m */; };
- BA798EA4DDC838A133459796 /* TyphoonTypeConvertedCollectionValue.m in Sources */ = {isa = PBXBuildFile; fileRef = BA79881BE276F481B4766FEF /* TyphoonTypeConvertedCollectionValue.m */; };
BA798EACB35B10ABCFF95396 /* TyphoonInitializer.m in Sources */ = {isa = PBXBuildFile; fileRef = BA798CD7662D6BB212BA5A02 /* TyphoonInitializer.m */; };
BA798EAF78A81CE7687424A6 /* TyphoonTypeDescriptor.m in Sources */ = {isa = PBXBuildFile; fileRef = BA79801A7ED2DD0708D6AF5F /* TyphoonTypeDescriptor.m */; };
BA798EDDD02EF1FBC226119A /* TyphoonComponentFactory.m in Sources */ = {isa = PBXBuildFile; fileRef = BA798D99C65094EE9E3D6FDE /* TyphoonComponentFactory.m */; };
- BA798EDE69E8D0D7F0422080 /* Knight.m in Sources */ = {isa = PBXBuildFile; fileRef = BA798BD1C3AC7C8500D9191E /* Knight.m */; };
- BA798EE007E697895FF3D91A /* TyphoonInitializer+InstanceBuilder.h in Install Hamcrest and Mockito */ = {isa = PBXBuildFile; fileRef = BA79885BB9DCAEAA342A19C9 /* TyphoonInitializer+InstanceBuilder.h */; };
- BA798F1B1AA0D03CBD9EE364 /* TyphoonTypeConverterRegistry.m in Sources */ = {isa = PBXBuildFile; fileRef = BA7983ED26EB786633CAD66E /* TyphoonTypeConverterRegistry.m */; };
- BA798F3107067EC20FD3BAA1 /* TyphoonPropertyPlaceholderConfigurerTests.m in Sources */ = {isa = PBXBuildFile; fileRef = BA798399AF2E4C644EFA1B73 /* TyphoonPropertyPlaceholderConfigurerTests.m */; };
- BA798F36E2F7280719695587 /* TyphoonPropertyInjectedByReference.m in Sources */ = {isa = PBXBuildFile; fileRef = BA798F3057F2763006387D93 /* TyphoonPropertyInjectedByReference.m */; };
- BA798F4139E77075EFA98D08 /* RXMLElement+XmlComponentFactoryTests.m in Sources */ = {isa = PBXBuildFile; fileRef = BA798887327FB3368714C50D /* RXMLElement+XmlComponentFactoryTests.m */; };
BA798F9DC5E7204C1B50E83A /* TyphoonBlockComponentFactory.m in Sources */ = {isa = PBXBuildFile; fileRef = BA7984002D3A4775329743B4 /* TyphoonBlockComponentFactory.m */; };
- BA798FA07C462CD337A80DFF /* TyphoonByReferenceCollectionValue.m in Sources */ = {isa = PBXBuildFile; fileRef = BA798C477488DE1A076E6C50 /* TyphoonByReferenceCollectionValue.m */; };
- BA798FA1E881FBA470DDB3A3 /* CircularDependenciesAssembly.xml in Resources */ = {isa = PBXBuildFile; fileRef = BA7985F4B2858CA25A6E06B0 /* CircularDependenciesAssembly.xml */; };
BA798FAC7F3BC5B63B3576EC /* TyphoonComponentFactory+InstanceBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = BA798CB709B2750980CFFC62 /* TyphoonComponentFactory+InstanceBuilder.h */; };
BA798FC40F89DECD91733E69 /* TyphoonTypeConvertedCollectionValue.m in Sources */ = {isa = PBXBuildFile; fileRef = BA79881BE276F481B4766FEF /* TyphoonTypeConvertedCollectionValue.m */; };
BA798FD2FBC0CA91B17AEEFC /* TyphoonDefinition.m in Sources */ = {isa = PBXBuildFile; fileRef = BA798F905F4B216CEA7A4D8A /* TyphoonDefinition.m */; };
BA798FE29893B57DF87E1841 /* NSObject+TyphoonIntrospectionUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = BA798263556BF9A8D3735540 /* NSObject+TyphoonIntrospectionUtils.m */; };
BA798FFBB9425F45FF745AF0 /* TyphoonPassThroughTypeConverter.h in Headers */ = {isa = PBXBuildFile; fileRef = BA79884CFD33CEBCCFC2EDFB /* TyphoonPassThroughTypeConverter.h */; };
- FFF2541017899826005D2089 /* LazyInitCasesAssembly.xml in Resources */ = {isa = PBXBuildFile; fileRef = FFF2540F17899826005D2089 /* LazyInitCasesAssembly.xml */; };
/* End PBXBuildFile section */
-/* Begin PBXCopyFilesBuildPhase section */
- 6BD2B6E016AC02EC0066C5DB /* Install Hamcrest and Mockito */ = {
- isa = PBXCopyFilesBuildPhase;
- buildActionMask = 12;
- dstPath = "";
- dstSubfolderSpec = 16;
- files = (
- 6B7CE44516C74919002E0107 /* OCMockito.framework in Install Hamcrest and Mockito */,
- 6BD2B6E216AC031B0066C5DB /* OCHamcrest.framework in Install Hamcrest and Mockito */,
- BA798B8C40CBB04CFA2AC82E /* Harlot.h in Install Hamcrest and Mockito */,
- BA79825F81334DDC12B885B9 /* TyphoonDefinition+InstanceBuilder.h in Install Hamcrest and Mockito */,
- BA798EE007E697895FF3D91A /* TyphoonInitializer+InstanceBuilder.h in Install Hamcrest and Mockito */,
- BA7987AAC1C417DC47209D39 /* TyphoonTestUtils.h in Install Hamcrest and Mockito */,
- BA798B54D4BC92444B25A81E /* ClassWithCollectionProperties.h in Install Hamcrest and Mockito */,
- BA798A3F17051D24B526A979 /* TyphoonPropertyInjectedAsCollection.h in Install Hamcrest and Mockito */,
- BA798DD3EBC66FE1FFBF4B84 /* TyphoonByReferenceCollectionValue.h in Install Hamcrest and Mockito */,
- BA7986E857D4DC792F8DD2DF /* TyphoonCollectionValue.h in Install Hamcrest and Mockito */,
- BA79863D88B23FC8196FA4E8 /* TyphoonTypeConvertedCollectionValue.h in Install Hamcrest and Mockito */,
- );
- name = "Install Hamcrest and Mockito";
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXCopyFilesBuildPhase section */
-
/* Begin PBXFileReference section */
- 65EB6976177F61A500391D0B /* ClassDDependsOnC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ClassDDependsOnC.h; sourceTree = ""; };
- 65EB6977177F61A500391D0B /* ClassDDependsOnC.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ClassDDependsOnC.m; sourceTree = ""; };
- 65EB6979177F61BE00391D0B /* ClassEDependsOnC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ClassEDependsOnC.h; sourceTree = ""; };
- 65EB697A177F61BE00391D0B /* ClassEDependsOnC.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ClassEDependsOnC.m; sourceTree = ""; };
- 65EB697C177F626B00391D0B /* ClassCDependsOnDAndE.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ClassCDependsOnDAndE.h; sourceTree = ""; };
- 65EB697D177F626B00391D0B /* ClassCDependsOnDAndE.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ClassCDependsOnDAndE.m; sourceTree = ""; };
6B3F397416ABF854001A601C /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
- 6B3F399516ABF8E5001A601C /* Tests.octest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Tests.octest; sourceTree = BUILT_PRODUCTS_DIR; };
6B3F399616ABF8E5001A601C /* SenTestingKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SenTestingKit.framework; path = Library/Frameworks/SenTestingKit.framework; sourceTree = DEVELOPER_DIR; };
6B3F399816ABF8E5001A601C /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = Library/Frameworks/Cocoa.framework; sourceTree = DEVELOPER_DIR; };
6B3F399B16ABF8E5001A601C /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; };
6B3F399C16ABF8E5001A601C /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = Library/Frameworks/CoreData.framework; sourceTree = SDKROOT; };
6B3F399D16ABF8E5001A601C /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
- 6B3F39A016ABF8E5001A601C /* Tests-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "Tests-Info.plist"; sourceTree = ""; };
- 6B3F39A216ABF8E5001A601C /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; };
- 6B3F39A716ABF8E5001A601C /* Tests-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Tests-Prefix.pch"; sourceTree = ""; };
6B3F39C116ABFAC3001A601C /* libTyphoon.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libTyphoon.a; sourceTree = BUILT_PRODUCTS_DIR; };
- 6B7CE44416C74919002E0107 /* OCMockito.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OCMockito.framework; path = External/OCMockito.framework; sourceTree = ""; };
- 6BD2B6DD16AC02DD0066C5DB /* OCHamcrest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OCHamcrest.framework; path = External/OCHamcrest.framework; sourceTree = ""; };
- 6BD2B6E116AC031B0066C5DB /* OCHamcrest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OCHamcrest.framework; path = External/OCHamcrest.framework; sourceTree = ""; };
B594F87D174DF32700BF5DC5 /* TyphoonParameterInjectedByRawValue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TyphoonParameterInjectedByRawValue.h; sourceTree = ""; };
B594F87E174DF32800BF5DC5 /* TyphoonParameterInjectedByRawValue.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TyphoonParameterInjectedByRawValue.m; sourceTree = ""; };
BA798012692BC6CFD0CCB60F /* TyphoonInitializer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TyphoonInitializer.h; sourceTree = ""; };
BA79801A7ED2DD0708D6AF5F /* TyphoonTypeDescriptor.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TyphoonTypeDescriptor.m; sourceTree = ""; };
- BA79801AE4DCFB941CCC29CF /* TyphoonDefinitionTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TyphoonDefinitionTests.m; sourceTree = ""; };
BA798066F287498A7F5B6CB9 /* TyphoonTestUtils.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TyphoonTestUtils.m; sourceTree = ""; };
- BA7980EA659972E591843F3F /* TyphoonTypeDescriptorTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TyphoonTypeDescriptorTests.m; sourceTree = ""; };
- BA7981799C36080F28A3C9DC /* Quest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Quest.h; sourceTree = ""; };
BA7981AA0BF70EC52DD18152 /* TyphoonPrimitiveTypeConverter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TyphoonPrimitiveTypeConverter.h; sourceTree = ""; };
BA7981B0A8AB21B6A5B628EE /* TyphoonBlockComponentFactory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TyphoonBlockComponentFactory.h; sourceTree = ""; };
BA7981CFE5706A810FB96168 /* TyphoonBundleResource.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TyphoonBundleResource.m; sourceTree = ""; };
- BA7981FA89E44727928240C1 /* TyphoonBlockComponentFactoryTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TyphoonBlockComponentFactoryTests.m; sourceTree = ""; };
- BA798202AE023A0FAABDA909 /* MiddleAgesAssembly.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = MiddleAgesAssembly.xml; sourceTree = ""; };
BA79822F46BE0B8FB00814D8 /* Typhoon.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Typhoon.h; sourceTree = ""; };
BA798263556BF9A8D3735540 /* NSObject+TyphoonIntrospectionUtils.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSObject+TyphoonIntrospectionUtils.m"; sourceTree = ""; };
- BA79826D3DBC3AAAA9CCFEF9 /* CavalryMan.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CavalryMan.h; sourceTree = ""; };
BA79828A1DD5F7A0AD5C645F /* TyphoonCollectionValue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TyphoonCollectionValue.h; sourceTree = ""; };
BA7982DFFB32EDBAE645CC9E /* TyphoonComponentFactory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TyphoonComponentFactory.h; sourceTree = ""; };
BA7982E57238CCD057BE270A /* TyphoonInjectedParameter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TyphoonInjectedParameter.h; sourceTree = ""; };
BA7982FA13B86C2E09083297 /* TyphoonDefinition+InstanceBuilder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "TyphoonDefinition+InstanceBuilder.m"; sourceTree = ""; };
- BA79830E94815F5399DE80A9 /* PropertyPlaceholderAssembly.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = PropertyPlaceholderAssembly.xml; sourceTree = ""; };
- BA798323D6AA60720D3C1F46 /* Champion.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Champion.m; sourceTree = ""; };
BA79832904B8D31EAB17C3CE /* TyphoonParameterInjectedByReference.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TyphoonParameterInjectedByReference.m; sourceTree = ""; };
BA798332154152305525C6A3 /* TyphoonPropertyInjectedAsCollection.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TyphoonPropertyInjectedAsCollection.m; sourceTree = ""; };
BA7983460EDFA97511B4691C /* TyphoonRXMLElement+XmlComponentFactory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "TyphoonRXMLElement+XmlComponentFactory.h"; sourceTree = ""; };
- BA79835B6157EAC72445EC18 /* TyphoonPrimitiveTypeConverterTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TyphoonPrimitiveTypeConverterTests.m; sourceTree = ""; };
- BA798377C899BDEDF524624D /* ExceptionTestAssembly.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ExceptionTestAssembly.h; sourceTree = ""; };
- BA798399AF2E4C644EFA1B73 /* TyphoonPropertyPlaceholderConfigurerTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TyphoonPropertyPlaceholderConfigurerTests.m; sourceTree = ""; };
- BA7983B56DF3A5A7E8419D82 /* TyphoonPropertyInjectedAsCollectionTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TyphoonPropertyInjectedAsCollectionTests.m; sourceTree = ""; };
BA7983E3C21E67A0ABCEB3C4 /* TyphoonTypeConverter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TyphoonTypeConverter.h; sourceTree = ""; };
BA7983ED26EB786633CAD66E /* TyphoonTypeConverterRegistry.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TyphoonTypeConverterRegistry.m; sourceTree = ""; };
BA7984002D3A4775329743B4 /* TyphoonBlockComponentFactory.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TyphoonBlockComponentFactory.m; sourceTree = ""; };
@@ -257,113 +115,61 @@
BA79844939DE1F872B92FEFB /* TyphoonShorthand.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TyphoonShorthand.h; sourceTree = ""; };
BA798479971ACE88BD0EEBDF /* NSObject+TyphoonIntrospectionUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSObject+TyphoonIntrospectionUtils.h"; sourceTree = ""; };
BA7984898252E6336CCA405B /* TyphoonIntrospectionUtils.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TyphoonIntrospectionUtils.m; sourceTree = ""; };
- BA7984CC02E96BCA9CFBD86D /* AssemblyWithInvalidClassName.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = AssemblyWithInvalidClassName.xml; sourceTree = ""; };
- BA7984F5AEA25EB9B86D2472 /* CampaignQuest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CampaignQuest.m; sourceTree = ""; };
- BA7985045C39C7636A4D01AB /* Sword.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Sword.m; sourceTree = ""; };
BA798518E11F23A1021A6528 /* TyphoonComponentFactory+InstanceBuilder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "TyphoonComponentFactory+InstanceBuilder.m"; sourceTree = ""; };
- BA79851B85612ACD01D5770A /* TyphoonSharedComponentFactoryTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TyphoonSharedComponentFactoryTests.m; sourceTree = ""; };
BA79854418EB7AA8D5399AEF /* TyphoonPropertyInjectionDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TyphoonPropertyInjectionDelegate.h; sourceTree = ""; };
- BA79856D23D2E1F11B2D98A8 /* ClassBDependsOnA.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ClassBDependsOnA.m; sourceTree = ""; };
BA7985774337D73B3DD5657D /* TyphoonInitializer+InstanceBuilder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "TyphoonInitializer+InstanceBuilder.m"; sourceTree = ""; };
- BA7985C6B5BCA87DFBDDE9D5 /* AutoWiringSubClassedKnight.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AutoWiringSubClassedKnight.h; sourceTree = ""; };
BA7985CDE7DE45524AFB2C7A /* TyphoonComponentFactoryMutator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TyphoonComponentFactoryMutator.h; sourceTree = ""; };
BA7985E15C51C91ECC86FF4D /* TyphoonNSURLTypeConverter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TyphoonNSURLTypeConverter.h; sourceTree = ""; };
- BA7985F4B2858CA25A6E06B0 /* CircularDependenciesAssembly.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = CircularDependenciesAssembly.xml; sourceTree = ""; };
BA79866B01F50CC47F6507CE /* TyphoonParameterInjectedByValue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TyphoonParameterInjectedByValue.h; sourceTree = ""; };
- BA7986806CAD48DFD9D79DF2 /* ClassBDependsOnA.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ClassBDependsOnA.h; sourceTree = ""; };
- BA798696C3B88C132B7AE167 /* AutoWiringSubClassedKnight.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AutoWiringSubClassedKnight.m; sourceTree = ""; };
- BA7986994ECC51FA92D9307B /* CavalryMan.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CavalryMan.m; sourceTree = ""; };
- BA7986A3B5CB00D08F51703A /* TyphoonBundleResourceTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TyphoonBundleResourceTests.m; sourceTree = ""; };
BA7986DF1FADC2BBC51A7F09 /* TyphoonJRSwizzle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TyphoonJRSwizzle.h; sourceTree = ""; };
- BA798705F411B8128A8D3DE5 /* AutoWiringKnight.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AutoWiringKnight.m; sourceTree = ""; };
BA79870838865A2BC2EF0C12 /* TyphoonPropertyInjectedByType.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TyphoonPropertyInjectedByType.m; sourceTree = ""; };
BA7987099DAD3FC6A242E863 /* TyphoonParameterInjectedByValue.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TyphoonParameterInjectedByValue.m; sourceTree = ""; };
- BA798718B12F783930A46333 /* CircularDependenciesAssembly.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CircularDependenciesAssembly.m; sourceTree = ""; };
- BA798756CFE130835BBCD41E /* TyphoonPassThroughTypeConverterTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TyphoonPassThroughTypeConverterTests.m; sourceTree = ""; };
BA7987602D56180375A9A626 /* TyphoonXmlComponentFactory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TyphoonXmlComponentFactory.h; sourceTree = ""; };
BA7987DD059001676C6BDD67 /* TyphoonPropertyInjectedByValue.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TyphoonPropertyInjectedByValue.m; sourceTree = ""; };
BA7987E97990354BA94F2FB8 /* TyphoonPropertyPlaceholderConfigurer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TyphoonPropertyPlaceholderConfigurer.m; sourceTree = ""; };
- BA7987F1C0401ECAC64471DA /* TyphoonTypeConverterRegistryTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TyphoonTypeConverterRegistryTests.m; sourceTree = ""; };
BA7987F7029AF099EE905E31 /* TyphoonTypeConvertedCollectionValue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TyphoonTypeConvertedCollectionValue.h; sourceTree = ""; };
- BA7988174548286897AFA5BD /* TyphoonComponentFactoryTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TyphoonComponentFactoryTests.m; sourceTree = ""; };
BA79881BE276F481B4766FEF /* TyphoonTypeConvertedCollectionValue.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TyphoonTypeConvertedCollectionValue.m; sourceTree = ""; };
BA79882A81566B59CD4717ED /* TyphoonRXMLElement+XmlComponentFactory.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "TyphoonRXMLElement+XmlComponentFactory.m"; sourceTree = ""; };
BA79884CFD33CEBCCFC2EDFB /* TyphoonPassThroughTypeConverter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TyphoonPassThroughTypeConverter.h; sourceTree = ""; };
BA79885BB9DCAEAA342A19C9 /* TyphoonInitializer+InstanceBuilder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "TyphoonInitializer+InstanceBuilder.h"; sourceTree = ""; };
- BA79885EE04AD31869497804 /* TyphoonComponentFactory+InstanceBuilderTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "TyphoonComponentFactory+InstanceBuilderTests.m"; sourceTree = ""; };
- BA79885FE9AD4CDC00BAF06D /* Knight.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Knight.h; sourceTree = ""; };
- BA798887327FB3368714C50D /* RXMLElement+XmlComponentFactoryTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "RXMLElement+XmlComponentFactoryTests.m"; sourceTree = ""; };
BA7988CD6D8A9C4FC32994A1 /* TyphoonTestUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TyphoonTestUtils.h; sourceTree = ""; };
BA7988D81E615CF122461784 /* Typhoon.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Typhoon.pch; sourceTree = ""; };
- BA7988E402E5F36CBBC4C2B8 /* MiddleAgesAssembly.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MiddleAgesAssembly.m; sourceTree = ""; };
- BA7988F59C11104B728D7B71 /* SwordFactory.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SwordFactory.m; sourceTree = ""; };
BA79890C0F10164E6B504106 /* TyphoonAutowire.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TyphoonAutowire.h; sourceTree = ""; };
- BA79891DF40947E793BE6EB3 /* CampaignQuest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CampaignQuest.h; sourceTree = ""; };
- BA798944D5AB730584456A41 /* Sword.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Sword.h; sourceTree = ""; };
BA7989A3EBBC958882FB3165 /* TyphoonInjectedProperty.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TyphoonInjectedProperty.h; sourceTree = ""; };
BA7989B103528037045BF026 /* TyphoonIntrospectionUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TyphoonIntrospectionUtils.h; sourceTree = ""; };
BA7989D868CD199C5FDDB864 /* TyphoonPrimitiveTypeConverter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TyphoonPrimitiveTypeConverter.m; sourceTree = ""; };
- BA798A14A75896A016E940AB /* SomeProperties.properties */ = {isa = PBXFileReference; lastKnownFileType = file.properties; path = SomeProperties.properties; sourceTree = ""; };
BA798A1BEE9506D755255FF8 /* TyphoonRXMLElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TyphoonRXMLElement.h; sourceTree = ""; };
- BA798A394EA5C8C081D24C67 /* TyphoonSharedComponentFactoryTests.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TyphoonSharedComponentFactoryTests.h; sourceTree = ""; };
BA798A46F8E4B67A6227042B /* TyphoonPassThroughTypeConverter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TyphoonPassThroughTypeConverter.m; sourceTree = ""; };
- BA798A87A055C6C6BEB2A006 /* ClassWithCollectionProperties.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ClassWithCollectionProperties.h; sourceTree = ""; };
- BA798AB536AD3A7E6F7A3F6C /* AutoWiringKnight.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AutoWiringKnight.h; sourceTree = ""; };
BA798AC8A5E199CCE249DBB6 /* TyphoonNSURLTypeConverter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TyphoonNSURLTypeConverter.m; sourceTree = ""; };
BA798ACD4D056E79086E21E3 /* TyphoonDefinition+InstanceBuilder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "TyphoonDefinition+InstanceBuilder.h"; sourceTree = ""; };
- BA798AF66DE1ED5E61866145 /* Champion.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Champion.h; sourceTree = ""; };
BA798B3CB0EE595B87ED5B1C /* TyphoonPropertyInjectedByValue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TyphoonPropertyInjectedByValue.h; sourceTree = ""; };
- BA798B9A1B9A8AA11D46EF95 /* Harlot.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Harlot.h; sourceTree = ""; };
- BA798BD1C3AC7C8500D9191E /* Knight.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Knight.m; sourceTree = ""; };
BA798BDAEB237C52367719BA /* TyphoonJRSwizzle.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TyphoonJRSwizzle.m; sourceTree = ""; };
BA798BF4AEF367ED85994D24 /* TyphoonPropertyPlaceholderConfigurer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TyphoonPropertyPlaceholderConfigurer.h; sourceTree = ""; };
- BA798C08E644CFA300F26C87 /* InfoPlist.strings */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; path = InfoPlist.strings; sourceTree = ""; };
BA798C412A56850A9B848048 /* TyphoonPropertyInjectedAsCollection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TyphoonPropertyInjectedAsCollection.h; sourceTree = ""; };
BA798C477488DE1A076E6C50 /* TyphoonByReferenceCollectionValue.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TyphoonByReferenceCollectionValue.m; sourceTree = ""; };
BA798C53085482547B7C9EEC /* TyphoonByReferenceCollectionValue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TyphoonByReferenceCollectionValue.h; sourceTree = ""; };
BA798C631D05251F461B43CC /* TyphoonResource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TyphoonResource.h; sourceTree = ""; };
- BA798C719DB799A72B877AA6 /* ClassADependsOnB.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ClassADependsOnB.m; sourceTree = ""; };
BA798CA3A88193EC0242E6EC /* TyphoonDefinition.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TyphoonDefinition.h; sourceTree = ""; };
BA798CB709B2750980CFFC62 /* TyphoonComponentFactory+InstanceBuilder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "TyphoonComponentFactory+InstanceBuilder.h"; sourceTree = ""; };
BA798CD7662D6BB212BA5A02 /* TyphoonInitializer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TyphoonInitializer.m; sourceTree = ""; };
- BA798CE9339A8FBFF40E4B13 /* TyphoonXmlComponentFactoryTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TyphoonXmlComponentFactoryTests.m; sourceTree = ""; };
- BA798D616BF4A763D5A7CC8E /* CircularDependenciesAssembly.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CircularDependenciesAssembly.h; sourceTree = ""; };
BA798D84E3DDB8ABE3396063 /* TyphoonPropertyInjectedByType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TyphoonPropertyInjectedByType.h; sourceTree = ""; };
BA798D90E444A0899D50CD00 /* TyphoonIntrospectiveNSObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TyphoonIntrospectiveNSObject.h; sourceTree = ""; };
BA798D912CB8052A1A8B131F /* TyphoonAssembly.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TyphoonAssembly.m; sourceTree = ""; };
BA798D99C65094EE9E3D6FDE /* TyphoonComponentFactory.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TyphoonComponentFactory.m; sourceTree = ""; };
BA798DAAE13D2354A9CFD5E1 /* TyphoonTypeConverterRegistry.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TyphoonTypeConverterRegistry.h; sourceTree = ""; };
BA798DB938D859CED0C5327C /* TyphoonXmlComponentFactory.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TyphoonXmlComponentFactory.m; sourceTree = ""; };
- BA798DC1ABB84C7568A95693 /* MiddleAgesAssembly.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MiddleAgesAssembly.h; sourceTree = ""; };
BA798DE01D62ABB44B05EDC5 /* TyphoonTypeDescriptor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TyphoonTypeDescriptor.h; sourceTree = ""; };
- BA798DE82A1F4CD4B65BDB76 /* SwordFactory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SwordFactory.h; sourceTree = ""; };
BA798E2173A9C04887B7291B /* TyphoonParameterInjectedByReference.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TyphoonParameterInjectedByReference.h; sourceTree = ""; };
- BA798E265F77622D00A10B49 /* ClassADependsOnB.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ClassADependsOnB.h; sourceTree = ""; };
BA798E63DD460355D43BBB6F /* TyphoonBundleResource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TyphoonBundleResource.h; sourceTree = ""; };
- BA798EA73AA4E7181ACB1002 /* ClassWithCollectionProperties.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ClassWithCollectionProperties.m; sourceTree = ""; };
BA798F0B0FA574136DA6A52A /* TyphoonAssembly.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TyphoonAssembly.h; sourceTree = ""; };
BA798F0C33EBF7B9102B886A /* Info-iOS.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.info; path = "Info-iOS.plist"; sourceTree = ""; };
BA798F28A13AE6BA4386F62A /* assembly.xsd */ = {isa = PBXFileReference; lastKnownFileType = file.xsd; name = assembly.xsd; path = schema/assembly.xsd; sourceTree = ""; };
BA798F3057F2763006387D93 /* TyphoonPropertyInjectedByReference.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TyphoonPropertyInjectedByReference.m; sourceTree = ""; };
BA798F905F4B216CEA7A4D8A /* TyphoonDefinition.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TyphoonDefinition.m; sourceTree = ""; };
- BA798F939EF6855E92D46BDB /* ExceptionTestAssembly.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = ExceptionTestAssembly.xml; sourceTree = ""; };
BA798FEB8B4BF76B9D0717DF /* TyphoonPropertyInjectedByReference.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TyphoonPropertyInjectedByReference.h; sourceTree = ""; };
- BA798FF63253FDE4538CCC56 /* ExceptionTestAssembly.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ExceptionTestAssembly.m; sourceTree = ""; };
- FFF2540F17899826005D2089 /* LazyInitCasesAssembly.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = LazyInitCasesAssembly.xml; sourceTree = ""; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
- 6B3F399116ABF8E5001A601C /* Frameworks */ = {
- isa = PBXFrameworksBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 6B3F399716ABF8E5001A601C /* SenTestingKit.framework in Frameworks */,
- 6B3F399916ABF8E5001A601C /* Cocoa.framework in Frameworks */,
- 6B6922A716C7675800C6858B /* OCMockito.framework in Frameworks */,
- 6BD2B6DE16AC02DD0066C5DB /* OCHamcrest.framework in Frameworks */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
6B3F39BE16ABFAC3001A601C /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
@@ -378,10 +184,9 @@
6B3F396516ABF854001A601C = {
isa = PBXGroup;
children = (
- 6B3F399E16ABF8E5001A601C /* Tests */,
+ BA79878F47DCC140652F7088 /* Source */,
6B3F397316ABF854001A601C /* Frameworks */,
6B3F397116ABF854001A601C /* Products */,
- BA79878F47DCC140652F7088 /* Source */,
BA798F28A13AE6BA4386F62A /* assembly.xsd */,
);
sourceTree = "";
@@ -389,7 +194,6 @@
6B3F397116ABF854001A601C /* Products */ = {
isa = PBXGroup;
children = (
- 6B3F399516ABF8E5001A601C /* Tests.octest */,
6B3F39C116ABFAC3001A601C /* libTyphoon.a */,
);
name = Products;
@@ -398,51 +202,14 @@
6B3F397316ABF854001A601C /* Frameworks */ = {
isa = PBXGroup;
children = (
- 6BD2B6E116AC031B0066C5DB /* OCHamcrest.framework */,
- 6BD2B6DD16AC02DD0066C5DB /* OCHamcrest.framework */,
6B3F397416ABF854001A601C /* Foundation.framework */,
6B3F399616ABF8E5001A601C /* SenTestingKit.framework */,
6B3F399816ABF8E5001A601C /* Cocoa.framework */,
- 6B3F399A16ABF8E5001A601C /* Other Frameworks */,
- 6B7CE44416C74919002E0107 /* OCMockito.framework */,
- );
- name = Frameworks;
- sourceTree = "";
- };
- 6B3F399A16ABF8E5001A601C /* Other Frameworks */ = {
- isa = PBXGroup;
- children = (
6B3F399B16ABF8E5001A601C /* AppKit.framework */,
6B3F399C16ABF8E5001A601C /* CoreData.framework */,
6B3F399D16ABF8E5001A601C /* Foundation.framework */,
);
- name = "Other Frameworks";
- sourceTree = "";
- };
- 6B3F399E16ABF8E5001A601C /* Tests */ = {
- isa = PBXGroup;
- children = (
- 6B3F399F16ABF8E5001A601C /* Supporting Files */,
- BA79869ADC20B1DFEFE701AD /* Component */,
- BA798DDAB8C778445B0B8E24 /* en.lproj */,
- BA7984E97F44512C6D28C518 /* Factory */,
- BA798F528A3622B812D8947A /* Model */,
- BA7985A14209EDAA0D5F322C /* Resources */,
- BA7983C55C137AC3C4B21455 /* TypeConversion */,
- BA798CC05964B6ED55F0AE50 /* Utils */,
- BA798B9A1B9A8AA11D46EF95 /* Harlot.h */,
- );
- path = Tests;
- sourceTree = "";
- };
- 6B3F399F16ABF8E5001A601C /* Supporting Files */ = {
- isa = PBXGroup;
- children = (
- 6B3F39A016ABF8E5001A601C /* Tests-Info.plist */,
- 6B3F39A116ABF8E5001A601C /* InfoPlist.strings */,
- 6B3F39A716ABF8E5001A601C /* Tests-Prefix.pch */,
- );
- name = "Supporting Files";
+ name = Frameworks;
sourceTree = "";
};
BA798016DB167EC7324540D8 /* Swizzle */ = {
@@ -454,16 +221,6 @@
path = Swizzle;
sourceTree = "";
};
- BA79808653FEC9F3FBA65325 /* Properties */ = {
- isa = PBXGroup;
- children = (
- BA798EA73AA4E7181ACB1002 /* ClassWithCollectionProperties.m */,
- BA798A87A055C6C6BEB2A006 /* ClassWithCollectionProperties.h */,
- BA79859661E751B4C742C1B5 /* Collection */,
- );
- path = Properties;
- sourceTree = "";
- };
BA7981FC365AD3068E13838F /* Utils */ = {
isa = PBXGroup;
children = (
@@ -480,17 +237,6 @@
path = Utils;
sourceTree = "";
};
- BA7982426F6BC9576B8A2C14 /* AutoWiring */ = {
- isa = PBXGroup;
- children = (
- BA798705F411B8128A8D3DE5 /* AutoWiringKnight.m */,
- BA798696C3B88C132B7AE167 /* AutoWiringSubClassedKnight.m */,
- BA798AB536AD3A7E6F7A3F6C /* AutoWiringKnight.h */,
- BA7985C6B5BCA87DFBDDE9D5 /* AutoWiringSubClassedKnight.h */,
- );
- path = AutoWiring;
- sourceTree = "";
- };
BA798262CFD8F506619152C0 /* Mutator */ = {
isa = PBXGroup;
children = (
@@ -528,25 +274,6 @@
path = Properties;
sourceTree = "";
};
- BA798398C29E28CABAC51F06 /* Resource */ = {
- isa = PBXGroup;
- children = (
- BA7986A3B5CB00D08F51703A /* TyphoonBundleResourceTests.m */,
- );
- path = Resource;
- sourceTree = "";
- };
- BA7983C55C137AC3C4B21455 /* TypeConversion */ = {
- isa = PBXGroup;
- children = (
- BA79835B6157EAC72445EC18 /* TyphoonPrimitiveTypeConverterTests.m */,
- BA7987F1C0401ECAC64471DA /* TyphoonTypeConverterRegistryTests.m */,
- BA798756CFE130835BBCD41E /* TyphoonPassThroughTypeConverterTests.m */,
- BA7980EA659972E591843F3F /* TyphoonTypeDescriptorTests.m */,
- );
- path = TypeConversion;
- sourceTree = "";
- };
BA7984C2E9988794FC0166CB /* Xml */ = {
isa = PBXGroup;
children = (
@@ -571,27 +298,6 @@
path = Block;
sourceTree = "";
};
- BA7984E97F44512C6D28C518 /* Factory */ = {
- isa = PBXGroup;
- children = (
- BA798B19C6D79344760144F4 /* Mutator */,
- BA79876B460D560558938427 /* Xml */,
- BA79885EE04AD31869497804 /* TyphoonComponentFactory+InstanceBuilderTests.m */,
- BA7988174548286897AFA5BD /* TyphoonComponentFactoryTests.m */,
- BA798A930AE1807FBF937988 /* Block */,
- BA7987A31A7AA322151C8F85 /* Shared */,
- );
- path = Factory;
- sourceTree = "";
- };
- BA79859661E751B4C742C1B5 /* Collection */ = {
- isa = PBXGroup;
- children = (
- BA7983B56DF3A5A7E8419D82 /* TyphoonPropertyInjectedAsCollectionTests.m */,
- );
- path = Collection;
- sourceTree = "";
- };
BA79859D1AD01A8AE50F93EB /* Collection */ = {
isa = PBXGroup;
children = (
@@ -606,38 +312,6 @@
path = Collection;
sourceTree = "";
};
- BA7985A14209EDAA0D5F322C /* Resources */ = {
- isa = PBXGroup;
- children = (
- FFF2540F17899826005D2089 /* LazyInitCasesAssembly.xml */,
- BA798F939EF6855E92D46BDB /* ExceptionTestAssembly.xml */,
- BA798202AE023A0FAABDA909 /* MiddleAgesAssembly.xml */,
- BA798A14A75896A016E940AB /* SomeProperties.properties */,
- BA7985F4B2858CA25A6E06B0 /* CircularDependenciesAssembly.xml */,
- BA79830E94815F5399DE80A9 /* PropertyPlaceholderAssembly.xml */,
- BA7984CC02E96BCA9CFBD86D /* AssemblyWithInvalidClassName.xml */,
- );
- path = Resources;
- sourceTree = "";
- };
- BA79869ADC20B1DFEFE701AD /* Component */ = {
- isa = PBXGroup;
- children = (
- BA79801AE4DCFB941CCC29CF /* TyphoonDefinitionTests.m */,
- BA79808653FEC9F3FBA65325 /* Properties */,
- );
- path = Component;
- sourceTree = "";
- };
- BA79876B460D560558938427 /* Xml */ = {
- isa = PBXGroup;
- children = (
- BA798887327FB3368714C50D /* RXMLElement+XmlComponentFactoryTests.m */,
- BA798CE9339A8FBFF40E4B13 /* TyphoonXmlComponentFactoryTests.m */,
- );
- path = Xml;
- sourceTree = "";
- };
BA79878F47DCC140652F7088 /* Source */ = {
isa = PBXGroup;
children = (
@@ -654,73 +328,6 @@
path = Source;
sourceTree = "";
};
- BA7987A31A7AA322151C8F85 /* Shared */ = {
- isa = PBXGroup;
- children = (
- BA79851B85612ACD01D5770A /* TyphoonSharedComponentFactoryTests.m */,
- BA798A394EA5C8C081D24C67 /* TyphoonSharedComponentFactoryTests.h */,
- );
- path = Shared;
- sourceTree = "";
- };
- BA798988DA6C716409711479 /* CircularDependencies */ = {
- isa = PBXGroup;
- children = (
- BA798E265F77622D00A10B49 /* ClassADependsOnB.h */,
- BA798C719DB799A72B877AA6 /* ClassADependsOnB.m */,
- BA7986806CAD48DFD9D79DF2 /* ClassBDependsOnA.h */,
- BA79856D23D2E1F11B2D98A8 /* ClassBDependsOnA.m */,
- 65EB697C177F626B00391D0B /* ClassCDependsOnDAndE.h */,
- 65EB697D177F626B00391D0B /* ClassCDependsOnDAndE.m */,
- 65EB6976177F61A500391D0B /* ClassDDependsOnC.h */,
- 65EB6977177F61A500391D0B /* ClassDDependsOnC.m */,
- 65EB6979177F61BE00391D0B /* ClassEDependsOnC.h */,
- 65EB697A177F61BE00391D0B /* ClassEDependsOnC.m */,
- );
- path = CircularDependencies;
- sourceTree = "";
- };
- BA798A930AE1807FBF937988 /* Block */ = {
- isa = PBXGroup;
- children = (
- BA7981FA89E44727928240C1 /* TyphoonBlockComponentFactoryTests.m */,
- BA7988E402E5F36CBBC4C2B8 /* MiddleAgesAssembly.m */,
- BA798DC1ABB84C7568A95693 /* MiddleAgesAssembly.h */,
- BA798FF63253FDE4538CCC56 /* ExceptionTestAssembly.m */,
- BA798377C899BDEDF524624D /* ExceptionTestAssembly.h */,
- BA798718B12F783930A46333 /* CircularDependenciesAssembly.m */,
- BA798D616BF4A763D5A7CC8E /* CircularDependenciesAssembly.h */,
- );
- path = Block;
- sourceTree = "";
- };
- BA798A9392F0AE7EB3BBEEA8 /* Factory */ = {
- isa = PBXGroup;
- children = (
- BA798DE82A1F4CD4B65BDB76 /* SwordFactory.h */,
- BA798944D5AB730584456A41 /* Sword.h */,
- BA7985045C39C7636A4D01AB /* Sword.m */,
- BA7988F59C11104B728D7B71 /* SwordFactory.m */,
- );
- path = Factory;
- sourceTree = "";
- };
- BA798B19C6D79344760144F4 /* Mutator */ = {
- isa = PBXGroup;
- children = (
- BA798E90AB93B8BC09E406DD /* PropertyConfigurer */,
- );
- path = Mutator;
- sourceTree = "";
- };
- BA798CC05964B6ED55F0AE50 /* Utils */ = {
- isa = PBXGroup;
- children = (
- BA798398C29E28CABAC51F06 /* Resource */,
- );
- path = Utils;
- sourceTree = "";
- };
BA798D151ADF53EA5F5303BD /* PropertyConfigurers */ = {
isa = PBXGroup;
children = (
@@ -773,22 +380,6 @@
path = TypeConversion;
sourceTree = "";
};
- BA798DDAB8C778445B0B8E24 /* en.lproj */ = {
- isa = PBXGroup;
- children = (
- BA798CAF61DB9F5B65068218 /* InfoPlist.strings */,
- );
- path = en.lproj;
- sourceTree = "";
- };
- BA798E90AB93B8BC09E406DD /* PropertyConfigurer */ = {
- isa = PBXGroup;
- children = (
- BA798399AF2E4C644EFA1B73 /* TyphoonPropertyPlaceholderConfigurerTests.m */,
- );
- path = PropertyConfigurer;
- sourceTree = "";
- };
BA798E985943E046737DF9F9 /* Initializer */ = {
isa = PBXGroup;
children = (
@@ -815,25 +406,6 @@
path = Resource;
sourceTree = "";
};
- BA798F528A3622B812D8947A /* Model */ = {
- isa = PBXGroup;
- children = (
- BA798988DA6C716409711479 /* CircularDependencies */,
- BA798AF66DE1ED5E61866145 /* Champion.h */,
- BA798A9392F0AE7EB3BBEEA8 /* Factory */,
- BA7984F5AEA25EB9B86D2472 /* CampaignQuest.m */,
- BA79891DF40947E793BE6EB3 /* CampaignQuest.h */,
- BA7981799C36080F28A3C9DC /* Quest.h */,
- BA798323D6AA60720D3C1F46 /* Champion.m */,
- BA79826D3DBC3AAAA9CCFEF9 /* CavalryMan.h */,
- BA798BD1C3AC7C8500D9191E /* Knight.m */,
- BA7986994ECC51FA92D9307B /* CavalryMan.m */,
- BA79885FE9AD4CDC00BAF06D /* Knight.h */,
- BA7982426F6BC9576B8A2C14 /* AutoWiring */,
- );
- path = Model;
- sourceTree = "";
- };
/* End PBXGroup section */
/* Begin PBXHeadersBuildPhase section */
@@ -874,9 +446,6 @@
BA798112DDEA33F0FD848B66 /* Typhoon.pch in Headers */,
BA798097479D73266D1D3679 /* TyphoonAssembly.h in Headers */,
BA79897DD52D123AC065C637 /* TyphoonBlockComponentFactory.h in Headers */,
- BA798389BE9BA57143AE4AE3 /* MiddleAgesAssembly.h in Headers */,
- BA7986F3CC6538C5D6F2FB14 /* AutoWiringKnight.h in Headers */,
- BA798358FB32F41E63EFE237 /* AutoWiringSubClassedKnight.h in Headers */,
BA7989A288AA5FD437CFF984 /* TyphoonAutowire.h in Headers */,
BA7981F6247963CF6E1B207C /* TyphoonShorthand.h in Headers */,
BA798599D566C651112D759F /* TyphoonDefinition+InstanceBuilder.h in Headers */,
@@ -892,25 +461,6 @@
/* End PBXHeadersBuildPhase section */
/* Begin PBXNativeTarget section */
- 6B3F399416ABF8E5001A601C /* Tests */ = {
- isa = PBXNativeTarget;
- buildConfigurationList = 6B3F39AA16ABF8E5001A601C /* Build configuration list for PBXNativeTarget "Tests" */;
- buildPhases = (
- 6B3F399016ABF8E5001A601C /* Sources */,
- 6B3F399116ABF8E5001A601C /* Frameworks */,
- 6B3F399216ABF8E5001A601C /* Resources */,
- 6BD2B6E016AC02EC0066C5DB /* Install Hamcrest and Mockito */,
- 6B3F399316ABF8E5001A601C /* ShellScript */,
- );
- buildRules = (
- );
- dependencies = (
- );
- name = Tests;
- productName = Tests;
- productReference = 6B3F399516ABF8E5001A601C /* Tests.octest */;
- productType = "com.apple.product-type.bundle";
- };
6B3F39C016ABFAC3001A601C /* Typhoon */ = {
isa = PBXNativeTarget;
buildConfigurationList = 6B3F39C916ABFAC3001A601C /* Build configuration list for PBXNativeTarget "Typhoon" */;
@@ -937,7 +487,7 @@
LastUpgradeCheck = 0460;
ORGANIZATIONNAME = "Jasper Blues";
};
- buildConfigurationList = 6B3F396A16ABF854001A601C /* Build configuration list for PBXProject "Typhoon" */;
+ buildConfigurationList = 6B3F396A16ABF854001A601C /* Build configuration list for PBXProject "Static Library" */;
compatibilityVersion = "Xcode 3.2";
developmentRegion = English;
hasScannedForEncodings = 0;
@@ -949,118 +499,12 @@
projectDirPath = "";
projectRoot = "";
targets = (
- 6B3F399416ABF8E5001A601C /* Tests */,
6B3F39C016ABFAC3001A601C /* Typhoon */,
);
};
/* End PBXProject section */
-/* Begin PBXResourcesBuildPhase section */
- 6B3F399216ABF8E5001A601C /* Resources */ = {
- isa = PBXResourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 6B3F39A316ABF8E5001A601C /* InfoPlist.strings in Resources */,
- BA798BBAFE0BD0E6B8595BC7 /* Info-iOS.plist in Resources */,
- BA798029B4DDE871019DCF56 /* InfoPlist.strings in Resources */,
- BA79819589A82CE9C1B7ABB1 /* ExceptionTestAssembly.xml in Resources */,
- BA7981B20236201C0B82CE0F /* MiddleAgesAssembly.xml in Resources */,
- BA798715D2E37056C1410435 /* SomeProperties.properties in Resources */,
- BA798FA1E881FBA470DDB3A3 /* CircularDependenciesAssembly.xml in Resources */,
- BA798645C06B7F823F2EEF21 /* PropertyPlaceholderAssembly.xml in Resources */,
- BA7988BBFF5261E02753A6E9 /* AssemblyWithInvalidClassName.xml in Resources */,
- FFF2541017899826005D2089 /* LazyInitCasesAssembly.xml in Resources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXResourcesBuildPhase section */
-
-/* Begin PBXShellScriptBuildPhase section */
- 6B3F399316ABF8E5001A601C /* ShellScript */ = {
- isa = PBXShellScriptBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- inputPaths = (
- );
- outputPaths = (
- );
- runOnlyForDeploymentPostprocessing = 0;
- shellPath = /bin/sh;
- shellScript = "# Run the unit tests in this test bundle.\n\"${SYSTEM_DEVELOPER_DIR}/Tools/RunUnitTests\"\n";
- };
-/* End PBXShellScriptBuildPhase section */
-
/* Begin PBXSourcesBuildPhase section */
- 6B3F399016ABF8E5001A601C /* Sources */ = {
- isa = PBXSourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- BA7986855DF6978DACD0301F /* TyphoonRXMLElement+XmlComponentFactory.m in Sources */,
- BA7985BD33B70D3EE2B09C5D /* TyphoonRXMLElement.m in Sources */,
- BA798313AA1BD03055560FAB /* TyphoonXmlComponentFactory.m in Sources */,
- BA79891E383DF51AC87B08CE /* TyphoonPropertyPlaceholderConfigurer.m in Sources */,
- BA7981D8FE4ADA0C736391D0 /* TyphoonComponentFactory+InstanceBuilder.m in Sources */,
- BA7983EEB6EBA69190912DD2 /* TyphoonComponentFactory.m in Sources */,
- BA798F36E2F7280719695587 /* TyphoonPropertyInjectedByReference.m in Sources */,
- BA7984EE5599C0226566B89F /* TyphoonPropertyInjectedByType.m in Sources */,
- BA798931977D8AAE448C076B /* TyphoonPropertyInjectedByValue.m in Sources */,
- BA7986BD674CAA7BAEFF62FC /* TyphoonInitializer.m in Sources */,
- BA7986F8CCD4AD133960EF6F /* TyphoonParameterInjectedByReference.m in Sources */,
- BA798B82BE8C9399E0DAC53C /* TyphoonParameterInjectedByValue.m in Sources */,
- BA798596614379B0E6E34DA2 /* TyphoonDefinition.m in Sources */,
- BA7989888A03458D5C8566A5 /* TyphoonNSURLTypeConverter.m in Sources */,
- BA798DD2A268AC8ED68A5CD0 /* TyphoonPassThroughTypeConverter.m in Sources */,
- BA798A476979921D836CB3A7 /* TyphoonPrimitiveTypeConverter.m in Sources */,
- BA798F1B1AA0D03CBD9EE364 /* TyphoonTypeConverterRegistry.m in Sources */,
- BA7987AAA9E0C091CC18E478 /* TyphoonTypeDescriptor.m in Sources */,
- BA798846F132F1B27ACC50AB /* TyphoonBundleResource.m in Sources */,
- BA79854B3F3A6A853EC82A36 /* NSObject+TyphoonIntrospectionUtils.m in Sources */,
- BA7989C7EC5DA27BFA491C1B /* TyphoonIntrospectionUtils.m in Sources */,
- BA7988EC60A6908CA4C3A3F0 /* TyphoonJRSwizzle.m in Sources */,
- BA798D6CDBD76677C4828D51 /* TyphoonDefinitionTests.m in Sources */,
- BA798F3107067EC20FD3BAA1 /* TyphoonPropertyPlaceholderConfigurerTests.m in Sources */,
- BA798F4139E77075EFA98D08 /* RXMLElement+XmlComponentFactoryTests.m in Sources */,
- BA79857ECF0C173BA7EFAD53 /* TyphoonSharedComponentFactoryTests.m in Sources */,
- BA7989C3DE4051ED51A806BC /* TyphoonComponentFactory+InstanceBuilderTests.m in Sources */,
- BA7984A273860B8DEF364551 /* TyphoonComponentFactoryTests.m in Sources */,
- BA7987C61D0426020A9F99D6 /* ClassADependsOnB.m in Sources */,
- BA798517BD08DD842E9CCBB9 /* ClassBDependsOnA.m in Sources */,
- BA7981F9B98A5E5E2CEF89CD /* Sword.m in Sources */,
- BA7985DE18A762911B70D30D /* SwordFactory.m in Sources */,
- BA798AAC862D17A0BD033E58 /* CampaignQuest.m in Sources */,
- BA798D707379A4F111542564 /* Champion.m in Sources */,
- BA798EDE69E8D0D7F0422080 /* Knight.m in Sources */,
- BA798013E4E4CFD7732EB0B3 /* CavalryMan.m in Sources */,
- BA798BE56FC8C7D40AEC1ECB /* TyphoonPrimitiveTypeConverterTests.m in Sources */,
- BA79863BC931512FAFAB5FA5 /* TyphoonTypeConverterRegistryTests.m in Sources */,
- BA798AD940B4B352D710AF7B /* TyphoonAssembly.m in Sources */,
- BA798374A23B455695401235 /* TyphoonBlockComponentFactory.m in Sources */,
- BA798307E7C694F4D7BD9120 /* TyphoonBlockComponentFactoryTests.m in Sources */,
- BA7989527EE13EF94A5F1092 /* MiddleAgesAssembly.m in Sources */,
- BA79800FBAC7DD90540E5AD0 /* AutoWiringKnight.m in Sources */,
- BA7987ABAA5B89C6479A0557 /* AutoWiringSubClassedKnight.m in Sources */,
- BA79800B110019810E388455 /* TyphoonXmlComponentFactoryTests.m in Sources */,
- BA798893CDBA08800B357A20 /* ExceptionTestAssembly.m in Sources */,
- BA798B0E98DACFF7F724848B /* CircularDependenciesAssembly.m in Sources */,
- BA7982B2B41D180D262E7B7B /* TyphoonPassThroughTypeConverterTests.m in Sources */,
- BA79833ECE531B1CF0BC0770 /* TyphoonBundleResourceTests.m in Sources */,
- BA7984E8725A13D73BDDE103 /* TyphoonTypeDescriptorTests.m in Sources */,
- BA79814120BF924C0FA796BC /* TyphoonDefinition+InstanceBuilder.m in Sources */,
- BA798A9ECE0D7897F0F48219 /* TyphoonInitializer+InstanceBuilder.m in Sources */,
- BA79832A081876F9671009E9 /* TyphoonTestUtils.m in Sources */,
- BA798987C59D4992D579970A /* ClassWithCollectionProperties.m in Sources */,
- BA79821793AF809161BFA2A4 /* TyphoonPropertyInjectedAsCollection.m in Sources */,
- BA798FA07C462CD337A80DFF /* TyphoonByReferenceCollectionValue.m in Sources */,
- BA798EA4DDC838A133459796 /* TyphoonTypeConvertedCollectionValue.m in Sources */,
- BA7982E1BDA4C7924D7285BB /* TyphoonPropertyInjectedAsCollectionTests.m in Sources */,
- B594F87F174DF32800BF5DC5 /* TyphoonParameterInjectedByRawValue.m in Sources */,
- 65EB6978177F61A500391D0B /* ClassDDependsOnC.m in Sources */,
- 65EB697B177F61BE00391D0B /* ClassEDependsOnC.m in Sources */,
- 65EB697E177F626B00391D0B /* ClassCDependsOnDAndE.m in Sources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
6B3F39BD16ABFAC3001A601C /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
@@ -1089,9 +533,6 @@
BA7980F06792726585C8F808 /* TyphoonJRSwizzle.m in Sources */,
BA798576613C0F22AFCBC4A8 /* TyphoonAssembly.m in Sources */,
BA798F9DC5E7204C1B50E83A /* TyphoonBlockComponentFactory.m in Sources */,
- BA7981C6C1CFB28CF4FED014 /* MiddleAgesAssembly.m in Sources */,
- BA798661770DB8B48238696F /* TyphoonPassThroughTypeConverterTests.m in Sources */,
- BA798E43AD023DC48C064BDD /* TyphoonBundleResourceTests.m in Sources */,
BA798AB191332D52B99B01C8 /* TyphoonDefinition+InstanceBuilder.m in Sources */,
BA79820B847F8AC6A2AC87D3 /* TyphoonInitializer+InstanceBuilder.m in Sources */,
BA79815B423FE0B1ACA3D9A4 /* TyphoonTestUtils.m in Sources */,
@@ -1104,25 +545,6 @@
};
/* End PBXSourcesBuildPhase section */
-/* Begin PBXVariantGroup section */
- 6B3F39A116ABF8E5001A601C /* InfoPlist.strings */ = {
- isa = PBXVariantGroup;
- children = (
- 6B3F39A216ABF8E5001A601C /* en */,
- );
- name = InfoPlist.strings;
- sourceTree = "";
- };
- BA798CAF61DB9F5B65068218 /* InfoPlist.strings */ = {
- isa = PBXVariantGroup;
- children = (
- BA798C08E644CFA300F26C87 /* InfoPlist.strings */,
- );
- name = InfoPlist.strings;
- sourceTree = "";
- };
-/* End PBXVariantGroup section */
-
/* Begin XCBuildConfiguration section */
6B3F397D16ABF854001A601C /* Debug */ = {
isa = XCBuildConfiguration;
@@ -1177,60 +599,6 @@
};
name = Release;
};
- 6B3F39A816ABF8E5001A601C /* Debug */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ALWAYS_SEARCH_USER_PATHS = YES;
- COMBINE_HIDPI_IMAGES = YES;
- FRAMEWORK_SEARCH_PATHS = (
- "\"$(DEVELOPER_LIBRARY_DIR)/Frameworks\"",
- "\"$(SRCROOT)/External\"",
- "\"$(SRCROOT)\"",
- );
- GCC_GENERATE_TEST_COVERAGE_FILES = YES;
- GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES;
- GCC_PRECOMPILE_PREFIX_HEADER = YES;
- GCC_PREFIX_HEADER = "Tests/Tests-Prefix.pch";
- HEADER_SEARCH_PATHS = "${SDKROOT}/usr/include/libxml2";
- INFOPLIST_FILE = "Tests/Tests-Info.plist";
- OTHER_LDFLAGS = (
- "-lxml2",
- "-Objc",
- );
- PRODUCT_NAME = "$(TARGET_NAME)";
- TEST_AFTER_BUILD = YES;
- USER_HEADER_SEARCH_PATHS = "${SRCROOT}/Source";
- WRAPPER_EXTENSION = octest;
- };
- name = Debug;
- };
- 6B3F39A916ABF8E5001A601C /* Release */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ALWAYS_SEARCH_USER_PATHS = YES;
- COMBINE_HIDPI_IMAGES = YES;
- FRAMEWORK_SEARCH_PATHS = (
- "\"$(DEVELOPER_LIBRARY_DIR)/Frameworks\"",
- "\"$(SRCROOT)/External\"",
- "\"$(SRCROOT)\"",
- );
- GCC_GENERATE_TEST_COVERAGE_FILES = YES;
- GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES;
- GCC_PRECOMPILE_PREFIX_HEADER = YES;
- GCC_PREFIX_HEADER = "Tests/Tests-Prefix.pch";
- HEADER_SEARCH_PATHS = "${SDKROOT}/usr/include/libxml2";
- INFOPLIST_FILE = "Tests/Tests-Info.plist";
- OTHER_LDFLAGS = (
- "-lxml2",
- "-Objc",
- );
- PRODUCT_NAME = "$(TARGET_NAME)";
- TEST_AFTER_BUILD = YES;
- USER_HEADER_SEARCH_PATHS = "${SRCROOT}/Source";
- WRAPPER_EXTENSION = octest;
- };
- name = Release;
- };
6B3F39CA16ABFAC3001A601C /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
@@ -1244,6 +612,7 @@
HEADER_SEARCH_PATHS = "${SDKROOT}/usr/include/libxml2";
OTHER_LDFLAGS = "";
PRODUCT_NAME = "$(TARGET_NAME)";
+ SUPPORTED_PLATFORMS = "macosx iphonesimulator iphoneos";
};
name = Debug;
};
@@ -1260,13 +629,14 @@
HEADER_SEARCH_PATHS = "${SDKROOT}/usr/include/libxml2";
OTHER_LDFLAGS = "";
PRODUCT_NAME = "$(TARGET_NAME)";
+ SUPPORTED_PLATFORMS = "macosx iphonesimulator iphoneos";
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
- 6B3F396A16ABF854001A601C /* Build configuration list for PBXProject "Typhoon" */ = {
+ 6B3F396A16ABF854001A601C /* Build configuration list for PBXProject "Static Library" */ = {
isa = XCConfigurationList;
buildConfigurations = (
6B3F397D16ABF854001A601C /* Debug */,
@@ -1275,15 +645,6 @@
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
- 6B3F39AA16ABF8E5001A601C /* Build configuration list for PBXNativeTarget "Tests" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- 6B3F39A816ABF8E5001A601C /* Debug */,
- 6B3F39A916ABF8E5001A601C /* Release */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Release;
- };
6B3F39C916ABFAC3001A601C /* Build configuration list for PBXNativeTarget "Typhoon" */ = {
isa = XCConfigurationList;
buildConfigurations = (
diff --git a/Typhoon.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Static Library.xcodeproj/project.xcworkspace/contents.xcworkspacedata
similarity index 100%
rename from Typhoon.xcodeproj/project.xcworkspace/contents.xcworkspacedata
rename to Static Library.xcodeproj/project.xcworkspace/contents.xcworkspacedata
diff --git a/Static Library.xcodeproj/project.xcworkspace/xcshareddata/Typhoon.xccheckout b/Static Library.xcodeproj/project.xcworkspace/xcshareddata/Typhoon.xccheckout
new file mode 100644
index 000000000..ba269f4a9
--- /dev/null
+++ b/Static Library.xcodeproj/project.xcworkspace/xcshareddata/Typhoon.xccheckout
@@ -0,0 +1,39 @@
+
+
+
+
+ IDESourceControlProjectIdentifier
+ 310B7C44-63E5-4AE1-B763-973218D1D98D
+ IDESourceControlProjectName
+ Typhoon
+ IDESourceControlProjectOriginsDictionary
+
+ B0FD5C9A-A3A5-4D84-8203-E8B19439C67C
+ https://github.com/rhgills/Typhoon
+
+ IDESourceControlProjectPath
+ Typhoon.xcodeproj/project.xcworkspace
+ IDESourceControlProjectRelativeInstallPathDictionary
+
+ B0FD5C9A-A3A5-4D84-8203-E8B19439C67C
+ ../..
+
+ IDESourceControlProjectURL
+ https://github.com/rhgills/Typhoon
+ IDESourceControlProjectVersion
+ 110
+ IDESourceControlProjectWCCIdentifier
+ B0FD5C9A-A3A5-4D84-8203-E8B19439C67C
+ IDESourceControlProjectWCConfigurations
+
+
+ IDESourceControlRepositoryExtensionIdentifierKey
+ public.vcs.git
+ IDESourceControlWCCIdentifierKey
+ B0FD5C9A-A3A5-4D84-8203-E8B19439C67C
+ IDESourceControlWCCName
+ Typhoon
+
+
+
+
diff --git a/Typhoon.xcodeproj/xcuserdata/jblues.xcuserdatad/xcschemes/Typhoon.xcscheme b/Static Library.xcodeproj/xcshareddata/xcschemes/Typhoon.xcscheme
similarity index 63%
rename from Typhoon.xcodeproj/xcuserdata/jblues.xcuserdatad/xcschemes/Typhoon.xcscheme
rename to Static Library.xcodeproj/xcshareddata/xcschemes/Typhoon.xcscheme
index ec2b24d94..f5711828f 100644
--- a/Typhoon.xcodeproj/xcuserdata/jblues.xcuserdatad/xcschemes/Typhoon.xcscheme
+++ b/Static Library.xcodeproj/xcshareddata/xcschemes/Typhoon.xcscheme
@@ -1,6 +1,6 @@
-
-
-
-
-
-
-
-
@@ -66,15 +48,6 @@
useCustomWorkingDirectory = "NO"
buildConfiguration = "Release"
debugDocumentVersioning = "YES">
-
-
-
-
diff --git a/Tests/Factory/Block/MiddleAgesAssembly.m b/Tests/Factory/Block/MiddleAgesAssembly.m
index 1bf9dff29..c16a6bdae 100644
--- a/Tests/Factory/Block/MiddleAgesAssembly.m
+++ b/Tests/Factory/Block/MiddleAgesAssembly.m
@@ -49,7 +49,7 @@ - (id)anotherKnight
{
initializer.selector = @selector(initWithQuest:hitRatio:);
[initializer injectWithDefinition:[self defaultQuest]];
- [initializer injectWithText:@"13.75"];
+ [initializer injectWithValueAsText:@"13.75"];
} properties:^(TyphoonDefinition* definition)
{
diff --git a/Tests/Podfile b/Tests/Podfile
new file mode 100644
index 000000000..90245caff
--- /dev/null
+++ b/Tests/Podfile
@@ -0,0 +1,20 @@
+xcodeproj 'Tests'
+workspace '../Typhoon'
+
+def import_pods
+ pod 'Typhoon', :path => '../'
+ pod 'OCHamcrest', '~> 1.9'
+ pod 'OCMockito', '~> 0.2'
+end
+
+target :ios do
+ platform :ios, '5.0'
+ link_with 'iOS Tests'
+ import_pods
+end
+
+target :osx do
+ platform :osx, '10.7'
+ link_with 'OS X Tests'
+ import_pods
+end
diff --git a/Tests/Podfile.lock b/Tests/Podfile.lock
new file mode 100644
index 000000000..41a7464fc
--- /dev/null
+++ b/Tests/Podfile.lock
@@ -0,0 +1,21 @@
+PODS:
+ - OCHamcrest (1.9)
+ - OCMockito (0.23):
+ - OCHamcrest (= 1.9)
+ - Typhoon (1.2.2)
+
+DEPENDENCIES:
+ - OCHamcrest (~> 1.9)
+ - OCMockito (~> 0.2)
+ - Typhoon (from `../`)
+
+EXTERNAL SOURCES:
+ Typhoon:
+ :path: ../
+
+SPEC CHECKSUMS:
+ OCHamcrest: f8393efd5a49d91879be573635d6183effacc0ab
+ OCMockito: 2223021dd82697fc536c403d6850d2ed8ffae578
+ Typhoon: f72943ad1f806e4ef45a708869caa4af637db891
+
+COCOAPODS: 0.22.2
diff --git a/Tests/Pods/BuildHeaders/OCHamcrest/HCAllOf.h b/Tests/Pods/BuildHeaders/OCHamcrest/HCAllOf.h
new file mode 120000
index 000000000..70dc57181
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/OCHamcrest/HCAllOf.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/Library/Logical/HCAllOf.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/OCHamcrest/HCAnyOf.h b/Tests/Pods/BuildHeaders/OCHamcrest/HCAnyOf.h
new file mode 120000
index 000000000..d1059788f
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/OCHamcrest/HCAnyOf.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/Library/Logical/HCAnyOf.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/OCHamcrest/HCAssertThat.h b/Tests/Pods/BuildHeaders/OCHamcrest/HCAssertThat.h
new file mode 120000
index 000000000..55aa3a353
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/OCHamcrest/HCAssertThat.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/Core/HCAssertThat.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/OCHamcrest/HCBaseDescription.h b/Tests/Pods/BuildHeaders/OCHamcrest/HCBaseDescription.h
new file mode 120000
index 000000000..30188d6e5
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/OCHamcrest/HCBaseDescription.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/Core/HCBaseDescription.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/OCHamcrest/HCBaseMatcher.h b/Tests/Pods/BuildHeaders/OCHamcrest/HCBaseMatcher.h
new file mode 120000
index 000000000..c0608c3d5
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/OCHamcrest/HCBaseMatcher.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/Core/HCBaseMatcher.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/OCHamcrest/HCBoxNumber.h b/Tests/Pods/BuildHeaders/OCHamcrest/HCBoxNumber.h
new file mode 120000
index 000000000..2836eef12
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/OCHamcrest/HCBoxNumber.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/Library/Number/HCBoxNumber.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/OCHamcrest/HCCollectMatchers.h b/Tests/Pods/BuildHeaders/OCHamcrest/HCCollectMatchers.h
new file mode 120000
index 000000000..262bd4b59
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/OCHamcrest/HCCollectMatchers.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/Core/Helpers/HCCollectMatchers.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/OCHamcrest/HCConformsToProtocol.h b/Tests/Pods/BuildHeaders/OCHamcrest/HCConformsToProtocol.h
new file mode 120000
index 000000000..293f5ff48
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/OCHamcrest/HCConformsToProtocol.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/Library/Object/HCConformsToProtocol.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/OCHamcrest/HCDescribedAs.h b/Tests/Pods/BuildHeaders/OCHamcrest/HCDescribedAs.h
new file mode 120000
index 000000000..387fb5889
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/OCHamcrest/HCDescribedAs.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/Library/Decorator/HCDescribedAs.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/OCHamcrest/HCDescription.h b/Tests/Pods/BuildHeaders/OCHamcrest/HCDescription.h
new file mode 120000
index 000000000..7c06cc7db
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/OCHamcrest/HCDescription.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/Core/HCDescription.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/OCHamcrest/HCHasCount.h b/Tests/Pods/BuildHeaders/OCHamcrest/HCHasCount.h
new file mode 120000
index 000000000..89a8d3dbb
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/OCHamcrest/HCHasCount.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/Library/Collection/HCHasCount.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/OCHamcrest/HCHasDescription.h b/Tests/Pods/BuildHeaders/OCHamcrest/HCHasDescription.h
new file mode 120000
index 000000000..dcb7f0e7c
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/OCHamcrest/HCHasDescription.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/Library/Object/HCHasDescription.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/OCHamcrest/HCHasProperty.h b/Tests/Pods/BuildHeaders/OCHamcrest/HCHasProperty.h
new file mode 120000
index 000000000..8c68067f8
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/OCHamcrest/HCHasProperty.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/Library/Object/HCHasProperty.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/OCHamcrest/HCInvocationMatcher.h b/Tests/Pods/BuildHeaders/OCHamcrest/HCInvocationMatcher.h
new file mode 120000
index 000000000..4c741bb36
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/OCHamcrest/HCInvocationMatcher.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/Core/Helpers/HCInvocationMatcher.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/OCHamcrest/HCIs.h b/Tests/Pods/BuildHeaders/OCHamcrest/HCIs.h
new file mode 120000
index 000000000..39fe1b272
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/OCHamcrest/HCIs.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/Library/Decorator/HCIs.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/OCHamcrest/HCIsAnything.h b/Tests/Pods/BuildHeaders/OCHamcrest/HCIsAnything.h
new file mode 120000
index 000000000..369d83d10
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/OCHamcrest/HCIsAnything.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/Library/Logical/HCIsAnything.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/OCHamcrest/HCIsCloseTo.h b/Tests/Pods/BuildHeaders/OCHamcrest/HCIsCloseTo.h
new file mode 120000
index 000000000..623f7cfd1
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/OCHamcrest/HCIsCloseTo.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/Library/Number/HCIsCloseTo.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/OCHamcrest/HCIsCollectionContaining.h b/Tests/Pods/BuildHeaders/OCHamcrest/HCIsCollectionContaining.h
new file mode 120000
index 000000000..94ece9d08
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/OCHamcrest/HCIsCollectionContaining.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/Library/Collection/HCIsCollectionContaining.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/OCHamcrest/HCIsCollectionContainingInAnyOrder.h b/Tests/Pods/BuildHeaders/OCHamcrest/HCIsCollectionContainingInAnyOrder.h
new file mode 120000
index 000000000..f7dbb0564
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/OCHamcrest/HCIsCollectionContainingInAnyOrder.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/Library/Collection/HCIsCollectionContainingInAnyOrder.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/OCHamcrest/HCIsCollectionContainingInOrder.h b/Tests/Pods/BuildHeaders/OCHamcrest/HCIsCollectionContainingInOrder.h
new file mode 120000
index 000000000..c082abf3e
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/OCHamcrest/HCIsCollectionContainingInOrder.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/Library/Collection/HCIsCollectionContainingInOrder.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/OCHamcrest/HCIsCollectionOnlyContaining.h b/Tests/Pods/BuildHeaders/OCHamcrest/HCIsCollectionOnlyContaining.h
new file mode 120000
index 000000000..1604b4e49
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/OCHamcrest/HCIsCollectionOnlyContaining.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/Library/Collection/HCIsCollectionOnlyContaining.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/OCHamcrest/HCIsDictionaryContaining.h b/Tests/Pods/BuildHeaders/OCHamcrest/HCIsDictionaryContaining.h
new file mode 120000
index 000000000..507f173ce
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/OCHamcrest/HCIsDictionaryContaining.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/Library/Collection/HCIsDictionaryContaining.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/OCHamcrest/HCIsDictionaryContainingEntries.h b/Tests/Pods/BuildHeaders/OCHamcrest/HCIsDictionaryContainingEntries.h
new file mode 120000
index 000000000..080aae6dd
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/OCHamcrest/HCIsDictionaryContainingEntries.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/Library/Collection/HCIsDictionaryContainingEntries.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/OCHamcrest/HCIsDictionaryContainingKey.h b/Tests/Pods/BuildHeaders/OCHamcrest/HCIsDictionaryContainingKey.h
new file mode 120000
index 000000000..cabd74b30
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/OCHamcrest/HCIsDictionaryContainingKey.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/Library/Collection/HCIsDictionaryContainingKey.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/OCHamcrest/HCIsDictionaryContainingValue.h b/Tests/Pods/BuildHeaders/OCHamcrest/HCIsDictionaryContainingValue.h
new file mode 120000
index 000000000..20fcda3b5
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/OCHamcrest/HCIsDictionaryContainingValue.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/Library/Collection/HCIsDictionaryContainingValue.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/OCHamcrest/HCIsEmptyCollection.h b/Tests/Pods/BuildHeaders/OCHamcrest/HCIsEmptyCollection.h
new file mode 120000
index 000000000..93c385f02
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/OCHamcrest/HCIsEmptyCollection.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/Library/Collection/HCIsEmptyCollection.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/OCHamcrest/HCIsEqual.h b/Tests/Pods/BuildHeaders/OCHamcrest/HCIsEqual.h
new file mode 120000
index 000000000..e438e99a8
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/OCHamcrest/HCIsEqual.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/Library/Object/HCIsEqual.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/OCHamcrest/HCIsEqualIgnoringCase.h b/Tests/Pods/BuildHeaders/OCHamcrest/HCIsEqualIgnoringCase.h
new file mode 120000
index 000000000..1b11a1fc4
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/OCHamcrest/HCIsEqualIgnoringCase.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/Library/Text/HCIsEqualIgnoringCase.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/OCHamcrest/HCIsEqualIgnoringWhiteSpace.h b/Tests/Pods/BuildHeaders/OCHamcrest/HCIsEqualIgnoringWhiteSpace.h
new file mode 120000
index 000000000..8274666de
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/OCHamcrest/HCIsEqualIgnoringWhiteSpace.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/Library/Text/HCIsEqualIgnoringWhiteSpace.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/OCHamcrest/HCIsEqualToNumber.h b/Tests/Pods/BuildHeaders/OCHamcrest/HCIsEqualToNumber.h
new file mode 120000
index 000000000..ce0c24811
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/OCHamcrest/HCIsEqualToNumber.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/Library/Number/HCIsEqualToNumber.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/OCHamcrest/HCIsIn.h b/Tests/Pods/BuildHeaders/OCHamcrest/HCIsIn.h
new file mode 120000
index 000000000..91625dccf
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/OCHamcrest/HCIsIn.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/Library/Collection/HCIsIn.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/OCHamcrest/HCIsInstanceOf.h b/Tests/Pods/BuildHeaders/OCHamcrest/HCIsInstanceOf.h
new file mode 120000
index 000000000..07a4fbe5a
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/OCHamcrest/HCIsInstanceOf.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/Library/Object/HCIsInstanceOf.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/OCHamcrest/HCIsNil.h b/Tests/Pods/BuildHeaders/OCHamcrest/HCIsNil.h
new file mode 120000
index 000000000..86c73f1da
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/OCHamcrest/HCIsNil.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/Library/Object/HCIsNil.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/OCHamcrest/HCIsNot.h b/Tests/Pods/BuildHeaders/OCHamcrest/HCIsNot.h
new file mode 120000
index 000000000..3bf41e3a7
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/OCHamcrest/HCIsNot.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/Library/Logical/HCIsNot.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/OCHamcrest/HCIsSame.h b/Tests/Pods/BuildHeaders/OCHamcrest/HCIsSame.h
new file mode 120000
index 000000000..3455870d8
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/OCHamcrest/HCIsSame.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/Library/Object/HCIsSame.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/OCHamcrest/HCMatcher.h b/Tests/Pods/BuildHeaders/OCHamcrest/HCMatcher.h
new file mode 120000
index 000000000..339840acf
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/OCHamcrest/HCMatcher.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/Core/HCMatcher.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/OCHamcrest/HCNumberAssert.h b/Tests/Pods/BuildHeaders/OCHamcrest/HCNumberAssert.h
new file mode 120000
index 000000000..f2b3ff885
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/OCHamcrest/HCNumberAssert.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/Library/Number/HCNumberAssert.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/OCHamcrest/HCOrderingComparison.h b/Tests/Pods/BuildHeaders/OCHamcrest/HCOrderingComparison.h
new file mode 120000
index 000000000..2a771f182
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/OCHamcrest/HCOrderingComparison.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/Library/Number/HCOrderingComparison.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/OCHamcrest/HCRequireNonNilObject.h b/Tests/Pods/BuildHeaders/OCHamcrest/HCRequireNonNilObject.h
new file mode 120000
index 000000000..29719f105
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/OCHamcrest/HCRequireNonNilObject.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/Core/Helpers/HCRequireNonNilObject.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/OCHamcrest/HCRequireNonNilString.h b/Tests/Pods/BuildHeaders/OCHamcrest/HCRequireNonNilString.h
new file mode 120000
index 000000000..01ee1ce90
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/OCHamcrest/HCRequireNonNilString.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/Core/Helpers/HCRequireNonNilString.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/OCHamcrest/HCSelfDescribing.h b/Tests/Pods/BuildHeaders/OCHamcrest/HCSelfDescribing.h
new file mode 120000
index 000000000..ec6e57883
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/OCHamcrest/HCSelfDescribing.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/Core/HCSelfDescribing.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/OCHamcrest/HCStringContains.h b/Tests/Pods/BuildHeaders/OCHamcrest/HCStringContains.h
new file mode 120000
index 000000000..6b0744179
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/OCHamcrest/HCStringContains.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/Library/Text/HCStringContains.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/OCHamcrest/HCStringContainsInOrder.h b/Tests/Pods/BuildHeaders/OCHamcrest/HCStringContainsInOrder.h
new file mode 120000
index 000000000..c06178fd4
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/OCHamcrest/HCStringContainsInOrder.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/Library/Text/HCStringContainsInOrder.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/OCHamcrest/HCStringDescription.h b/Tests/Pods/BuildHeaders/OCHamcrest/HCStringDescription.h
new file mode 120000
index 000000000..0c69a3750
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/OCHamcrest/HCStringDescription.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/Core/HCStringDescription.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/OCHamcrest/HCStringEndsWith.h b/Tests/Pods/BuildHeaders/OCHamcrest/HCStringEndsWith.h
new file mode 120000
index 000000000..4af07e65d
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/OCHamcrest/HCStringEndsWith.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/Library/Text/HCStringEndsWith.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/OCHamcrest/HCStringStartsWith.h b/Tests/Pods/BuildHeaders/OCHamcrest/HCStringStartsWith.h
new file mode 120000
index 000000000..af9cae335
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/OCHamcrest/HCStringStartsWith.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/Library/Text/HCStringStartsWith.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/OCHamcrest/HCSubstringMatcher.h b/Tests/Pods/BuildHeaders/OCHamcrest/HCSubstringMatcher.h
new file mode 120000
index 000000000..8f7c409c3
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/OCHamcrest/HCSubstringMatcher.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/Library/Text/HCSubstringMatcher.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/OCHamcrest/HCWrapInMatcher.h b/Tests/Pods/BuildHeaders/OCHamcrest/HCWrapInMatcher.h
new file mode 120000
index 000000000..31db2567d
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/OCHamcrest/HCWrapInMatcher.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/Core/Helpers/HCWrapInMatcher.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/OCHamcrest/OCHamcrest.h b/Tests/Pods/BuildHeaders/OCHamcrest/OCHamcrest.h
new file mode 120000
index 000000000..b3d41bc8e
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/OCHamcrest/OCHamcrest.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/OCHamcrest.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/OCMockito/MKTAtLeastTimes.h b/Tests/Pods/BuildHeaders/OCMockito/MKTAtLeastTimes.h
new file mode 120000
index 000000000..41e4d03bf
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/OCMockito/MKTAtLeastTimes.h
@@ -0,0 +1 @@
+../../OCMockito/Source/OCMockito/MKTAtLeastTimes.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/OCMockito/MKTBaseMockObject.h b/Tests/Pods/BuildHeaders/OCMockito/MKTBaseMockObject.h
new file mode 120000
index 000000000..8f05fd2aa
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/OCMockito/MKTBaseMockObject.h
@@ -0,0 +1 @@
+../../OCMockito/Source/OCMockito/MKTBaseMockObject.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/OCMockito/MKTClassObjectMock.h b/Tests/Pods/BuildHeaders/OCMockito/MKTClassObjectMock.h
new file mode 120000
index 000000000..31624927f
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/OCMockito/MKTClassObjectMock.h
@@ -0,0 +1 @@
+../../OCMockito/Source/OCMockito/MKTClassObjectMock.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/OCMockito/MKTExactTimes.h b/Tests/Pods/BuildHeaders/OCMockito/MKTExactTimes.h
new file mode 120000
index 000000000..ac00d3f6c
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/OCMockito/MKTExactTimes.h
@@ -0,0 +1 @@
+../../OCMockito/Source/OCMockito/MKTExactTimes.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/OCMockito/MKTException.h b/Tests/Pods/BuildHeaders/OCMockito/MKTException.h
new file mode 120000
index 000000000..644b80882
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/OCMockito/MKTException.h
@@ -0,0 +1 @@
+../../OCMockito/Source/OCMockito/MKTException.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/OCMockito/MKTInvocationContainer.h b/Tests/Pods/BuildHeaders/OCMockito/MKTInvocationContainer.h
new file mode 120000
index 000000000..429a953e5
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/OCMockito/MKTInvocationContainer.h
@@ -0,0 +1 @@
+../../OCMockito/Source/OCMockito/MKTInvocationContainer.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/OCMockito/MKTInvocationMatcher.h b/Tests/Pods/BuildHeaders/OCMockito/MKTInvocationMatcher.h
new file mode 120000
index 000000000..d9577d031
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/OCMockito/MKTInvocationMatcher.h
@@ -0,0 +1 @@
+../../OCMockito/Source/OCMockito/MKTInvocationMatcher.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/OCMockito/MKTMockAwareVerificationMode.h b/Tests/Pods/BuildHeaders/OCMockito/MKTMockAwareVerificationMode.h
new file mode 120000
index 000000000..91a8d6f76
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/OCMockito/MKTMockAwareVerificationMode.h
@@ -0,0 +1 @@
+../../OCMockito/Source/OCMockito/MKTMockAwareVerificationMode.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/OCMockito/MKTMockingProgress.h b/Tests/Pods/BuildHeaders/OCMockito/MKTMockingProgress.h
new file mode 120000
index 000000000..ff1090ff2
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/OCMockito/MKTMockingProgress.h
@@ -0,0 +1 @@
+../../OCMockito/Source/OCMockito/MKTMockingProgress.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/OCMockito/MKTMockitoCore.h b/Tests/Pods/BuildHeaders/OCMockito/MKTMockitoCore.h
new file mode 120000
index 000000000..a8b2600e7
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/OCMockito/MKTMockitoCore.h
@@ -0,0 +1 @@
+../../OCMockito/Source/OCMockito/MKTMockitoCore.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/OCMockito/MKTObjectAndProtocolMock.h b/Tests/Pods/BuildHeaders/OCMockito/MKTObjectAndProtocolMock.h
new file mode 120000
index 000000000..6b9ed914b
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/OCMockito/MKTObjectAndProtocolMock.h
@@ -0,0 +1 @@
+../../OCMockito/Source/OCMockito/MKTObjectAndProtocolMock.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/OCMockito/MKTObjectMock.h b/Tests/Pods/BuildHeaders/OCMockito/MKTObjectMock.h
new file mode 120000
index 000000000..88cd73c3b
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/OCMockito/MKTObjectMock.h
@@ -0,0 +1 @@
+../../OCMockito/Source/OCMockito/MKTObjectMock.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/OCMockito/MKTOngoingStubbing.h b/Tests/Pods/BuildHeaders/OCMockito/MKTOngoingStubbing.h
new file mode 120000
index 000000000..7cb7d5ed2
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/OCMockito/MKTOngoingStubbing.h
@@ -0,0 +1 @@
+../../OCMockito/Source/OCMockito/MKTOngoingStubbing.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/OCMockito/MKTPrimitiveArgumentMatching.h b/Tests/Pods/BuildHeaders/OCMockito/MKTPrimitiveArgumentMatching.h
new file mode 120000
index 000000000..f17fb6796
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/OCMockito/MKTPrimitiveArgumentMatching.h
@@ -0,0 +1 @@
+../../OCMockito/Source/OCMockito/MKTPrimitiveArgumentMatching.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/OCMockito/MKTProtocolMock.h b/Tests/Pods/BuildHeaders/OCMockito/MKTProtocolMock.h
new file mode 120000
index 000000000..339604ba4
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/OCMockito/MKTProtocolMock.h
@@ -0,0 +1 @@
+../../OCMockito/Source/OCMockito/MKTProtocolMock.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/OCMockito/MKTStubbedInvocationMatcher.h b/Tests/Pods/BuildHeaders/OCMockito/MKTStubbedInvocationMatcher.h
new file mode 120000
index 000000000..24089eba5
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/OCMockito/MKTStubbedInvocationMatcher.h
@@ -0,0 +1 @@
+../../OCMockito/Source/OCMockito/MKTStubbedInvocationMatcher.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/OCMockito/MKTTestLocation.h b/Tests/Pods/BuildHeaders/OCMockito/MKTTestLocation.h
new file mode 120000
index 000000000..8b1c8cd42
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/OCMockito/MKTTestLocation.h
@@ -0,0 +1 @@
+../../OCMockito/Source/OCMockito/MKTTestLocation.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/OCMockito/MKTTypeEncoding.h b/Tests/Pods/BuildHeaders/OCMockito/MKTTypeEncoding.h
new file mode 120000
index 000000000..3e12baacf
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/OCMockito/MKTTypeEncoding.h
@@ -0,0 +1 @@
+../../OCMockito/Source/OCMockito/MKTTypeEncoding.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/OCMockito/MKTVerificationData.h b/Tests/Pods/BuildHeaders/OCMockito/MKTVerificationData.h
new file mode 120000
index 000000000..78cdbd21a
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/OCMockito/MKTVerificationData.h
@@ -0,0 +1 @@
+../../OCMockito/Source/OCMockito/MKTVerificationData.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/OCMockito/MKTVerificationMode.h b/Tests/Pods/BuildHeaders/OCMockito/MKTVerificationMode.h
new file mode 120000
index 000000000..fa2f3ecda
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/OCMockito/MKTVerificationMode.h
@@ -0,0 +1 @@
+../../OCMockito/Source/OCMockito/MKTVerificationMode.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/OCMockito/OCMockito.h b/Tests/Pods/BuildHeaders/OCMockito/OCMockito.h
new file mode 120000
index 000000000..a3fd907f7
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/OCMockito/OCMockito.h
@@ -0,0 +1 @@
+../../OCMockito/Source/OCMockito/OCMockito.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/Typhoon/NSObject+TyphoonIntrospectionUtils.h b/Tests/Pods/BuildHeaders/Typhoon/NSObject+TyphoonIntrospectionUtils.h
new file mode 120000
index 000000000..05eab78ae
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/Typhoon/NSObject+TyphoonIntrospectionUtils.h
@@ -0,0 +1 @@
+../../../../Source/Utils/NSObject+TyphoonIntrospectionUtils.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/Typhoon/Typhoon.h b/Tests/Pods/BuildHeaders/Typhoon/Typhoon.h
new file mode 120000
index 000000000..4e45a36d2
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/Typhoon/Typhoon.h
@@ -0,0 +1 @@
+../../../../Source/Typhoon.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/Typhoon/TyphoonAssembly.h b/Tests/Pods/BuildHeaders/Typhoon/TyphoonAssembly.h
new file mode 120000
index 000000000..1f346da76
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/Typhoon/TyphoonAssembly.h
@@ -0,0 +1 @@
+../../../../Source/Factory/Block/TyphoonAssembly.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/Typhoon/TyphoonAutowire.h b/Tests/Pods/BuildHeaders/Typhoon/TyphoonAutowire.h
new file mode 120000
index 000000000..ff35598de
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/Typhoon/TyphoonAutowire.h
@@ -0,0 +1 @@
+../../../../Source/TyphoonAutowire.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/Typhoon/TyphoonBlockComponentFactory.h b/Tests/Pods/BuildHeaders/Typhoon/TyphoonBlockComponentFactory.h
new file mode 120000
index 000000000..c1d3dc0f3
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/Typhoon/TyphoonBlockComponentFactory.h
@@ -0,0 +1 @@
+../../../../Source/Factory/Block/TyphoonBlockComponentFactory.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/Typhoon/TyphoonBundleResource.h b/Tests/Pods/BuildHeaders/Typhoon/TyphoonBundleResource.h
new file mode 120000
index 000000000..07743a02a
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/Typhoon/TyphoonBundleResource.h
@@ -0,0 +1 @@
+../../../../Source/Utils/Resource/TyphoonBundleResource.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/Typhoon/TyphoonByReferenceCollectionValue.h b/Tests/Pods/BuildHeaders/Typhoon/TyphoonByReferenceCollectionValue.h
new file mode 120000
index 000000000..5da220ea3
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/Typhoon/TyphoonByReferenceCollectionValue.h
@@ -0,0 +1 @@
+../../../../Source/Component/Properties/Collection/TyphoonByReferenceCollectionValue.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/Typhoon/TyphoonCollectionValue.h b/Tests/Pods/BuildHeaders/Typhoon/TyphoonCollectionValue.h
new file mode 120000
index 000000000..fe1154d7e
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/Typhoon/TyphoonCollectionValue.h
@@ -0,0 +1 @@
+../../../../Source/Component/Properties/Collection/TyphoonCollectionValue.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/Typhoon/TyphoonComponentFactory+InstanceBuilder.h b/Tests/Pods/BuildHeaders/Typhoon/TyphoonComponentFactory+InstanceBuilder.h
new file mode 120000
index 000000000..e2b5b048a
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/Typhoon/TyphoonComponentFactory+InstanceBuilder.h
@@ -0,0 +1 @@
+../../../../Source/Factory/InstanceBuilder/TyphoonComponentFactory+InstanceBuilder.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/Typhoon/TyphoonComponentFactory.h b/Tests/Pods/BuildHeaders/Typhoon/TyphoonComponentFactory.h
new file mode 120000
index 000000000..de81ccf4e
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/Typhoon/TyphoonComponentFactory.h
@@ -0,0 +1 @@
+../../../../Source/Factory/TyphoonComponentFactory.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/Typhoon/TyphoonComponentFactoryMutator.h b/Tests/Pods/BuildHeaders/Typhoon/TyphoonComponentFactoryMutator.h
new file mode 120000
index 000000000..7f0d7132d
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/Typhoon/TyphoonComponentFactoryMutator.h
@@ -0,0 +1 @@
+../../../../Source/Factory/Mutator/TyphoonComponentFactoryMutator.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/Typhoon/TyphoonDefinition+InstanceBuilder.h b/Tests/Pods/BuildHeaders/Typhoon/TyphoonDefinition+InstanceBuilder.h
new file mode 120000
index 000000000..3e1535e91
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/Typhoon/TyphoonDefinition+InstanceBuilder.h
@@ -0,0 +1 @@
+../../../../Source/Factory/InstanceBuilder/TyphoonDefinition+InstanceBuilder.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/Typhoon/TyphoonDefinition.h b/Tests/Pods/BuildHeaders/Typhoon/TyphoonDefinition.h
new file mode 120000
index 000000000..1c0a487ff
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/Typhoon/TyphoonDefinition.h
@@ -0,0 +1 @@
+../../../../Source/Component/TyphoonDefinition.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/Typhoon/TyphoonInitializer+InstanceBuilder.h b/Tests/Pods/BuildHeaders/Typhoon/TyphoonInitializer+InstanceBuilder.h
new file mode 120000
index 000000000..a01d011ee
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/Typhoon/TyphoonInitializer+InstanceBuilder.h
@@ -0,0 +1 @@
+../../../../Source/Factory/InstanceBuilder/TyphoonInitializer+InstanceBuilder.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/Typhoon/TyphoonInitializer.h b/Tests/Pods/BuildHeaders/Typhoon/TyphoonInitializer.h
new file mode 120000
index 000000000..e08c69acf
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/Typhoon/TyphoonInitializer.h
@@ -0,0 +1 @@
+../../../../Source/Component/Initializer/TyphoonInitializer.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/Typhoon/TyphoonInjectedParameter.h b/Tests/Pods/BuildHeaders/Typhoon/TyphoonInjectedParameter.h
new file mode 120000
index 000000000..612a4de87
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/Typhoon/TyphoonInjectedParameter.h
@@ -0,0 +1 @@
+../../../../Source/Component/Initializer/TyphoonInjectedParameter.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/Typhoon/TyphoonInjectedProperty.h b/Tests/Pods/BuildHeaders/Typhoon/TyphoonInjectedProperty.h
new file mode 120000
index 000000000..2b7c4cfdb
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/Typhoon/TyphoonInjectedProperty.h
@@ -0,0 +1 @@
+../../../../Source/Component/Properties/TyphoonInjectedProperty.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/Typhoon/TyphoonIntrospectionUtils.h b/Tests/Pods/BuildHeaders/Typhoon/TyphoonIntrospectionUtils.h
new file mode 120000
index 000000000..7002a767c
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/Typhoon/TyphoonIntrospectionUtils.h
@@ -0,0 +1 @@
+../../../../Source/Utils/TyphoonIntrospectionUtils.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/Typhoon/TyphoonIntrospectiveNSObject.h b/Tests/Pods/BuildHeaders/Typhoon/TyphoonIntrospectiveNSObject.h
new file mode 120000
index 000000000..9117b3250
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/Typhoon/TyphoonIntrospectiveNSObject.h
@@ -0,0 +1 @@
+../../../../Source/Utils/TyphoonIntrospectiveNSObject.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/Typhoon/TyphoonJRSwizzle.h b/Tests/Pods/BuildHeaders/Typhoon/TyphoonJRSwizzle.h
new file mode 120000
index 000000000..a53ffcb90
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/Typhoon/TyphoonJRSwizzle.h
@@ -0,0 +1 @@
+../../../../Source/Utils/Swizzle/TyphoonJRSwizzle.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/Typhoon/TyphoonNSURLTypeConverter.h b/Tests/Pods/BuildHeaders/Typhoon/TyphoonNSURLTypeConverter.h
new file mode 120000
index 000000000..f5e0861cd
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/Typhoon/TyphoonNSURLTypeConverter.h
@@ -0,0 +1 @@
+../../../../Source/TypeConversion/TyphoonNSURLTypeConverter.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/Typhoon/TyphoonParameterInjectedByRawValue.h b/Tests/Pods/BuildHeaders/Typhoon/TyphoonParameterInjectedByRawValue.h
new file mode 120000
index 000000000..1c407a1f4
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/Typhoon/TyphoonParameterInjectedByRawValue.h
@@ -0,0 +1 @@
+../../../../Source/Component/Initializer/TyphoonParameterInjectedByRawValue.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/Typhoon/TyphoonParameterInjectedByReference.h b/Tests/Pods/BuildHeaders/Typhoon/TyphoonParameterInjectedByReference.h
new file mode 120000
index 000000000..2a5ef6895
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/Typhoon/TyphoonParameterInjectedByReference.h
@@ -0,0 +1 @@
+../../../../Source/Component/Initializer/TyphoonParameterInjectedByReference.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/Typhoon/TyphoonParameterInjectedByValue.h b/Tests/Pods/BuildHeaders/Typhoon/TyphoonParameterInjectedByValue.h
new file mode 120000
index 000000000..6fdb052f3
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/Typhoon/TyphoonParameterInjectedByValue.h
@@ -0,0 +1 @@
+../../../../Source/Component/Initializer/TyphoonParameterInjectedByValue.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/Typhoon/TyphoonPassThroughTypeConverter.h b/Tests/Pods/BuildHeaders/Typhoon/TyphoonPassThroughTypeConverter.h
new file mode 120000
index 000000000..175507575
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/Typhoon/TyphoonPassThroughTypeConverter.h
@@ -0,0 +1 @@
+../../../../Source/TypeConversion/TyphoonPassThroughTypeConverter.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/Typhoon/TyphoonPrimitiveTypeConverter.h b/Tests/Pods/BuildHeaders/Typhoon/TyphoonPrimitiveTypeConverter.h
new file mode 120000
index 000000000..023b7b9f7
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/Typhoon/TyphoonPrimitiveTypeConverter.h
@@ -0,0 +1 @@
+../../../../Source/TypeConversion/TyphoonPrimitiveTypeConverter.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/Typhoon/TyphoonPropertyInjectedAsCollection.h b/Tests/Pods/BuildHeaders/Typhoon/TyphoonPropertyInjectedAsCollection.h
new file mode 120000
index 000000000..77ce955b5
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/Typhoon/TyphoonPropertyInjectedAsCollection.h
@@ -0,0 +1 @@
+../../../../Source/Component/Properties/Collection/TyphoonPropertyInjectedAsCollection.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/Typhoon/TyphoonPropertyInjectedByReference.h b/Tests/Pods/BuildHeaders/Typhoon/TyphoonPropertyInjectedByReference.h
new file mode 120000
index 000000000..b5a45d460
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/Typhoon/TyphoonPropertyInjectedByReference.h
@@ -0,0 +1 @@
+../../../../Source/Component/Properties/TyphoonPropertyInjectedByReference.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/Typhoon/TyphoonPropertyInjectedByType.h b/Tests/Pods/BuildHeaders/Typhoon/TyphoonPropertyInjectedByType.h
new file mode 120000
index 000000000..3fe60eb6d
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/Typhoon/TyphoonPropertyInjectedByType.h
@@ -0,0 +1 @@
+../../../../Source/Component/Properties/TyphoonPropertyInjectedByType.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/Typhoon/TyphoonPropertyInjectedByValue.h b/Tests/Pods/BuildHeaders/Typhoon/TyphoonPropertyInjectedByValue.h
new file mode 120000
index 000000000..ff0c5eded
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/Typhoon/TyphoonPropertyInjectedByValue.h
@@ -0,0 +1 @@
+../../../../Source/Component/Properties/TyphoonPropertyInjectedByValue.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/Typhoon/TyphoonPropertyInjectionDelegate.h b/Tests/Pods/BuildHeaders/Typhoon/TyphoonPropertyInjectionDelegate.h
new file mode 120000
index 000000000..007efcdb4
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/Typhoon/TyphoonPropertyInjectionDelegate.h
@@ -0,0 +1 @@
+../../../../Source/Component/Properties/TyphoonPropertyInjectionDelegate.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/Typhoon/TyphoonPropertyPlaceholderConfigurer.h b/Tests/Pods/BuildHeaders/Typhoon/TyphoonPropertyPlaceholderConfigurer.h
new file mode 120000
index 000000000..1e8285403
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/Typhoon/TyphoonPropertyPlaceholderConfigurer.h
@@ -0,0 +1 @@
+../../../../Source/Factory/PropertyConfigurers/TyphoonPropertyPlaceholderConfigurer.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/Typhoon/TyphoonRXMLElement+XmlComponentFactory.h b/Tests/Pods/BuildHeaders/Typhoon/TyphoonRXMLElement+XmlComponentFactory.h
new file mode 120000
index 000000000..a273a255f
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/Typhoon/TyphoonRXMLElement+XmlComponentFactory.h
@@ -0,0 +1 @@
+../../../../Source/Factory/Xml/TyphoonRXMLElement+XmlComponentFactory.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/Typhoon/TyphoonRXMLElement.h b/Tests/Pods/BuildHeaders/Typhoon/TyphoonRXMLElement.h
new file mode 120000
index 000000000..eb63fbec8
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/Typhoon/TyphoonRXMLElement.h
@@ -0,0 +1 @@
+../../../../Source/Factory/Xml/TyphoonRXMLElement.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/Typhoon/TyphoonResource.h b/Tests/Pods/BuildHeaders/Typhoon/TyphoonResource.h
new file mode 120000
index 000000000..f8273955a
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/Typhoon/TyphoonResource.h
@@ -0,0 +1 @@
+../../../../Source/Utils/Resource/TyphoonResource.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/Typhoon/TyphoonShorthand.h b/Tests/Pods/BuildHeaders/Typhoon/TyphoonShorthand.h
new file mode 120000
index 000000000..6d8ec357c
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/Typhoon/TyphoonShorthand.h
@@ -0,0 +1 @@
+../../../../Source/TyphoonShorthand.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/Typhoon/TyphoonTestUtils.h b/Tests/Pods/BuildHeaders/Typhoon/TyphoonTestUtils.h
new file mode 120000
index 000000000..3fe0be680
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/Typhoon/TyphoonTestUtils.h
@@ -0,0 +1 @@
+../../../../Source/Utils/TyphoonTestUtils.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/Typhoon/TyphoonTypeConvertedCollectionValue.h b/Tests/Pods/BuildHeaders/Typhoon/TyphoonTypeConvertedCollectionValue.h
new file mode 120000
index 000000000..fdf2fbc4c
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/Typhoon/TyphoonTypeConvertedCollectionValue.h
@@ -0,0 +1 @@
+../../../../Source/Component/Properties/Collection/TyphoonTypeConvertedCollectionValue.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/Typhoon/TyphoonTypeConverter.h b/Tests/Pods/BuildHeaders/Typhoon/TyphoonTypeConverter.h
new file mode 120000
index 000000000..aa235e02d
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/Typhoon/TyphoonTypeConverter.h
@@ -0,0 +1 @@
+../../../../Source/TypeConversion/TyphoonTypeConverter.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/Typhoon/TyphoonTypeConverterRegistry.h b/Tests/Pods/BuildHeaders/Typhoon/TyphoonTypeConverterRegistry.h
new file mode 120000
index 000000000..1ddeb6088
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/Typhoon/TyphoonTypeConverterRegistry.h
@@ -0,0 +1 @@
+../../../../Source/TypeConversion/TyphoonTypeConverterRegistry.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/Typhoon/TyphoonTypeDescriptor.h b/Tests/Pods/BuildHeaders/Typhoon/TyphoonTypeDescriptor.h
new file mode 120000
index 000000000..59ef3814e
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/Typhoon/TyphoonTypeDescriptor.h
@@ -0,0 +1 @@
+../../../../Source/TypeConversion/TyphoonTypeDescriptor.h
\ No newline at end of file
diff --git a/Tests/Pods/BuildHeaders/Typhoon/TyphoonXmlComponentFactory.h b/Tests/Pods/BuildHeaders/Typhoon/TyphoonXmlComponentFactory.h
new file mode 120000
index 000000000..a3f331cd9
--- /dev/null
+++ b/Tests/Pods/BuildHeaders/Typhoon/TyphoonXmlComponentFactory.h
@@ -0,0 +1 @@
+../../../../Source/Factory/Xml/TyphoonXmlComponentFactory.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/OCHamcrest/HCAllOf.h b/Tests/Pods/Headers/OCHamcrest/HCAllOf.h
new file mode 120000
index 000000000..70dc57181
--- /dev/null
+++ b/Tests/Pods/Headers/OCHamcrest/HCAllOf.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/Library/Logical/HCAllOf.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/OCHamcrest/HCAnyOf.h b/Tests/Pods/Headers/OCHamcrest/HCAnyOf.h
new file mode 120000
index 000000000..d1059788f
--- /dev/null
+++ b/Tests/Pods/Headers/OCHamcrest/HCAnyOf.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/Library/Logical/HCAnyOf.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/OCHamcrest/HCAssertThat.h b/Tests/Pods/Headers/OCHamcrest/HCAssertThat.h
new file mode 120000
index 000000000..55aa3a353
--- /dev/null
+++ b/Tests/Pods/Headers/OCHamcrest/HCAssertThat.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/Core/HCAssertThat.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/OCHamcrest/HCBaseDescription.h b/Tests/Pods/Headers/OCHamcrest/HCBaseDescription.h
new file mode 120000
index 000000000..30188d6e5
--- /dev/null
+++ b/Tests/Pods/Headers/OCHamcrest/HCBaseDescription.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/Core/HCBaseDescription.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/OCHamcrest/HCBaseMatcher.h b/Tests/Pods/Headers/OCHamcrest/HCBaseMatcher.h
new file mode 120000
index 000000000..c0608c3d5
--- /dev/null
+++ b/Tests/Pods/Headers/OCHamcrest/HCBaseMatcher.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/Core/HCBaseMatcher.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/OCHamcrest/HCBoxNumber.h b/Tests/Pods/Headers/OCHamcrest/HCBoxNumber.h
new file mode 120000
index 000000000..2836eef12
--- /dev/null
+++ b/Tests/Pods/Headers/OCHamcrest/HCBoxNumber.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/Library/Number/HCBoxNumber.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/OCHamcrest/HCCollectMatchers.h b/Tests/Pods/Headers/OCHamcrest/HCCollectMatchers.h
new file mode 120000
index 000000000..262bd4b59
--- /dev/null
+++ b/Tests/Pods/Headers/OCHamcrest/HCCollectMatchers.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/Core/Helpers/HCCollectMatchers.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/OCHamcrest/HCConformsToProtocol.h b/Tests/Pods/Headers/OCHamcrest/HCConformsToProtocol.h
new file mode 120000
index 000000000..293f5ff48
--- /dev/null
+++ b/Tests/Pods/Headers/OCHamcrest/HCConformsToProtocol.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/Library/Object/HCConformsToProtocol.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/OCHamcrest/HCDescribedAs.h b/Tests/Pods/Headers/OCHamcrest/HCDescribedAs.h
new file mode 120000
index 000000000..387fb5889
--- /dev/null
+++ b/Tests/Pods/Headers/OCHamcrest/HCDescribedAs.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/Library/Decorator/HCDescribedAs.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/OCHamcrest/HCDescription.h b/Tests/Pods/Headers/OCHamcrest/HCDescription.h
new file mode 120000
index 000000000..7c06cc7db
--- /dev/null
+++ b/Tests/Pods/Headers/OCHamcrest/HCDescription.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/Core/HCDescription.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/OCHamcrest/HCHasCount.h b/Tests/Pods/Headers/OCHamcrest/HCHasCount.h
new file mode 120000
index 000000000..89a8d3dbb
--- /dev/null
+++ b/Tests/Pods/Headers/OCHamcrest/HCHasCount.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/Library/Collection/HCHasCount.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/OCHamcrest/HCHasDescription.h b/Tests/Pods/Headers/OCHamcrest/HCHasDescription.h
new file mode 120000
index 000000000..dcb7f0e7c
--- /dev/null
+++ b/Tests/Pods/Headers/OCHamcrest/HCHasDescription.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/Library/Object/HCHasDescription.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/OCHamcrest/HCHasProperty.h b/Tests/Pods/Headers/OCHamcrest/HCHasProperty.h
new file mode 120000
index 000000000..8c68067f8
--- /dev/null
+++ b/Tests/Pods/Headers/OCHamcrest/HCHasProperty.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/Library/Object/HCHasProperty.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/OCHamcrest/HCInvocationMatcher.h b/Tests/Pods/Headers/OCHamcrest/HCInvocationMatcher.h
new file mode 120000
index 000000000..4c741bb36
--- /dev/null
+++ b/Tests/Pods/Headers/OCHamcrest/HCInvocationMatcher.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/Core/Helpers/HCInvocationMatcher.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/OCHamcrest/HCIs.h b/Tests/Pods/Headers/OCHamcrest/HCIs.h
new file mode 120000
index 000000000..39fe1b272
--- /dev/null
+++ b/Tests/Pods/Headers/OCHamcrest/HCIs.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/Library/Decorator/HCIs.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/OCHamcrest/HCIsAnything.h b/Tests/Pods/Headers/OCHamcrest/HCIsAnything.h
new file mode 120000
index 000000000..369d83d10
--- /dev/null
+++ b/Tests/Pods/Headers/OCHamcrest/HCIsAnything.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/Library/Logical/HCIsAnything.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/OCHamcrest/HCIsCloseTo.h b/Tests/Pods/Headers/OCHamcrest/HCIsCloseTo.h
new file mode 120000
index 000000000..623f7cfd1
--- /dev/null
+++ b/Tests/Pods/Headers/OCHamcrest/HCIsCloseTo.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/Library/Number/HCIsCloseTo.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/OCHamcrest/HCIsCollectionContaining.h b/Tests/Pods/Headers/OCHamcrest/HCIsCollectionContaining.h
new file mode 120000
index 000000000..94ece9d08
--- /dev/null
+++ b/Tests/Pods/Headers/OCHamcrest/HCIsCollectionContaining.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/Library/Collection/HCIsCollectionContaining.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/OCHamcrest/HCIsCollectionContainingInAnyOrder.h b/Tests/Pods/Headers/OCHamcrest/HCIsCollectionContainingInAnyOrder.h
new file mode 120000
index 000000000..f7dbb0564
--- /dev/null
+++ b/Tests/Pods/Headers/OCHamcrest/HCIsCollectionContainingInAnyOrder.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/Library/Collection/HCIsCollectionContainingInAnyOrder.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/OCHamcrest/HCIsCollectionContainingInOrder.h b/Tests/Pods/Headers/OCHamcrest/HCIsCollectionContainingInOrder.h
new file mode 120000
index 000000000..c082abf3e
--- /dev/null
+++ b/Tests/Pods/Headers/OCHamcrest/HCIsCollectionContainingInOrder.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/Library/Collection/HCIsCollectionContainingInOrder.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/OCHamcrest/HCIsCollectionOnlyContaining.h b/Tests/Pods/Headers/OCHamcrest/HCIsCollectionOnlyContaining.h
new file mode 120000
index 000000000..1604b4e49
--- /dev/null
+++ b/Tests/Pods/Headers/OCHamcrest/HCIsCollectionOnlyContaining.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/Library/Collection/HCIsCollectionOnlyContaining.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/OCHamcrest/HCIsDictionaryContaining.h b/Tests/Pods/Headers/OCHamcrest/HCIsDictionaryContaining.h
new file mode 120000
index 000000000..507f173ce
--- /dev/null
+++ b/Tests/Pods/Headers/OCHamcrest/HCIsDictionaryContaining.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/Library/Collection/HCIsDictionaryContaining.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/OCHamcrest/HCIsDictionaryContainingEntries.h b/Tests/Pods/Headers/OCHamcrest/HCIsDictionaryContainingEntries.h
new file mode 120000
index 000000000..080aae6dd
--- /dev/null
+++ b/Tests/Pods/Headers/OCHamcrest/HCIsDictionaryContainingEntries.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/Library/Collection/HCIsDictionaryContainingEntries.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/OCHamcrest/HCIsDictionaryContainingKey.h b/Tests/Pods/Headers/OCHamcrest/HCIsDictionaryContainingKey.h
new file mode 120000
index 000000000..cabd74b30
--- /dev/null
+++ b/Tests/Pods/Headers/OCHamcrest/HCIsDictionaryContainingKey.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/Library/Collection/HCIsDictionaryContainingKey.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/OCHamcrest/HCIsDictionaryContainingValue.h b/Tests/Pods/Headers/OCHamcrest/HCIsDictionaryContainingValue.h
new file mode 120000
index 000000000..20fcda3b5
--- /dev/null
+++ b/Tests/Pods/Headers/OCHamcrest/HCIsDictionaryContainingValue.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/Library/Collection/HCIsDictionaryContainingValue.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/OCHamcrest/HCIsEmptyCollection.h b/Tests/Pods/Headers/OCHamcrest/HCIsEmptyCollection.h
new file mode 120000
index 000000000..93c385f02
--- /dev/null
+++ b/Tests/Pods/Headers/OCHamcrest/HCIsEmptyCollection.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/Library/Collection/HCIsEmptyCollection.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/OCHamcrest/HCIsEqual.h b/Tests/Pods/Headers/OCHamcrest/HCIsEqual.h
new file mode 120000
index 000000000..e438e99a8
--- /dev/null
+++ b/Tests/Pods/Headers/OCHamcrest/HCIsEqual.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/Library/Object/HCIsEqual.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/OCHamcrest/HCIsEqualIgnoringCase.h b/Tests/Pods/Headers/OCHamcrest/HCIsEqualIgnoringCase.h
new file mode 120000
index 000000000..1b11a1fc4
--- /dev/null
+++ b/Tests/Pods/Headers/OCHamcrest/HCIsEqualIgnoringCase.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/Library/Text/HCIsEqualIgnoringCase.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/OCHamcrest/HCIsEqualIgnoringWhiteSpace.h b/Tests/Pods/Headers/OCHamcrest/HCIsEqualIgnoringWhiteSpace.h
new file mode 120000
index 000000000..8274666de
--- /dev/null
+++ b/Tests/Pods/Headers/OCHamcrest/HCIsEqualIgnoringWhiteSpace.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/Library/Text/HCIsEqualIgnoringWhiteSpace.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/OCHamcrest/HCIsEqualToNumber.h b/Tests/Pods/Headers/OCHamcrest/HCIsEqualToNumber.h
new file mode 120000
index 000000000..ce0c24811
--- /dev/null
+++ b/Tests/Pods/Headers/OCHamcrest/HCIsEqualToNumber.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/Library/Number/HCIsEqualToNumber.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/OCHamcrest/HCIsIn.h b/Tests/Pods/Headers/OCHamcrest/HCIsIn.h
new file mode 120000
index 000000000..91625dccf
--- /dev/null
+++ b/Tests/Pods/Headers/OCHamcrest/HCIsIn.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/Library/Collection/HCIsIn.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/OCHamcrest/HCIsInstanceOf.h b/Tests/Pods/Headers/OCHamcrest/HCIsInstanceOf.h
new file mode 120000
index 000000000..07a4fbe5a
--- /dev/null
+++ b/Tests/Pods/Headers/OCHamcrest/HCIsInstanceOf.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/Library/Object/HCIsInstanceOf.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/OCHamcrest/HCIsNil.h b/Tests/Pods/Headers/OCHamcrest/HCIsNil.h
new file mode 120000
index 000000000..86c73f1da
--- /dev/null
+++ b/Tests/Pods/Headers/OCHamcrest/HCIsNil.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/Library/Object/HCIsNil.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/OCHamcrest/HCIsNot.h b/Tests/Pods/Headers/OCHamcrest/HCIsNot.h
new file mode 120000
index 000000000..3bf41e3a7
--- /dev/null
+++ b/Tests/Pods/Headers/OCHamcrest/HCIsNot.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/Library/Logical/HCIsNot.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/OCHamcrest/HCIsSame.h b/Tests/Pods/Headers/OCHamcrest/HCIsSame.h
new file mode 120000
index 000000000..3455870d8
--- /dev/null
+++ b/Tests/Pods/Headers/OCHamcrest/HCIsSame.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/Library/Object/HCIsSame.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/OCHamcrest/HCMatcher.h b/Tests/Pods/Headers/OCHamcrest/HCMatcher.h
new file mode 120000
index 000000000..339840acf
--- /dev/null
+++ b/Tests/Pods/Headers/OCHamcrest/HCMatcher.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/Core/HCMatcher.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/OCHamcrest/HCNumberAssert.h b/Tests/Pods/Headers/OCHamcrest/HCNumberAssert.h
new file mode 120000
index 000000000..f2b3ff885
--- /dev/null
+++ b/Tests/Pods/Headers/OCHamcrest/HCNumberAssert.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/Library/Number/HCNumberAssert.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/OCHamcrest/HCOrderingComparison.h b/Tests/Pods/Headers/OCHamcrest/HCOrderingComparison.h
new file mode 120000
index 000000000..2a771f182
--- /dev/null
+++ b/Tests/Pods/Headers/OCHamcrest/HCOrderingComparison.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/Library/Number/HCOrderingComparison.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/OCHamcrest/HCRequireNonNilObject.h b/Tests/Pods/Headers/OCHamcrest/HCRequireNonNilObject.h
new file mode 120000
index 000000000..29719f105
--- /dev/null
+++ b/Tests/Pods/Headers/OCHamcrest/HCRequireNonNilObject.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/Core/Helpers/HCRequireNonNilObject.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/OCHamcrest/HCRequireNonNilString.h b/Tests/Pods/Headers/OCHamcrest/HCRequireNonNilString.h
new file mode 120000
index 000000000..01ee1ce90
--- /dev/null
+++ b/Tests/Pods/Headers/OCHamcrest/HCRequireNonNilString.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/Core/Helpers/HCRequireNonNilString.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/OCHamcrest/HCSelfDescribing.h b/Tests/Pods/Headers/OCHamcrest/HCSelfDescribing.h
new file mode 120000
index 000000000..ec6e57883
--- /dev/null
+++ b/Tests/Pods/Headers/OCHamcrest/HCSelfDescribing.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/Core/HCSelfDescribing.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/OCHamcrest/HCStringContains.h b/Tests/Pods/Headers/OCHamcrest/HCStringContains.h
new file mode 120000
index 000000000..6b0744179
--- /dev/null
+++ b/Tests/Pods/Headers/OCHamcrest/HCStringContains.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/Library/Text/HCStringContains.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/OCHamcrest/HCStringContainsInOrder.h b/Tests/Pods/Headers/OCHamcrest/HCStringContainsInOrder.h
new file mode 120000
index 000000000..c06178fd4
--- /dev/null
+++ b/Tests/Pods/Headers/OCHamcrest/HCStringContainsInOrder.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/Library/Text/HCStringContainsInOrder.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/OCHamcrest/HCStringDescription.h b/Tests/Pods/Headers/OCHamcrest/HCStringDescription.h
new file mode 120000
index 000000000..0c69a3750
--- /dev/null
+++ b/Tests/Pods/Headers/OCHamcrest/HCStringDescription.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/Core/HCStringDescription.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/OCHamcrest/HCStringEndsWith.h b/Tests/Pods/Headers/OCHamcrest/HCStringEndsWith.h
new file mode 120000
index 000000000..4af07e65d
--- /dev/null
+++ b/Tests/Pods/Headers/OCHamcrest/HCStringEndsWith.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/Library/Text/HCStringEndsWith.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/OCHamcrest/HCStringStartsWith.h b/Tests/Pods/Headers/OCHamcrest/HCStringStartsWith.h
new file mode 120000
index 000000000..af9cae335
--- /dev/null
+++ b/Tests/Pods/Headers/OCHamcrest/HCStringStartsWith.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/Library/Text/HCStringStartsWith.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/OCHamcrest/HCSubstringMatcher.h b/Tests/Pods/Headers/OCHamcrest/HCSubstringMatcher.h
new file mode 120000
index 000000000..8f7c409c3
--- /dev/null
+++ b/Tests/Pods/Headers/OCHamcrest/HCSubstringMatcher.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/Library/Text/HCSubstringMatcher.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/OCHamcrest/HCWrapInMatcher.h b/Tests/Pods/Headers/OCHamcrest/HCWrapInMatcher.h
new file mode 120000
index 000000000..31db2567d
--- /dev/null
+++ b/Tests/Pods/Headers/OCHamcrest/HCWrapInMatcher.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/Core/Helpers/HCWrapInMatcher.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/OCHamcrest/OCHamcrest.h b/Tests/Pods/Headers/OCHamcrest/OCHamcrest.h
new file mode 120000
index 000000000..b3d41bc8e
--- /dev/null
+++ b/Tests/Pods/Headers/OCHamcrest/OCHamcrest.h
@@ -0,0 +1 @@
+../../OCHamcrest/Source/OCHamcrest.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/OCMockito/MKTAtLeastTimes.h b/Tests/Pods/Headers/OCMockito/MKTAtLeastTimes.h
new file mode 120000
index 000000000..41e4d03bf
--- /dev/null
+++ b/Tests/Pods/Headers/OCMockito/MKTAtLeastTimes.h
@@ -0,0 +1 @@
+../../OCMockito/Source/OCMockito/MKTAtLeastTimes.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/OCMockito/MKTBaseMockObject.h b/Tests/Pods/Headers/OCMockito/MKTBaseMockObject.h
new file mode 120000
index 000000000..8f05fd2aa
--- /dev/null
+++ b/Tests/Pods/Headers/OCMockito/MKTBaseMockObject.h
@@ -0,0 +1 @@
+../../OCMockito/Source/OCMockito/MKTBaseMockObject.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/OCMockito/MKTClassObjectMock.h b/Tests/Pods/Headers/OCMockito/MKTClassObjectMock.h
new file mode 120000
index 000000000..31624927f
--- /dev/null
+++ b/Tests/Pods/Headers/OCMockito/MKTClassObjectMock.h
@@ -0,0 +1 @@
+../../OCMockito/Source/OCMockito/MKTClassObjectMock.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/OCMockito/MKTExactTimes.h b/Tests/Pods/Headers/OCMockito/MKTExactTimes.h
new file mode 120000
index 000000000..ac00d3f6c
--- /dev/null
+++ b/Tests/Pods/Headers/OCMockito/MKTExactTimes.h
@@ -0,0 +1 @@
+../../OCMockito/Source/OCMockito/MKTExactTimes.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/OCMockito/MKTException.h b/Tests/Pods/Headers/OCMockito/MKTException.h
new file mode 120000
index 000000000..644b80882
--- /dev/null
+++ b/Tests/Pods/Headers/OCMockito/MKTException.h
@@ -0,0 +1 @@
+../../OCMockito/Source/OCMockito/MKTException.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/OCMockito/MKTInvocationContainer.h b/Tests/Pods/Headers/OCMockito/MKTInvocationContainer.h
new file mode 120000
index 000000000..429a953e5
--- /dev/null
+++ b/Tests/Pods/Headers/OCMockito/MKTInvocationContainer.h
@@ -0,0 +1 @@
+../../OCMockito/Source/OCMockito/MKTInvocationContainer.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/OCMockito/MKTInvocationMatcher.h b/Tests/Pods/Headers/OCMockito/MKTInvocationMatcher.h
new file mode 120000
index 000000000..d9577d031
--- /dev/null
+++ b/Tests/Pods/Headers/OCMockito/MKTInvocationMatcher.h
@@ -0,0 +1 @@
+../../OCMockito/Source/OCMockito/MKTInvocationMatcher.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/OCMockito/MKTMockAwareVerificationMode.h b/Tests/Pods/Headers/OCMockito/MKTMockAwareVerificationMode.h
new file mode 120000
index 000000000..91a8d6f76
--- /dev/null
+++ b/Tests/Pods/Headers/OCMockito/MKTMockAwareVerificationMode.h
@@ -0,0 +1 @@
+../../OCMockito/Source/OCMockito/MKTMockAwareVerificationMode.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/OCMockito/MKTMockingProgress.h b/Tests/Pods/Headers/OCMockito/MKTMockingProgress.h
new file mode 120000
index 000000000..ff1090ff2
--- /dev/null
+++ b/Tests/Pods/Headers/OCMockito/MKTMockingProgress.h
@@ -0,0 +1 @@
+../../OCMockito/Source/OCMockito/MKTMockingProgress.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/OCMockito/MKTMockitoCore.h b/Tests/Pods/Headers/OCMockito/MKTMockitoCore.h
new file mode 120000
index 000000000..a8b2600e7
--- /dev/null
+++ b/Tests/Pods/Headers/OCMockito/MKTMockitoCore.h
@@ -0,0 +1 @@
+../../OCMockito/Source/OCMockito/MKTMockitoCore.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/OCMockito/MKTObjectAndProtocolMock.h b/Tests/Pods/Headers/OCMockito/MKTObjectAndProtocolMock.h
new file mode 120000
index 000000000..6b9ed914b
--- /dev/null
+++ b/Tests/Pods/Headers/OCMockito/MKTObjectAndProtocolMock.h
@@ -0,0 +1 @@
+../../OCMockito/Source/OCMockito/MKTObjectAndProtocolMock.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/OCMockito/MKTObjectMock.h b/Tests/Pods/Headers/OCMockito/MKTObjectMock.h
new file mode 120000
index 000000000..88cd73c3b
--- /dev/null
+++ b/Tests/Pods/Headers/OCMockito/MKTObjectMock.h
@@ -0,0 +1 @@
+../../OCMockito/Source/OCMockito/MKTObjectMock.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/OCMockito/MKTOngoingStubbing.h b/Tests/Pods/Headers/OCMockito/MKTOngoingStubbing.h
new file mode 120000
index 000000000..7cb7d5ed2
--- /dev/null
+++ b/Tests/Pods/Headers/OCMockito/MKTOngoingStubbing.h
@@ -0,0 +1 @@
+../../OCMockito/Source/OCMockito/MKTOngoingStubbing.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/OCMockito/MKTPrimitiveArgumentMatching.h b/Tests/Pods/Headers/OCMockito/MKTPrimitiveArgumentMatching.h
new file mode 120000
index 000000000..f17fb6796
--- /dev/null
+++ b/Tests/Pods/Headers/OCMockito/MKTPrimitiveArgumentMatching.h
@@ -0,0 +1 @@
+../../OCMockito/Source/OCMockito/MKTPrimitiveArgumentMatching.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/OCMockito/MKTProtocolMock.h b/Tests/Pods/Headers/OCMockito/MKTProtocolMock.h
new file mode 120000
index 000000000..339604ba4
--- /dev/null
+++ b/Tests/Pods/Headers/OCMockito/MKTProtocolMock.h
@@ -0,0 +1 @@
+../../OCMockito/Source/OCMockito/MKTProtocolMock.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/OCMockito/MKTStubbedInvocationMatcher.h b/Tests/Pods/Headers/OCMockito/MKTStubbedInvocationMatcher.h
new file mode 120000
index 000000000..24089eba5
--- /dev/null
+++ b/Tests/Pods/Headers/OCMockito/MKTStubbedInvocationMatcher.h
@@ -0,0 +1 @@
+../../OCMockito/Source/OCMockito/MKTStubbedInvocationMatcher.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/OCMockito/MKTTestLocation.h b/Tests/Pods/Headers/OCMockito/MKTTestLocation.h
new file mode 120000
index 000000000..8b1c8cd42
--- /dev/null
+++ b/Tests/Pods/Headers/OCMockito/MKTTestLocation.h
@@ -0,0 +1 @@
+../../OCMockito/Source/OCMockito/MKTTestLocation.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/OCMockito/MKTTypeEncoding.h b/Tests/Pods/Headers/OCMockito/MKTTypeEncoding.h
new file mode 120000
index 000000000..3e12baacf
--- /dev/null
+++ b/Tests/Pods/Headers/OCMockito/MKTTypeEncoding.h
@@ -0,0 +1 @@
+../../OCMockito/Source/OCMockito/MKTTypeEncoding.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/OCMockito/MKTVerificationData.h b/Tests/Pods/Headers/OCMockito/MKTVerificationData.h
new file mode 120000
index 000000000..78cdbd21a
--- /dev/null
+++ b/Tests/Pods/Headers/OCMockito/MKTVerificationData.h
@@ -0,0 +1 @@
+../../OCMockito/Source/OCMockito/MKTVerificationData.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/OCMockito/MKTVerificationMode.h b/Tests/Pods/Headers/OCMockito/MKTVerificationMode.h
new file mode 120000
index 000000000..fa2f3ecda
--- /dev/null
+++ b/Tests/Pods/Headers/OCMockito/MKTVerificationMode.h
@@ -0,0 +1 @@
+../../OCMockito/Source/OCMockito/MKTVerificationMode.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/OCMockito/OCMockito.h b/Tests/Pods/Headers/OCMockito/OCMockito.h
new file mode 120000
index 000000000..a3fd907f7
--- /dev/null
+++ b/Tests/Pods/Headers/OCMockito/OCMockito.h
@@ -0,0 +1 @@
+../../OCMockito/Source/OCMockito/OCMockito.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/Typhoon/NSObject+TyphoonIntrospectionUtils.h b/Tests/Pods/Headers/Typhoon/NSObject+TyphoonIntrospectionUtils.h
new file mode 120000
index 000000000..05eab78ae
--- /dev/null
+++ b/Tests/Pods/Headers/Typhoon/NSObject+TyphoonIntrospectionUtils.h
@@ -0,0 +1 @@
+../../../../Source/Utils/NSObject+TyphoonIntrospectionUtils.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/Typhoon/Typhoon.h b/Tests/Pods/Headers/Typhoon/Typhoon.h
new file mode 120000
index 000000000..4e45a36d2
--- /dev/null
+++ b/Tests/Pods/Headers/Typhoon/Typhoon.h
@@ -0,0 +1 @@
+../../../../Source/Typhoon.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/Typhoon/TyphoonAssembly.h b/Tests/Pods/Headers/Typhoon/TyphoonAssembly.h
new file mode 120000
index 000000000..1f346da76
--- /dev/null
+++ b/Tests/Pods/Headers/Typhoon/TyphoonAssembly.h
@@ -0,0 +1 @@
+../../../../Source/Factory/Block/TyphoonAssembly.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/Typhoon/TyphoonAutowire.h b/Tests/Pods/Headers/Typhoon/TyphoonAutowire.h
new file mode 120000
index 000000000..ff35598de
--- /dev/null
+++ b/Tests/Pods/Headers/Typhoon/TyphoonAutowire.h
@@ -0,0 +1 @@
+../../../../Source/TyphoonAutowire.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/Typhoon/TyphoonBlockComponentFactory.h b/Tests/Pods/Headers/Typhoon/TyphoonBlockComponentFactory.h
new file mode 120000
index 000000000..c1d3dc0f3
--- /dev/null
+++ b/Tests/Pods/Headers/Typhoon/TyphoonBlockComponentFactory.h
@@ -0,0 +1 @@
+../../../../Source/Factory/Block/TyphoonBlockComponentFactory.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/Typhoon/TyphoonBundleResource.h b/Tests/Pods/Headers/Typhoon/TyphoonBundleResource.h
new file mode 120000
index 000000000..07743a02a
--- /dev/null
+++ b/Tests/Pods/Headers/Typhoon/TyphoonBundleResource.h
@@ -0,0 +1 @@
+../../../../Source/Utils/Resource/TyphoonBundleResource.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/Typhoon/TyphoonByReferenceCollectionValue.h b/Tests/Pods/Headers/Typhoon/TyphoonByReferenceCollectionValue.h
new file mode 120000
index 000000000..5da220ea3
--- /dev/null
+++ b/Tests/Pods/Headers/Typhoon/TyphoonByReferenceCollectionValue.h
@@ -0,0 +1 @@
+../../../../Source/Component/Properties/Collection/TyphoonByReferenceCollectionValue.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/Typhoon/TyphoonCollectionValue.h b/Tests/Pods/Headers/Typhoon/TyphoonCollectionValue.h
new file mode 120000
index 000000000..fe1154d7e
--- /dev/null
+++ b/Tests/Pods/Headers/Typhoon/TyphoonCollectionValue.h
@@ -0,0 +1 @@
+../../../../Source/Component/Properties/Collection/TyphoonCollectionValue.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/Typhoon/TyphoonComponentFactory+InstanceBuilder.h b/Tests/Pods/Headers/Typhoon/TyphoonComponentFactory+InstanceBuilder.h
new file mode 120000
index 000000000..e2b5b048a
--- /dev/null
+++ b/Tests/Pods/Headers/Typhoon/TyphoonComponentFactory+InstanceBuilder.h
@@ -0,0 +1 @@
+../../../../Source/Factory/InstanceBuilder/TyphoonComponentFactory+InstanceBuilder.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/Typhoon/TyphoonComponentFactory.h b/Tests/Pods/Headers/Typhoon/TyphoonComponentFactory.h
new file mode 120000
index 000000000..de81ccf4e
--- /dev/null
+++ b/Tests/Pods/Headers/Typhoon/TyphoonComponentFactory.h
@@ -0,0 +1 @@
+../../../../Source/Factory/TyphoonComponentFactory.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/Typhoon/TyphoonComponentFactoryMutator.h b/Tests/Pods/Headers/Typhoon/TyphoonComponentFactoryMutator.h
new file mode 120000
index 000000000..7f0d7132d
--- /dev/null
+++ b/Tests/Pods/Headers/Typhoon/TyphoonComponentFactoryMutator.h
@@ -0,0 +1 @@
+../../../../Source/Factory/Mutator/TyphoonComponentFactoryMutator.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/Typhoon/TyphoonDefinition+InstanceBuilder.h b/Tests/Pods/Headers/Typhoon/TyphoonDefinition+InstanceBuilder.h
new file mode 120000
index 000000000..3e1535e91
--- /dev/null
+++ b/Tests/Pods/Headers/Typhoon/TyphoonDefinition+InstanceBuilder.h
@@ -0,0 +1 @@
+../../../../Source/Factory/InstanceBuilder/TyphoonDefinition+InstanceBuilder.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/Typhoon/TyphoonDefinition.h b/Tests/Pods/Headers/Typhoon/TyphoonDefinition.h
new file mode 120000
index 000000000..1c0a487ff
--- /dev/null
+++ b/Tests/Pods/Headers/Typhoon/TyphoonDefinition.h
@@ -0,0 +1 @@
+../../../../Source/Component/TyphoonDefinition.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/Typhoon/TyphoonInitializer+InstanceBuilder.h b/Tests/Pods/Headers/Typhoon/TyphoonInitializer+InstanceBuilder.h
new file mode 120000
index 000000000..a01d011ee
--- /dev/null
+++ b/Tests/Pods/Headers/Typhoon/TyphoonInitializer+InstanceBuilder.h
@@ -0,0 +1 @@
+../../../../Source/Factory/InstanceBuilder/TyphoonInitializer+InstanceBuilder.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/Typhoon/TyphoonInitializer.h b/Tests/Pods/Headers/Typhoon/TyphoonInitializer.h
new file mode 120000
index 000000000..e08c69acf
--- /dev/null
+++ b/Tests/Pods/Headers/Typhoon/TyphoonInitializer.h
@@ -0,0 +1 @@
+../../../../Source/Component/Initializer/TyphoonInitializer.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/Typhoon/TyphoonInjectedParameter.h b/Tests/Pods/Headers/Typhoon/TyphoonInjectedParameter.h
new file mode 120000
index 000000000..612a4de87
--- /dev/null
+++ b/Tests/Pods/Headers/Typhoon/TyphoonInjectedParameter.h
@@ -0,0 +1 @@
+../../../../Source/Component/Initializer/TyphoonInjectedParameter.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/Typhoon/TyphoonInjectedProperty.h b/Tests/Pods/Headers/Typhoon/TyphoonInjectedProperty.h
new file mode 120000
index 000000000..2b7c4cfdb
--- /dev/null
+++ b/Tests/Pods/Headers/Typhoon/TyphoonInjectedProperty.h
@@ -0,0 +1 @@
+../../../../Source/Component/Properties/TyphoonInjectedProperty.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/Typhoon/TyphoonIntrospectionUtils.h b/Tests/Pods/Headers/Typhoon/TyphoonIntrospectionUtils.h
new file mode 120000
index 000000000..7002a767c
--- /dev/null
+++ b/Tests/Pods/Headers/Typhoon/TyphoonIntrospectionUtils.h
@@ -0,0 +1 @@
+../../../../Source/Utils/TyphoonIntrospectionUtils.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/Typhoon/TyphoonIntrospectiveNSObject.h b/Tests/Pods/Headers/Typhoon/TyphoonIntrospectiveNSObject.h
new file mode 120000
index 000000000..9117b3250
--- /dev/null
+++ b/Tests/Pods/Headers/Typhoon/TyphoonIntrospectiveNSObject.h
@@ -0,0 +1 @@
+../../../../Source/Utils/TyphoonIntrospectiveNSObject.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/Typhoon/TyphoonJRSwizzle.h b/Tests/Pods/Headers/Typhoon/TyphoonJRSwizzle.h
new file mode 120000
index 000000000..a53ffcb90
--- /dev/null
+++ b/Tests/Pods/Headers/Typhoon/TyphoonJRSwizzle.h
@@ -0,0 +1 @@
+../../../../Source/Utils/Swizzle/TyphoonJRSwizzle.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/Typhoon/TyphoonNSURLTypeConverter.h b/Tests/Pods/Headers/Typhoon/TyphoonNSURLTypeConverter.h
new file mode 120000
index 000000000..f5e0861cd
--- /dev/null
+++ b/Tests/Pods/Headers/Typhoon/TyphoonNSURLTypeConverter.h
@@ -0,0 +1 @@
+../../../../Source/TypeConversion/TyphoonNSURLTypeConverter.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/Typhoon/TyphoonParameterInjectedByRawValue.h b/Tests/Pods/Headers/Typhoon/TyphoonParameterInjectedByRawValue.h
new file mode 120000
index 000000000..1c407a1f4
--- /dev/null
+++ b/Tests/Pods/Headers/Typhoon/TyphoonParameterInjectedByRawValue.h
@@ -0,0 +1 @@
+../../../../Source/Component/Initializer/TyphoonParameterInjectedByRawValue.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/Typhoon/TyphoonParameterInjectedByReference.h b/Tests/Pods/Headers/Typhoon/TyphoonParameterInjectedByReference.h
new file mode 120000
index 000000000..2a5ef6895
--- /dev/null
+++ b/Tests/Pods/Headers/Typhoon/TyphoonParameterInjectedByReference.h
@@ -0,0 +1 @@
+../../../../Source/Component/Initializer/TyphoonParameterInjectedByReference.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/Typhoon/TyphoonParameterInjectedByValue.h b/Tests/Pods/Headers/Typhoon/TyphoonParameterInjectedByValue.h
new file mode 120000
index 000000000..6fdb052f3
--- /dev/null
+++ b/Tests/Pods/Headers/Typhoon/TyphoonParameterInjectedByValue.h
@@ -0,0 +1 @@
+../../../../Source/Component/Initializer/TyphoonParameterInjectedByValue.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/Typhoon/TyphoonPassThroughTypeConverter.h b/Tests/Pods/Headers/Typhoon/TyphoonPassThroughTypeConverter.h
new file mode 120000
index 000000000..175507575
--- /dev/null
+++ b/Tests/Pods/Headers/Typhoon/TyphoonPassThroughTypeConverter.h
@@ -0,0 +1 @@
+../../../../Source/TypeConversion/TyphoonPassThroughTypeConverter.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/Typhoon/TyphoonPrimitiveTypeConverter.h b/Tests/Pods/Headers/Typhoon/TyphoonPrimitiveTypeConverter.h
new file mode 120000
index 000000000..023b7b9f7
--- /dev/null
+++ b/Tests/Pods/Headers/Typhoon/TyphoonPrimitiveTypeConverter.h
@@ -0,0 +1 @@
+../../../../Source/TypeConversion/TyphoonPrimitiveTypeConverter.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/Typhoon/TyphoonPropertyInjectedAsCollection.h b/Tests/Pods/Headers/Typhoon/TyphoonPropertyInjectedAsCollection.h
new file mode 120000
index 000000000..77ce955b5
--- /dev/null
+++ b/Tests/Pods/Headers/Typhoon/TyphoonPropertyInjectedAsCollection.h
@@ -0,0 +1 @@
+../../../../Source/Component/Properties/Collection/TyphoonPropertyInjectedAsCollection.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/Typhoon/TyphoonPropertyInjectedByReference.h b/Tests/Pods/Headers/Typhoon/TyphoonPropertyInjectedByReference.h
new file mode 120000
index 000000000..b5a45d460
--- /dev/null
+++ b/Tests/Pods/Headers/Typhoon/TyphoonPropertyInjectedByReference.h
@@ -0,0 +1 @@
+../../../../Source/Component/Properties/TyphoonPropertyInjectedByReference.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/Typhoon/TyphoonPropertyInjectedByType.h b/Tests/Pods/Headers/Typhoon/TyphoonPropertyInjectedByType.h
new file mode 120000
index 000000000..3fe60eb6d
--- /dev/null
+++ b/Tests/Pods/Headers/Typhoon/TyphoonPropertyInjectedByType.h
@@ -0,0 +1 @@
+../../../../Source/Component/Properties/TyphoonPropertyInjectedByType.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/Typhoon/TyphoonPropertyInjectedByValue.h b/Tests/Pods/Headers/Typhoon/TyphoonPropertyInjectedByValue.h
new file mode 120000
index 000000000..ff0c5eded
--- /dev/null
+++ b/Tests/Pods/Headers/Typhoon/TyphoonPropertyInjectedByValue.h
@@ -0,0 +1 @@
+../../../../Source/Component/Properties/TyphoonPropertyInjectedByValue.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/Typhoon/TyphoonPropertyInjectionDelegate.h b/Tests/Pods/Headers/Typhoon/TyphoonPropertyInjectionDelegate.h
new file mode 120000
index 000000000..007efcdb4
--- /dev/null
+++ b/Tests/Pods/Headers/Typhoon/TyphoonPropertyInjectionDelegate.h
@@ -0,0 +1 @@
+../../../../Source/Component/Properties/TyphoonPropertyInjectionDelegate.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/Typhoon/TyphoonPropertyPlaceholderConfigurer.h b/Tests/Pods/Headers/Typhoon/TyphoonPropertyPlaceholderConfigurer.h
new file mode 120000
index 000000000..1e8285403
--- /dev/null
+++ b/Tests/Pods/Headers/Typhoon/TyphoonPropertyPlaceholderConfigurer.h
@@ -0,0 +1 @@
+../../../../Source/Factory/PropertyConfigurers/TyphoonPropertyPlaceholderConfigurer.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/Typhoon/TyphoonRXMLElement+XmlComponentFactory.h b/Tests/Pods/Headers/Typhoon/TyphoonRXMLElement+XmlComponentFactory.h
new file mode 120000
index 000000000..a273a255f
--- /dev/null
+++ b/Tests/Pods/Headers/Typhoon/TyphoonRXMLElement+XmlComponentFactory.h
@@ -0,0 +1 @@
+../../../../Source/Factory/Xml/TyphoonRXMLElement+XmlComponentFactory.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/Typhoon/TyphoonRXMLElement.h b/Tests/Pods/Headers/Typhoon/TyphoonRXMLElement.h
new file mode 120000
index 000000000..eb63fbec8
--- /dev/null
+++ b/Tests/Pods/Headers/Typhoon/TyphoonRXMLElement.h
@@ -0,0 +1 @@
+../../../../Source/Factory/Xml/TyphoonRXMLElement.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/Typhoon/TyphoonResource.h b/Tests/Pods/Headers/Typhoon/TyphoonResource.h
new file mode 120000
index 000000000..f8273955a
--- /dev/null
+++ b/Tests/Pods/Headers/Typhoon/TyphoonResource.h
@@ -0,0 +1 @@
+../../../../Source/Utils/Resource/TyphoonResource.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/Typhoon/TyphoonShorthand.h b/Tests/Pods/Headers/Typhoon/TyphoonShorthand.h
new file mode 120000
index 000000000..6d8ec357c
--- /dev/null
+++ b/Tests/Pods/Headers/Typhoon/TyphoonShorthand.h
@@ -0,0 +1 @@
+../../../../Source/TyphoonShorthand.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/Typhoon/TyphoonTestUtils.h b/Tests/Pods/Headers/Typhoon/TyphoonTestUtils.h
new file mode 120000
index 000000000..3fe0be680
--- /dev/null
+++ b/Tests/Pods/Headers/Typhoon/TyphoonTestUtils.h
@@ -0,0 +1 @@
+../../../../Source/Utils/TyphoonTestUtils.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/Typhoon/TyphoonTypeConvertedCollectionValue.h b/Tests/Pods/Headers/Typhoon/TyphoonTypeConvertedCollectionValue.h
new file mode 120000
index 000000000..fdf2fbc4c
--- /dev/null
+++ b/Tests/Pods/Headers/Typhoon/TyphoonTypeConvertedCollectionValue.h
@@ -0,0 +1 @@
+../../../../Source/Component/Properties/Collection/TyphoonTypeConvertedCollectionValue.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/Typhoon/TyphoonTypeConverter.h b/Tests/Pods/Headers/Typhoon/TyphoonTypeConverter.h
new file mode 120000
index 000000000..aa235e02d
--- /dev/null
+++ b/Tests/Pods/Headers/Typhoon/TyphoonTypeConverter.h
@@ -0,0 +1 @@
+../../../../Source/TypeConversion/TyphoonTypeConverter.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/Typhoon/TyphoonTypeConverterRegistry.h b/Tests/Pods/Headers/Typhoon/TyphoonTypeConverterRegistry.h
new file mode 120000
index 000000000..1ddeb6088
--- /dev/null
+++ b/Tests/Pods/Headers/Typhoon/TyphoonTypeConverterRegistry.h
@@ -0,0 +1 @@
+../../../../Source/TypeConversion/TyphoonTypeConverterRegistry.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/Typhoon/TyphoonTypeDescriptor.h b/Tests/Pods/Headers/Typhoon/TyphoonTypeDescriptor.h
new file mode 120000
index 000000000..59ef3814e
--- /dev/null
+++ b/Tests/Pods/Headers/Typhoon/TyphoonTypeDescriptor.h
@@ -0,0 +1 @@
+../../../../Source/TypeConversion/TyphoonTypeDescriptor.h
\ No newline at end of file
diff --git a/Tests/Pods/Headers/Typhoon/TyphoonXmlComponentFactory.h b/Tests/Pods/Headers/Typhoon/TyphoonXmlComponentFactory.h
new file mode 120000
index 000000000..a3f331cd9
--- /dev/null
+++ b/Tests/Pods/Headers/Typhoon/TyphoonXmlComponentFactory.h
@@ -0,0 +1 @@
+../../../../Source/Factory/Xml/TyphoonXmlComponentFactory.h
\ No newline at end of file
diff --git a/Tests/Pods/Local Podspecs/Typhoon.podspec b/Tests/Pods/Local Podspecs/Typhoon.podspec
new file mode 100644
index 000000000..b67f11fe5
--- /dev/null
+++ b/Tests/Pods/Local Podspecs/Typhoon.podspec
@@ -0,0 +1,13 @@
+Pod::Spec.new do |spec|
+ spec.name = 'Typhoon'
+ spec.version = '1.2.2'
+ spec.license = 'Apache2.0'
+ spec.summary = 'A dependency injection container for Objective-C. Light-weight, yet flexible and full-featured.'
+ spec.homepage = 'http://www.typhoonframework.org'
+ spec.author = { 'Jasper Blues' => 'jasper@appsquick.ly' }
+ spec.source = { :git => 'https://github.com/jasperblues/Typhoon.git', :tag => '1.2.2' }
+ spec.source_files = 'Source/**/*.{h,m}'
+ spec.libraries = 'z', 'xml2'
+ spec.xcconfig = { 'HEADER_SEARCH_PATHS' => '$(SDKROOT)/usr/include/libxml2' }
+ spec.requires_arc = true
+end
diff --git a/Tests/Pods/Manifest.lock b/Tests/Pods/Manifest.lock
new file mode 100644
index 000000000..41a7464fc
--- /dev/null
+++ b/Tests/Pods/Manifest.lock
@@ -0,0 +1,21 @@
+PODS:
+ - OCHamcrest (1.9)
+ - OCMockito (0.23):
+ - OCHamcrest (= 1.9)
+ - Typhoon (1.2.2)
+
+DEPENDENCIES:
+ - OCHamcrest (~> 1.9)
+ - OCMockito (~> 0.2)
+ - Typhoon (from `../`)
+
+EXTERNAL SOURCES:
+ Typhoon:
+ :path: ../
+
+SPEC CHECKSUMS:
+ OCHamcrest: f8393efd5a49d91879be573635d6183effacc0ab
+ OCMockito: 2223021dd82697fc536c403d6850d2ed8ffae578
+ Typhoon: f72943ad1f806e4ef45a708869caa4af637db891
+
+COCOAPODS: 0.22.2
diff --git a/Tests/Pods/OCHamcrest/LICENSE.txt b/Tests/Pods/OCHamcrest/LICENSE.txt
new file mode 100644
index 000000000..a316a3e76
--- /dev/null
+++ b/Tests/Pods/OCHamcrest/LICENSE.txt
@@ -0,0 +1,27 @@
+BSD License
+
+Copyright 2012 hamcrest.org
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+Redistributions of source code must retain the above copyright notice, this list of
+conditions and the following disclaimer. Redistributions in binary form must reproduce
+the above copyright notice, this list of conditions and the following disclaimer in
+the documentation and/or other materials provided with the distribution.
+
+Neither the name of Hamcrest nor the names of its contributors may be used to endorse
+or promote products derived from this software without specific prior written
+permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
+SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY
+WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
diff --git a/Tests/Pods/OCHamcrest/README.md b/Tests/Pods/OCHamcrest/README.md
new file mode 100644
index 000000000..74a08bec8
--- /dev/null
+++ b/Tests/Pods/OCHamcrest/README.md
@@ -0,0 +1,301 @@
+![ochamcrest](http://hamcrest.org/images/logo.jpg)
+
+What is OCHamcrest?
+===================
+
+OCHamcrest is:
+
+* a library of "matcher" objects that let you declare rules for whether a given
+ object matches the criteria or not.
+* a framework for writing your own matchers.
+
+Matchers are useful for a variety of purposes, such as UI validation. But
+they're most commonly used for writing unit tests that are expressive and
+flexible.
+
+OCHamcrest can be used for either Mac and iOS development with:
+
+* OCUnit (SenTestingKit) built in to Xcode
+* Google Toolbox for Mac (GTM)
+* GHUnit
+* Cedar BDD framework
+* OCMock
+* OCMockito
+
+
+How do I add OCHamcrest to my project?
+======================================
+
+__Building:__
+
+If you want to build OCHamcrest yourself, cd to the Source folder, then
+
+ $ ./MakeDistribution.sh
+
+Or just use the pre-built release available in
+[Downloads](https://github.com/hamcrest/OCHamcrest/downloads).
+
+
+__Mac Project Setup:__
+
+Add OCHamcrest.framework to your project.
+
+Add a Copy Files build phase to copy OCHamcrest.framework to your Products
+Directory. For unit test bundles, make sure this Copy Files phase comes before
+the Run Script phase that executes tests.
+
+Add:
+
+ #define HC_SHORTHAND
+ #import
+
+Note: If your Console shows
+
+ otest[57510:203] *** NSTask: Task create for path '...' failed: 22, "Invalid argument". Terminating temporary process.
+
+double-check your Copy Files phase.
+
+__iOS Project Setup:__
+
+Add OCHamcrestIOS.framework to your project.
+
+Add:
+
+ #define HC_SHORTHAND
+ #import
+
+
+My first OCHamcrest test
+========================
+
+We'll start by writing a very simple Xcode unit test, but instead of using
+OCUnit's ``STAssertEqualObjects`` function, we'll use OCHamcrest's
+``assertThat`` construct and a predefined matcher:
+
+ #import
+
+ #define HC_SHORTHAND
+ #import
+
+ @interface BiscuitTest : SenTestCase
+ @end
+
+ @implementation BiscuitTest
+
+ - (void) testEquals
+ {
+ Biscuit* theBiscuit = [Biscuit biscuitNamed:@"Ginger"];
+ Biscuit* myBiscuit = [Biscuit biscuitNamed:@"Ginger"];
+ assertThat(theBiscuit, equalTo(myBiscuit));
+ }
+
+ @end
+
+The ``assertThat`` function is a stylized sentence for making a test assertion.
+In this example, the subject of the assertion is the object ``theBiscuit``,
+which is the first method parameter. The second method parameter is a matcher
+for ``Biscuit`` objects, here a matcher that checks one object is equal to
+another using the ``-isEqual:`` method. The test passes since the ``Biscuit``
+class defines an ``-isEqual:`` method.
+
+OCHamcrest's functions are actually declared with an "HC" package prefix (such
+as ``HC_assertThat`` and ``HC_equalTo``) to avoid name clashes. To make test
+writing faster and test code more legible, shorthand macros are provided if
+``HC_SHORTHAND`` is defined before including the OCHamcrest header. For example,
+instead of writing ``HC_assertThat``, simply write ``assertThat``.
+
+
+Predefined matchers
+===================
+
+OCHamcrest comes with a library of useful matchers:
+
+* Object
+
+ * ``conformsTo`` - match object that conforms to protocol
+ * ``equalTo`` - match equal object
+ * ``hasDescription`` - match object's ``-description``
+ * ``hasProperty`` - match return value of method with given name
+ * ``instanceOf`` - match object type
+ * ``nilValue``, ``notNilValue`` - match ``nil``, or not ``nil``
+ * ``sameInstance`` - match same object
+
+* Number
+
+ * ``closeTo`` - match number close to a given value
+ * equalTo<TypeName> - match number equal to a primitive number (such as
+ ``equalToInt`` for an ``int``)
+ * ``greaterThan``, ``greaterThanOrEqualTo``, ``lessThan``,
+ ``lessThanOrEqualTo`` - match numeric ordering
+
+* Text
+
+ * ``containsString`` - match part of a string
+ * ``endsWith`` - match the end of a string
+ * ``equalToIgnoringCase`` - match the complete string but ignore case
+ * ``equalToIgnoringWhitespace`` - match the complete string but ignore
+ extra whitespace
+ * ``startsWith`` - match the beginning of a string
+ * ``stringContainsInOrder`` - match parts of a string, in relative order
+
+* Logical
+
+ * ``allOf`` - "and" together all matchers
+ * ``anyOf`` - "or" together all matchers
+ * ``anything`` - match anything (useful in composite matchers when you don't
+ care about a particular value)
+ * ``isNot`` - negate the matcher
+
+* Collection
+
+ * ``contains`` - exactly match the entire collection
+ * ``containsInAnyOrder`` - match the entire collection, but in any order
+ * ``empty`` - match empty collection
+ * ``hasCount`` - match number of elements against another matcher
+ * ``hasCountOf`` - match collection with given number of elements
+ * ``hasEntries`` - match dictionary with list of key-value pairs
+ * ``hasEntry`` - match dictionary containing a key-value pair
+ * ``hasItem`` - match if given item appears in the collection
+ * ``hasItems`` - match if all given items appear in the collection, in any order
+ * ``hasKey`` - match dictionary with a key
+ * ``hasValue`` - match dictionary with a value
+ * ``onlyContains`` - match if collections's items appear in given list
+
+* Decorator
+
+ * ``describedAs`` - give the matcher a custom failure description
+ * ``is`` - decorator to improve readability - see `Syntactic sugar` below
+
+The arguments for many of these matchers accept not just a matching value, but
+another matcher, so matchers can be composed for greater flexibility. For
+example, ``only_contains(endsWith(@"."))`` will match any collection where
+every item is a string ending with period.
+
+
+Syntactic sugar
+===============
+
+OCHamcrest strives to make your tests as readable as possible. For example, the
+``is`` matcher is a wrapper that doesn't add any extra behavior to the
+underlying matcher. The following assertions are all equivalent:
+
+ assertThat(theBiscuit, equalTo(myBiscuit));
+ assertThat(theBiscuit, is(equalTo(myBiscuit)));
+ assertThat(theBiscuit, is(myBiscuit));
+
+The last form is allowed since ``is`` wraps non-matcher arguments with
+``equalTo``. Other matchers that take matchers as arguments provide similar
+shortcuts, wrapping non-matcher arguments in ``equalTo``.
+
+
+Writing custom matchers
+=======================
+
+OCHamcrest comes bundled with lots of useful matchers, but you'll probably find
+that you need to create your own from time to time to fit your testing needs.
+This commonly occurs when you find a fragment of code that tests the same set of
+properties over and over again (and in different tests), and you want to bundle
+the fragment into a single assertion. By writing your own matcher you'll
+eliminate code duplication and make your tests more readable!
+
+Let's write our own matcher for testing if a calendar date falls on a Saturday.
+This is the test we want to write:
+
+ - (void) testDateIsOnASaturday
+ {
+ NSCalendarDate* date = [NSCalendarDate dateWithString:@"26 Apr 2008" calendarFormat:@"%d %b %Y"];
+ assertThat(date, is(onASaturday()))
+ }
+
+Here's the interface:
+
+ #import
+ #import
+
+ @interface IsGivenDayOfWeek : HCBaseMatcher
+ {
+ NSInteger day; // 0 indicates Sunday
+ }
+
+ + (id) isGivenDayOfWeek:(NSInteger)dayOfWeek;
+ - (id) initWithDay:(NSInteger)dayOfWeek;
+
+ @end
+
+ OBJC_EXPORT id onASaturday();
+
+The interface consists of two parts: a class definition, and a factory function
+(with C binding). Here's what the implementation looks like:
+
+ #import "IsGivenDayOfWeek.h"
+ #import
+
+ @implementation IsGivenDayOfWeek
+
+ + (id) isGivenDayOfWeek:(NSInteger)dayOfWeek
+ {
+ return [[self alloc] initWithDay:dayOfWeek];
+ }
+
+ - (id) initWithDay:(NSInteger)dayOfWeek
+ {
+ self = [super init];
+ if (self != nil)
+ day = dayOfWeek;
+ return self;
+ }
+
+ // Test whether item matches.
+ - (BOOL) matches:(id)item
+ {
+ if (![item respondsToSelector:@selector(dayOfWeek)])
+ return NO;
+
+ return [item dayOfWeek] == day;
+ }
+
+ // Describe the matcher.
+ - (void) describeTo:(id)description
+ {
+ NSString* dayAsString[] =
+ {@"Sunday", @"Monday", @"Tuesday", @"Wednesday", @"Thursday", @"Friday", @"Saturday"};
+ [[description appendText:@"calendar date falling on "] appendText:dayAsString[day]];
+ }
+
+ @end
+
+
+ id onASaturday()
+ {
+ return [IsGivenDayOfWeek isGivenDayOfWeek:6];
+ }
+
+For our Matcher implementation we implement the ``-matches:`` method (which
+calls ``-dayOfWeek`` after confirming that the argument has such a method) and
+the ``-describe_to:`` method (which is used to produce a failure message when a
+test fails). Here's an example of how the failure message looks:
+
+ NSCalendarDate* date = [NSCalendarDate dateWithString: @"6 April 2008" calendarFormat: @"%d %B %Y"];
+ assertThat(date, is(onASaturday()));
+
+fails with the message
+
+ Expected: is calendar date falling on Saturday, got: <06 April 2008>
+
+and Xcode shows it as a build error. Clicking the error message takes you to the
+assertion that failed.
+
+Even though the ``onASaturday`` function creates a new matcher each time it is
+called, you should not assume this is the only usage pattern for your matcher.
+Therefore you should make sure your matcher is stateless, so a single instance
+can be reused between matches.
+
+
+More resources
+==============
+
+* [Documentation](http://hamcrest.org/OCHamcrest/)
+* [Sources](https://github.com/hamcrest/OCHamcrest)
+* [Hamcrest](http://hamcrest.org)
+* [Quality Coding](http://qualitycoding.org/) - Tools, tips &
+techniques for _building quality in_ to iOS development
diff --git a/External/OCHamcrest.framework/Versions/A/Headers/HCAssertThat.h b/Tests/Pods/OCHamcrest/Source/Core/HCAssertThat.h
similarity index 100%
rename from External/OCHamcrest.framework/Versions/A/Headers/HCAssertThat.h
rename to Tests/Pods/OCHamcrest/Source/Core/HCAssertThat.h
diff --git a/Tests/Pods/OCHamcrest/Source/Core/HCAssertThat.m b/Tests/Pods/OCHamcrest/Source/Core/HCAssertThat.m
new file mode 100644
index 000000000..05a45849f
--- /dev/null
+++ b/Tests/Pods/OCHamcrest/Source/Core/HCAssertThat.m
@@ -0,0 +1,95 @@
+//
+// OCHamcrest - HCAssertThat.m
+// Copyright 2012 hamcrest.org. See LICENSE.txt
+//
+// Created by: Jon Reid, http://qualitycoding.org/
+// Docs: http://hamcrest.github.com/OCHamcrest/
+// Source: https://github.com/hamcrest/OCHamcrest
+//
+
+#import "HCAssertThat.h"
+
+#import "HCStringDescription.h"
+#import "HCMatcher.h"
+
+#if TARGET_OS_IPHONE
+ #import
+#else
+ #import
+#endif
+
+
+/**
+ Create OCUnit failure
+
+ With OCUnit's extension to NSException, this is effectively the same as
+@code
+[NSException failureInFile: [NSString stringWithUTF8String:fileName]
+ atLine: lineNumber
+ withDescription: description]
+@endcode
+ except we use an NSInvocation so that OCUnit (SenTestingKit) does not have to be linked.
+ */
+static NSException *createOCUnitException(const char* fileName, int lineNumber, __unsafe_unretained NSString *description)
+{
+ __unsafe_unretained NSException *result = nil;
+
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wundeclared-selector"
+ SEL selector = @selector(failureInFile:atLine:withDescription:);
+#pragma clang diagnostic pop
+
+ NSMethodSignature *signature = [[NSException class] methodSignatureForSelector:selector];
+ NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:signature];
+ [invocation setTarget:[NSException class]];
+ [invocation setSelector:selector];
+
+ __unsafe_unretained id fileArg = @(fileName);
+ [invocation setArgument:&fileArg atIndex:2];
+ [invocation setArgument:&lineNumber atIndex:3];
+ [invocation setArgument:&description atIndex:4];
+
+ [invocation invoke];
+ [invocation getReturnValue:&result];
+ return result;
+}
+
+static NSException *createAssertThatFailure(const char *fileName, int lineNumber, NSString *description)
+{
+ // If the Hamcrest client has linked to OCUnit, generate an OCUnit failure.
+ if (NSClassFromString(@"SenTestCase") != Nil)
+ return createOCUnitException(fileName, lineNumber, description);
+
+ NSString *failureReason = [NSString stringWithFormat:@"%s:%d: matcher error: %@",
+ fileName, lineNumber, description];
+ return [NSException exceptionWithName:@"Hamcrest Error" reason:failureReason userInfo:nil];
+}
+
+
+#pragma mark -
+
+// As of 2010-09-09, the iPhone simulator has a bug where you can't catch
+// exceptions when they are thrown across NSInvocation boundaries. (See
+// dmaclach's comment at http://openradar.appspot.com/8081169 ) So instead of
+// using an NSInvocation to call failWithException:assertThatFailure without
+// linking in OCUnit, we simply pretend it exists on NSObject.
+@interface NSObject (HCExceptionBugHack)
+- (void)failWithException:(NSException *)exception;
+@end
+
+void HC_assertThatWithLocation(id testCase, id actual, id matcher,
+ const char *fileName, int lineNumber)
+{
+ if (![matcher matches:actual])
+ {
+ HCStringDescription *description = [HCStringDescription stringDescription];
+ [[[description appendText:@"Expected "]
+ appendDescriptionOf:matcher]
+ appendText:@", but "];
+ [matcher describeMismatchOf:actual to:description];
+
+ NSException *assertThatFailure = createAssertThatFailure(fileName, lineNumber,
+ [description description]);
+ [testCase failWithException:assertThatFailure];
+ }
+}
diff --git a/External/OCHamcrest.framework/Versions/A/Headers/HCBaseDescription.h b/Tests/Pods/OCHamcrest/Source/Core/HCBaseDescription.h
similarity index 100%
rename from External/OCHamcrest.framework/Versions/A/Headers/HCBaseDescription.h
rename to Tests/Pods/OCHamcrest/Source/Core/HCBaseDescription.h
diff --git a/Tests/Pods/OCHamcrest/Source/Core/HCBaseDescription.m b/Tests/Pods/OCHamcrest/Source/Core/HCBaseDescription.m
new file mode 100644
index 000000000..38db60170
--- /dev/null
+++ b/Tests/Pods/OCHamcrest/Source/Core/HCBaseDescription.m
@@ -0,0 +1,108 @@
+//
+// OCHamcrest - HCBaseDescription.m
+// Copyright 2012 hamcrest.org. See LICENSE.txt
+//
+// Created by: Jon Reid, http://qualitycoding.org/
+// Docs: http://hamcrest.github.com/OCHamcrest/
+// Source: https://github.com/hamcrest/OCHamcrest
+//
+
+#import "HCBaseDescription.h"
+
+#import "HCMatcher.h"
+#import "HCSelfDescribing.h"
+
+
+@implementation HCBaseDescription
+
+- (id)appendText:(NSString *)text
+{
+ [self append:text];
+ return self;
+}
+
+- (id)appendDescriptionOf:(id)value
+{
+ if (value == nil)
+ [self append:@"nil"];
+ else if ([value conformsToProtocol:@protocol(HCSelfDescribing)])
+ [value describeTo:self];
+ else if ([value isKindOfClass:[NSString class]])
+ [self toCSyntaxString:value];
+ else
+ [self appendObjectDescriptionOf:value];
+
+ return self;
+}
+
+- (id)appendObjectDescriptionOf:(id)value
+{
+ NSString *description = [value description];
+ NSUInteger descriptionLength = [description length];
+ if (descriptionLength == 0)
+ [self append:[NSString stringWithFormat:@"<%@: %p>", NSStringFromClass([value class]), value]];
+ else if ([description characterAtIndex:0] == '<'
+ && [description characterAtIndex:descriptionLength - 1] == '>')
+ {
+ [self append:description];
+ }
+ else
+ {
+ [self append:@"<"];
+ [self append:description];
+ [self append:@">"];
+ }
+ return self;
+}
+
+- (id)appendList:(NSArray *)values
+ start:(NSString *)start
+ separator:(NSString *)separator
+ end:(NSString *)end
+{
+ BOOL separate = NO;
+
+ [self append:start];
+ for (id item in values)
+ {
+ if (separate)
+ [self append:separator];
+ [self appendDescriptionOf:item];
+ separate = YES;
+ }
+ [self append:end];
+ return self;
+}
+
+- (void)toCSyntaxString:(NSString *)unformatted
+{
+ [self append:@"\""];
+ NSUInteger length = [unformatted length];
+ for (NSUInteger index = 0; index < length; ++index)
+ [self toCSyntax:[unformatted characterAtIndex:index]];
+ [self append:@"\""];
+}
+
+- (void)toCSyntax:(unichar)ch
+{
+ switch (ch)
+ {
+ case '"':
+ [self append:@"\\\""];
+ break;
+ case '\n':
+ [self append:@"\\n"];
+ break;
+ case '\r':
+ [self append:@"\\r"];
+ break;
+ case '\t':
+ [self append:@"\\t"];
+ break;
+ default:
+ [self append:[NSString stringWithCharacters:&ch length:1]];
+ break;
+ }
+}
+
+@end
diff --git a/External/OCHamcrest.framework/Versions/A/Headers/HCBaseMatcher.h b/Tests/Pods/OCHamcrest/Source/Core/HCBaseMatcher.h
similarity index 100%
rename from External/OCHamcrest.framework/Versions/A/Headers/HCBaseMatcher.h
rename to Tests/Pods/OCHamcrest/Source/Core/HCBaseMatcher.h
diff --git a/Tests/Pods/OCHamcrest/Source/Core/HCBaseMatcher.m b/Tests/Pods/OCHamcrest/Source/Core/HCBaseMatcher.m
new file mode 100644
index 000000000..5bdea6700
--- /dev/null
+++ b/Tests/Pods/OCHamcrest/Source/Core/HCBaseMatcher.m
@@ -0,0 +1,55 @@
+//
+// OCHamcrest - HCBaseMatcher.m
+// Copyright 2012 hamcrest.org. See LICENSE.txt
+//
+// Created by: Jon Reid, http://qualitycoding.org/
+// Docs: http://hamcrest.github.com/OCHamcrest/
+// Source: https://github.com/hamcrest/OCHamcrest
+//
+
+#import "HCBaseMatcher.h"
+
+#import "HCStringDescription.h"
+
+#define ABSTRACT_METHOD [self subclassResponsibility:_cmd]
+
+
+@implementation HCBaseMatcher
+
+- (NSString *)description
+{
+ return [HCStringDescription stringFrom:self];
+}
+
+- (BOOL)matches:(id)item
+{
+ ABSTRACT_METHOD;
+ return NO;
+}
+
+- (BOOL)matches:(id)item describingMismatchTo:(id)mismatchDescription
+{
+ BOOL matchResult = [self matches:item];
+ if (!matchResult)
+ [self describeMismatchOf:item to:mismatchDescription];
+ return matchResult;
+}
+
+- (void)describeMismatchOf:(id)item to:(id)mismatchDescription
+{
+ [[mismatchDescription appendText:@"was "] appendDescriptionOf:item];
+}
+
+- (void)describeTo:(id)description
+{
+ ABSTRACT_METHOD;
+}
+
+- (void)subclassResponsibility:(SEL)command
+{
+ NSString *className = NSStringFromClass([self class]);
+ [NSException raise:NSGenericException
+ format:@"-[%@ %@] not implemented", className, NSStringFromSelector(command)];
+}
+
+@end
diff --git a/External/OCHamcrest.framework/Versions/A/Headers/HCDescription.h b/Tests/Pods/OCHamcrest/Source/Core/HCDescription.h
similarity index 100%
rename from External/OCHamcrest.framework/Versions/A/Headers/HCDescription.h
rename to Tests/Pods/OCHamcrest/Source/Core/HCDescription.h
diff --git a/External/OCHamcrest.framework/Versions/A/Headers/HCMatcher.h b/Tests/Pods/OCHamcrest/Source/Core/HCMatcher.h
similarity index 100%
rename from External/OCHamcrest.framework/Versions/A/Headers/HCMatcher.h
rename to Tests/Pods/OCHamcrest/Source/Core/HCMatcher.h
diff --git a/External/OCHamcrest.framework/Versions/A/Headers/HCSelfDescribing.h b/Tests/Pods/OCHamcrest/Source/Core/HCSelfDescribing.h
similarity index 100%
rename from External/OCHamcrest.framework/Versions/A/Headers/HCSelfDescribing.h
rename to Tests/Pods/OCHamcrest/Source/Core/HCSelfDescribing.h
diff --git a/External/OCHamcrest.framework/Versions/A/Headers/HCStringDescription.h b/Tests/Pods/OCHamcrest/Source/Core/HCStringDescription.h
similarity index 100%
rename from External/OCHamcrest.framework/Versions/A/Headers/HCStringDescription.h
rename to Tests/Pods/OCHamcrest/Source/Core/HCStringDescription.h
diff --git a/Tests/Pods/OCHamcrest/Source/Core/HCStringDescription.m b/Tests/Pods/OCHamcrest/Source/Core/HCStringDescription.m
new file mode 100644
index 000000000..1439cce57
--- /dev/null
+++ b/Tests/Pods/OCHamcrest/Source/Core/HCStringDescription.m
@@ -0,0 +1,47 @@
+//
+// OCHamcrest - HCStringDescription.m
+// Copyright 2012 hamcrest.org. See LICENSE.txt
+//
+// Created by: Jon Reid, http://qualitycoding.org/
+// Docs: http://hamcrest.github.com/OCHamcrest/
+// Source: https://github.com/hamcrest/OCHamcrest
+//
+
+#import "HCStringDescription.h"
+
+#import "HCSelfDescribing.h"
+
+
+@implementation HCStringDescription
+
++ (NSString *)stringFrom:(id)selfDescribing
+{
+ HCStringDescription *description = [HCStringDescription stringDescription];
+ [description appendDescriptionOf:selfDescribing];
+ return [description description];
+}
+
++ (HCStringDescription *)stringDescription
+{
+ return [[HCStringDescription alloc] init];
+}
+
+- (id)init
+{
+ self = [super init];
+ if (self)
+ accumulator = [[NSMutableString alloc] init];
+ return self;
+}
+
+- (NSString *)description
+{
+ return accumulator;
+}
+
+- (void)append:(NSString *)str
+{
+ [accumulator appendString:str];
+}
+
+@end
diff --git a/External/OCHamcrest.framework/Versions/A/Headers/HCCollectMatchers.h b/Tests/Pods/OCHamcrest/Source/Core/Helpers/HCCollectMatchers.h
similarity index 100%
rename from External/OCHamcrest.framework/Versions/A/Headers/HCCollectMatchers.h
rename to Tests/Pods/OCHamcrest/Source/Core/Helpers/HCCollectMatchers.h
diff --git a/Tests/Pods/OCHamcrest/Source/Core/Helpers/HCCollectMatchers.m b/Tests/Pods/OCHamcrest/Source/Core/Helpers/HCCollectMatchers.m
new file mode 100644
index 000000000..ca6a7f837
--- /dev/null
+++ b/Tests/Pods/OCHamcrest/Source/Core/Helpers/HCCollectMatchers.m
@@ -0,0 +1,27 @@
+//
+// OCHamcrest - HCCollectMatchers.m
+// Copyright 2012 hamcrest.org. See LICENSE.txt
+//
+// Created by: Jon Reid, http://qualitycoding.org/
+// Docs: http://hamcrest.github.com/OCHamcrest/
+// Source: https://github.com/hamcrest/OCHamcrest
+//
+
+#import "HCCollectMatchers.h"
+
+#import "HCWrapInMatcher.h"
+
+
+NSMutableArray *HCCollectMatchers(id item, va_list args)
+{
+ NSMutableArray *matcherList = [NSMutableArray arrayWithObject:HCWrapInMatcher(item)];
+
+ item = va_arg(args, id);
+ while (item != nil)
+ {
+ [matcherList addObject:HCWrapInMatcher(item)];
+ item = va_arg(args, id);
+ }
+
+ return matcherList;
+}
diff --git a/External/OCHamcrest.framework/Versions/A/Headers/HCInvocationMatcher.h b/Tests/Pods/OCHamcrest/Source/Core/Helpers/HCInvocationMatcher.h
similarity index 100%
rename from External/OCHamcrest.framework/Versions/A/Headers/HCInvocationMatcher.h
rename to Tests/Pods/OCHamcrest/Source/Core/Helpers/HCInvocationMatcher.h
diff --git a/Tests/Pods/OCHamcrest/Source/Core/Helpers/HCInvocationMatcher.m b/Tests/Pods/OCHamcrest/Source/Core/Helpers/HCInvocationMatcher.m
new file mode 100755
index 000000000..24d7cc6e1
--- /dev/null
+++ b/Tests/Pods/OCHamcrest/Source/Core/Helpers/HCInvocationMatcher.m
@@ -0,0 +1,85 @@
+//
+// OCHamcrest - HCInvocationMatcher.m
+// Copyright 2012 hamcrest.org. See LICENSE.txt
+//
+// Created by: Jon Reid, http://qualitycoding.org/
+// Docs: http://hamcrest.github.com/OCHamcrest/
+// Source: https://github.com/hamcrest/OCHamcrest
+//
+
+#import "HCInvocationMatcher.h"
+
+#import "HCDescription.h"
+
+
+@implementation HCInvocationMatcher
+
+@synthesize shortMismatchDescription;
+
+
++ (NSInvocation *)invocationForSelector:(SEL)selector onClass:(Class)aClass
+{
+ NSMethodSignature* signature = [aClass instanceMethodSignatureForSelector:selector];
+ NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:signature];
+ [invocation setSelector:selector];
+ return invocation;
+}
+
+- (id)initWithInvocation:(NSInvocation *)anInvocation matching:(id)aMatcher
+{
+ self = [super init];
+ if (self)
+ {
+ invocation = anInvocation;
+ subMatcher = aMatcher;
+ }
+ return self;
+}
+
+- (NSString *)stringFromSelector
+{
+ return NSStringFromSelector([invocation selector]);
+}
+
+- (id)invokeOn:(id)item
+{
+ __unsafe_unretained id result = nil;
+ [invocation invokeWithTarget:item];
+ [invocation getReturnValue:&result];
+ return result;
+}
+
+- (BOOL)matches:(id)item
+{
+ if (![item respondsToSelector:[invocation selector]])
+ return NO;
+
+ return [subMatcher matches:[self invokeOn:item]];
+}
+
+- (void)describeMismatchOf:(id)item to:(id)mismatchDescription
+{
+ if (![item respondsToSelector:[invocation selector]])
+ [super describeMismatchOf:item to:mismatchDescription];
+ else
+ {
+ if (!shortMismatchDescription)
+ {
+ [[[[mismatchDescription appendDescriptionOf:item]
+ appendText:@" "]
+ appendText:[self stringFromSelector]]
+ appendText:@" "];
+ }
+ [subMatcher describeMismatchOf:[self invokeOn:item] to:mismatchDescription];
+ }
+}
+
+- (void)describeTo:(id)description
+{
+ [[[[description appendText:@"an object with "]
+ appendText:[self stringFromSelector]]
+ appendText:@" "]
+ appendDescriptionOf:subMatcher];
+}
+
+@end
diff --git a/External/OCHamcrest.framework/Versions/A/Headers/HCRequireNonNilObject.h b/Tests/Pods/OCHamcrest/Source/Core/Helpers/HCRequireNonNilObject.h
similarity index 100%
rename from External/OCHamcrest.framework/Versions/A/Headers/HCRequireNonNilObject.h
rename to Tests/Pods/OCHamcrest/Source/Core/Helpers/HCRequireNonNilObject.h
diff --git a/Tests/Pods/OCHamcrest/Source/Core/Helpers/HCRequireNonNilObject.m b/Tests/Pods/OCHamcrest/Source/Core/Helpers/HCRequireNonNilObject.m
new file mode 100644
index 000000000..0362a7e51
--- /dev/null
+++ b/Tests/Pods/OCHamcrest/Source/Core/Helpers/HCRequireNonNilObject.m
@@ -0,0 +1,21 @@
+//
+// OCHamcrest - HCRequireNonNilObject.m
+// Copyright 2012 hamcrest.org. See LICENSE.txt
+//
+// Created by: Jon Reid, http://qualitycoding.org/
+// Docs: http://hamcrest.github.com/OCHamcrest/
+// Source: https://github.com/hamcrest/OCHamcrest
+//
+
+#import "HCRequireNonNilObject.h"
+
+
+void HCRequireNonNilObject(id obj)
+{
+ if (obj == nil)
+ {
+ @throw [NSException exceptionWithName:@"NilObject"
+ reason:@"Must be non-nil object"
+ userInfo:nil];
+ }
+}
diff --git a/External/OCHamcrest.framework/Versions/A/Headers/HCRequireNonNilString.h b/Tests/Pods/OCHamcrest/Source/Core/Helpers/HCRequireNonNilString.h
similarity index 100%
rename from External/OCHamcrest.framework/Versions/A/Headers/HCRequireNonNilString.h
rename to Tests/Pods/OCHamcrest/Source/Core/Helpers/HCRequireNonNilString.h
diff --git a/Tests/Pods/OCHamcrest/Source/Core/Helpers/HCRequireNonNilString.m b/Tests/Pods/OCHamcrest/Source/Core/Helpers/HCRequireNonNilString.m
new file mode 100644
index 000000000..5ae7f32b1
--- /dev/null
+++ b/Tests/Pods/OCHamcrest/Source/Core/Helpers/HCRequireNonNilString.m
@@ -0,0 +1,21 @@
+//
+// OCHamcrest - HCRequireNonNilString.m
+// Copyright 2012 hamcrest.org. See LICENSE.txt
+//
+// Created by: Jon Reid, http://qualitycoding.org/
+// Docs: http://hamcrest.github.com/OCHamcrest/
+// Source: https://github.com/hamcrest/OCHamcrest
+//
+
+#import "HCRequireNonNilString.h"
+
+
+void HCRequireNonNilString(NSString *string)
+{
+ if (string == nil)
+ {
+ @throw [NSException exceptionWithName:@"NotAString"
+ reason:@"Must be non-nil string"
+ userInfo:nil];
+ }
+}
diff --git a/External/OCHamcrest.framework/Versions/A/Headers/HCWrapInMatcher.h b/Tests/Pods/OCHamcrest/Source/Core/Helpers/HCWrapInMatcher.h
similarity index 100%
rename from External/OCHamcrest.framework/Versions/A/Headers/HCWrapInMatcher.h
rename to Tests/Pods/OCHamcrest/Source/Core/Helpers/HCWrapInMatcher.h
diff --git a/Tests/Pods/OCHamcrest/Source/Core/Helpers/HCWrapInMatcher.m b/Tests/Pods/OCHamcrest/Source/Core/Helpers/HCWrapInMatcher.m
new file mode 100644
index 000000000..52db2aa05
--- /dev/null
+++ b/Tests/Pods/OCHamcrest/Source/Core/Helpers/HCWrapInMatcher.m
@@ -0,0 +1,24 @@
+//
+// OCHamcrest - HCWrapInMatcher.m
+// Copyright 2012 hamcrest.org. See LICENSE.txt
+//
+// Created by: Jon Reid, http://qualitycoding.org/
+// Docs: http://hamcrest.github.com/OCHamcrest/
+// Source: https://github.com/hamcrest/OCHamcrest
+//
+
+#import "HCWrapInMatcher.h"
+
+#import "HCIsEqual.h"
+
+
+id HCWrapInMatcher(id matcherOrValue)
+{
+ if (!matcherOrValue)
+ return nil;
+
+ if ([matcherOrValue conformsToProtocol:@protocol(HCMatcher)])
+ return matcherOrValue;
+ else
+ return HC_equalTo(matcherOrValue);
+}
diff --git a/External/OCHamcrest.framework/Versions/A/Headers/HCHasCount.h b/Tests/Pods/OCHamcrest/Source/Library/Collection/HCHasCount.h
similarity index 100%
rename from External/OCHamcrest.framework/Versions/A/Headers/HCHasCount.h
rename to Tests/Pods/OCHamcrest/Source/Library/Collection/HCHasCount.h
diff --git a/Tests/Pods/OCHamcrest/Source/Library/Collection/HCHasCount.m b/Tests/Pods/OCHamcrest/Source/Library/Collection/HCHasCount.m
new file mode 100644
index 000000000..4d04ebf99
--- /dev/null
+++ b/Tests/Pods/OCHamcrest/Source/Library/Collection/HCHasCount.m
@@ -0,0 +1,70 @@
+//
+// OCHamcrest - HCHasCount.m
+// Copyright 2012 hamcrest.org. See LICENSE.txt
+//
+// Created by: Jon Reid, http://qualitycoding.org/
+// Docs: http://hamcrest.github.com/OCHamcrest/
+// Source: https://github.com/hamcrest/OCHamcrest
+//
+
+#import "HCHasCount.h"
+
+#import "HCDescription.h"
+#import "HCIsEqualToNumber.h"
+
+
+@implementation HCHasCount
+
++ (id)hasCount:(id)matcher
+{
+ return [[self alloc] initWithCount:matcher];
+}
+
+- (id)initWithCount:(id)matcher
+{
+ self = [super init];
+ if (self)
+ countMatcher = matcher;
+ return self;
+}
+
+- (BOOL)matches:(id)item
+{
+ if (![item respondsToSelector:@selector(count)])
+ return NO;
+
+ NSNumber *count = @([item count]);
+ return [countMatcher matches:count];
+}
+
+- (void)describeMismatchOf:(id)item to:(id)mismatchDescription
+{
+ [mismatchDescription appendText:@"was "];
+ if ([item respondsToSelector:@selector(count)])
+ {
+ [[[mismatchDescription appendText:@"count of "]
+ appendDescriptionOf:@([item count])]
+ appendText:@" with "];
+ }
+ [mismatchDescription appendDescriptionOf:item];
+}
+
+- (void)describeTo:(id)description
+{
+ [[description appendText:@"a collection with count of "] appendDescriptionOf:countMatcher];
+}
+
+@end
+
+
+#pragma mark -
+
+id HC_hasCount(id matcher)
+{
+ return [HCHasCount hasCount:matcher];
+}
+
+id HC_hasCountOf(NSUInteger value)
+{
+ return HC_hasCount(HC_equalToUnsignedInteger(value));
+}
diff --git a/External/OCHamcrest.framework/Versions/A/Headers/HCIsCollectionContaining.h b/Tests/Pods/OCHamcrest/Source/Library/Collection/HCIsCollectionContaining.h
similarity index 100%
rename from External/OCHamcrest.framework/Versions/A/Headers/HCIsCollectionContaining.h
rename to Tests/Pods/OCHamcrest/Source/Library/Collection/HCIsCollectionContaining.h
diff --git a/Tests/Pods/OCHamcrest/Source/Library/Collection/HCIsCollectionContaining.m b/Tests/Pods/OCHamcrest/Source/Library/Collection/HCIsCollectionContaining.m
new file mode 100644
index 000000000..9610b95a4
--- /dev/null
+++ b/Tests/Pods/OCHamcrest/Source/Library/Collection/HCIsCollectionContaining.m
@@ -0,0 +1,76 @@
+//
+// OCHamcrest - HCIsCollectionContaining.m
+// Copyright 2012 hamcrest.org. See LICENSE.txt
+//
+// Created by: Jon Reid, http://qualitycoding.org/
+// Docs: http://hamcrest.github.com/OCHamcrest/
+// Source: https://github.com/hamcrest/OCHamcrest
+//
+
+#import "HCIsCollectionContaining.h"
+
+#import "HCAllOf.h"
+#import "HCDescription.h"
+#import "HCRequireNonNilObject.h"
+#import "HCWrapInMatcher.h"
+
+
+@implementation HCIsCollectionContaining
+
++ (id)isCollectionContaining:(id)anElementMatcher
+{
+ return [[self alloc] initWithMatcher:anElementMatcher];
+}
+
+- (id)initWithMatcher:(id)anElementMatcher
+{
+ self = [super init];
+ if (self)
+ elementMatcher = anElementMatcher;
+ return self;
+}
+
+- (BOOL)matches:(id)collection
+{
+ if (![collection conformsToProtocol:@protocol(NSFastEnumeration)])
+ return NO;
+
+ for (id item in collection)
+ if ([elementMatcher matches:item])
+ return YES;
+ return NO;
+}
+
+- (void)describeTo:(id)description
+{
+ [[description appendText:@"a collection containing "]
+ appendDescriptionOf:elementMatcher];
+}
+
+@end
+
+
+#pragma mark -
+
+id HC_hasItem(id itemMatch)
+{
+ HCRequireNonNilObject(itemMatch);
+ return [HCIsCollectionContaining isCollectionContaining:HCWrapInMatcher(itemMatch)];
+}
+
+id HC_hasItems(id itemMatch, ...)
+{
+ NSMutableArray *matchers = [NSMutableArray arrayWithObject:HC_hasItem(itemMatch)];
+
+ va_list args;
+ va_start(args, itemMatch);
+ itemMatch = va_arg(args, id);
+ while (itemMatch != nil)
+ {
+ [matchers addObject:HC_hasItem(itemMatch)];
+ itemMatch = va_arg(args, id);
+ }
+ va_end(args);
+
+ return [HCAllOf allOf:matchers];
+}
diff --git a/External/OCHamcrest.framework/Versions/A/Headers/HCIsCollectionContainingInAnyOrder.h b/Tests/Pods/OCHamcrest/Source/Library/Collection/HCIsCollectionContainingInAnyOrder.h
similarity index 100%
rename from External/OCHamcrest.framework/Versions/A/Headers/HCIsCollectionContainingInAnyOrder.h
rename to Tests/Pods/OCHamcrest/Source/Library/Collection/HCIsCollectionContainingInAnyOrder.h
diff --git a/Tests/Pods/OCHamcrest/Source/Library/Collection/HCIsCollectionContainingInAnyOrder.m b/Tests/Pods/OCHamcrest/Source/Library/Collection/HCIsCollectionContainingInAnyOrder.m
new file mode 100644
index 000000000..4df29753b
--- /dev/null
+++ b/Tests/Pods/OCHamcrest/Source/Library/Collection/HCIsCollectionContainingInAnyOrder.m
@@ -0,0 +1,142 @@
+//
+// OCHamcrest - HCIsCollectionContainingInAnyOrder.m
+// Copyright 2012 hamcrest.org. See LICENSE.txt
+//
+// Created by: Jon Reid, http://qualitycoding.org/
+// Docs: http://hamcrest.github.com/OCHamcrest/
+// Source: https://github.com/hamcrest/OCHamcrest
+//
+
+#import "HCIsCollectionContainingInAnyOrder.h"
+
+#import "HCAllOf.h"
+#import "HCDescription.h"
+#import "HCWrapInMatcher.h"
+
+
+@interface HCMatchingInAnyOrder : NSObject
+{
+ NSMutableArray *matchers;
+ id mismatchDescription;
+}
+@end
+
+
+@implementation HCMatchingInAnyOrder
+
+- (id)initWithMatchers:(NSMutableArray *)itemMatchers
+ mismatchDescription:(id)description
+{
+ self = [super init];
+ if (self)
+ {
+ matchers = itemMatchers;
+ mismatchDescription = description;
+ }
+ return self;
+}
+
+- (BOOL)matches:(id)item
+{
+ NSUInteger index = 0;
+ for (id matcher in matchers)
+ {
+ if ([matcher matches:item])
+ {
+ [matchers removeObjectAtIndex:index];
+ return YES;
+ }
+ ++index;
+ }
+ [[mismatchDescription appendText:@"not matched: "] appendDescriptionOf:item];
+ return NO;
+}
+
+- (BOOL)isFinishedWith:(NSArray *)collection
+{
+ if ([matchers count] == 0)
+ return YES;
+
+ [[[[mismatchDescription appendText:@"no item matches: "]
+ appendList:matchers start:@"" separator:@", " end:@""]
+ appendText:@" in "]
+ appendList:collection start:@"[" separator:@", " end:@"]"];
+ return NO;
+}
+
+@end
+
+
+#pragma mark -
+
+@implementation HCIsCollectionContainingInAnyOrder
+
++ (id)isCollectionContainingInAnyOrder:(NSMutableArray *)itemMatchers
+{
+ return [[self alloc] initWithMatchers:itemMatchers];
+}
+
+- (id)initWithMatchers:(NSMutableArray *)itemMatchers
+{
+ self = [super init];
+ if (self)
+ matchers = itemMatchers;
+ return self;
+}
+
+- (BOOL)matches:(id)collection
+{
+ return [self matches:collection describingMismatchTo:nil];
+}
+
+- (BOOL)matches:(id)collection describingMismatchTo:(id)mismatchDescription
+{
+ if (![collection conformsToProtocol:@protocol(NSFastEnumeration)])
+ {
+ [super describeMismatchOf:collection to:mismatchDescription];
+ return NO;
+ }
+
+ HCMatchingInAnyOrder *matchSequence =
+ [[HCMatchingInAnyOrder alloc] initWithMatchers:matchers
+ mismatchDescription:mismatchDescription];
+ for (id item in collection)
+ if (![matchSequence matches:item])
+ return NO;
+
+ return [matchSequence isFinishedWith:collection];
+}
+
+- (void)describeMismatchOf:(id)item to:(id)mismatchDescription
+{
+ [self matches:item describingMismatchTo:mismatchDescription];
+}
+
+- (void)describeTo:(id)description
+{
+ [[[description appendText:@"a collection over "]
+ appendList:matchers start:@"[" separator:@", " end:@"]"]
+ appendText:@" in any order"];
+}
+
+@end
+
+
+#pragma mark -
+
+id HC_containsInAnyOrder(id itemMatch, ...)
+{
+ NSMutableArray *matchers = [NSMutableArray arrayWithObject:HCWrapInMatcher(itemMatch)];
+
+ va_list args;
+ va_start(args, itemMatch);
+ itemMatch = va_arg(args, id);
+ while (itemMatch != nil)
+ {
+ [matchers addObject:HCWrapInMatcher(itemMatch)];
+ itemMatch = va_arg(args, id);
+ }
+ va_end(args);
+
+ return [HCIsCollectionContainingInAnyOrder isCollectionContainingInAnyOrder:matchers];
+}
diff --git a/External/OCHamcrest.framework/Versions/A/Headers/HCIsCollectionContainingInOrder.h b/Tests/Pods/OCHamcrest/Source/Library/Collection/HCIsCollectionContainingInOrder.h
similarity index 100%
rename from External/OCHamcrest.framework/Versions/A/Headers/HCIsCollectionContainingInOrder.h
rename to Tests/Pods/OCHamcrest/Source/Library/Collection/HCIsCollectionContainingInOrder.h
diff --git a/Tests/Pods/OCHamcrest/Source/Library/Collection/HCIsCollectionContainingInOrder.m b/Tests/Pods/OCHamcrest/Source/Library/Collection/HCIsCollectionContainingInOrder.m
new file mode 100644
index 000000000..a544d4035
--- /dev/null
+++ b/Tests/Pods/OCHamcrest/Source/Library/Collection/HCIsCollectionContainingInOrder.m
@@ -0,0 +1,161 @@
+//
+// OCHamcrest - HCIsCollectionContainingInOrder.m
+// Copyright 2012 hamcrest.org. See LICENSE.txt
+//
+// Created by: Jon Reid, http://qualitycoding.org/
+// Docs: http://hamcrest.github.com/OCHamcrest/
+// Source: https://github.com/hamcrest/OCHamcrest
+//
+
+#import "HCIsCollectionContainingInOrder.h"
+
+#import "HCAllOf.h"
+#import "HCDescription.h"
+#import "HCWrapInMatcher.h"
+
+
+@interface HCMatchSequence : NSObject
+{
+ NSArray *matchers;
+ id mismatchDescription;
+ NSUInteger nextMatchIndex;
+}
+
+- (BOOL)isMatched:(id)item;
+- (BOOL)isNotSurplus:(id)item;
+- (void)describeMismatchOfMatcher:(id)matcher item:(id)item;
+
+@end
+
+@implementation HCMatchSequence
+
+- (id)initWithMatchers:(NSArray *)itemMatchers mismatchDescription:(id)description
+{
+ self = [super init];
+ if (self)
+ {
+ matchers = itemMatchers;
+ mismatchDescription = description;
+ }
+ return self;
+}
+
+- (BOOL)matches:(id)item
+{
+ return [self isNotSurplus:item] && [self isMatched:item];
+}
+
+- (BOOL)isFinished
+{
+ if (nextMatchIndex < [matchers count])
+ {
+ [[mismatchDescription appendText:@"no item matched: "]
+ appendDescriptionOf:matchers[nextMatchIndex]];
+ return NO;
+ }
+ return YES;
+}
+
+- (BOOL)isMatched:(id)item
+{
+ id matcher = matchers[nextMatchIndex];
+ if (![matcher matches:item])
+ {
+ [self describeMismatchOfMatcher:matcher item:item];
+ return NO;
+ }
+ ++nextMatchIndex;
+ return YES;
+}
+
+- (BOOL)isNotSurplus:(id)item
+{
+ if ([matchers count] <= nextMatchIndex)
+ {
+ [[mismatchDescription appendText:@"not matched: "] appendDescriptionOf:item];
+ return NO;
+ }
+ return YES;
+}
+
+- (void)describeMismatchOfMatcher:(id)matcher item:(id)item
+{
+ [mismatchDescription appendText:[NSString stringWithFormat:@"item %zi: ", nextMatchIndex]];
+ [matcher describeMismatchOf:item to:mismatchDescription];
+}
+
+@end
+
+
+#pragma mark -
+
+@implementation HCIsCollectionContainingInOrder
+
++ (id)isCollectionContainingInOrder:(NSArray *)itemMatchers
+{
+ return [[self alloc] initWithMatchers:itemMatchers];
+}
+
+- (id)initWithMatchers:(NSArray *)itemMatchers
+{
+ self = [super init];
+ if (self)
+ matchers = itemMatchers;
+ return self;
+}
+
+- (BOOL)matches:(id)collection
+{
+ return [self matches:collection describingMismatchTo:nil];
+}
+
+- (BOOL)matches:(id)collection describingMismatchTo:(id)mismatchDescription
+{
+ if (![collection conformsToProtocol:@protocol(NSFastEnumeration)])
+ {
+ [super describeMismatchOf:collection to:mismatchDescription];
+ return NO;
+ }
+
+ HCMatchSequence *matchSequence =
+ [[HCMatchSequence alloc] initWithMatchers:matchers
+ mismatchDescription:mismatchDescription];
+ for (id item in collection)
+ if (![matchSequence matches:item])
+ return NO;
+
+ return [matchSequence isFinished];
+}
+
+- (void)describeMismatchOf:(id)item to:(id)mismatchDescription
+{
+ [self matches:item describingMismatchTo:mismatchDescription];
+}
+
+- (void)describeTo:(id)description
+{
+ [[description appendText:@"a collection containing "]
+ appendList:matchers start:@"[" separator:@", " end:@"]"];
+}
+
+@end
+
+
+#pragma mark -
+
+id HC_contains(id itemMatch, ...)
+{
+ NSMutableArray *matchers = [NSMutableArray arrayWithObject:HCWrapInMatcher(itemMatch)];
+
+ va_list args;
+ va_start(args, itemMatch);
+ itemMatch = va_arg(args, id);
+ while (itemMatch != nil)
+ {
+ [matchers addObject:HCWrapInMatcher(itemMatch)];
+ itemMatch = va_arg(args, id);
+ }
+ va_end(args);
+
+ return [HCIsCollectionContainingInOrder isCollectionContainingInOrder:matchers];
+}
diff --git a/External/OCHamcrest.framework/Versions/A/Headers/HCIsCollectionOnlyContaining.h b/Tests/Pods/OCHamcrest/Source/Library/Collection/HCIsCollectionOnlyContaining.h
similarity index 100%
rename from External/OCHamcrest.framework/Versions/A/Headers/HCIsCollectionOnlyContaining.h
rename to Tests/Pods/OCHamcrest/Source/Library/Collection/HCIsCollectionOnlyContaining.h
diff --git a/Tests/Pods/OCHamcrest/Source/Library/Collection/HCIsCollectionOnlyContaining.m b/Tests/Pods/OCHamcrest/Source/Library/Collection/HCIsCollectionOnlyContaining.m
new file mode 100644
index 000000000..1c4e42dfd
--- /dev/null
+++ b/Tests/Pods/OCHamcrest/Source/Library/Collection/HCIsCollectionOnlyContaining.m
@@ -0,0 +1,72 @@
+//
+// OCHamcrest - HCIsCollectionOnlyContaining.m
+// Copyright 2012 hamcrest.org. See LICENSE.txt
+//
+// Created by: Jon Reid, http://qualitycoding.org/
+// Docs: http://hamcrest.github.com/OCHamcrest/
+// Source: https://github.com/hamcrest/OCHamcrest
+//
+
+#import "HCIsCollectionOnlyContaining.h"
+
+#import "HCAnyOf.h"
+#import "HCDescription.h"
+#import "HCWrapInMatcher.h"
+
+
+@implementation HCIsCollectionOnlyContaining
+
++ (id)isCollectionOnlyContaining:(id)aMatcher
+{
+ return [[self alloc] initWithMatcher:aMatcher];
+}
+
+- (id)initWithMatcher:(id)aMatcher
+{
+ self = [super init];
+ if (self)
+ matcher = aMatcher;
+ return self;
+}
+
+- (BOOL)matches:(id)collection
+{
+ if (![collection conformsToProtocol:@protocol(NSFastEnumeration)])
+ return NO;
+
+ if ([collection count] == 0)
+ return NO;
+
+ for (id item in collection)
+ if (![matcher matches:item])
+ return NO;
+ return YES;
+}
+
+- (void)describeTo:(id)description
+{
+ [[description appendText:@"a collection containing items matching "]
+ appendDescriptionOf:matcher];
+}
+
+@end
+
+
+#pragma mark -
+
+id HC_onlyContains(id itemMatch, ...)
+{
+ NSMutableArray *matchers = [NSMutableArray arrayWithObject:HCWrapInMatcher(itemMatch)];
+
+ va_list args;
+ va_start(args, itemMatch);
+ itemMatch = va_arg(args, id);
+ while (itemMatch != nil)
+ {
+ [matchers addObject:HCWrapInMatcher(itemMatch)];
+ itemMatch = va_arg(args, id);
+ }
+ va_end(args);
+
+ return [HCIsCollectionOnlyContaining isCollectionOnlyContaining:[HCAnyOf anyOf:matchers]];
+}
diff --git a/External/OCHamcrest.framework/Versions/A/Headers/HCIsDictionaryContaining.h b/Tests/Pods/OCHamcrest/Source/Library/Collection/HCIsDictionaryContaining.h
similarity index 100%
rename from External/OCHamcrest.framework/Versions/A/Headers/HCIsDictionaryContaining.h
rename to Tests/Pods/OCHamcrest/Source/Library/Collection/HCIsDictionaryContaining.h
diff --git a/Tests/Pods/OCHamcrest/Source/Library/Collection/HCIsDictionaryContaining.m b/Tests/Pods/OCHamcrest/Source/Library/Collection/HCIsDictionaryContaining.m
new file mode 100644
index 000000000..ea35bb378
--- /dev/null
+++ b/Tests/Pods/OCHamcrest/Source/Library/Collection/HCIsDictionaryContaining.m
@@ -0,0 +1,66 @@
+//
+// OCHamcrest - HCIsDictionaryContaining.m
+// Copyright 2012 hamcrest.org. See LICENSE.txt
+//
+// Created by: Jon Reid, http://qualitycoding.org/
+// Docs: http://hamcrest.github.com/OCHamcrest/
+// Source: https://github.com/hamcrest/OCHamcrest
+//
+
+#import "HCIsDictionaryContaining.h"
+
+#import "HCDescription.h"
+#import "HCRequireNonNilObject.h"
+#import "HCWrapInMatcher.h"
+
+
+@implementation HCIsDictionaryContaining
+
++ (id)isDictionaryContainingKey:(id)aKeyMatcher
+ value:(id)aValueMatcher
+{
+ return [[self alloc] initWithKeyMatcher:aKeyMatcher valueMatcher:aValueMatcher];
+}
+
+- (id)initWithKeyMatcher:(id)aKeyMatcher
+ valueMatcher:(id)aValueMatcher
+{
+ self = [super init];
+ if (self)
+ {
+ keyMatcher = aKeyMatcher;
+ valueMatcher = aValueMatcher;
+ }
+ return self;
+}
+
+- (BOOL)matches:(id)dict
+{
+ if ([dict isKindOfClass:[NSDictionary class]])
+ for (id oneKey in dict)
+ if ([keyMatcher matches:oneKey] && [valueMatcher matches:dict[oneKey]])
+ return YES;
+ return NO;
+}
+
+- (void)describeTo:(id)description
+{
+ [[[[[description appendText:@"a dictionary containing { "]
+ appendDescriptionOf:keyMatcher]
+ appendText:@" = "]
+ appendDescriptionOf:valueMatcher]
+ appendText:@"; }"];
+}
+
+@end
+
+
+#pragma mark -
+
+id HC_hasEntry(id keyMatch, id valueMatch)
+{
+ HCRequireNonNilObject(keyMatch);
+ HCRequireNonNilObject(valueMatch);
+ return [HCIsDictionaryContaining isDictionaryContainingKey:HCWrapInMatcher(keyMatch)
+ value:HCWrapInMatcher(valueMatch)];
+}
diff --git a/External/OCHamcrest.framework/Versions/A/Headers/HCIsDictionaryContainingEntries.h b/Tests/Pods/OCHamcrest/Source/Library/Collection/HCIsDictionaryContainingEntries.h
similarity index 100%
rename from External/OCHamcrest.framework/Versions/A/Headers/HCIsDictionaryContainingEntries.h
rename to Tests/Pods/OCHamcrest/Source/Library/Collection/HCIsDictionaryContainingEntries.h
diff --git a/Tests/Pods/OCHamcrest/Source/Library/Collection/HCIsDictionaryContainingEntries.m b/Tests/Pods/OCHamcrest/Source/Library/Collection/HCIsDictionaryContainingEntries.m
new file mode 100644
index 000000000..51da37f29
--- /dev/null
+++ b/Tests/Pods/OCHamcrest/Source/Library/Collection/HCIsDictionaryContainingEntries.m
@@ -0,0 +1,141 @@
+//
+// OCHamcrest - HCIsDictionaryContainingEntries.m
+// Copyright 2012 hamcrest.org. See LICENSE.txt
+//
+// Created by: Jon Reid, http://qualitycoding.org/
+// Docs: http://hamcrest.github.com/OCHamcrest/
+// Source: https://github.com/hamcrest/OCHamcrest
+//
+
+#import "HCIsDictionaryContainingEntries.h"
+
+#import "HCDescription.h"
+#import "HCWrapInMatcher.h"
+
+
+@implementation HCIsDictionaryContainingEntries
+
++ (id)isDictionaryContainingKeys:(NSArray *)theKeys
+ valueMatchers:(NSArray *)theValueMatchers
+{
+ return [[self alloc] initWithKeys:theKeys valueMatchers:theValueMatchers];
+}
+
+- (id)initWithKeys:(NSArray *)theKeys
+ valueMatchers:(NSArray *)theValueMatchers
+{
+ self = [super init];
+ if (self)
+ {
+ keys = theKeys;
+ valueMatchers = theValueMatchers;
+ }
+ return self;
+}
+
+- (BOOL)matches:(id)item
+{
+ return [self matches:item describingMismatchTo:nil];
+}
+
+- (BOOL)matches:(id)dict describingMismatchTo:(id