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)mismatchDescription +{ + if (![dict isKindOfClass:[NSDictionary class]]) + { + [super describeMismatchOf:dict to:mismatchDescription]; + return NO; + } + + NSUInteger count = [keys count]; + for (NSUInteger index = 0; index < count; ++index) + { + id key = keys[index]; + if (dict[key] == nil) + { + [[[[mismatchDescription appendText:@"no "] + appendDescriptionOf:key] + appendText:@" key in "] + appendDescriptionOf:dict]; + return NO; + } + + id valueMatcher = valueMatchers[index]; + id actualValue = dict[key]; + + if (![valueMatcher matches:actualValue]) + { + [[[[mismatchDescription appendText:@"value for "] + appendDescriptionOf:key] + appendText:@" was "] + appendDescriptionOf:actualValue]; + return NO; + } + } + + return YES; +} + +- (void)describeMismatchOf:(id)item to:(id)mismatchDescription +{ + [self matches:item describingMismatchTo:mismatchDescription]; +} + +- (void)describeKeyValueAtIndex:(NSUInteger)index to:(id)description +{ + [[[[description appendDescriptionOf:keys[index]] + appendText:@" = "] + appendDescriptionOf:valueMatchers[index]] + appendText:@"; "]; +} + +- (void)describeTo:(id)description +{ + [description appendText:@"a dictionary containing { "]; + NSUInteger count = [keys count]; + NSUInteger index = 0; + for (; index < count - 1; ++index) + [self describeKeyValueAtIndex:index to:description]; + [self describeKeyValueAtIndex:index to:description]; + [description appendText:@"}"]; +} + +@end + + +#pragma mark - + +static void requirePairedObject(id obj) +{ + if (obj == nil) + { + @throw [NSException exceptionWithName:@"NilObject" + reason:@"HC_hasEntries keys and value matchers must be paired" + userInfo:nil]; + } +} + + +id HC_hasEntries(id keysAndValueMatch, ...) +{ + va_list args; + va_start(args, keysAndValueMatch); + + id key = keysAndValueMatch; + id valueMatcher = va_arg(args, id); + requirePairedObject(valueMatcher); + NSMutableArray *keys = [NSMutableArray arrayWithObject:key]; + NSMutableArray *valueMatchers = [NSMutableArray arrayWithObject:HCWrapInMatcher(valueMatcher)]; + + key = va_arg(args, id); + while (key != nil) + { + [keys addObject:key]; + valueMatcher = va_arg(args, id); + requirePairedObject(valueMatcher); + [valueMatchers addObject:HCWrapInMatcher(valueMatcher)]; + key = va_arg(args, id); + } + + return [HCIsDictionaryContainingEntries isDictionaryContainingKeys:keys + valueMatchers:valueMatchers]; +} diff --git a/External/OCHamcrest.framework/Versions/A/Headers/HCIsDictionaryContainingKey.h b/Tests/Pods/OCHamcrest/Source/Library/Collection/HCIsDictionaryContainingKey.h similarity index 100% rename from External/OCHamcrest.framework/Versions/A/Headers/HCIsDictionaryContainingKey.h rename to Tests/Pods/OCHamcrest/Source/Library/Collection/HCIsDictionaryContainingKey.h diff --git a/Tests/Pods/OCHamcrest/Source/Library/Collection/HCIsDictionaryContainingKey.m b/Tests/Pods/OCHamcrest/Source/Library/Collection/HCIsDictionaryContainingKey.m new file mode 100644 index 000000000..982e06fb8 --- /dev/null +++ b/Tests/Pods/OCHamcrest/Source/Library/Collection/HCIsDictionaryContainingKey.m @@ -0,0 +1,56 @@ +// +// OCHamcrest - HCIsDictionaryContainingKey.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 "HCIsDictionaryContainingKey.h" + +#import "HCDescription.h" +#import "HCRequireNonNilObject.h" +#import "HCWrapInMatcher.h" + + +@implementation HCIsDictionaryContainingKey + ++ (id)isDictionaryContainingKey:(id)theKeyMatcher +{ + return [[self alloc] initWithKeyMatcher:theKeyMatcher]; +} + +- (id)initWithKeyMatcher:(id)theKeyMatcher +{ + self = [super init]; + if (self) + keyMatcher = theKeyMatcher; + return self; +} + +- (BOOL)matches:(id)dict +{ + if ([dict isKindOfClass:[NSDictionary class]]) + for (id oneKey in dict) + if ([keyMatcher matches:oneKey]) + return YES; + return NO; +} + +- (void)describeTo:(id)description +{ + [[description appendText:@"a dictionary containing key "] + appendDescriptionOf:keyMatcher]; +} + +@end + + +#pragma mark - + +id HC_hasKey(id keyMatch) +{ + HCRequireNonNilObject(keyMatch); + return [HCIsDictionaryContainingKey isDictionaryContainingKey:HCWrapInMatcher(keyMatch)]; +} diff --git a/External/OCHamcrest.framework/Versions/A/Headers/HCIsDictionaryContainingValue.h b/Tests/Pods/OCHamcrest/Source/Library/Collection/HCIsDictionaryContainingValue.h similarity index 100% rename from External/OCHamcrest.framework/Versions/A/Headers/HCIsDictionaryContainingValue.h rename to Tests/Pods/OCHamcrest/Source/Library/Collection/HCIsDictionaryContainingValue.h diff --git a/Tests/Pods/OCHamcrest/Source/Library/Collection/HCIsDictionaryContainingValue.m b/Tests/Pods/OCHamcrest/Source/Library/Collection/HCIsDictionaryContainingValue.m new file mode 100644 index 000000000..ec4bbdb4a --- /dev/null +++ b/Tests/Pods/OCHamcrest/Source/Library/Collection/HCIsDictionaryContainingValue.m @@ -0,0 +1,56 @@ +// +// OCHamcrest - HCIsDictionaryContainingValue.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 "HCIsDictionaryContainingValue.h" + +#import "HCDescription.h" +#import "HCRequireNonNilObject.h" +#import "HCWrapInMatcher.h" + + +@implementation HCIsDictionaryContainingValue + ++ (id)isDictionaryContainingValue:(id)theValueMatcher +{ + return [[self alloc] initWithValueMatcher:theValueMatcher]; +} + +- (id)initWithValueMatcher:(id)theValueMatcher +{ + self = [super init]; + if (self) + valueMatcher = theValueMatcher; + return self; +} + +- (BOOL)matches:(id)dict +{ + if ([dict respondsToSelector:@selector(allValues)]) + for (id oneValue in [dict allValues]) + if ([valueMatcher matches:oneValue]) + return YES; + return NO; +} + +- (void)describeTo:(id)description +{ + [[description appendText:@"a dictionary containing value "] + appendDescriptionOf:valueMatcher]; +} + +@end + + +#pragma mark - + +id HC_hasValue(id valueMatch) +{ + HCRequireNonNilObject(valueMatch); + return [HCIsDictionaryContainingValue isDictionaryContainingValue:HCWrapInMatcher(valueMatch)]; +} diff --git a/External/OCHamcrest.framework/Versions/A/Headers/HCIsEmptyCollection.h b/Tests/Pods/OCHamcrest/Source/Library/Collection/HCIsEmptyCollection.h similarity index 100% rename from External/OCHamcrest.framework/Versions/A/Headers/HCIsEmptyCollection.h rename to Tests/Pods/OCHamcrest/Source/Library/Collection/HCIsEmptyCollection.h diff --git a/Tests/Pods/OCHamcrest/Source/Library/Collection/HCIsEmptyCollection.m b/Tests/Pods/OCHamcrest/Source/Library/Collection/HCIsEmptyCollection.m new file mode 100644 index 000000000..9568d7979 --- /dev/null +++ b/Tests/Pods/OCHamcrest/Source/Library/Collection/HCIsEmptyCollection.m @@ -0,0 +1,47 @@ +// +// OCHamcrest - HCIsEmptyCollection.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 "HCIsEmptyCollection.h" + +#import "HCDescription.h" +#import "HCIsEqualToNumber.h" + + +@implementation HCIsEmptyCollection + ++ (id)isEmptyCollection +{ + return [[self alloc] init]; +} + +- (id)init +{ + self = [super initWithCount:HC_equalToUnsignedInteger(0)]; + return self; +} + +- (void)describeMismatchOf:(id)item to:(id)mismatchDescription +{ + [[mismatchDescription appendText:@"was "] appendDescriptionOf:item]; +} + +- (void)describeTo:(id)description +{ + [description appendText:@"empty collection"]; +} + +@end + + +#pragma mark - + +OBJC_EXPORT id HC_empty() +{ + return [HCIsEmptyCollection isEmptyCollection]; +} diff --git a/External/OCHamcrest.framework/Versions/A/Headers/HCIsIn.h b/Tests/Pods/OCHamcrest/Source/Library/Collection/HCIsIn.h similarity index 100% rename from External/OCHamcrest.framework/Versions/A/Headers/HCIsIn.h rename to Tests/Pods/OCHamcrest/Source/Library/Collection/HCIsIn.h diff --git a/Tests/Pods/OCHamcrest/Source/Library/Collection/HCIsIn.m b/Tests/Pods/OCHamcrest/Source/Library/Collection/HCIsIn.m new file mode 100644 index 000000000..a8b45235f --- /dev/null +++ b/Tests/Pods/OCHamcrest/Source/Library/Collection/HCIsIn.m @@ -0,0 +1,56 @@ +// +// OCHamcrest - HCIsIn.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 "HCIsIn.h" + +#import "HCDescription.h" + + +@implementation HCIsIn + ++ (id)isInCollection:(id)aCollection +{ + return [[self alloc] initWithCollection:aCollection]; +} + +- (id)initWithCollection:(id)aCollection +{ + if (![aCollection respondsToSelector:@selector(containsObject:)]) + { + @throw [NSException exceptionWithName:@"NotAContainer" + reason:@"Object must respond to -containsObject:" + userInfo:nil]; + } + + self = [super init]; + if (self) + collection = aCollection; + return self; +} + +- (BOOL)matches:(id)item +{ + return [collection containsObject:item]; +} + +- (void)describeTo:(id)description +{ + [description appendText:@"one of "]; + [description appendList:collection start:@"{" separator:@", " end:@"}"]; +} + +@end + + +#pragma mark - + +id HC_isIn(id aCollection) +{ + return [HCIsIn isInCollection:aCollection]; +} diff --git a/External/OCHamcrest.framework/Versions/A/Headers/HCDescribedAs.h b/Tests/Pods/OCHamcrest/Source/Library/Decorator/HCDescribedAs.h similarity index 100% rename from External/OCHamcrest.framework/Versions/A/Headers/HCDescribedAs.h rename to Tests/Pods/OCHamcrest/Source/Library/Decorator/HCDescribedAs.h diff --git a/Tests/Pods/OCHamcrest/Source/Library/Decorator/HCDescribedAs.m b/Tests/Pods/OCHamcrest/Source/Library/Decorator/HCDescribedAs.m new file mode 100644 index 000000000..bd8c76488 --- /dev/null +++ b/Tests/Pods/OCHamcrest/Source/Library/Decorator/HCDescribedAs.m @@ -0,0 +1,132 @@ +// +// OCHamcrest - HCDescribedAs.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 "HCDescribedAs.h" + +#import "HCDescription.h" +#import +#import + + +typedef struct +{ + int first; + __unsafe_unretained NSString *second; +} HCPairIntNSString; + + +/** + Splits string into decimal number (-1 if not found) and remaining string. + */ +static HCPairIntNSString separate(NSString *component) +{ + int index = 0; + bool gotIndex = false; + + NSUInteger length = [component length]; + NSUInteger charIndex; + for (charIndex = 0; charIndex < length; ++charIndex) + { + unichar character = [component characterAtIndex:charIndex]; + if (!isdigit(character)) + break; + index = index * 10 + character - '0'; + gotIndex = true; + } + + if (!gotIndex) + return (HCPairIntNSString){ -1, component }; + else + return (HCPairIntNSString){ index, [component substringFromIndex:charIndex] }; +} + + +#pragma mark - + +@implementation HCDescribedAs + ++ (id)describedAs:(NSString *)description + forMatcher:(id)aMatcher + overValues:(NSArray *)templateValues +{ + return [[self alloc] initWithDescription:description + forMatcher:aMatcher + overValues:templateValues]; +} + +- (id)initWithDescription:(NSString *)description + forMatcher:(id)aMatcher + overValues:(NSArray *)templateValues +{ + self = [super init]; + if (self) + { + descriptionTemplate = [description copy]; + matcher = aMatcher; + values = templateValues; + } + return self; +} + +- (BOOL)matches:(id)item +{ + return [matcher matches:item]; +} + +- (void)describeMismatchOf:(id)item to:(id)mismatchDescription +{ + [matcher describeMismatchOf:item to:mismatchDescription]; +} + +- (void)describeTo:(id)description +{ + NSArray *components = [descriptionTemplate componentsSeparatedByString:@"%"]; + bool firstTime = true; + for (NSString *oneComponent in components) + { + if (firstTime) + { + firstTime = false; + [description appendText:oneComponent]; + } + else + { + HCPairIntNSString parseIndex = separate(oneComponent); + if (parseIndex.first < 0) + [[description appendText:@"%"] appendText:oneComponent]; + else + { + [description appendDescriptionOf:values[(NSUInteger)parseIndex.first]]; + [description appendText:parseIndex.second]; + } + } + } +} + +@end + + +#pragma mark - + +id HC_describedAs(NSString *description, id matcher, ...) +{ + NSMutableArray *valueList = [NSMutableArray array]; + + va_list args; + va_start(args, matcher); + id value = va_arg(args, id); + while (value != nil) + { + [valueList addObject:value]; + value = va_arg(args, id); + } + va_end(args); + + return [HCDescribedAs describedAs:description forMatcher:matcher overValues:valueList]; +} diff --git a/External/OCHamcrest.framework/Versions/A/Headers/HCIs.h b/Tests/Pods/OCHamcrest/Source/Library/Decorator/HCIs.h similarity index 100% rename from External/OCHamcrest.framework/Versions/A/Headers/HCIs.h rename to Tests/Pods/OCHamcrest/Source/Library/Decorator/HCIs.h diff --git a/Tests/Pods/OCHamcrest/Source/Library/Decorator/HCIs.m b/Tests/Pods/OCHamcrest/Source/Library/Decorator/HCIs.m new file mode 100644 index 000000000..97c952b45 --- /dev/null +++ b/Tests/Pods/OCHamcrest/Source/Library/Decorator/HCIs.m @@ -0,0 +1,54 @@ +// +// OCHamcrest - HCIs.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 "HCIs.h" + +#import "HCDescription.h" +#import "HCWrapInMatcher.h" + + +@implementation HCIs + ++ (id)is:(id)aMatcher +{ + return [[self alloc] initWithMatcher:aMatcher]; +} + +- (id)initWithMatcher:(id)aMatcher +{ + self = [super init]; + if (self) + matcher = aMatcher; + return self; +} + +- (BOOL)matches:(id)item +{ + return [matcher matches:item]; +} + +- (void)describeMismatchOf:(id)item to:(id)mismatchDescription +{ + [matcher describeMismatchOf:item to:mismatchDescription]; +} + +- (void)describeTo:(id)description +{ + [description appendDescriptionOf:matcher]; +} + +@end + + +#pragma mark - + +id HC_is(id match) +{ + return [HCIs is:HCWrapInMatcher(match)]; +} diff --git a/External/OCHamcrest.framework/Versions/A/Headers/HCAllOf.h b/Tests/Pods/OCHamcrest/Source/Library/Logical/HCAllOf.h similarity index 100% rename from External/OCHamcrest.framework/Versions/A/Headers/HCAllOf.h rename to Tests/Pods/OCHamcrest/Source/Library/Logical/HCAllOf.h diff --git a/Tests/Pods/OCHamcrest/Source/Library/Logical/HCAllOf.m b/Tests/Pods/OCHamcrest/Source/Library/Logical/HCAllOf.m new file mode 100644 index 000000000..9cb700e9a --- /dev/null +++ b/Tests/Pods/OCHamcrest/Source/Library/Logical/HCAllOf.m @@ -0,0 +1,73 @@ +// +// OCHamcrest - HCAllOf.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 "HCAllOf.h" + +#import "HCCollectMatchers.h" +#import "HCDescription.h" + + +@implementation HCAllOf + ++ (id)allOf:(NSArray *)theMatchers +{ + return [[self alloc] initWithMatchers:theMatchers]; +} + +- (id)initWithMatchers:(NSArray *)theMatchers +{ + self = [super init]; + if (self) + matchers = theMatchers; + return self; +} + +- (BOOL)matches:(id)item +{ + return [self matches:item describingMismatchTo:nil]; +} + +- (BOOL)matches:(id)item describingMismatchTo:(id)mismatchDescription +{ + for (id oneMatcher in matchers) + { + if (![oneMatcher matches:item]) + { + [[mismatchDescription appendDescriptionOf:oneMatcher] appendText:@" "]; + [oneMatcher describeMismatchOf:item to:mismatchDescription]; + return NO; + } + } + return YES; +} + +- (void)describeMismatchOf:(id)item to:(id)mismatchDescription +{ + [self matches:item describingMismatchTo:mismatchDescription]; +} + +- (void)describeTo:(id)description +{ + [description appendList:matchers start:@"(" separator:@" and " end:@")"]; +} + +@end + + +#pragma mark - + +id HC_allOf(id match, ...) +{ + va_list args; + va_start(args, match); + NSArray *matcherList = HCCollectMatchers(match, args); + va_end(args); + + return [HCAllOf allOf:matcherList]; +} diff --git a/External/OCHamcrest.framework/Versions/A/Headers/HCAnyOf.h b/Tests/Pods/OCHamcrest/Source/Library/Logical/HCAnyOf.h similarity index 100% rename from External/OCHamcrest.framework/Versions/A/Headers/HCAnyOf.h rename to Tests/Pods/OCHamcrest/Source/Library/Logical/HCAnyOf.h diff --git a/Tests/Pods/OCHamcrest/Source/Library/Logical/HCAnyOf.m b/Tests/Pods/OCHamcrest/Source/Library/Logical/HCAnyOf.m new file mode 100644 index 000000000..1a5df55c0 --- /dev/null +++ b/Tests/Pods/OCHamcrest/Source/Library/Logical/HCAnyOf.m @@ -0,0 +1,57 @@ +// +// OCHamcrest - HCAnyOf.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 "HCAnyOf.h" + +#import "HCCollectMatchers.h" +#import "HCDescription.h" + + +@implementation HCAnyOf + ++ (id)anyOf:(NSArray *)theMatchers +{ + return [[self alloc] initWithMatchers:theMatchers]; +} + +- (id)initWithMatchers:(NSArray *)theMatchers +{ + self = [super init]; + if (self) + matchers = theMatchers; + return self; +} + +- (BOOL)matches:(id)item +{ + for (id oneMatcher in matchers) + if ([oneMatcher matches:item]) + return YES; + return NO; +} + +- (void)describeTo:(id)description +{ + [description appendList:matchers start:@"(" separator:@" or " end:@")"]; +} + +@end + + +#pragma mark - + +id HC_anyOf(id match, ...) +{ + va_list args; + va_start(args, match); + NSArray *matcherList = HCCollectMatchers(match, args); + va_end(args); + + return [HCAnyOf anyOf:matcherList]; +} diff --git a/External/OCHamcrest.framework/Versions/A/Headers/HCIsAnything.h b/Tests/Pods/OCHamcrest/Source/Library/Logical/HCIsAnything.h similarity index 100% rename from External/OCHamcrest.framework/Versions/A/Headers/HCIsAnything.h rename to Tests/Pods/OCHamcrest/Source/Library/Logical/HCIsAnything.h diff --git a/Tests/Pods/OCHamcrest/Source/Library/Logical/HCIsAnything.m b/Tests/Pods/OCHamcrest/Source/Library/Logical/HCIsAnything.m new file mode 100644 index 000000000..06162e6d4 --- /dev/null +++ b/Tests/Pods/OCHamcrest/Source/Library/Logical/HCIsAnything.m @@ -0,0 +1,64 @@ +// +// OCHamcrest - HCIsAnything.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 "HCIsAnything.h" + +#import "HCDescription.h" + + +@implementation HCIsAnything + ++ (id)isAnything +{ + return [[self alloc] init]; +} + ++ (id)isAnythingWithDescription:(NSString *)aDescription +{ + return [[self alloc] initWithDescription:aDescription]; +} + +- (id)init +{ + self = [self initWithDescription:@"ANYTHING"]; + return self; +} + +- (id)initWithDescription:(NSString *)aDescription +{ + self = [super init]; + if (self) + description = [aDescription copy]; + return self; +} + +- (BOOL)matches:(id)item +{ + return YES; +} + +- (void)describeTo:(id)aDescription +{ + [aDescription appendText:description]; +} + +@end + + +#pragma mark - + +id HC_anything() +{ + return [HCIsAnything isAnything]; +} + +id HC_anythingWithDescription(NSString *description) +{ + return [HCIsAnything isAnythingWithDescription:description]; +} diff --git a/External/OCHamcrest.framework/Versions/A/Headers/HCIsNot.h b/Tests/Pods/OCHamcrest/Source/Library/Logical/HCIsNot.h similarity index 100% rename from External/OCHamcrest.framework/Versions/A/Headers/HCIsNot.h rename to Tests/Pods/OCHamcrest/Source/Library/Logical/HCIsNot.h diff --git a/Tests/Pods/OCHamcrest/Source/Library/Logical/HCIsNot.m b/Tests/Pods/OCHamcrest/Source/Library/Logical/HCIsNot.m new file mode 100644 index 000000000..9372b79bf --- /dev/null +++ b/Tests/Pods/OCHamcrest/Source/Library/Logical/HCIsNot.m @@ -0,0 +1,49 @@ +// +// OCHamcrest - HCIsNot.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 "HCIsNot.h" + +#import "HCDescription.h" +#import "HCWrapInMatcher.h" + + +@implementation HCIsNot + ++ (id)isNot:(id)aMatcher +{ + return [[self alloc] initNot:aMatcher]; +} + +- (id)initNot:(id)aMatcher +{ + self = [super init]; + if (self) + matcher = aMatcher; + return self; +} + +- (BOOL)matches:(id)item +{ + return ![matcher matches:item]; +} + +- (void)describeTo:(id)description +{ + [[description appendText:@"not "] appendDescriptionOf:matcher]; +} + +@end + + +#pragma mark - + +id HC_isNot(id aMatcher) +{ + return [HCIsNot isNot:HCWrapInMatcher(aMatcher)]; +} diff --git a/External/OCHamcrest.framework/Versions/A/Headers/HCBoxNumber.h b/Tests/Pods/OCHamcrest/Source/Library/Number/HCBoxNumber.h similarity index 100% rename from External/OCHamcrest.framework/Versions/A/Headers/HCBoxNumber.h rename to Tests/Pods/OCHamcrest/Source/Library/Number/HCBoxNumber.h diff --git a/External/OCHamcrest.framework/Versions/A/Headers/HCIsCloseTo.h b/Tests/Pods/OCHamcrest/Source/Library/Number/HCIsCloseTo.h similarity index 100% rename from External/OCHamcrest.framework/Versions/A/Headers/HCIsCloseTo.h rename to Tests/Pods/OCHamcrest/Source/Library/Number/HCIsCloseTo.h diff --git a/Tests/Pods/OCHamcrest/Source/Library/Number/HCIsCloseTo.m b/Tests/Pods/OCHamcrest/Source/Library/Number/HCIsCloseTo.m new file mode 100644 index 000000000..ab6972fb6 --- /dev/null +++ b/Tests/Pods/OCHamcrest/Source/Library/Number/HCIsCloseTo.m @@ -0,0 +1,71 @@ +// +// OCHamcrest - HCIsCloseTo.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 "HCIsCloseTo.h" + +#import "HCDescription.h" +#import + + +@implementation HCIsCloseTo + ++ (id)isCloseTo:(double)aValue within:(double)aDelta +{ + return [[self alloc] initWithValue:aValue delta:aDelta]; +} + +- (id)initWithValue:(double)aValue delta:(double)aDelta +{ + self = [super init]; + if (self) + { + value = aValue; + delta = aDelta; + } + return self; +} + +- (BOOL)matches:(id)item +{ + if (![item isKindOfClass:[NSNumber class]]) + return NO; + + return fabs([item doubleValue] - value) <= delta; +} + +- (void)describeMismatchOf:(id)item to:(id)mismatchDescription +{ + if (![item isKindOfClass:[NSNumber class]]) + [super describeMismatchOf:item to:mismatchDescription]; + else + { + double actualDelta = fabs([item doubleValue] - value); + [[[mismatchDescription appendDescriptionOf:item] + appendText:@" differed by "] + appendDescriptionOf:@(actualDelta)]; + } +} + +- (void)describeTo:(id)description +{ + [[[[description appendText:@"a numeric value within "] + appendDescriptionOf:@(delta)] + appendText:@" of "] + appendDescriptionOf:@(value)]; +} + +@end + + +#pragma mark - + +id HC_closeTo(double value, double delta) +{ + return [HCIsCloseTo isCloseTo:value within:delta]; +} diff --git a/External/OCHamcrest.framework/Versions/A/Headers/HCIsEqualToNumber.h b/Tests/Pods/OCHamcrest/Source/Library/Number/HCIsEqualToNumber.h similarity index 100% rename from External/OCHamcrest.framework/Versions/A/Headers/HCIsEqualToNumber.h rename to Tests/Pods/OCHamcrest/Source/Library/Number/HCIsEqualToNumber.h diff --git a/Tests/Pods/OCHamcrest/Source/Library/Number/HCIsEqualToNumber.m b/Tests/Pods/OCHamcrest/Source/Library/Number/HCIsEqualToNumber.m new file mode 100644 index 000000000..6ad54894c --- /dev/null +++ b/Tests/Pods/OCHamcrest/Source/Library/Number/HCIsEqualToNumber.m @@ -0,0 +1,35 @@ +// +// OCHamcrest - HCIsEqualToNumber.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 "HCIsEqualToNumber.h" + +#import "HCIsEqual.h" + + +#define DEFINE_EQUAL_TO_NUMBER(name, type) \ + OBJC_EXPORT id HC_equalTo ## name(type value) \ + { \ + return [HCIsEqual isEqualTo:[NSNumber numberWith ## name :value]]; \ + } + +DEFINE_EQUAL_TO_NUMBER(Bool, BOOL) +DEFINE_EQUAL_TO_NUMBER(Char, char) +DEFINE_EQUAL_TO_NUMBER(Double, double) +DEFINE_EQUAL_TO_NUMBER(Float, float) +DEFINE_EQUAL_TO_NUMBER(Int, int) +DEFINE_EQUAL_TO_NUMBER(Long, long) +DEFINE_EQUAL_TO_NUMBER(LongLong, long long) +DEFINE_EQUAL_TO_NUMBER(Short, short) +DEFINE_EQUAL_TO_NUMBER(UnsignedChar, unsigned char) +DEFINE_EQUAL_TO_NUMBER(UnsignedInt, unsigned int) +DEFINE_EQUAL_TO_NUMBER(UnsignedLong, unsigned long) +DEFINE_EQUAL_TO_NUMBER(UnsignedLongLong, unsigned long long) +DEFINE_EQUAL_TO_NUMBER(UnsignedShort, unsigned short) +DEFINE_EQUAL_TO_NUMBER(Integer, NSInteger) +DEFINE_EQUAL_TO_NUMBER(UnsignedInteger, NSUInteger) diff --git a/External/OCHamcrest.framework/Versions/A/Headers/HCNumberAssert.h b/Tests/Pods/OCHamcrest/Source/Library/Number/HCNumberAssert.h similarity index 100% rename from External/OCHamcrest.framework/Versions/A/Headers/HCNumberAssert.h rename to Tests/Pods/OCHamcrest/Source/Library/Number/HCNumberAssert.h diff --git a/Tests/Pods/OCHamcrest/Source/Library/Number/HCNumberAssert.m b/Tests/Pods/OCHamcrest/Source/Library/Number/HCNumberAssert.m new file mode 100644 index 000000000..d83bca0ac --- /dev/null +++ b/Tests/Pods/OCHamcrest/Source/Library/Number/HCNumberAssert.m @@ -0,0 +1,36 @@ +// +// OCHamcrest - HCNumberAssert.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 "HCNumberAssert.h" + +#import "HCAssertThat.h" + + +#define DEFINE_NUMBER_ASSERT(name, type) \ + OBJC_EXPORT void HC_assertThat ## name ## WithLocation(id testCase, type actual, id matcher, \ + const char* fileName, int lineNumber) \ + { \ + HC_assertThatWithLocation(testCase, [NSNumber numberWith ## name :actual], matcher, fileName, lineNumber); \ + } + +DEFINE_NUMBER_ASSERT(Bool, BOOL) +DEFINE_NUMBER_ASSERT(Char, char) +DEFINE_NUMBER_ASSERT(Double, double) +DEFINE_NUMBER_ASSERT(Float, float) +DEFINE_NUMBER_ASSERT(Int, int) +DEFINE_NUMBER_ASSERT(Long, long) +DEFINE_NUMBER_ASSERT(LongLong, long long) +DEFINE_NUMBER_ASSERT(Short, short) +DEFINE_NUMBER_ASSERT(UnsignedChar, unsigned char) +DEFINE_NUMBER_ASSERT(UnsignedInt, unsigned int) +DEFINE_NUMBER_ASSERT(UnsignedLong, unsigned long) +DEFINE_NUMBER_ASSERT(UnsignedLongLong, unsigned long long) +DEFINE_NUMBER_ASSERT(UnsignedShort, unsigned short) +DEFINE_NUMBER_ASSERT(Integer, NSInteger) +DEFINE_NUMBER_ASSERT(UnsignedInteger, NSUInteger) diff --git a/External/OCHamcrest.framework/Versions/A/Headers/HCOrderingComparison.h b/Tests/Pods/OCHamcrest/Source/Library/Number/HCOrderingComparison.h similarity index 100% rename from External/OCHamcrest.framework/Versions/A/Headers/HCOrderingComparison.h rename to Tests/Pods/OCHamcrest/Source/Library/Number/HCOrderingComparison.h diff --git a/Tests/Pods/OCHamcrest/Source/Library/Number/HCOrderingComparison.m b/Tests/Pods/OCHamcrest/Source/Library/Number/HCOrderingComparison.m new file mode 100644 index 000000000..7c8662eac --- /dev/null +++ b/Tests/Pods/OCHamcrest/Source/Library/Number/HCOrderingComparison.m @@ -0,0 +1,103 @@ +// +// OCHamcrest - HCOrderingComparison.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 "HCOrderingComparison.h" + +#import "HCDescription.h" + + +@implementation HCOrderingComparison + ++ (id)compare:(id)expectedValue + minCompare:(NSComparisonResult)min + maxCompare:(NSComparisonResult)max + comparisonDescription:(NSString *)description +{ + return [[self alloc] initComparing:expectedValue + minCompare:min + maxCompare:max + comparisonDescription:description]; +} + +- (id)initComparing:(id)expectedValue + minCompare:(NSComparisonResult)min + maxCompare:(NSComparisonResult)max + comparisonDescription:(NSString *)description +{ + if (![expectedValue respondsToSelector:@selector(compare:)]) + { + @throw [NSException exceptionWithName: @"UncomparableObject" + reason: @"Object must respond to compare:" + userInfo: nil]; + } + + self = [super init]; + if (self) + { + expected = expectedValue; + minCompare = min; + maxCompare = max; + comparisonDescription = [description copy]; + } + return self; +} + +- (BOOL)matches:(id)item +{ + if (item == nil) + return NO; + + NSComparisonResult compare = [expected compare:item]; + return minCompare <= compare && compare <= maxCompare; +} + +- (void)describeTo:(id)description +{ + [[[[description appendText:@"a value "] + appendText:comparisonDescription] + appendText:@" "] + appendDescriptionOf:expected]; +} + +@end + + +#pragma mark - + +id HC_greaterThan(id aValue) +{ + return [HCOrderingComparison compare:aValue + minCompare:NSOrderedAscending + maxCompare:NSOrderedAscending + comparisonDescription:@"greater than"]; +} + +id HC_greaterThanOrEqualTo(id aValue) +{ + return [HCOrderingComparison compare:aValue + minCompare:NSOrderedAscending + maxCompare:NSOrderedSame + comparisonDescription:@"greater than or equal to"]; +} + +id HC_lessThan(id aValue) +{ + return [HCOrderingComparison compare:aValue + minCompare:NSOrderedDescending + maxCompare:NSOrderedDescending + comparisonDescription:@"less than"]; +} + +id HC_lessThanOrEqualTo(id aValue) +{ + return [HCOrderingComparison compare:aValue + minCompare:NSOrderedSame + maxCompare:NSOrderedDescending + comparisonDescription:@"less than or equal to"]; +} diff --git a/External/OCHamcrest.framework/Versions/A/Headers/HCConformsToProtocol.h b/Tests/Pods/OCHamcrest/Source/Library/Object/HCConformsToProtocol.h similarity index 100% rename from External/OCHamcrest.framework/Versions/A/Headers/HCConformsToProtocol.h rename to Tests/Pods/OCHamcrest/Source/Library/Object/HCConformsToProtocol.h diff --git a/Tests/Pods/OCHamcrest/Source/Library/Object/HCConformsToProtocol.m b/Tests/Pods/OCHamcrest/Source/Library/Object/HCConformsToProtocol.m new file mode 100644 index 000000000..189513533 --- /dev/null +++ b/Tests/Pods/OCHamcrest/Source/Library/Object/HCConformsToProtocol.m @@ -0,0 +1,55 @@ +// +// OCHamcrest - HCConformsToProtocol.m +// Copyright 2012 hamcrest.org. See LICENSE.txt +// +// Created by: Todd Farrell +// + +#import "HCConformsToProtocol.h" + +#import "HCDescription.h" +#import "HCRequireNonNilObject.h" + + +@implementation HCConformsToProtocol + ++ (id)conformsToProtocol:(Protocol *)protocol +{ + return [[self alloc] initWithProtocol:protocol]; +} + +- (id)initWithProtocol:(Protocol *)aProtocol +{ + HCRequireNonNilObject(aProtocol); + + self = [super init]; + if (self) + theProtocol = aProtocol; + return self; +} + +- (BOOL)matches:(id)item +{ + return [item conformsToProtocol:theProtocol]; +} + +- (void)describeTo:(id)description +{ + [[description appendText:@"an object that conforms to "] + appendText:NSStringFromProtocol(theProtocol)]; +} + +@end + + +#pragma mark - + +id HC_conformsTo(Protocol *aProtocol) +{ + return [HCConformsToProtocol conformsToProtocol:aProtocol]; +} + +id HC_conformsToProtocol(Protocol *aProtocol) +{ + return HC_conformsTo(aProtocol); +} diff --git a/External/OCHamcrest.framework/Versions/A/Headers/HCHasDescription.h b/Tests/Pods/OCHamcrest/Source/Library/Object/HCHasDescription.h similarity index 100% rename from External/OCHamcrest.framework/Versions/A/Headers/HCHasDescription.h rename to Tests/Pods/OCHamcrest/Source/Library/Object/HCHasDescription.h diff --git a/Tests/Pods/OCHamcrest/Source/Library/Object/HCHasDescription.m b/Tests/Pods/OCHamcrest/Source/Library/Object/HCHasDescription.m new file mode 100644 index 000000000..e913028a1 --- /dev/null +++ b/Tests/Pods/OCHamcrest/Source/Library/Object/HCHasDescription.m @@ -0,0 +1,40 @@ +// +// OCHamcrest - HCHasDescription.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 "HCHasDescription.h" + +#import "HCDescription.h" +#import "HCWrapInMatcher.h" + + +@implementation HCHasDescription + ++ (id)hasDescription:(id)descriptionMatcher +{ + return [[self alloc] initWithDescription:descriptionMatcher]; +} + +- (id)initWithDescription:(id)descriptionMatcher +{ + NSInvocation *anInvocation = [HCInvocationMatcher invocationForSelector:@selector(description) + onClass:[NSObject class]]; + self = [super initWithInvocation:anInvocation matching:descriptionMatcher]; + shortMismatchDescription = YES; + return self; +} + +@end + + +#pragma mark - + +id HC_hasDescription(id match) +{ + return [HCHasDescription hasDescription:HCWrapInMatcher(match)]; +} diff --git a/External/OCHamcrest.framework/Versions/A/Headers/HCHasProperty.h b/Tests/Pods/OCHamcrest/Source/Library/Object/HCHasProperty.h similarity index 100% rename from External/OCHamcrest.framework/Versions/A/Headers/HCHasProperty.h rename to Tests/Pods/OCHamcrest/Source/Library/Object/HCHasProperty.h diff --git a/Tests/Pods/OCHamcrest/Source/Library/Object/HCHasProperty.m b/Tests/Pods/OCHamcrest/Source/Library/Object/HCHasProperty.m new file mode 100644 index 000000000..681f62b48 --- /dev/null +++ b/Tests/Pods/OCHamcrest/Source/Library/Object/HCHasProperty.m @@ -0,0 +1,153 @@ +// +// OCHamcrest - HCHasProperty.m +// Copyright 2012 hamcrest.org. See LICENSE.txt +// +// Created by: Justin Shacklette +// + +#import "HCHasProperty.h" + +#import "HCDescription.h" +#import "HCRequireNonNilObject.h" +#import "HCWrapInMatcher.h" + + +@implementation HCHasProperty + ++ (id)hasProperty:(NSString *)property value:(id)aValueMatcher +{ + return [[self alloc] initWithProperty:property value:aValueMatcher]; +} + +- (id)initWithProperty:(NSString *)property value:(id)aValueMatcher +{ + HCRequireNonNilObject(property); + + self = [super init]; + if (self != nil) + { + propertyName = [property copy]; + valueMatcher = aValueMatcher; + } + return self; +} + +- (BOOL)matches:(id)item +{ + SEL propertyGetter = NSSelectorFromString(propertyName); + if (![item respondsToSelector:propertyGetter]) + return NO; + + id propertyValue = [self objectFromInvokingSelector:propertyGetter onObject:item]; + return [valueMatcher matches:propertyValue]; +} + +- (id)objectFromInvokingSelector:(SEL)selector onObject:(id)object +{ + NSMethodSignature *getterSignature = [object methodSignatureForSelector:selector]; + NSInvocation *getterInvocation = [NSInvocation invocationWithMethodSignature:getterSignature]; + [getterInvocation setTarget:object]; + [getterInvocation setSelector:selector]; + [getterInvocation invoke]; + + char charValue; + int intValue; + short shortValue; + long longValue; + long long longLongValue; + unsigned char unsignedCharValue; + unsigned int unsignedIntValue; + unsigned short unsignedShortValue; + unsigned long unsignedLongValue; + unsigned long long unsignedLongLongValue; + float floatValue; + double doubleValue; + + __unsafe_unretained id result = nil; + const char *argType = [getterSignature methodReturnType]; + switch (argType[0]) + { + case 'c': + [getterInvocation getReturnValue:&charValue]; + result = @(charValue); + break; + + case 'i': + [getterInvocation getReturnValue:&intValue]; + result = @(intValue); + break; + + case 's': + [getterInvocation getReturnValue:&shortValue]; + result = @(shortValue); + break; + + case 'l': + [getterInvocation getReturnValue:&longValue]; + result = @(longValue); + break; + + case 'q': + [getterInvocation getReturnValue:&longLongValue]; + result = @(longLongValue); + break; + + case 'C': + [getterInvocation getReturnValue:&unsignedCharValue]; + result = @(unsignedCharValue); + break; + + case 'I': + [getterInvocation getReturnValue:&unsignedIntValue]; + result = @(unsignedIntValue); + break; + + case 'S': + [getterInvocation getReturnValue:&unsignedShortValue]; + result = @(unsignedShortValue); + break; + + case 'L': + [getterInvocation getReturnValue:&unsignedLongValue]; + result = @(unsignedLongValue); + break; + + case 'Q': + [getterInvocation getReturnValue:&unsignedLongLongValue]; + result = @(unsignedLongLongValue); + break; + + case 'f': + [getterInvocation getReturnValue:&floatValue]; + result = @(floatValue); + break; + + case 'd': + [getterInvocation getReturnValue:&doubleValue]; + result = @(doubleValue); + break; + + case '@': + [getterInvocation getReturnValue:&result]; + break; + } + + return result; +} + +- (void)describeTo:(id)description +{ + [[[[description appendText:@"an object with "] + appendText:propertyName] + appendText:@" "] + appendDescriptionOf:valueMatcher]; +} +@end + + +#pragma mark - + +id HC_hasProperty(NSString *name, id valueMatch) +{ + return [HCHasProperty hasProperty:name value:HCWrapInMatcher(valueMatch)]; +} diff --git a/External/OCHamcrest.framework/Versions/A/Headers/HCIsEqual.h b/Tests/Pods/OCHamcrest/Source/Library/Object/HCIsEqual.h similarity index 100% rename from External/OCHamcrest.framework/Versions/A/Headers/HCIsEqual.h rename to Tests/Pods/OCHamcrest/Source/Library/Object/HCIsEqual.h diff --git a/Tests/Pods/OCHamcrest/Source/Library/Object/HCIsEqual.m b/Tests/Pods/OCHamcrest/Source/Library/Object/HCIsEqual.m new file mode 100644 index 000000000..bfa36f112 --- /dev/null +++ b/Tests/Pods/OCHamcrest/Source/Library/Object/HCIsEqual.m @@ -0,0 +1,58 @@ +// +// OCHamcrest - HCIsEqual.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 "HCIsEqual.h" + +#import "HCDescription.h" + + +@implementation HCIsEqual + ++ (id)isEqualTo:(id)anObject +{ + return [[self alloc] initEqualTo:anObject]; +} + +- (id)initEqualTo:(id)anObject +{ + self = [super init]; + if (self) + object = anObject; + return self; +} + +- (BOOL)matches:(id)item +{ + if (item == nil) + return object == nil; + else + return [item isEqual:object]; +} + +- (void)describeTo:(id)description +{ + if ([object conformsToProtocol:@protocol(HCMatcher)]) + { + [[[description appendText:@"<"] + appendDescriptionOf:object] + appendText:@">"]; + } + else + [description appendDescriptionOf:object]; +} + +@end + + +#pragma mark - + +id HC_equalTo(id object) +{ + return [HCIsEqual isEqualTo:object]; +} diff --git a/External/OCHamcrest.framework/Versions/A/Headers/HCIsInstanceOf.h b/Tests/Pods/OCHamcrest/Source/Library/Object/HCIsInstanceOf.h similarity index 100% rename from External/OCHamcrest.framework/Versions/A/Headers/HCIsInstanceOf.h rename to Tests/Pods/OCHamcrest/Source/Library/Object/HCIsInstanceOf.h diff --git a/Tests/Pods/OCHamcrest/Source/Library/Object/HCIsInstanceOf.m b/Tests/Pods/OCHamcrest/Source/Library/Object/HCIsInstanceOf.m new file mode 100644 index 000000000..df9a55c15 --- /dev/null +++ b/Tests/Pods/OCHamcrest/Source/Library/Object/HCIsInstanceOf.m @@ -0,0 +1,52 @@ +// +// OCHamcrest - HCIsInstanceOf.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 "HCIsInstanceOf.h" + +#import "HCDescription.h" +#import "HCRequireNonNilObject.h" + + +@implementation HCIsInstanceOf + ++ (id)isInstanceOf:(Class)type +{ + return [[self alloc] initWithType:type]; +} + +- (id)initWithType:(Class)aClass +{ + HCRequireNonNilObject(aClass); + + self = [super init]; + if (self) + theClass = aClass; + return self; +} + +- (BOOL)matches:(id)item +{ + return [item isKindOfClass:theClass]; +} + +- (void)describeTo:(id)description +{ + [[description appendText:@"an instance of "] + appendText:NSStringFromClass(theClass)]; +} + +@end + + +#pragma mark - + +id HC_instanceOf(Class aClass) +{ + return [HCIsInstanceOf isInstanceOf:aClass]; +} diff --git a/External/OCHamcrest.framework/Versions/A/Headers/HCIsNil.h b/Tests/Pods/OCHamcrest/Source/Library/Object/HCIsNil.h similarity index 100% rename from External/OCHamcrest.framework/Versions/A/Headers/HCIsNil.h rename to Tests/Pods/OCHamcrest/Source/Library/Object/HCIsNil.h diff --git a/Tests/Pods/OCHamcrest/Source/Library/Object/HCIsNil.m b/Tests/Pods/OCHamcrest/Source/Library/Object/HCIsNil.m new file mode 100644 index 000000000..f1842ac10 --- /dev/null +++ b/Tests/Pods/OCHamcrest/Source/Library/Object/HCIsNil.m @@ -0,0 +1,46 @@ +// +// OCHamcrest - HCIsNil.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 "HCIsNil.h" + +#import "HCDescription.h" +#import "HCIsNot.h" + + +@implementation HCIsNil + ++ (id)isNil +{ + return [[self alloc] init]; +} + +- (BOOL)matches:(id)item +{ + return item == nil; +} + +- (void)describeTo:(id)description +{ + [description appendText:@"nil"]; +} + +@end + + +#pragma mark - + +id HC_nilValue() +{ + return [HCIsNil isNil]; +} + +id HC_notNilValue() +{ + return HC_isNot([HCIsNil isNil]); +} diff --git a/External/OCHamcrest.framework/Versions/A/Headers/HCIsSame.h b/Tests/Pods/OCHamcrest/Source/Library/Object/HCIsSame.h similarity index 100% rename from External/OCHamcrest.framework/Versions/A/Headers/HCIsSame.h rename to Tests/Pods/OCHamcrest/Source/Library/Object/HCIsSame.h diff --git a/Tests/Pods/OCHamcrest/Source/Library/Object/HCIsSame.m b/Tests/Pods/OCHamcrest/Source/Library/Object/HCIsSame.m new file mode 100644 index 000000000..4dc969da5 --- /dev/null +++ b/Tests/Pods/OCHamcrest/Source/Library/Object/HCIsSame.m @@ -0,0 +1,57 @@ +// +// OCHamcrest - HCIsSame.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 "HCIsSame.h" + +#import "HCDescription.h" + + +@implementation HCIsSame + ++ (id)isSameAs:(id)anObject +{ + return [[self alloc] initSameAs:anObject]; +} + +- (id)initSameAs:(id)anObject +{ + self = [super init]; + if (self) + object = anObject; + return self; +} + +- (BOOL)matches:(id)item +{ + return item == object; +} + +- (void)describeMismatchOf:(id)item to:(id)mismatchDescription +{ + [mismatchDescription appendText:@"was "]; + if (item) + [mismatchDescription appendText:[NSString stringWithFormat:@"%p ", item]]; + [mismatchDescription appendDescriptionOf:item]; +} + +- (void)describeTo:(id)description +{ + [[description appendText:[NSString stringWithFormat:@"same instance as %p ", object]] + appendDescriptionOf:object]; +} + +@end + + +#pragma mark - + +id HC_sameInstance(id object) +{ + return [HCIsSame isSameAs:object]; +} diff --git a/External/OCHamcrest.framework/Versions/A/Headers/HCIsEqualIgnoringCase.h b/Tests/Pods/OCHamcrest/Source/Library/Text/HCIsEqualIgnoringCase.h similarity index 100% rename from External/OCHamcrest.framework/Versions/A/Headers/HCIsEqualIgnoringCase.h rename to Tests/Pods/OCHamcrest/Source/Library/Text/HCIsEqualIgnoringCase.h diff --git a/Tests/Pods/OCHamcrest/Source/Library/Text/HCIsEqualIgnoringCase.m b/Tests/Pods/OCHamcrest/Source/Library/Text/HCIsEqualIgnoringCase.m new file mode 100644 index 000000000..75b5b90c4 --- /dev/null +++ b/Tests/Pods/OCHamcrest/Source/Library/Text/HCIsEqualIgnoringCase.m @@ -0,0 +1,55 @@ +// +// OCHamcrest - HCIsEqualIgnoringCase.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 "HCIsEqualIgnoringCase.h" + +#import "HCDescription.h" +#import "HCRequireNonNilObject.h" + + +@implementation HCIsEqualIgnoringCase + ++ (id)isEqualIgnoringCase:(NSString *)aString +{ + return [[self alloc] initWithString:aString]; +} + +- (id)initWithString:(NSString *)aString +{ + HCRequireNonNilObject(aString); + + self = [super init]; + if (self) + string = [aString copy]; + return self; +} + +- (BOOL)matches:(id)item +{ + if (![item isKindOfClass:[NSString class]]) + return NO; + + return [string caseInsensitiveCompare:item] == NSOrderedSame; +} + +- (void)describeTo:(id)description +{ + [[description appendDescriptionOf:string] + appendText:@" ignoring case"]; +} + +@end + + +#pragma mark - + +id HC_equalToIgnoringCase(NSString *aString) +{ + return [HCIsEqualIgnoringCase isEqualIgnoringCase:aString]; +} diff --git a/External/OCHamcrest.framework/Versions/A/Headers/HCIsEqualIgnoringWhiteSpace.h b/Tests/Pods/OCHamcrest/Source/Library/Text/HCIsEqualIgnoringWhiteSpace.h similarity index 100% rename from External/OCHamcrest.framework/Versions/A/Headers/HCIsEqualIgnoringWhiteSpace.h rename to Tests/Pods/OCHamcrest/Source/Library/Text/HCIsEqualIgnoringWhiteSpace.h diff --git a/Tests/Pods/OCHamcrest/Source/Library/Text/HCIsEqualIgnoringWhiteSpace.m b/Tests/Pods/OCHamcrest/Source/Library/Text/HCIsEqualIgnoringWhiteSpace.m new file mode 100644 index 000000000..22d3d34f2 --- /dev/null +++ b/Tests/Pods/OCHamcrest/Source/Library/Text/HCIsEqualIgnoringWhiteSpace.m @@ -0,0 +1,98 @@ +// +// OCHamcrest - HCIsEqualIgnoringWhiteSpace.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 "HCIsEqualIgnoringWhiteSpace.h" + +#import "HCDescription.h" +#import "HCRequireNonNilObject.h" +#import + + +static void removeTrailingSpace(NSMutableString *string) +{ + NSUInteger length = [string length]; + if (length > 0) + { + NSUInteger charIndex = length - 1; + if (isspace([string characterAtIndex:charIndex])) + [string deleteCharactersInRange:NSMakeRange(charIndex, 1)]; + } +} + +static NSMutableString *stripSpace(NSString *string) +{ + NSUInteger length = [string length]; + NSMutableString *result = [NSMutableString stringWithCapacity:length]; + bool lastWasSpace = true; + for (NSUInteger charIndex = 0; charIndex < length; ++charIndex) + { + unichar character = [string characterAtIndex:charIndex]; + if (isspace(character)) + { + if (!lastWasSpace) + [result appendString:@" "]; + lastWasSpace = true; + } + else + { + [result appendFormat:@"%C", character]; + lastWasSpace = false; + } + } + + removeTrailingSpace(result); + return result; +} + + +#pragma mark - + +@implementation HCIsEqualIgnoringWhiteSpace + ++ (id)isEqualIgnoringWhiteSpace:(NSString *)aString +{ + return [[self alloc] initWithString:aString]; +} + +- (id)initWithString:(NSString *)aString +{ + HCRequireNonNilObject(aString); + + self = [super init]; + if (self) + { + originalString = [aString copy]; + strippedString = stripSpace(aString); + } + return self; +} + +- (BOOL)matches:(id)item +{ + if (![item isKindOfClass:[NSString class]]) + return NO; + + return [strippedString isEqualToString:stripSpace(item)]; +} + +- (void)describeTo:(id)description +{ + [[description appendDescriptionOf:originalString] + appendText:@" ignoring whitespace"]; +} + +@end + + +#pragma mark - + +id HC_equalToIgnoringWhiteSpace(NSString *aString) +{ + return [HCIsEqualIgnoringWhiteSpace isEqualIgnoringWhiteSpace:aString]; +} diff --git a/External/OCHamcrest.framework/Versions/A/Headers/HCStringContains.h b/Tests/Pods/OCHamcrest/Source/Library/Text/HCStringContains.h similarity index 100% rename from External/OCHamcrest.framework/Versions/A/Headers/HCStringContains.h rename to Tests/Pods/OCHamcrest/Source/Library/Text/HCStringContains.h diff --git a/Tests/Pods/OCHamcrest/Source/Library/Text/HCStringContains.m b/Tests/Pods/OCHamcrest/Source/Library/Text/HCStringContains.m new file mode 100644 index 000000000..c49056ee4 --- /dev/null +++ b/Tests/Pods/OCHamcrest/Source/Library/Text/HCStringContains.m @@ -0,0 +1,43 @@ +// +// OCHamcrest - HCStringContains.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 "HCStringContains.h" + +#import "HCDescription.h" + + +@implementation HCStringContains + ++ (id)stringContains:(NSString *)aString +{ + return [[self alloc] initWithSubstring:aString]; +} + +- (BOOL)matches:(id)item +{ + if (![item respondsToSelector:@selector(rangeOfString:)]) + return NO; + + return [item rangeOfString:substring].location != NSNotFound; +} + +- (NSString *)relationship +{ + return @"containing"; +} + +@end + + +#pragma mark - + +id HC_containsString(NSString *aString) +{ + return [HCStringContains stringContains:aString]; +} diff --git a/External/OCHamcrest.framework/Versions/A/Headers/HCStringContainsInOrder.h b/Tests/Pods/OCHamcrest/Source/Library/Text/HCStringContainsInOrder.h similarity index 100% rename from External/OCHamcrest.framework/Versions/A/Headers/HCStringContainsInOrder.h rename to Tests/Pods/OCHamcrest/Source/Library/Text/HCStringContainsInOrder.h diff --git a/Tests/Pods/OCHamcrest/Source/Library/Text/HCStringContainsInOrder.m b/Tests/Pods/OCHamcrest/Source/Library/Text/HCStringContainsInOrder.m new file mode 100644 index 000000000..1c322e3ba --- /dev/null +++ b/Tests/Pods/OCHamcrest/Source/Library/Text/HCStringContainsInOrder.m @@ -0,0 +1,87 @@ +// +// OCHamcrest - HCStringContainsInOrder.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 "HCStringContainsInOrder.h" + +#import "HCDescription.h" +#import "HCRequireNonNilObject.h" +#import + + +@implementation HCStringContainsInOrder + ++ (id)containsInOrder:(NSArray *)substringList +{ + return [[self alloc] initWithSubstrings:substringList]; +} + +- (id)initWithSubstrings:(NSArray *)substringList +{ + self = [super init]; + if (self) + { + for (id substring in substringList) + { + if (![substring isKindOfClass:[NSString class]]) + { + @throw [NSException exceptionWithName:@"NotAString" + reason:@"Arguments must be strings" + userInfo:nil]; + } + } + + substrings = substringList; + } + return self; +} + +- (BOOL)matches:(id)item +{ + if (![item isKindOfClass:[NSString class]]) + return NO; + + NSRange searchRange = NSMakeRange(0, [item length]); + for (NSString *substring in substrings) + { + NSRange substringRange = [item rangeOfString:substring options:0 range:searchRange]; + if (substringRange.location == NSNotFound) + return NO; + searchRange.location = substringRange.location + substringRange.length; + searchRange.length = [item length] - searchRange.location; + } + return YES; +} + +- (void)describeTo:(id)description +{ + [description appendList:substrings start:@"a string containing " separator:@", " end:@" in order"]; +} + +@end + + +#pragma mark - + +id HC_stringContainsInOrder(NSString *substring, ...) +{ + va_list args; + va_start(args, substring); + NSMutableArray *substringList = [NSMutableArray arrayWithObject:substring]; + + substring = va_arg(args, NSString *); + while (substring != nil) + { + [substringList addObject:substring]; + substring = va_arg(args, NSString *); + } + + va_end(args); + + return [HCStringContainsInOrder containsInOrder:substringList]; +} diff --git a/External/OCHamcrest.framework/Versions/A/Headers/HCStringEndsWith.h b/Tests/Pods/OCHamcrest/Source/Library/Text/HCStringEndsWith.h similarity index 100% rename from External/OCHamcrest.framework/Versions/A/Headers/HCStringEndsWith.h rename to Tests/Pods/OCHamcrest/Source/Library/Text/HCStringEndsWith.h diff --git a/Tests/Pods/OCHamcrest/Source/Library/Text/HCStringEndsWith.m b/Tests/Pods/OCHamcrest/Source/Library/Text/HCStringEndsWith.m new file mode 100644 index 000000000..cd8cfddb7 --- /dev/null +++ b/Tests/Pods/OCHamcrest/Source/Library/Text/HCStringEndsWith.m @@ -0,0 +1,43 @@ +// +// OCHamcrest - HCStringEndsWith.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 "HCStringEndsWith.h" + +#import "HCDescription.h" + + +@implementation HCStringEndsWith + ++ (id)stringEndsWith:(NSString *)aString +{ + return [[self alloc] initWithSubstring:aString]; +} + +- (BOOL)matches:(id)item +{ + if (![item respondsToSelector:@selector(hasSuffix:)]) + return NO; + + return [item hasSuffix:substring]; +} + +- (NSString *)relationship +{ + return @"ending with"; +} + +@end + + +#pragma mark - + +id HC_endsWith(NSString *aString) +{ + return [HCStringEndsWith stringEndsWith:aString]; +} diff --git a/External/OCHamcrest.framework/Versions/A/Headers/HCStringStartsWith.h b/Tests/Pods/OCHamcrest/Source/Library/Text/HCStringStartsWith.h similarity index 100% rename from External/OCHamcrest.framework/Versions/A/Headers/HCStringStartsWith.h rename to Tests/Pods/OCHamcrest/Source/Library/Text/HCStringStartsWith.h diff --git a/Tests/Pods/OCHamcrest/Source/Library/Text/HCStringStartsWith.m b/Tests/Pods/OCHamcrest/Source/Library/Text/HCStringStartsWith.m new file mode 100644 index 000000000..bc720e368 --- /dev/null +++ b/Tests/Pods/OCHamcrest/Source/Library/Text/HCStringStartsWith.m @@ -0,0 +1,43 @@ +// +// OCHamcrest - HCStringStartsWith.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 "HCStringStartsWith.h" + +#import "HCDescription.h" + + +@implementation HCStringStartsWith + ++ (id)stringStartsWith:(NSString *)aSubstring +{ + return [[self alloc] initWithSubstring:aSubstring]; +} + +- (BOOL)matches:(id)item +{ + if (![item respondsToSelector:@selector(hasPrefix:)]) + return NO; + + return [item hasPrefix:substring]; +} + +- (NSString *)relationship +{ + return @"starting with"; +} + +@end + + +#pragma mark - + +id HC_startsWith(NSString *aString) +{ + return [HCStringStartsWith stringStartsWith:aString]; +} diff --git a/External/OCHamcrest.framework/Versions/A/Headers/HCSubstringMatcher.h b/Tests/Pods/OCHamcrest/Source/Library/Text/HCSubstringMatcher.h similarity index 100% rename from External/OCHamcrest.framework/Versions/A/Headers/HCSubstringMatcher.h rename to Tests/Pods/OCHamcrest/Source/Library/Text/HCSubstringMatcher.h diff --git a/Tests/Pods/OCHamcrest/Source/Library/Text/HCSubstringMatcher.m b/Tests/Pods/OCHamcrest/Source/Library/Text/HCSubstringMatcher.m new file mode 100644 index 000000000..3dcec99f0 --- /dev/null +++ b/Tests/Pods/OCHamcrest/Source/Library/Text/HCSubstringMatcher.m @@ -0,0 +1,41 @@ +// +// OCHamcrest - HCSubstringMatcher.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 "HCSubstringMatcher.h" + +#import "HCDescription.h" +#import "HCRequireNonNilObject.h" + + +@interface HCSubstringMatcher (SubclassResponsibility) +- (NSString *)relationship; +@end + + +@implementation HCSubstringMatcher + +- (id)initWithSubstring:(NSString *)aString +{ + HCRequireNonNilObject(aString); + + self = [super init]; + if (self) + substring = [aString copy]; + return self; +} + +- (void)describeTo:(id)description +{ + [[[[description appendText:@"a string "] + appendText:[self relationship]] + appendText:@" "] + appendDescriptionOf:substring]; +} + +@end diff --git a/External/OCHamcrest.framework/Versions/A/Headers/OCHamcrest.h b/Tests/Pods/OCHamcrest/Source/OCHamcrest.h similarity index 100% rename from External/OCHamcrest.framework/Versions/A/Headers/OCHamcrest.h rename to Tests/Pods/OCHamcrest/Source/OCHamcrest.h diff --git a/Tests/Pods/OCMockito/LICENSE-mockito.txt b/Tests/Pods/OCMockito/LICENSE-mockito.txt new file mode 100644 index 000000000..e0840a446 --- /dev/null +++ b/Tests/Pods/OCMockito/LICENSE-mockito.txt @@ -0,0 +1,21 @@ +The MIT License + +Copyright (c) 2007 Mockito contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. \ No newline at end of file diff --git a/Tests/Pods/OCMockito/README.md b/Tests/Pods/OCMockito/README.md new file mode 100644 index 000000000..0e1d50484 --- /dev/null +++ b/Tests/Pods/OCMockito/README.md @@ -0,0 +1,192 @@ +![mockito](http://docs.mockito.googlecode.com/hg/latest/org/mockito/logo.jpg) + +OCMockito is an Objective-C implementation of Mockito, supporting creation, +verification and stubbing of mock objects. + +Key differences from other mocking frameworks: + +* Mock objects are always "nice," recording their calls instead of throwing + exceptions about unspecified invocations. This makes tests less fragile. + +* No expect-run-verify, making tests more readable. Mock objects record their + calls, then you verify the methods you want. + +* Verification failures are reported as unit test failures, identifying specific + lines instead of throwing exceptions. This makes it easier to identify + failures. (It also keeps the pre-iOS 5 Simulator from crashing.) + + +Adding OCMockito to your project +================================ + +__Building:__ + +If you want to build OCMockito yourself, cd to the Source folder, then + + $ ./MakeDistribution.sh + +Or just use the pre-built release available in +[Downloads](https://github.com/jonreid/OCMockito/downloads). + +__Mac Project Setup:__ + +Add both OCHamcrest.framework and OCMockito.framework and to your project. + +Add a Copy Files build phase to copy both OCHamcrest.framework and +OCMockito.framework and 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 + + #define MOCKITO_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 both OCHamcrestIOS.framework and OCMockitoIOS.framework to your project. + +Add: + + #define HC_SHORTHAND + #import + + #define MOCKITO_SHORTHAND + #import + + +Let's verify some behavior! +=========================== + + // mock creation + NSMutableArray *mockArray = mock([NSMutableArray class]); + + // using mock object + [mockArray addObject:@"one"]; + [mockArray removeAllObjects]; + + // verification + [verify(mockArray) addObject:@"one"]; + [verify(mockArray) removeAllObjects]; + +Once created, the mock will remember all interactions. Then you can selectively +verify whatever interactions you are interested in. + + +How about some stubbing? +======================== + + // mock creation + NSArray *mockArray = mock([NSArray class]); + + // stubbing + [given([mockArray objectAtIndex:0]) willReturn:@"first"]; + + // following prints "(null)" because objectAtIndex:999 was not stubbed + NSLog(@"%@", [mockArray objectAtIndex:999]); + + +How do you mock a class object? +=============================== + + Class mockStringClass = mockClass([NSString class]); + + +How do you mock a protocol? +=========================== + + id delegate = mockProtocol(@protocol(MyDelegate)); + + +How do you mock an object that also implements a protocol? +========================================================== + + UIViewController *controller = + mockObjectAndProtocol([UIViewController class], @protocol(CustomProtocol)); + + +How do you stub methods that return non-objects? +================================================ + +To stub methods that return non-object types, specify ``willReturn``, +like this: + + [given([mockArray count]) willReturnUnsignedInteger:3]; + + +Argument matchers +================= + +OCMockito verifies argument values by testing for equality. But when extra +flexibility is required, you can specify + [OCHamcrest](https://github.com/hamcrest/OCHamcrest) matchers. + + // mock creation + NSMutableArray *mockArray = mock([NSMutableArray class]); + + // using mock object + [mockArray removeObject:@"This is a test"]; + + // verification + [verify(mockArray) removeObject:startsWith(@"This is")]; + +OCHamcrest matchers can be specified as arguments for both verification and +stubbing. + + +How do you specify matchers for primitive arguments? +==================================================== + +To stub a method that takes a primitive argument but specify a matcher, invoke +the method with a dummy argument, then call ``-withMatcher:forArgument:`` + + [[given([mockArray objectAtIndex:0]) withMatcher:anything() forArgument:0] + willReturn:@"foo"]; + +Use the shortcut ``-withMatcher:`` to specify a matcher for a single argument: + + [[given([mockArray objectAtIndex:0]) withMatcher:anything()] + willReturn:@"foo"]; + + +Verifying exact number of invocations / at least x / never +========================================================== + + // using mock + [mockArray addObject:@"once"]; + + [mockArray addObject:@"twice"]; + [mockArray addObject:@"twice"]; + + // the following two verifications work exactly the same + [verify(mockArray) addObject:@"once"]; + [verifyCount(mockArray, times(1)) addObject:@"once"]; + + // verify exact number of invocations + [verifyCount(mockArray, times(2)) addObject:@"twice"]; + [verifyCount(mockArray, times(3)) addObject:@"three times"]; + + // verify using never(), which is an alias for times(0) + [verifyCount(mockArray, never()) addObject:@"never happened"]; + + // verify using atLeast + [verifyCount(mockArray, atLeastOnce()) addObject:@"at least once"]; + [verifyCount(mockArray, atLeast(2)) addObject:@"at least twice"]; + + +More resources +============== + +* [Sources](https://github.com/jonreid/OCMockito) +* [OCHamcrest](https://github.com/hamcrest/OCHamcrest) +* [Quality Coding](http://qualitycoding.org/) - Tools, tips & +techniques for _building quality in_ to iOS development. diff --git a/Tests/Pods/OCMockito/Source/OCMockito/MKTAtLeastTimes.h b/Tests/Pods/OCMockito/Source/OCMockito/MKTAtLeastTimes.h new file mode 100644 index 000000000..3ba612e55 --- /dev/null +++ b/Tests/Pods/OCMockito/Source/OCMockito/MKTAtLeastTimes.h @@ -0,0 +1,18 @@ +// +// OCMockito - MKTAtLeastTimes.h +// Copyright 2012 Jonathan M. Reid. See LICENSE.txt +// +// Created by Markus Gasser on 18.04.12. +// Source: https://github.com/jonreid/OCMockito +// + +#import +#import "MKTVerificationMode.h" + + +@interface MKTAtLeastTimes : NSObject + ++ (id)timesWithMinimumCount:(NSUInteger)minimumExpectedNumberOfInvocations; +- (id)initWithMinimumCount:(NSUInteger)minimumExpectedNumberOfInvocations; + +@end diff --git a/Tests/Pods/OCMockito/Source/OCMockito/MKTAtLeastTimes.m b/Tests/Pods/OCMockito/Source/OCMockito/MKTAtLeastTimes.m new file mode 100644 index 000000000..0a33a680c --- /dev/null +++ b/Tests/Pods/OCMockito/Source/OCMockito/MKTAtLeastTimes.m @@ -0,0 +1,58 @@ +// +// OCMockito - MKTAtLeastTimes.m +// Copyright 2012 Jonathan M. Reid. See LICENSE.txt +// +// Created by Markus Gasser on 18.04.12. +// Source: https://github.com/jonreid/OCMockito +// + +#import "MKTAtLeastTimes.h" + +#import "MKTInvocationContainer.h" +#import "MKTInvocationMatcher.h" +#import "MKTVerificationData.h" + + +@implementation MKTAtLeastTimes +{ + NSUInteger _minimumExpectedCount; +} + ++ (id)timesWithMinimumCount:(NSUInteger)minimumExpectedNumberOfInvocations +{ + return [[self alloc] initWithMinimumCount:minimumExpectedNumberOfInvocations]; +} + +- (id)initWithMinimumCount:(NSUInteger)minimumExpectedNumberOfInvocations +{ + self = [super init]; + if (self) + _minimumExpectedCount = minimumExpectedNumberOfInvocations; + return self; +} + + +#pragma mark MKTVerificationMode + +- (void)verifyData:(MKTVerificationData *)data +{ + if (_minimumExpectedCount == 0) + return; // this always succeeds + + NSUInteger matchingCount = 0; + for (NSInvocation *invocation in [[data invocations] registeredInvocations]) + { + if ([[data wanted] matches:invocation]) + ++matchingCount; + } + + if (matchingCount < _minimumExpectedCount) + { + NSString *plural = (_minimumExpectedCount == 1) ? @"" : @"s"; + NSString *description = [NSString stringWithFormat:@"Expected %u matching invocation%@, but received %u", + (unsigned)_minimumExpectedCount, plural, (unsigned)matchingCount]; + MKTFailTestLocation([data testLocation], description); + } +} + +@end diff --git a/External/OCMockito.framework/Headers/MKTBaseMockObject.h b/Tests/Pods/OCMockito/Source/OCMockito/MKTBaseMockObject.h similarity index 100% rename from External/OCMockito.framework/Headers/MKTBaseMockObject.h rename to Tests/Pods/OCMockito/Source/OCMockito/MKTBaseMockObject.h diff --git a/Tests/Pods/OCMockito/Source/OCMockito/MKTBaseMockObject.m b/Tests/Pods/OCMockito/Source/OCMockito/MKTBaseMockObject.m new file mode 100644 index 000000000..029569b73 --- /dev/null +++ b/Tests/Pods/OCMockito/Source/OCMockito/MKTBaseMockObject.m @@ -0,0 +1,103 @@ +// +// OCMockito - MKTBaseMockObject.m +// Copyright 2012 Jonathan M. Reid. See LICENSE.txt +// +// Created by: Jon Reid, http://qualitycoding.org/ +// Source: https://github.com/jonreid/OCMockito +// + +#import "MKTBaseMockObject.h" + +#import "MKTInvocationContainer.h" +#import "MKTInvocationMatcher.h" +#import "MKTMockingProgress.h" +#import "MKTOngoingStubbing.h" +#import "MKTTypeEncoding.h" +#import "MKTVerificationData.h" +#import "MKTVerificationMode.h" + + +@implementation MKTBaseMockObject +{ + MKTMockingProgress *_mockingProgress; + MKTInvocationContainer *_invocationContainer; +} + +- (id)init +{ + if (self) + { + _mockingProgress = [MKTMockingProgress sharedProgress]; + _invocationContainer = [[MKTInvocationContainer alloc] initWithMockingProgress:_mockingProgress]; + + } + return self; +} + +#define HANDLE_METHOD_RETURN_TYPE(type, typeName) \ + else if (strcmp(methodReturnType, @encode(type)) == 0) \ + { \ + type answer = [[_invocationContainer findAnswerFor:anInvocation] typeName ## Value]; \ + [anInvocation setReturnValue:&answer]; \ + } + +- (void)forwardInvocation:(NSInvocation *)anInvocation +{ + id verificationMode = [_mockingProgress pullVerificationMode]; + if (verificationMode) + { + MKTInvocationMatcher *invocationMatcher = [_mockingProgress pullInvocationMatcher]; + if (!invocationMatcher) + invocationMatcher = [[MKTInvocationMatcher alloc] init]; + [invocationMatcher setExpectedInvocation:anInvocation]; + + MKTVerificationData *data = [[MKTVerificationData alloc] init]; + [data setInvocations:_invocationContainer]; + [data setWanted:invocationMatcher]; + [data setTestLocation:[_mockingProgress testLocation]]; + [verificationMode verifyData:data]; + + return; + } + + [_invocationContainer setInvocationForPotentialStubbing:anInvocation]; + MKTOngoingStubbing *ongoingStubbing = [[MKTOngoingStubbing alloc] + initWithInvocationContainer:_invocationContainer]; + [_mockingProgress reportOngoingStubbing:ongoingStubbing]; + + NSMethodSignature *methodSignature = [anInvocation methodSignature]; + const char* methodReturnType = [methodSignature methodReturnType]; + if (MKTTypeEncodingIsObjectOrClass(methodReturnType)) + { + __unsafe_unretained id answer = [_invocationContainer findAnswerFor:anInvocation]; + [anInvocation setReturnValue:&answer]; + } + HANDLE_METHOD_RETURN_TYPE(char, char) + HANDLE_METHOD_RETURN_TYPE(int, int) + HANDLE_METHOD_RETURN_TYPE(short, short) + HANDLE_METHOD_RETURN_TYPE(long, long) + HANDLE_METHOD_RETURN_TYPE(long long, longLong) + HANDLE_METHOD_RETURN_TYPE(unsigned char, unsignedChar) + HANDLE_METHOD_RETURN_TYPE(unsigned int, unsignedInt) + HANDLE_METHOD_RETURN_TYPE(unsigned short, unsignedShort) + HANDLE_METHOD_RETURN_TYPE(unsigned long, unsignedLong) + HANDLE_METHOD_RETURN_TYPE(unsigned long long, unsignedLongLong) + HANDLE_METHOD_RETURN_TYPE(float, float) + HANDLE_METHOD_RETURN_TYPE(double, double) +} + + +#pragma mark MKTPrimitiveArgumentMatching + +- (id)withMatcher:(id )matcher forArgument:(NSUInteger)index +{ + [_mockingProgress setMatcher:matcher forArgument:index]; + return self; +} + +- (id)withMatcher:(id )matcher +{ + return [self withMatcher:matcher forArgument:0]; +} + +@end diff --git a/External/OCMockito.framework/Headers/MKTClassObjectMock.h b/Tests/Pods/OCMockito/Source/OCMockito/MKTClassObjectMock.h similarity index 100% rename from External/OCMockito.framework/Headers/MKTClassObjectMock.h rename to Tests/Pods/OCMockito/Source/OCMockito/MKTClassObjectMock.h diff --git a/Tests/Pods/OCMockito/Source/OCMockito/MKTClassObjectMock.m b/Tests/Pods/OCMockito/Source/OCMockito/MKTClassObjectMock.m new file mode 100644 index 000000000..d82aad99f --- /dev/null +++ b/Tests/Pods/OCMockito/Source/OCMockito/MKTClassObjectMock.m @@ -0,0 +1,43 @@ +// +// OCMockito - MKTClassObjectMock.m +// Copyright 2012 Jonathan M. Reid. See LICENSE.txt +// +// Created by: David Hart +// Source: https://github.com/jonreid/OCMockito +// + +#import "MKTClassObjectMock.h" + + +@implementation MKTClassObjectMock +{ + Class _mockedClass; +} + ++ (id)mockForClass:(Class)aClass +{ + return [[self alloc] initWithClass:aClass]; +} + +- (id)initWithClass:(Class)aClass +{ + self = [super init]; + if (self) + _mockedClass = aClass; + return self; +} + +- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector +{ + return [_mockedClass methodSignatureForSelector:aSelector]; +} + + +#pragma mark NSObject protocol + +- (BOOL)respondsToSelector:(SEL)aSelector +{ + return [_mockedClass respondsToSelector:aSelector]; +} + +@end diff --git a/Tests/Pods/OCMockito/Source/OCMockito/MKTExactTimes.h b/Tests/Pods/OCMockito/Source/OCMockito/MKTExactTimes.h new file mode 100644 index 000000000..26428c966 --- /dev/null +++ b/Tests/Pods/OCMockito/Source/OCMockito/MKTExactTimes.h @@ -0,0 +1,18 @@ +// +// OCMockito - MKTExactTimes.h +// Copyright 2012 Jonathan M. Reid. See LICENSE.txt +// +// Created by: Jon Reid, http://qualitycoding.org/ +// Source: https://github.com/jonreid/OCMockito +// + +#import +#import "MKTVerificationMode.h" + + +@interface MKTExactTimes : NSObject + ++ (id)timesWithCount:(NSUInteger)expectedNumberOfInvocations; +- (id)initWithCount:(NSUInteger)expectedNumberOfInvocations; + +@end diff --git a/Tests/Pods/OCMockito/Source/OCMockito/MKTExactTimes.m b/Tests/Pods/OCMockito/Source/OCMockito/MKTExactTimes.m new file mode 100644 index 000000000..5eae14334 --- /dev/null +++ b/Tests/Pods/OCMockito/Source/OCMockito/MKTExactTimes.m @@ -0,0 +1,66 @@ +// +// OCMockito - MKTExactTimes.m +// Copyright 2012 Jonathan M. Reid. See LICENSE.txt +// +// Created by: Jon Reid, http://qualitycoding.org/ +// Source: https://github.com/jonreid/OCMockito +// + +#import "MKTExactTimes.h" + +#import "MKTInvocationContainer.h" +#import "MKTInvocationMatcher.h" +#import "MKTTestLocation.h" +#import "MKTVerificationData.h" +#import "MKTException.h" + + +// 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 http://openradar.appspot.com/8081169 ) So instead of +// using an NSInvocation to call -failWithException: without linking in SenTestingKit, we simply +// pretend it exists on NSObject. +@interface NSObject (MTExceptionBugHack) +- (void)failWithException:(NSException *)exception; +@end + + +@implementation MKTExactTimes +{ + NSUInteger expectedCount; +} + ++ (id)timesWithCount:(NSUInteger)expectedNumberOfInvocations +{ + return [[self alloc] initWithCount:expectedNumberOfInvocations]; +} + +- (id)initWithCount:(NSUInteger)expectedNumberOfInvocations +{ + self = [super init]; + if (self) + expectedCount = expectedNumberOfInvocations; + return self; +} + + +#pragma mark MKTVerificationMode + +- (void)verifyData:(MKTVerificationData *)data +{ + NSUInteger matchingCount = 0; + for (NSInvocation *invocation in [[data invocations] registeredInvocations]) + { + if ([[data wanted] matches:invocation]) + ++matchingCount; + } + + if (matchingCount != expectedCount) + { + NSString *plural = (expectedCount == 1) ? @"" : @"s"; + NSString *description = [NSString stringWithFormat:@"Expected %u matching invocation%@, but received %u", + (unsigned)expectedCount, plural, (unsigned)matchingCount]; + MKTFailTestLocation([data testLocation], description); + } +} + +@end diff --git a/Tests/Pods/OCMockito/Source/OCMockito/MKTException.h b/Tests/Pods/OCMockito/Source/OCMockito/MKTException.h new file mode 100644 index 000000000..eed777797 --- /dev/null +++ b/Tests/Pods/OCMockito/Source/OCMockito/MKTException.h @@ -0,0 +1,18 @@ +// +// OCMockito - MKTException.h +// Copyright 2012 Jonathan M. Reid. See LICENSE.txt +// +// Created by: Jon Reid, http://qualitycoding.org/ +// Source: https://github.com/jonreid/OCMockito +// + +#import + + +@interface MKTException : NSException + ++ (NSException *)failureInFile:(NSString *)fileName + atLine:(int)lineNumber + reason:(NSString *)reason; + +@end diff --git a/Tests/Pods/OCMockito/Source/OCMockito/MKTException.m b/Tests/Pods/OCMockito/Source/OCMockito/MKTException.m new file mode 100644 index 000000000..25156a054 --- /dev/null +++ b/Tests/Pods/OCMockito/Source/OCMockito/MKTException.m @@ -0,0 +1,23 @@ +// +// OCMockito - MKTException.m +// Copyright 2012 Jonathan M. Reid. See LICENSE.txt +// +// Created by: Jon Reid, http://qualitycoding.org/ +// Source: https://github.com/jonreid/OCMockito +// + +#import "MKTException.h" + + +@implementation MKTException + ++ (NSException *)failureInFile:(NSString *)fileName + atLine:(int)lineNumber + reason:(NSString *)reason +{ + NSDictionary *userInfo = @{@"SenTestFilenameKey": fileName, + @"SenTestLineNumberKey": @(lineNumber)}; + return [self exceptionWithName:@"SenTestFailureException" reason:reason userInfo:userInfo]; +} + +@end diff --git a/Tests/Pods/OCMockito/Source/OCMockito/MKTInvocationContainer.h b/Tests/Pods/OCMockito/Source/OCMockito/MKTInvocationContainer.h new file mode 100644 index 000000000..3c60606b2 --- /dev/null +++ b/Tests/Pods/OCMockito/Source/OCMockito/MKTInvocationContainer.h @@ -0,0 +1,25 @@ +// +// OCMockito - MKTInvocationContainer.h +// Copyright 2012 Jonathan M. Reid. See LICENSE.txt +// +// Created by: Jon Reid, http://qualitycoding.org/ +// Source: https://github.com/jonreid/OCMockito +// + +#import + +@class MKTMockingProgress; +@protocol HCMatcher; + + +@interface MKTInvocationContainer : NSObject + +@property (nonatomic, readonly) NSMutableArray *registeredInvocations; + +- (id)initWithMockingProgress:(MKTMockingProgress *)mockingProgress; +- (void)setInvocationForPotentialStubbing:(NSInvocation *)invocation; +- (void)setMatcher:(id )matcher atIndex:(NSUInteger)argumentIndex; +- (void)addAnswer:(id)answer; +- (id)findAnswerFor:(NSInvocation *)invocation; + +@end diff --git a/Tests/Pods/OCMockito/Source/OCMockito/MKTInvocationContainer.m b/Tests/Pods/OCMockito/Source/OCMockito/MKTInvocationContainer.m new file mode 100644 index 000000000..28077045b --- /dev/null +++ b/Tests/Pods/OCMockito/Source/OCMockito/MKTInvocationContainer.m @@ -0,0 +1,71 @@ +// +// OCMockito - MKTInvocationContainer.m +// Copyright 2012 Jonathan M. Reid. See LICENSE.txt +// +// Created by: Jon Reid, http://qualitycoding.org/ +// Source: https://github.com/jonreid/OCMockito +// + +#import "MKTInvocationContainer.h" + +#import "MKTMockingProgress.h" +#import "MKTStubbedInvocationMatcher.h" + + +@interface MKTInvocationContainer () +@property (nonatomic, strong) MKTStubbedInvocationMatcher *invocationMatcherForStubbing; +@end + + +@implementation MKTInvocationContainer +{ + MKTMockingProgress *_mockingProgress; + NSMutableArray *_stubbed; +} + +- (id)initWithMockingProgress:(MKTMockingProgress *)mockingProgress +{ + self = [super init]; + if (self) + { + _registeredInvocations = [[NSMutableArray alloc] init]; + _mockingProgress = mockingProgress; + _stubbed = [[NSMutableArray alloc] init]; + } + return self; +} + + +- (void)setInvocationForPotentialStubbing:(NSInvocation *)invocation +{ + [invocation retainArguments]; + [_registeredInvocations addObject:invocation]; + + MKTStubbedInvocationMatcher *stubbedInvocationMatcher = [[MKTStubbedInvocationMatcher alloc] init]; + [stubbedInvocationMatcher setExpectedInvocation:invocation]; + [self setInvocationMatcherForStubbing:stubbedInvocationMatcher]; +} + +- (void)setMatcher:(id )matcher atIndex:(NSUInteger)argumentIndex +{ + [_invocationMatcherForStubbing setMatcher:matcher atIndex:argumentIndex]; +} + +- (void)addAnswer:(id)answer +{ + [_registeredInvocations removeLastObject]; + + [_invocationMatcherForStubbing setAnswer:answer]; + [_stubbed insertObject:_invocationMatcherForStubbing atIndex:0]; +} + +- (id)findAnswerFor:(NSInvocation *)invocation +{ + for (MKTStubbedInvocationMatcher *stubbedInvocationMatcher in _stubbed) + if ([stubbedInvocationMatcher matches:invocation]) + return [stubbedInvocationMatcher answer]; + + return nil; +} + +@end diff --git a/Tests/Pods/OCMockito/Source/OCMockito/MKTInvocationMatcher.h b/Tests/Pods/OCMockito/Source/OCMockito/MKTInvocationMatcher.h new file mode 100644 index 000000000..dd3fe2b48 --- /dev/null +++ b/Tests/Pods/OCMockito/Source/OCMockito/MKTInvocationMatcher.h @@ -0,0 +1,22 @@ +// +// OCMockito - MKTInvocationMatcher.h +// Copyright 2012 Jonathan M. Reid. See LICENSE.txt +// +// Created by: Jon Reid, http://qualitycoding.org/ +// Source: https://github.com/jonreid/OCMockito +// + +#import + +@protocol HCMatcher; + + +@interface MKTInvocationMatcher : NSObject + +- (void)setMatcher:(id )matcher atIndex:(NSUInteger)argumentIndex; +- (NSUInteger)argumentMatchersCount; + +- (void)setExpectedInvocation:(NSInvocation *)expectedInvocation; +- (BOOL)matches:(NSInvocation *)actual; + +@end diff --git a/Tests/Pods/OCMockito/Source/OCMockito/MKTInvocationMatcher.m b/Tests/Pods/OCMockito/Source/OCMockito/MKTInvocationMatcher.m new file mode 100644 index 000000000..aed1b602d --- /dev/null +++ b/Tests/Pods/OCMockito/Source/OCMockito/MKTInvocationMatcher.m @@ -0,0 +1,177 @@ +// +// OCMockito - MKTInvocationMatcher.m +// Copyright 2012 Jonathan M. Reid. See LICENSE.txt +// +// Created by: Jon Reid, http://qualitycoding.org/ +// Source: https://github.com/jonreid/OCMockito +// + +#import "MKTInvocationMatcher.h" + +#import "MKTTypeEncoding.h" + +#define HC_SHORTHAND +#if TARGET_OS_MAC + #import + #import +#else + #import + #import +#endif + + +@interface MKTInvocationMatcher () +@property (nonatomic, strong) NSInvocation *expected; +@end + + +@implementation MKTInvocationMatcher +{ + NSUInteger _numberOfArguments; + NSMutableArray *_argumentMatchers; +} + +- (id)init +{ + self = [super init]; + if (self) + _argumentMatchers = [[NSMutableArray alloc] init]; + return self; +} + +- (void)setMatcher:(id )matcher atIndex:(NSUInteger)argumentIndex +{ + NSUInteger matchersCount = [_argumentMatchers count]; + if (matchersCount <= argumentIndex) + { + [self trueUpArgumentMatchersToCount:argumentIndex]; + [_argumentMatchers addObject:matcher]; + } + else + _argumentMatchers[argumentIndex] = matcher; +} + +- (NSUInteger)argumentMatchersCount +{ + return [_argumentMatchers count]; +} + +- (void)trueUpArgumentMatchersToCount:(NSUInteger)desiredCount +{ + NSUInteger matchersCount = [_argumentMatchers count]; + while (matchersCount < desiredCount) + { + [_argumentMatchers addObject:[NSNull null]]; + ++matchersCount; + } +} + +- (void)setExpectedInvocation:(NSInvocation *)expectedInvocation +{ + [self setExpected:expectedInvocation]; + [_expected retainArguments]; + + NSMethodSignature *methodSignature = [_expected methodSignature]; + + _numberOfArguments = [[_expected methodSignature] numberOfArguments]; + [self trueUpArgumentMatchersToCount:_numberOfArguments]; + + for (NSUInteger argumentIndex = 2; argumentIndex < _numberOfArguments; ++argumentIndex) + { + const char *argumentType = [methodSignature getArgumentTypeAtIndex:argumentIndex]; + if (MKTTypeEncodingIsObjectOrClass(argumentType)) + { + __unsafe_unretained id argument = nil; + [_expected getArgument:&argument atIndex:argumentIndex]; + + id matcher; + if (argument != nil) + matcher = HCWrapInMatcher(argument); + else + matcher = nilValue(); + + [self setMatcher:matcher atIndex:argumentIndex]; + } + } +} + +- (BOOL)argumentObjectClassMismatchInInvocation:(NSInvocation *)actual atIndex:(NSUInteger)index +{ + __unsafe_unretained id actualArgument; + [actual getArgument:&actualArgument atIndex:index]; + + id matcher = _argumentMatchers[index]; + return ![matcher matches:actualArgument]; +} + +#define DEFINE_ARGUMENT_MISMATCH_METHOD(type, typeName) \ + - (BOOL)argument ## typeName ## MismatchInInvocation:(NSInvocation *)actual atIndex:(NSUInteger)index \ + { \ + type actualArgument; \ + [actual getArgument:&actualArgument atIndex:index]; \ + \ + id matcher = _argumentMatchers[index]; \ + if ([matcher isEqual:[NSNull null]]) \ + { \ + type expectedArgument; \ + [_expected getArgument:&expectedArgument atIndex:index]; \ + return expectedArgument != actualArgument; \ + } \ + else \ + return ![matcher matches:@(actualArgument)]; \ + } + +DEFINE_ARGUMENT_MISMATCH_METHOD(char, Char) +DEFINE_ARGUMENT_MISMATCH_METHOD(int, Int) +DEFINE_ARGUMENT_MISMATCH_METHOD(short, Short) +DEFINE_ARGUMENT_MISMATCH_METHOD(long, Long) +DEFINE_ARGUMENT_MISMATCH_METHOD(long long, LongLong) +DEFINE_ARGUMENT_MISMATCH_METHOD(unsigned char, UnsignedChar) +DEFINE_ARGUMENT_MISMATCH_METHOD(unsigned int, UnsignedInt) +DEFINE_ARGUMENT_MISMATCH_METHOD(unsigned short, UnsignedShort) +DEFINE_ARGUMENT_MISMATCH_METHOD(unsigned long, UnsignedLong) +DEFINE_ARGUMENT_MISMATCH_METHOD(unsigned long long, UnsignedLongLong) +DEFINE_ARGUMENT_MISMATCH_METHOD(float, Float) +DEFINE_ARGUMENT_MISMATCH_METHOD(double, Double) + + +#define HANDLE_ARGUMENT_TYPE(type, typeName) \ + else if (strcmp(argumentType, @encode(type)) == 0) \ + { \ + if ([self argument ## typeName ## MismatchInInvocation:actual atIndex:argumentIndex]) \ + return NO; \ + } + +- (BOOL)matches:(NSInvocation *)actual +{ + if ([_expected selector] != [actual selector]) + return NO; + + NSMethodSignature *methodSignature = [_expected methodSignature]; + + for (NSUInteger argumentIndex = 2; argumentIndex < _numberOfArguments; ++argumentIndex) + { + const char *argumentType = [methodSignature getArgumentTypeAtIndex:argumentIndex]; + if (MKTTypeEncodingIsObjectOrClass(argumentType)) + { + if ([self argumentObjectClassMismatchInInvocation:actual atIndex:argumentIndex]) + return NO; + } + HANDLE_ARGUMENT_TYPE(char, Char) + HANDLE_ARGUMENT_TYPE(int, Int) + HANDLE_ARGUMENT_TYPE(short, Short) + HANDLE_ARGUMENT_TYPE(long, Long) + HANDLE_ARGUMENT_TYPE(long long, LongLong) + HANDLE_ARGUMENT_TYPE(unsigned char, UnsignedChar) + HANDLE_ARGUMENT_TYPE(unsigned int, UnsignedInt) + HANDLE_ARGUMENT_TYPE(unsigned short, UnsignedShort) + HANDLE_ARGUMENT_TYPE(unsigned long, UnsignedLong) + HANDLE_ARGUMENT_TYPE(unsigned long long, UnsignedLongLong) + HANDLE_ARGUMENT_TYPE(float, Float) + HANDLE_ARGUMENT_TYPE(double, Double) + } + + return YES; +} + +@end diff --git a/Tests/Pods/OCMockito/Source/OCMockito/MKTMockAwareVerificationMode.h b/Tests/Pods/OCMockito/Source/OCMockito/MKTMockAwareVerificationMode.h new file mode 100644 index 000000000..f53e49aac --- /dev/null +++ b/Tests/Pods/OCMockito/Source/OCMockito/MKTMockAwareVerificationMode.h @@ -0,0 +1,22 @@ +// +// OCMockito - MKTMockAwareVerificationMode.h +// Copyright 2012 Jonathan M. Reid. See LICENSE.txt +// +// Created by: Jon Reid, http://qualitycoding.org/ +// Source: https://github.com/jonreid/OCMockito +// + +#import +#import "MKTVerificationMode.h" + + +@class MKTObjectMock; +@protocol MKVerificationMode; + + +@interface MKTMockAwareVerificationMode : NSObject + ++ (id)verificationWithMock:(MKTObjectMock *)mock mode:(id )mode; +- (id)initWithMock:(MKTObjectMock *)mock mode:(id )mode; + +@end diff --git a/Tests/Pods/OCMockito/Source/OCMockito/MKTMockAwareVerificationMode.m b/Tests/Pods/OCMockito/Source/OCMockito/MKTMockAwareVerificationMode.m new file mode 100644 index 000000000..c1a9cbb06 --- /dev/null +++ b/Tests/Pods/OCMockito/Source/OCMockito/MKTMockAwareVerificationMode.m @@ -0,0 +1,49 @@ +// +// OCMockito - MKTMockAwareVerificationMode.m +// Copyright 2012 Jonathan M. Reid. See LICENSE.txt +// +// Created by: Jon Reid, http://qualitycoding.org/ +// Source: https://github.com/jonreid/OCMockito +// + +#import "MKTMockAwareVerificationMode.h" + + +@implementation MKTMockAwareVerificationMode +{ + MKTObjectMock *_mock; + id _mode; +} + ++ (id)verificationWithMock:(MKTObjectMock *)mock mode:(id )mode +{ + return [[[self alloc] initWithMock:mock mode:mode] autorelease]; +} + +- (id)initWithMock:(MKTObjectMock *)mock mode:(id )mode +{ + self = [super init]; + if (self) + { + _mock = [mock retain]; + _mode = [mode retain]; + } + return self; +} + +- (void)dealloc +{ + [_mock release]; + [_mode release]; + [super dealloc]; +} + + +#pragma mark MKTVerificationMode + +- (void)verifyData:(MKTVerificationData *)data +{ + [_mode verifyData:data]; +} + +@end diff --git a/Tests/Pods/OCMockito/Source/OCMockito/MKTMockingProgress.h b/Tests/Pods/OCMockito/Source/OCMockito/MKTMockingProgress.h new file mode 100644 index 000000000..064f865d0 --- /dev/null +++ b/Tests/Pods/OCMockito/Source/OCMockito/MKTMockingProgress.h @@ -0,0 +1,35 @@ +// +// OCMockito - MKTMockingProgress.h +// Copyright 2012 Jonathan M. Reid. See LICENSE.txt +// +// Created by: Jon Reid, http://qualitycoding.org/ +// Source: https://github.com/jonreid/OCMockito +// + +#import + +#import "MKTTestLocation.h" + +@class MKTInvocationMatcher; +@class MKTOngoingStubbing; +@protocol HCMatcher; +@protocol MKTVerificationMode; + + +@interface MKTMockingProgress : NSObject + +@property (nonatomic, assign) MKTTestLocation testLocation; + ++ (id)sharedProgress; + +- (void)stubbingStartedAtLocation:(MKTTestLocation)location; +- (void)reportOngoingStubbing:(MKTOngoingStubbing *)ongoingStubbing; +- (MKTOngoingStubbing *)pullOngoingStubbing; + +- (void)verificationStarted:(id )mode atLocation:(MKTTestLocation)location; +- (id )pullVerificationMode; + +- (void)setMatcher:(id )matcher forArgument:(NSUInteger)index; +- (MKTInvocationMatcher *)pullInvocationMatcher; + +@end diff --git a/Tests/Pods/OCMockito/Source/OCMockito/MKTMockingProgress.m b/Tests/Pods/OCMockito/Source/OCMockito/MKTMockingProgress.m new file mode 100644 index 000000000..a491b1ec6 --- /dev/null +++ b/Tests/Pods/OCMockito/Source/OCMockito/MKTMockingProgress.m @@ -0,0 +1,78 @@ +// +// OCMockito - MKTMockingProgress.m +// Copyright 2012 Jonathan M. Reid. See LICENSE.txt +// +// Created by: Jon Reid, http://qualitycoding.org/ +// Source: https://github.com/jonreid/OCMockito +// + +#import "MKTMockingProgress.h" + +#import "MKTInvocationMatcher.h" +#import "MKTOngoingStubbing.h" +#import "MKTVerificationMode.h" + + +@interface MKTMockingProgress () +@property (nonatomic, strong) MKTInvocationMatcher *invocationMatcher; +@property (nonatomic, strong) id verificationMode; +@property (nonatomic, strong) MKTOngoingStubbing *ongoingStubbing; +@end + + +@implementation MKTMockingProgress + ++ (id)sharedProgress +{ + static id sharedProgress = nil; + + if (!sharedProgress) + sharedProgress = [[self alloc] init]; + return sharedProgress; +} + +- (void)stubbingStartedAtLocation:(MKTTestLocation)location +{ + [self setTestLocation:location]; +} + +- (void)reportOngoingStubbing:(MKTOngoingStubbing *)ongoingStubbing +{ + [self setOngoingStubbing:ongoingStubbing]; +} + +- (MKTOngoingStubbing *)pullOngoingStubbing +{ + MKTOngoingStubbing *result = _ongoingStubbing; + [self setOngoingStubbing:nil]; + return result; +} + +- (void)verificationStarted:(id )mode atLocation:(MKTTestLocation)location +{ + [self setVerificationMode:mode]; + [self setTestLocation:location]; +} + +- (id )pullVerificationMode +{ + id result = _verificationMode; + [self setVerificationMode:nil]; + return result; +} + +- (void)setMatcher:(id )matcher forArgument:(NSUInteger)index +{ + if (!_invocationMatcher) + _invocationMatcher = [[MKTInvocationMatcher alloc] init]; + [_invocationMatcher setMatcher:matcher atIndex:index+2]; +} + +- (MKTInvocationMatcher *)pullInvocationMatcher +{ + MKTInvocationMatcher *result = _invocationMatcher; + [self setInvocationMatcher:nil]; + return result; +} + +@end diff --git a/Tests/Pods/OCMockito/Source/OCMockito/MKTMockitoCore.h b/Tests/Pods/OCMockito/Source/OCMockito/MKTMockitoCore.h new file mode 100644 index 000000000..a3a67c400 --- /dev/null +++ b/Tests/Pods/OCMockito/Source/OCMockito/MKTMockitoCore.h @@ -0,0 +1,28 @@ +// +// OCMockito - MKTMockitoCore.h +// Copyright 2012 Jonathan M. Reid. See LICENSE.txt +// +// Created by: Jon Reid, http://qualitycoding.org/ +// Source: https://github.com/jonreid/OCMockito +// + +#import + +#import "MKTTestLocation.h" + +@class MKTObjectMock; +@class MKTOngoingStubbing; +@protocol MKTVerificationMode; + + +@interface MKTMockitoCore : NSObject + ++ (id)sharedCore; + +- (MKTOngoingStubbing *)stubAtLocation:(MKTTestLocation)location; + +- (id)verifyMock:(MKTObjectMock *)mock + withMode:(id )mode + atLocation:(MKTTestLocation)location; + +@end diff --git a/Tests/Pods/OCMockito/Source/OCMockito/MKTMockitoCore.m b/Tests/Pods/OCMockito/Source/OCMockito/MKTMockitoCore.m new file mode 100644 index 000000000..a9a51e6e6 --- /dev/null +++ b/Tests/Pods/OCMockito/Source/OCMockito/MKTMockitoCore.m @@ -0,0 +1,56 @@ +// +// OCMockito - MKTMockitoCore.m +// Copyright 2012 Jonathan M. Reid. See LICENSE.txt +// +// Created by: Jon Reid, http://qualitycoding.org/ +// Source: https://github.com/jonreid/OCMockito +// + +#import "MKTMockitoCore.h" + +#import "MKTMockingProgress.h" +#import "MKTVerificationMode.h" + + +@implementation MKTMockitoCore +{ + MKTMockingProgress *_mockingProgress; +} + ++ (id)sharedCore +{ + static id sharedCore = nil; + + if (!sharedCore) + sharedCore = [[self alloc] init]; + return sharedCore; +} + +- (id)init +{ + self = [super init]; + if (self) + _mockingProgress = [MKTMockingProgress sharedProgress]; + return self; +} + +- (MKTOngoingStubbing *)stubAtLocation:(MKTTestLocation)location +{ + [_mockingProgress stubbingStartedAtLocation:location]; + return [self stub]; +} + +- (MKTOngoingStubbing *)stub +{ + return [_mockingProgress pullOngoingStubbing]; +} + +- (id)verifyMock:(MKTObjectMock *)mock + withMode:(id )mode + atLocation:(MKTTestLocation)location +{ + [_mockingProgress verificationStarted:mode atLocation:location]; + return mock; +} + +@end diff --git a/External/OCMockito.framework/Headers/MKTObjectAndProtocolMock.h b/Tests/Pods/OCMockito/Source/OCMockito/MKTObjectAndProtocolMock.h similarity index 100% rename from External/OCMockito.framework/Headers/MKTObjectAndProtocolMock.h rename to Tests/Pods/OCMockito/Source/OCMockito/MKTObjectAndProtocolMock.h diff --git a/Tests/Pods/OCMockito/Source/OCMockito/MKTObjectAndProtocolMock.m b/Tests/Pods/OCMockito/Source/OCMockito/MKTObjectAndProtocolMock.m new file mode 100644 index 000000000..93703a96b --- /dev/null +++ b/Tests/Pods/OCMockito/Source/OCMockito/MKTObjectAndProtocolMock.m @@ -0,0 +1,51 @@ +// +// OCMockito - MKTObjectAndProtocolMock.m +// Copyright 2012 Jonathan M. Reid. See LICENSE.txt +// +// Created by: Kevin Lundberg +// Source: https://github.com/jonreid/OCMockito +// + +#import "MKTObjectAndProtocolMock.h" + +#import + + +@implementation MKTObjectAndProtocolMock +{ + Class _mockedClass; +} + ++ (id)mockForClass:(Class)aClass protocol:(Protocol *)protocol +{ + return [[self alloc] initWithClass:aClass protocol:protocol]; +} + +- (id)initWithClass:(Class)aClass protocol:(Protocol *)protocol +{ + self = [super initWithProtocol:protocol]; + if (self) + _mockedClass = aClass; + return self; +} + +- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector +{ + NSMethodSignature *signature = [_mockedClass instanceMethodSignatureForSelector:aSelector]; + + if (signature) + return signature; + else + return [super methodSignatureForSelector:aSelector]; +} + + +#pragma mark NSObject protocol + +- (BOOL)respondsToSelector:(SEL)aSelector +{ + return [_mockedClass instancesRespondToSelector:aSelector] || + [super respondsToSelector:aSelector]; +} + +@end diff --git a/External/OCMockito.framework/Headers/MKTObjectMock.h b/Tests/Pods/OCMockito/Source/OCMockito/MKTObjectMock.h similarity index 100% rename from External/OCMockito.framework/Headers/MKTObjectMock.h rename to Tests/Pods/OCMockito/Source/OCMockito/MKTObjectMock.h diff --git a/Tests/Pods/OCMockito/Source/OCMockito/MKTObjectMock.m b/Tests/Pods/OCMockito/Source/OCMockito/MKTObjectMock.m new file mode 100644 index 000000000..7f00791a5 --- /dev/null +++ b/Tests/Pods/OCMockito/Source/OCMockito/MKTObjectMock.m @@ -0,0 +1,48 @@ +// +// OCMockito - MKTObjectMock.m +// Copyright 2012 Jonathan M. Reid. See LICENSE.txt +// +// Created by: Jon Reid, http://qualitycoding.org/ +// Source: https://github.com/jonreid/OCMockito +// + +#import "MKTObjectMock.h" + + +@implementation MKTObjectMock +{ + Class _mockedClass; +} + ++ (id)mockForClass:(Class)aClass +{ + return [[self alloc] initWithClass:aClass]; +} + +- (id)initWithClass:(Class)aClass +{ + self = [super init]; + if (self) + _mockedClass = aClass; + return self; +} + +- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector +{ + return [_mockedClass instanceMethodSignatureForSelector:aSelector]; +} + + +#pragma mark NSObject protocol + +- (BOOL)isKindOfClass:(Class)aClass +{ + return [_mockedClass isSubclassOfClass:aClass]; +} + +- (BOOL)respondsToSelector:(SEL)aSelector +{ + return [_mockedClass instancesRespondToSelector:aSelector]; +} + +@end diff --git a/External/OCMockito.framework/Headers/MKTOngoingStubbing.h b/Tests/Pods/OCMockito/Source/OCMockito/MKTOngoingStubbing.h similarity index 100% rename from External/OCMockito.framework/Headers/MKTOngoingStubbing.h rename to Tests/Pods/OCMockito/Source/OCMockito/MKTOngoingStubbing.h diff --git a/Tests/Pods/OCMockito/Source/OCMockito/MKTOngoingStubbing.m b/Tests/Pods/OCMockito/Source/OCMockito/MKTOngoingStubbing.m new file mode 100644 index 000000000..63be399c0 --- /dev/null +++ b/Tests/Pods/OCMockito/Source/OCMockito/MKTOngoingStubbing.m @@ -0,0 +1,70 @@ +// +// OCMockito - MKTOngoingStubbing.m +// Copyright 2012 Jonathan M. Reid. See LICENSE.txt +// +// Created by: Jon Reid, http://qualitycoding.org/ +// Source: https://github.com/jonreid/OCMockito +// + +#import "MKTOngoingStubbing.h" + +#import "MKTInvocationContainer.h" + + +@implementation MKTOngoingStubbing +{ + MKTInvocationContainer *_invocationContainer; +} + +- (id)initWithInvocationContainer:(MKTInvocationContainer *)invocationContainer +{ + self = [super init]; + if (self) + _invocationContainer = invocationContainer; + return self; +} + +- (MKTOngoingStubbing *)willReturn:(id)object +{ + [_invocationContainer addAnswer:object]; + return self; +} + +#define DEFINE_RETURN_METHOD(type, typeName) \ + - (MKTOngoingStubbing *)willReturn ## typeName:(type)value \ + { \ + [_invocationContainer addAnswer:@(value)]; \ + return self; \ + } + +DEFINE_RETURN_METHOD(BOOL, Bool) +DEFINE_RETURN_METHOD(char, Char) +DEFINE_RETURN_METHOD(int, Int) +DEFINE_RETURN_METHOD(short, Short) +DEFINE_RETURN_METHOD(long, Long) +DEFINE_RETURN_METHOD(long long, LongLong) +DEFINE_RETURN_METHOD(NSInteger, Integer) +DEFINE_RETURN_METHOD(unsigned char, UnsignedChar) +DEFINE_RETURN_METHOD(unsigned int, UnsignedInt) +DEFINE_RETURN_METHOD(unsigned short, UnsignedShort) +DEFINE_RETURN_METHOD(unsigned long, UnsignedLong) +DEFINE_RETURN_METHOD(unsigned long long, UnsignedLongLong) +DEFINE_RETURN_METHOD(NSUInteger, UnsignedInteger) +DEFINE_RETURN_METHOD(float, Float) +DEFINE_RETURN_METHOD(double, Double) + + +#pragma mark MKTPrimitiveArgumentMatching + +- (id)withMatcher:(id )matcher forArgument:(NSUInteger)index +{ + [_invocationContainer setMatcher:matcher atIndex:index+2]; + return self; +} + +- (id)withMatcher:(id )matcher +{ + return [self withMatcher:matcher forArgument:0]; +} + +@end diff --git a/External/OCMockito.framework/Headers/MKTPrimitiveArgumentMatching.h b/Tests/Pods/OCMockito/Source/OCMockito/MKTPrimitiveArgumentMatching.h similarity index 100% rename from External/OCMockito.framework/Headers/MKTPrimitiveArgumentMatching.h rename to Tests/Pods/OCMockito/Source/OCMockito/MKTPrimitiveArgumentMatching.h diff --git a/External/OCMockito.framework/Headers/MKTProtocolMock.h b/Tests/Pods/OCMockito/Source/OCMockito/MKTProtocolMock.h similarity index 100% rename from External/OCMockito.framework/Headers/MKTProtocolMock.h rename to Tests/Pods/OCMockito/Source/OCMockito/MKTProtocolMock.h diff --git a/Tests/Pods/OCMockito/Source/OCMockito/MKTProtocolMock.m b/Tests/Pods/OCMockito/Source/OCMockito/MKTProtocolMock.m new file mode 100644 index 000000000..575a790bd --- /dev/null +++ b/Tests/Pods/OCMockito/Source/OCMockito/MKTProtocolMock.m @@ -0,0 +1,55 @@ +// +// OCMockito - MKTProtocolMock.m +// Copyright 2012 Jonathan M. Reid. See LICENSE.txt +// +// Created by: Jon Reid, http://qualitycoding.org/ +// Source: https://github.com/jonreid/OCMockito +// + +#import "MKTProtocolMock.h" + +#import + + +@implementation MKTProtocolMock +{ + Protocol *_mockedProtocol; +} + ++ (id)mockForProtocol:(Protocol *)aProtocol +{ + return [[self alloc] initWithProtocol:aProtocol]; +} + +- (id)initWithProtocol:(Protocol *)aProtocol +{ + self = [super init]; + if (self) + _mockedProtocol = aProtocol; + return self; +} + +- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector +{ + struct objc_method_description methodDescription = protocol_getMethodDescription(_mockedProtocol, aSelector, YES, YES); + if (!methodDescription.name) + methodDescription = protocol_getMethodDescription(_mockedProtocol, aSelector, NO, YES); + if (!methodDescription.name) + return nil; + return [NSMethodSignature signatureWithObjCTypes:methodDescription.types]; +} + + +#pragma mark NSObject protocol + +- (BOOL)conformsToProtocol:(Protocol *)aProtocol +{ + return protocol_conformsToProtocol(_mockedProtocol, aProtocol); +} + +- (BOOL)respondsToSelector:(SEL)aSelector +{ + return [self methodSignatureForSelector:aSelector] != nil; +} + +@end diff --git a/Tests/Pods/OCMockito/Source/OCMockito/MKTStubbedInvocationMatcher.h b/Tests/Pods/OCMockito/Source/OCMockito/MKTStubbedInvocationMatcher.h new file mode 100644 index 000000000..4d981f856 --- /dev/null +++ b/Tests/Pods/OCMockito/Source/OCMockito/MKTStubbedInvocationMatcher.h @@ -0,0 +1,16 @@ +// +// OCMockito - MKTStubbedInvocationMatcher.h +// Copyright 2012 Jonathan M. Reid. See LICENSE.txt +// +// Created by: Jon Reid, http://qualitycoding.org/ +// Source: https://github.com/jonreid/OCMockito +// + +#import "MKTInvocationMatcher.h" + + +@interface MKTStubbedInvocationMatcher : MKTInvocationMatcher + +@property (nonatomic, strong) id answer; + +@end diff --git a/Tests/Pods/OCMockito/Source/OCMockito/MKTStubbedInvocationMatcher.m b/Tests/Pods/OCMockito/Source/OCMockito/MKTStubbedInvocationMatcher.m new file mode 100644 index 000000000..93c229aa1 --- /dev/null +++ b/Tests/Pods/OCMockito/Source/OCMockito/MKTStubbedInvocationMatcher.m @@ -0,0 +1,13 @@ +// +// OCMockito - MKTStubbedInvocationMatcher.m +// Copyright 2012 Jonathan M. Reid. See LICENSE.txt +// +// Created by: Jon Reid, http://qualitycoding.org/ +// Source: https://github.com/jonreid/OCMockito +// + +#import "MKTStubbedInvocationMatcher.h" + + +@implementation MKTStubbedInvocationMatcher +@end diff --git a/Tests/Pods/OCMockito/Source/OCMockito/MKTTestLocation.h b/Tests/Pods/OCMockito/Source/OCMockito/MKTTestLocation.h new file mode 100644 index 000000000..f22d07960 --- /dev/null +++ b/Tests/Pods/OCMockito/Source/OCMockito/MKTTestLocation.h @@ -0,0 +1,30 @@ +// +// OCMockito - MKTTestLocation.h +// Copyright 2012 Jonathan M. Reid. See LICENSE.txt +// +// Created by: Jon Reid, http://qualitycoding.org/ +// Source: https://github.com/jonreid/OCMockito +// + +#import + + +typedef struct +{ + __unsafe_unretained id testCase; + const char *fileName; + int lineNumber; +} MKTTestLocation; + + +static inline MKTTestLocation MKTTestLocationMake(id test, const char *file, int line) +{ + MKTTestLocation location; + location.testCase = test; + location.fileName = file; + location.lineNumber = line; + return location; +} + +void MKTFailTest(id testCase, const char *fileName, int lineNumber, NSString *description); +void MKTFailTestLocation(MKTTestLocation testLocation, NSString *description); diff --git a/Tests/Pods/OCMockito/Source/OCMockito/MKTTestLocation.m b/Tests/Pods/OCMockito/Source/OCMockito/MKTTestLocation.m new file mode 100644 index 000000000..e1d973cbd --- /dev/null +++ b/Tests/Pods/OCMockito/Source/OCMockito/MKTTestLocation.m @@ -0,0 +1,35 @@ +// +// OCMockito - MKTTestLocation.m +// Copyright 2012 Jonathan M. Reid. See LICENSE.txt +// +// Created by: Jon Reid, http://qualitycoding.org/ +// Source: https://github.com/jonreid/OCMockito +// + +#import "MKTTestLocation.h" + +#import "MKTException.h" + + +// 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 http://openradar.appspot.com/8081169 ) So instead of +// using an NSInvocation to call -failWithException: without linking in SenTestingKit, we simply +// pretend it exists on NSObject. +@interface NSObject (MTExceptionBugHack) +- (void)failWithException:(NSException *)exception; +@end + + +void MKTFailTest(id testCase, const char *fileName, int lineNumber, NSString *description) +{ + NSString *theFileName = @(fileName); + NSException *failure = [MKTException failureInFile:theFileName + atLine:lineNumber + reason:description]; + [testCase failWithException:failure]; +} + +void MKTFailTestLocation(MKTTestLocation testLocation, NSString *description) +{ + MKTFailTest(testLocation.testCase, testLocation.fileName, testLocation.lineNumber, description); +} diff --git a/Tests/Pods/OCMockito/Source/OCMockito/MKTTypeEncoding.h b/Tests/Pods/OCMockito/Source/OCMockito/MKTTypeEncoding.h new file mode 100644 index 000000000..ae0a4a67a --- /dev/null +++ b/Tests/Pods/OCMockito/Source/OCMockito/MKTTypeEncoding.h @@ -0,0 +1,13 @@ +// +// OCMockito - MKTTypeEncoding.h +// Copyright 2012 Jonathan M. Reid. All rights reserved. +// +// Created by: Jon Reid, http://qualitycoding.org/ +// Source: https://github.com/jonreid/OCMockito +// + + +static inline BOOL MKTTypeEncodingIsObjectOrClass(const char *type) +{ + return strcmp(type, @encode(id)) == 0 || strcmp(type, @encode(Class)) == 0; +} diff --git a/Tests/Pods/OCMockito/Source/OCMockito/MKTVerificationData.h b/Tests/Pods/OCMockito/Source/OCMockito/MKTVerificationData.h new file mode 100644 index 000000000..1f3cfb4b8 --- /dev/null +++ b/Tests/Pods/OCMockito/Source/OCMockito/MKTVerificationData.h @@ -0,0 +1,23 @@ +// +// OCMockito - MKTVerificationData.h +// Copyright 2012 Jonathan M. Reid. See LICENSE.txt +// +// Created by: Jon Reid, http://qualitycoding.org/ +// Source: https://github.com/jonreid/OCMockito +// + +#import + +#import "MKTTestLocation.h" + +@class MKTInvocationContainer; +@class MKTInvocationMatcher; + + +@interface MKTVerificationData : NSObject + +@property (nonatomic, strong) MKTInvocationContainer *invocations; +@property (nonatomic, strong) MKTInvocationMatcher *wanted; +@property (nonatomic, assign) MKTTestLocation testLocation; + +@end diff --git a/Tests/Pods/OCMockito/Source/OCMockito/MKTVerificationData.m b/Tests/Pods/OCMockito/Source/OCMockito/MKTVerificationData.m new file mode 100644 index 000000000..bbd376af7 --- /dev/null +++ b/Tests/Pods/OCMockito/Source/OCMockito/MKTVerificationData.m @@ -0,0 +1,13 @@ +// +// OCMockito - MKTVerificationData.m +// Copyright 2012 Jonathan M. Reid. See LICENSE.txt +// +// Created by: Jon Reid, http://qualitycoding.org/ +// Source: https://github.com/jonreid/OCMockito +// + +#import "MKTVerificationData.h" + + +@implementation MKTVerificationData +@end diff --git a/External/OCMockito.framework/Versions/A/Headers/MKTBaseMockObject.h b/Tests/Pods/OCMockito/Source/OCMockito/MKTVerificationMode.h similarity index 56% rename from External/OCMockito.framework/Versions/A/Headers/MKTBaseMockObject.h rename to Tests/Pods/OCMockito/Source/OCMockito/MKTVerificationMode.h index 5a3e35d03..0b457b8d8 100644 --- a/External/OCMockito.framework/Versions/A/Headers/MKTBaseMockObject.h +++ b/Tests/Pods/OCMockito/Source/OCMockito/MKTVerificationMode.h @@ -1,5 +1,5 @@ // -// OCMockito - MKTBaseMockObject.h +// OCMockito - MKTVerificationMode.h // Copyright 2012 Jonathan M. Reid. See LICENSE.txt // // Created by: Jon Reid, http://qualitycoding.org/ @@ -7,11 +7,12 @@ // #import -#import "MKTPrimitiveArgumentMatching.h" +@class MKTVerificationData; -@interface MKTBaseMockObject : NSProxy -- (id)init; +@protocol MKTVerificationMode + +- (void)verifyData:(MKTVerificationData *)data; @end diff --git a/External/OCMockito.framework/Headers/OCMockito.h b/Tests/Pods/OCMockito/Source/OCMockito/OCMockito.h similarity index 100% rename from External/OCMockito.framework/Headers/OCMockito.h rename to Tests/Pods/OCMockito/Source/OCMockito/OCMockito.h diff --git a/Tests/Pods/OCMockito/Source/OCMockito/OCMockito.m b/Tests/Pods/OCMockito/Source/OCMockito/OCMockito.m new file mode 100644 index 000000000..4f63cf8b4 --- /dev/null +++ b/Tests/Pods/OCMockito/Source/OCMockito/OCMockito.m @@ -0,0 +1,85 @@ +// +// OCMockito - OCMockito.m +// Copyright 2012 Jonathan M. Reid. See LICENSE.txt +// +// Created by: Jon Reid, http://qualitycoding.org/ +// Source: https://github.com/jonreid/OCMockito +// + +#import "OCMockito.h" + +#import "MKTAtLeastTimes.h" +#import "MKTExactTimes.h" +#import "MKTMockitoCore.h" +#import "MKTTestLocation.h" + + +static BOOL isValidMock(id mock, id testCase, const char *fileName, int lineNumber, NSString *functionName) +{ + NSString *underlyingClassName = NSStringFromClass([mock class]); + if (!([underlyingClassName isEqualToString:@"MKTObjectMock"] || + [underlyingClassName isEqualToString:@"MKTProtocolMock"] || + [underlyingClassName isEqualToString:@"MKTClassObjectMock"] || + [underlyingClassName isEqualToString:@"MKTObjectAndProtocolMock"])) + { + NSString *actual = nil; + if (!underlyingClassName) + actual = @"nil"; + else + actual = [@"type " stringByAppendingString:underlyingClassName]; + + NSString *description = [NSString stringWithFormat: + @"Argument passed to %@ should be a mock but is %@", + functionName, actual]; + MKTFailTest(testCase, fileName, lineNumber, description); + return NO; + } + + return YES; +} + + +MKTOngoingStubbing *MKTGivenWithLocation(id testCase, const char *fileName, int lineNumber, ...) +{ + MKTMockitoCore *mockitoCore = [MKTMockitoCore sharedCore]; + return [mockitoCore stubAtLocation:MKTTestLocationMake(testCase, fileName, lineNumber)]; +} + +id MKTVerifyWithLocation(id mock, id testCase, const char *fileName, int lineNumber) +{ + if (!isValidMock(mock, testCase, fileName, lineNumber, @"verify()")) + return nil; + + return MKTVerifyCountWithLocation(mock, MKTTimes(1), testCase, fileName, lineNumber); +} + +id MKTVerifyCountWithLocation(id mock, id mode, id testCase, const char *fileName, int lineNumber) +{ + if (!isValidMock(mock, testCase, fileName, lineNumber, @"verifyCount()")) + return nil; + + MKTMockitoCore *mockitoCore = [MKTMockitoCore sharedCore]; + return [mockitoCore verifyMock:mock + withMode:mode + atLocation:MKTTestLocationMake(testCase, fileName, lineNumber)]; +} + +id MKTTimes(NSUInteger wantedNumberOfInvocations) +{ + return [MKTExactTimes timesWithCount:wantedNumberOfInvocations]; +} + +id MKTNever() +{ + return MKTTimes(0); +} + +id MKTAtLeast(NSUInteger minimumWantedNumberOfInvocations) +{ + return [MKTAtLeastTimes timesWithMinimumCount:minimumWantedNumberOfInvocations]; +} + +id MKTAtLeastOnce() +{ + return MKTAtLeast(1); +} diff --git a/Tests/Pods/Pods-ios-OCHamcrest-Private.xcconfig b/Tests/Pods/Pods-ios-OCHamcrest-Private.xcconfig new file mode 100644 index 000000000..380f7af97 --- /dev/null +++ b/Tests/Pods/Pods-ios-OCHamcrest-Private.xcconfig @@ -0,0 +1,5 @@ +#include "Pods-ios-OCHamcrest.xcconfig" +GCC_PREPROCESSOR_DEFINITIONS = COCOAPODS=1 +HEADER_SEARCH_PATHS = "${PODS_ROOT}/BuildHeaders" "${PODS_ROOT}/BuildHeaders/OCHamcrest" "${PODS_ROOT}/Headers" "${PODS_ROOT}/Headers/OCHamcrest" "${PODS_ROOT}/Headers/OCMockito" "${PODS_ROOT}/Headers/Typhoon" +OTHER_LDFLAGS = -ObjC +PODS_ROOT = ${SRCROOT} \ No newline at end of file diff --git a/Tests/Pods/Pods-ios-OCHamcrest-dummy.m b/Tests/Pods/Pods-ios-OCHamcrest-dummy.m new file mode 100644 index 000000000..6cc0b3440 --- /dev/null +++ b/Tests/Pods/Pods-ios-OCHamcrest-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_Pods_ios_OCHamcrest : NSObject +@end +@implementation PodsDummy_Pods_ios_OCHamcrest +@end diff --git a/Tests/Pods/Pods-ios-OCHamcrest-prefix.pch b/Tests/Pods/Pods-ios-OCHamcrest-prefix.pch new file mode 100644 index 000000000..4c5f80bbf --- /dev/null +++ b/Tests/Pods/Pods-ios-OCHamcrest-prefix.pch @@ -0,0 +1,5 @@ +#ifdef __OBJC__ +#import +#endif + +#import "Pods-ios-environment.h" diff --git a/Tests/Pods/Pods-ios-OCHamcrest.xcconfig b/Tests/Pods/Pods-ios-OCHamcrest.xcconfig new file mode 100644 index 000000000..e69de29bb diff --git a/Tests/Pods/Pods-ios-OCMockito-Private.xcconfig b/Tests/Pods/Pods-ios-OCMockito-Private.xcconfig new file mode 100644 index 000000000..f9f98c772 --- /dev/null +++ b/Tests/Pods/Pods-ios-OCMockito-Private.xcconfig @@ -0,0 +1,5 @@ +#include "Pods-ios-OCMockito.xcconfig" +GCC_PREPROCESSOR_DEFINITIONS = COCOAPODS=1 +HEADER_SEARCH_PATHS = "${PODS_ROOT}/BuildHeaders" "${PODS_ROOT}/BuildHeaders/OCMockito" "${PODS_ROOT}/Headers" "${PODS_ROOT}/Headers/OCHamcrest" "${PODS_ROOT}/Headers/OCMockito" "${PODS_ROOT}/Headers/Typhoon" +OTHER_LDFLAGS = -ObjC +PODS_ROOT = ${SRCROOT} \ No newline at end of file diff --git a/Tests/Pods/Pods-ios-OCMockito-dummy.m b/Tests/Pods/Pods-ios-OCMockito-dummy.m new file mode 100644 index 000000000..b85ecdca5 --- /dev/null +++ b/Tests/Pods/Pods-ios-OCMockito-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_Pods_ios_OCMockito : NSObject +@end +@implementation PodsDummy_Pods_ios_OCMockito +@end diff --git a/Tests/Pods/Pods-ios-OCMockito-prefix.pch b/Tests/Pods/Pods-ios-OCMockito-prefix.pch new file mode 100644 index 000000000..4c5f80bbf --- /dev/null +++ b/Tests/Pods/Pods-ios-OCMockito-prefix.pch @@ -0,0 +1,5 @@ +#ifdef __OBJC__ +#import +#endif + +#import "Pods-ios-environment.h" diff --git a/Tests/Pods/Pods-ios-OCMockito.xcconfig b/Tests/Pods/Pods-ios-OCMockito.xcconfig new file mode 100644 index 000000000..e69de29bb diff --git a/Tests/Pods/Pods-ios-Typhoon-Private.xcconfig b/Tests/Pods/Pods-ios-Typhoon-Private.xcconfig new file mode 100644 index 000000000..c65cb3b57 --- /dev/null +++ b/Tests/Pods/Pods-ios-Typhoon-Private.xcconfig @@ -0,0 +1,5 @@ +#include "Pods-ios-Typhoon.xcconfig" +GCC_PREPROCESSOR_DEFINITIONS = COCOAPODS=1 +HEADER_SEARCH_PATHS = "${PODS_ROOT}/BuildHeaders" "${PODS_ROOT}/BuildHeaders/Typhoon" "${PODS_ROOT}/Headers" "${PODS_ROOT}/Headers/OCHamcrest" "${PODS_ROOT}/Headers/OCMockito" "${PODS_ROOT}/Headers/Typhoon" ${PODS_IOS_TYPHOON_HEADER_SEARCH_PATHS} +OTHER_LDFLAGS = -ObjC ${PODS_IOS_TYPHOON_OTHER_LDFLAGS} +PODS_ROOT = ${SRCROOT} \ No newline at end of file diff --git a/Tests/Pods/Pods-ios-Typhoon-dummy.m b/Tests/Pods/Pods-ios-Typhoon-dummy.m new file mode 100644 index 000000000..bfae1b8af --- /dev/null +++ b/Tests/Pods/Pods-ios-Typhoon-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_Pods_ios_Typhoon : NSObject +@end +@implementation PodsDummy_Pods_ios_Typhoon +@end diff --git a/Tests/Pods/Pods-ios-Typhoon-prefix.pch b/Tests/Pods/Pods-ios-Typhoon-prefix.pch new file mode 100644 index 000000000..4c5f80bbf --- /dev/null +++ b/Tests/Pods/Pods-ios-Typhoon-prefix.pch @@ -0,0 +1,5 @@ +#ifdef __OBJC__ +#import +#endif + +#import "Pods-ios-environment.h" diff --git a/Tests/Pods/Pods-ios-Typhoon.xcconfig b/Tests/Pods/Pods-ios-Typhoon.xcconfig new file mode 100644 index 000000000..9831db519 --- /dev/null +++ b/Tests/Pods/Pods-ios-Typhoon.xcconfig @@ -0,0 +1,2 @@ +PODS_IOS_TYPHOON_HEADER_SEARCH_PATHS = $(SDKROOT)/usr/include/libxml2 +PODS_IOS_TYPHOON_OTHER_LDFLAGS = -lxml2 -lz \ No newline at end of file diff --git a/Tests/Pods/Pods-ios-acknowledgements.markdown b/Tests/Pods/Pods-ios-acknowledgements.markdown new file mode 100644 index 000000000..bc3e4ccb4 --- /dev/null +++ b/Tests/Pods/Pods-ios-acknowledgements.markdown @@ -0,0 +1,264 @@ +# Acknowledgements +This application makes use of the following third party libraries: + +## OCHamcrest + +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. + + +## OCMockito + +The MIT License + +Copyright (c) 2007 Mockito contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +## Typhoon + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + +Generated by CocoaPods - http://cocoapods.org diff --git a/Tests/Pods/Pods-ios-acknowledgements.plist b/Tests/Pods/Pods-ios-acknowledgements.plist new file mode 100644 index 000000000..85c91519a --- /dev/null +++ b/Tests/Pods/Pods-ios-acknowledgements.plist @@ -0,0 +1,302 @@ + + + + + PreferenceSpecifiers + + + FooterText + This application makes use of the following third party libraries: + Title + Acknowledgements + Type + PSGroupSpecifier + + + FooterText + 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. + + Title + OCHamcrest + Type + PSGroupSpecifier + + + FooterText + The MIT License + +Copyright (c) 2007 Mockito contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + Title + OCMockito + Type + PSGroupSpecifier + + + FooterText + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + + Title + Typhoon + Type + PSGroupSpecifier + + + FooterText + Generated by CocoaPods - http://cocoapods.org + Title + + Type + PSGroupSpecifier + + + StringsTable + Acknowledgements + Title + Acknowledgements + + diff --git a/Tests/Pods/Pods-ios-dummy.m b/Tests/Pods/Pods-ios-dummy.m new file mode 100644 index 000000000..f8f6a16c8 --- /dev/null +++ b/Tests/Pods/Pods-ios-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_Pods_ios : NSObject +@end +@implementation PodsDummy_Pods_ios +@end diff --git a/Tests/Pods/Pods-ios-environment.h b/Tests/Pods/Pods-ios-environment.h new file mode 100644 index 000000000..d074e3bde --- /dev/null +++ b/Tests/Pods/Pods-ios-environment.h @@ -0,0 +1,26 @@ + +// To check if a library is compiled with CocoaPods you +// can use the `COCOAPODS` macro definition which is +// defined in the xcconfigs so it is available in +// headers also when they are imported in the client +// project. + + +// OCHamcrest +#define COCOAPODS_POD_AVAILABLE_OCHamcrest +#define COCOAPODS_VERSION_MAJOR_OCHamcrest 1 +#define COCOAPODS_VERSION_MINOR_OCHamcrest 9 +#define COCOAPODS_VERSION_PATCH_OCHamcrest 0 + +// OCMockito +#define COCOAPODS_POD_AVAILABLE_OCMockito +#define COCOAPODS_VERSION_MAJOR_OCMockito 0 +#define COCOAPODS_VERSION_MINOR_OCMockito 23 +#define COCOAPODS_VERSION_PATCH_OCMockito 0 + +// Typhoon +#define COCOAPODS_POD_AVAILABLE_Typhoon +#define COCOAPODS_VERSION_MAJOR_Typhoon 1 +#define COCOAPODS_VERSION_MINOR_Typhoon 2 +#define COCOAPODS_VERSION_PATCH_Typhoon 2 + diff --git a/Tests/Pods/Pods-ios-resources.sh b/Tests/Pods/Pods-ios-resources.sh new file mode 100755 index 000000000..aea76a61e --- /dev/null +++ b/Tests/Pods/Pods-ios-resources.sh @@ -0,0 +1,36 @@ +#!/bin/sh +set -e + +RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt +> "$RESOURCES_TO_COPY" + +install_resource() +{ + case $1 in + *.storyboard) + echo "ibtool --errors --warnings --notices --output-format human-readable-text --compile ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .storyboard`.storyboardc ${PODS_ROOT}/$1 --sdk ${SDKROOT}" + ibtool --errors --warnings --notices --output-format human-readable-text --compile "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .storyboard`.storyboardc" "${PODS_ROOT}/$1" --sdk "${SDKROOT}" + ;; + *.xib) + echo "ibtool --errors --warnings --notices --output-format human-readable-text --compile ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .xib`.nib ${PODS_ROOT}/$1 --sdk ${SDKROOT}" + ibtool --errors --warnings --notices --output-format human-readable-text --compile "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .xib`.nib" "${PODS_ROOT}/$1" --sdk "${SDKROOT}" + ;; + *.framework) + echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + echo "cp -fpR ${PODS_ROOT}/$1 ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + cp -fpR "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + ;; + *.xcdatamodeld) + echo "xcrun momc ${PODS_ROOT}/$1 ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename $1 .xcdatamodeld`.momd" + xcrun momc "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename $1 .xcdatamodeld`.momd" + ;; + *) + echo "${PODS_ROOT}/$1" + echo "${PODS_ROOT}/$1" >> "$RESOURCES_TO_COPY" + ;; + esac +} + +rsync -avr --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" +rm "$RESOURCES_TO_COPY" diff --git a/Tests/Pods/Pods-ios.xcconfig b/Tests/Pods/Pods-ios.xcconfig new file mode 100644 index 000000000..c228b78b8 --- /dev/null +++ b/Tests/Pods/Pods-ios.xcconfig @@ -0,0 +1,4 @@ +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers" "${PODS_ROOT}/Headers/OCHamcrest" "${PODS_ROOT}/Headers/OCMockito" "${PODS_ROOT}/Headers/Typhoon" $(SDKROOT)/usr/include/libxml2 +OTHER_LDFLAGS = -ObjC -lxml2 -lz +PODS_ROOT = ${SRCROOT}/Pods \ No newline at end of file diff --git a/Tests/Pods/Pods-osx-OCHamcrest-Private.xcconfig b/Tests/Pods/Pods-osx-OCHamcrest-Private.xcconfig new file mode 100644 index 000000000..50a91ac3b --- /dev/null +++ b/Tests/Pods/Pods-osx-OCHamcrest-Private.xcconfig @@ -0,0 +1,5 @@ +#include "Pods-osx-OCHamcrest.xcconfig" +GCC_PREPROCESSOR_DEFINITIONS = COCOAPODS=1 +HEADER_SEARCH_PATHS = "${PODS_ROOT}/BuildHeaders" "${PODS_ROOT}/BuildHeaders/OCHamcrest" "${PODS_ROOT}/Headers" "${PODS_ROOT}/Headers/OCHamcrest" "${PODS_ROOT}/Headers/OCMockito" "${PODS_ROOT}/Headers/Typhoon" +OTHER_LDFLAGS = -ObjC +PODS_ROOT = ${SRCROOT} \ No newline at end of file diff --git a/Tests/Pods/Pods-osx-OCHamcrest-dummy.m b/Tests/Pods/Pods-osx-OCHamcrest-dummy.m new file mode 100644 index 000000000..26ea93774 --- /dev/null +++ b/Tests/Pods/Pods-osx-OCHamcrest-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_Pods_osx_OCHamcrest : NSObject +@end +@implementation PodsDummy_Pods_osx_OCHamcrest +@end diff --git a/Tests/Pods/Pods-osx-OCHamcrest-prefix.pch b/Tests/Pods/Pods-osx-OCHamcrest-prefix.pch new file mode 100644 index 000000000..ee6609cd0 --- /dev/null +++ b/Tests/Pods/Pods-osx-OCHamcrest-prefix.pch @@ -0,0 +1,5 @@ +#ifdef __OBJC__ +#import +#endif + +#import "Pods-osx-environment.h" diff --git a/Tests/Pods/Pods-osx-OCHamcrest.xcconfig b/Tests/Pods/Pods-osx-OCHamcrest.xcconfig new file mode 100644 index 000000000..e69de29bb diff --git a/Tests/Pods/Pods-osx-OCMockito-Private.xcconfig b/Tests/Pods/Pods-osx-OCMockito-Private.xcconfig new file mode 100644 index 000000000..c94fb59e8 --- /dev/null +++ b/Tests/Pods/Pods-osx-OCMockito-Private.xcconfig @@ -0,0 +1,5 @@ +#include "Pods-osx-OCMockito.xcconfig" +GCC_PREPROCESSOR_DEFINITIONS = COCOAPODS=1 +HEADER_SEARCH_PATHS = "${PODS_ROOT}/BuildHeaders" "${PODS_ROOT}/BuildHeaders/OCMockito" "${PODS_ROOT}/Headers" "${PODS_ROOT}/Headers/OCHamcrest" "${PODS_ROOT}/Headers/OCMockito" "${PODS_ROOT}/Headers/Typhoon" +OTHER_LDFLAGS = -ObjC +PODS_ROOT = ${SRCROOT} \ No newline at end of file diff --git a/Tests/Pods/Pods-osx-OCMockito-dummy.m b/Tests/Pods/Pods-osx-OCMockito-dummy.m new file mode 100644 index 000000000..14b8a5d7b --- /dev/null +++ b/Tests/Pods/Pods-osx-OCMockito-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_Pods_osx_OCMockito : NSObject +@end +@implementation PodsDummy_Pods_osx_OCMockito +@end diff --git a/Tests/Pods/Pods-osx-OCMockito-prefix.pch b/Tests/Pods/Pods-osx-OCMockito-prefix.pch new file mode 100644 index 000000000..ee6609cd0 --- /dev/null +++ b/Tests/Pods/Pods-osx-OCMockito-prefix.pch @@ -0,0 +1,5 @@ +#ifdef __OBJC__ +#import +#endif + +#import "Pods-osx-environment.h" diff --git a/Tests/Pods/Pods-osx-OCMockito.xcconfig b/Tests/Pods/Pods-osx-OCMockito.xcconfig new file mode 100644 index 000000000..e69de29bb diff --git a/Tests/Pods/Pods-osx-Typhoon-Private.xcconfig b/Tests/Pods/Pods-osx-Typhoon-Private.xcconfig new file mode 100644 index 000000000..9090db323 --- /dev/null +++ b/Tests/Pods/Pods-osx-Typhoon-Private.xcconfig @@ -0,0 +1,5 @@ +#include "Pods-osx-Typhoon.xcconfig" +GCC_PREPROCESSOR_DEFINITIONS = COCOAPODS=1 +HEADER_SEARCH_PATHS = "${PODS_ROOT}/BuildHeaders" "${PODS_ROOT}/BuildHeaders/Typhoon" "${PODS_ROOT}/Headers" "${PODS_ROOT}/Headers/OCHamcrest" "${PODS_ROOT}/Headers/OCMockito" "${PODS_ROOT}/Headers/Typhoon" ${PODS_OSX_TYPHOON_HEADER_SEARCH_PATHS} +OTHER_LDFLAGS = -ObjC ${PODS_OSX_TYPHOON_OTHER_LDFLAGS} +PODS_ROOT = ${SRCROOT} \ No newline at end of file diff --git a/Tests/Pods/Pods-osx-Typhoon-dummy.m b/Tests/Pods/Pods-osx-Typhoon-dummy.m new file mode 100644 index 000000000..759d50cf0 --- /dev/null +++ b/Tests/Pods/Pods-osx-Typhoon-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_Pods_osx_Typhoon : NSObject +@end +@implementation PodsDummy_Pods_osx_Typhoon +@end diff --git a/Tests/Pods/Pods-osx-Typhoon-prefix.pch b/Tests/Pods/Pods-osx-Typhoon-prefix.pch new file mode 100644 index 000000000..ee6609cd0 --- /dev/null +++ b/Tests/Pods/Pods-osx-Typhoon-prefix.pch @@ -0,0 +1,5 @@ +#ifdef __OBJC__ +#import +#endif + +#import "Pods-osx-environment.h" diff --git a/Tests/Pods/Pods-osx-Typhoon.xcconfig b/Tests/Pods/Pods-osx-Typhoon.xcconfig new file mode 100644 index 000000000..df3c6fab3 --- /dev/null +++ b/Tests/Pods/Pods-osx-Typhoon.xcconfig @@ -0,0 +1,2 @@ +PODS_OSX_TYPHOON_HEADER_SEARCH_PATHS = $(SDKROOT)/usr/include/libxml2 +PODS_OSX_TYPHOON_OTHER_LDFLAGS = -lxml2 -lz \ No newline at end of file diff --git a/Tests/Pods/Pods-osx-acknowledgements.markdown b/Tests/Pods/Pods-osx-acknowledgements.markdown new file mode 100644 index 000000000..bc3e4ccb4 --- /dev/null +++ b/Tests/Pods/Pods-osx-acknowledgements.markdown @@ -0,0 +1,264 @@ +# Acknowledgements +This application makes use of the following third party libraries: + +## OCHamcrest + +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. + + +## OCMockito + +The MIT License + +Copyright (c) 2007 Mockito contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +## Typhoon + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + +Generated by CocoaPods - http://cocoapods.org diff --git a/Tests/Pods/Pods-osx-acknowledgements.plist b/Tests/Pods/Pods-osx-acknowledgements.plist new file mode 100644 index 000000000..85c91519a --- /dev/null +++ b/Tests/Pods/Pods-osx-acknowledgements.plist @@ -0,0 +1,302 @@ + + + + + PreferenceSpecifiers + + + FooterText + This application makes use of the following third party libraries: + Title + Acknowledgements + Type + PSGroupSpecifier + + + FooterText + 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. + + Title + OCHamcrest + Type + PSGroupSpecifier + + + FooterText + The MIT License + +Copyright (c) 2007 Mockito contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + Title + OCMockito + Type + PSGroupSpecifier + + + FooterText + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + + Title + Typhoon + Type + PSGroupSpecifier + + + FooterText + Generated by CocoaPods - http://cocoapods.org + Title + + Type + PSGroupSpecifier + + + StringsTable + Acknowledgements + Title + Acknowledgements + + diff --git a/Tests/Pods/Pods-osx-dummy.m b/Tests/Pods/Pods-osx-dummy.m new file mode 100644 index 000000000..83b3fad64 --- /dev/null +++ b/Tests/Pods/Pods-osx-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_Pods_osx : NSObject +@end +@implementation PodsDummy_Pods_osx +@end diff --git a/Tests/Pods/Pods-osx-environment.h b/Tests/Pods/Pods-osx-environment.h new file mode 100644 index 000000000..d074e3bde --- /dev/null +++ b/Tests/Pods/Pods-osx-environment.h @@ -0,0 +1,26 @@ + +// To check if a library is compiled with CocoaPods you +// can use the `COCOAPODS` macro definition which is +// defined in the xcconfigs so it is available in +// headers also when they are imported in the client +// project. + + +// OCHamcrest +#define COCOAPODS_POD_AVAILABLE_OCHamcrest +#define COCOAPODS_VERSION_MAJOR_OCHamcrest 1 +#define COCOAPODS_VERSION_MINOR_OCHamcrest 9 +#define COCOAPODS_VERSION_PATCH_OCHamcrest 0 + +// OCMockito +#define COCOAPODS_POD_AVAILABLE_OCMockito +#define COCOAPODS_VERSION_MAJOR_OCMockito 0 +#define COCOAPODS_VERSION_MINOR_OCMockito 23 +#define COCOAPODS_VERSION_PATCH_OCMockito 0 + +// Typhoon +#define COCOAPODS_POD_AVAILABLE_Typhoon +#define COCOAPODS_VERSION_MAJOR_Typhoon 1 +#define COCOAPODS_VERSION_MINOR_Typhoon 2 +#define COCOAPODS_VERSION_PATCH_Typhoon 2 + diff --git a/Tests/Pods/Pods-osx-resources.sh b/Tests/Pods/Pods-osx-resources.sh new file mode 100755 index 000000000..aea76a61e --- /dev/null +++ b/Tests/Pods/Pods-osx-resources.sh @@ -0,0 +1,36 @@ +#!/bin/sh +set -e + +RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt +> "$RESOURCES_TO_COPY" + +install_resource() +{ + case $1 in + *.storyboard) + echo "ibtool --errors --warnings --notices --output-format human-readable-text --compile ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .storyboard`.storyboardc ${PODS_ROOT}/$1 --sdk ${SDKROOT}" + ibtool --errors --warnings --notices --output-format human-readable-text --compile "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .storyboard`.storyboardc" "${PODS_ROOT}/$1" --sdk "${SDKROOT}" + ;; + *.xib) + echo "ibtool --errors --warnings --notices --output-format human-readable-text --compile ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .xib`.nib ${PODS_ROOT}/$1 --sdk ${SDKROOT}" + ibtool --errors --warnings --notices --output-format human-readable-text --compile "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .xib`.nib" "${PODS_ROOT}/$1" --sdk "${SDKROOT}" + ;; + *.framework) + echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + echo "cp -fpR ${PODS_ROOT}/$1 ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + cp -fpR "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + ;; + *.xcdatamodeld) + echo "xcrun momc ${PODS_ROOT}/$1 ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename $1 .xcdatamodeld`.momd" + xcrun momc "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename $1 .xcdatamodeld`.momd" + ;; + *) + echo "${PODS_ROOT}/$1" + echo "${PODS_ROOT}/$1" >> "$RESOURCES_TO_COPY" + ;; + esac +} + +rsync -avr --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" +rm "$RESOURCES_TO_COPY" diff --git a/Tests/Pods/Pods-osx.xcconfig b/Tests/Pods/Pods-osx.xcconfig new file mode 100644 index 000000000..c228b78b8 --- /dev/null +++ b/Tests/Pods/Pods-osx.xcconfig @@ -0,0 +1,4 @@ +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers" "${PODS_ROOT}/Headers/OCHamcrest" "${PODS_ROOT}/Headers/OCMockito" "${PODS_ROOT}/Headers/Typhoon" $(SDKROOT)/usr/include/libxml2 +OTHER_LDFLAGS = -ObjC -lxml2 -lz +PODS_ROOT = ${SRCROOT}/Pods \ No newline at end of file diff --git a/Tests/Pods/Pods.xcodeproj/project.pbxproj b/Tests/Pods/Pods.xcodeproj/project.pbxproj new file mode 100644 index 000000000..889fe78e7 --- /dev/null +++ b/Tests/Pods/Pods.xcodeproj/project.pbxproj @@ -0,0 +1,2554 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 00B4A901A937479A85C1CB25 /* TyphoonRXMLElement+XmlComponentFactory.h in Headers */ = {isa = PBXBuildFile; fileRef = 2E567891663F4955BD63EA75 /* TyphoonRXMLElement+XmlComponentFactory.h */; }; + 00F89C65B9604B84A000DCFB /* TyphoonPropertyInjectedByValue.m in Sources */ = {isa = PBXBuildFile; fileRef = 03640C9FEDD149A9A6469570 /* TyphoonPropertyInjectedByValue.m */; settings = {COMPILER_FLAGS = "-fobjc-arc -DOS_OBJECT_USE_OBJC=0"; }; }; + 016CB22C9DE54F95BE62502C /* HCIsNot.m in Sources */ = {isa = PBXBuildFile; fileRef = FF3A47D0A1534D52A22214B5 /* HCIsNot.m */; }; + 017678BCEF46424DA9DEAD33 /* HCIsEqualIgnoringCase.h in Headers */ = {isa = PBXBuildFile; fileRef = 58EBBB6AB951490BB57E6542 /* HCIsEqualIgnoringCase.h */; }; + 01EFE372E38B42378AFE8D20 /* MKTStubbedInvocationMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 185E2BFCA26F43E6BA56D052 /* MKTStubbedInvocationMatcher.h */; }; + 03222D1DD2E94056A12D0A35 /* HCAnyOf.h in Headers */ = {isa = PBXBuildFile; fileRef = 52F5AB50B4174E29A6CA4C37 /* HCAnyOf.h */; }; + 038B3FF8E61846E88FE53DBF /* HCIsSame.h in Headers */ = {isa = PBXBuildFile; fileRef = 695CD0AD3EAA4A87B0A6D21B /* HCIsSame.h */; }; + 042E92AAA58A4DF0904DE022 /* TyphoonPropertyInjectedByValue.h in Headers */ = {isa = PBXBuildFile; fileRef = E01A8239888643FC88334763 /* TyphoonPropertyInjectedByValue.h */; }; + 0517BC5C135D43DC965A1741 /* HCConformsToProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = 25FBCBF295294BA78BDA6547 /* HCConformsToProtocol.h */; }; + 05220E9456314AB99524D64C /* HCIsCollectionOnlyContaining.h in Headers */ = {isa = PBXBuildFile; fileRef = 69DC020E96C744E4A4CF4421 /* HCIsCollectionOnlyContaining.h */; }; + 054CC3F6442E47A09F4B6224 /* HCIsCollectionContainingInOrder.m in Sources */ = {isa = PBXBuildFile; fileRef = 5E86D6173C294472AFF205FF /* HCIsCollectionContainingInOrder.m */; }; + 05A4546F19B34E429908262A /* HCIsDictionaryContainingValue.m in Sources */ = {isa = PBXBuildFile; fileRef = 5A681E29A2D54DAAAB8856E3 /* HCIsDictionaryContainingValue.m */; }; + 060304F65D584945A2FB0326 /* TyphoonInjectedProperty.h in Headers */ = {isa = PBXBuildFile; fileRef = D3E98434DBEE4372A177AF7C /* TyphoonInjectedProperty.h */; }; + 07123041713A408898F3B81B /* HCAssertThat.h in Headers */ = {isa = PBXBuildFile; fileRef = 4964367123D34192BC7933A6 /* HCAssertThat.h */; }; + 072B0436624F4D8D8AF60530 /* TyphoonDefinition.h in Headers */ = {isa = PBXBuildFile; fileRef = 8526CEB3901D4CF6A5152408 /* TyphoonDefinition.h */; }; + 08A0EC35EDF249DEA23BC04B /* TyphoonPropertyInjectedByType.h in Headers */ = {isa = PBXBuildFile; fileRef = 7B2CE525D43942929F3DB634 /* TyphoonPropertyInjectedByType.h */; }; + 08DA89FC55014D4EA1E5CF1A /* TyphoonIntrospectiveNSObject.h in Headers */ = {isa = PBXBuildFile; fileRef = F082D545B2AE4E11902AB578 /* TyphoonIntrospectiveNSObject.h */; }; + 0912FE841346401DB546127A /* MKTMockingProgress.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C9ED326AEBE4336A04EECFA /* MKTMockingProgress.m */; }; + 09701EAF079848EF8236E37C /* MKTExactTimes.m in Sources */ = {isa = PBXBuildFile; fileRef = 82AD35B543084944BD51EB01 /* MKTExactTimes.m */; }; + 09D341212E73474DA50B48EF /* HCStringContainsInOrder.m in Sources */ = {isa = PBXBuildFile; fileRef = 7696F2CB26584E95B703FA5C /* HCStringContainsInOrder.m */; }; + 0B2120D646714179996D3289 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3482A30FCB374C56B7632828 /* Cocoa.framework */; }; + 0B254BE78B144D7885EAA444 /* MKTMockitoCore.m in Sources */ = {isa = PBXBuildFile; fileRef = 07227EEF03A64FABA6F8B829 /* MKTMockitoCore.m */; }; + 0BE392B82B4B4739AB60EFF8 /* TyphoonInitializer+InstanceBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 9D0AF0C5500B4F67B268224A /* TyphoonInitializer+InstanceBuilder.h */; }; + 0CEFBA592F044AF7B4F676DF /* HCSubstringMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 5A7D002BE680438A9ED9DB3A /* HCSubstringMatcher.m */; }; + 0D1428AD0D854F18AB34778E /* HCIsDictionaryContainingValue.h in Headers */ = {isa = PBXBuildFile; fileRef = 6883140368BF48C68C891B62 /* HCIsDictionaryContainingValue.h */; }; + 0F17EA170BED47BA9E052A43 /* Pods-ios-OCHamcrest-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = F455871ADB104EC1B8A6DB8B /* Pods-ios-OCHamcrest-dummy.m */; }; + 108D5A27F38F42D9A115F1F8 /* TyphoonPropertyInjectedAsCollection.h in Headers */ = {isa = PBXBuildFile; fileRef = EDA22F4932CA453D94B728EF /* TyphoonPropertyInjectedAsCollection.h */; }; + 10D76D8B785D4C1981605BCF /* HCIsCollectionContaining.m in Sources */ = {isa = PBXBuildFile; fileRef = 80479D96ECA3462889095AB3 /* HCIsCollectionContaining.m */; }; + 11039FF2064E43A1B42C5E1B /* TyphoonIntrospectiveNSObject.h in Headers */ = {isa = PBXBuildFile; fileRef = F082D545B2AE4E11902AB578 /* TyphoonIntrospectiveNSObject.h */; }; + 11D49985DF5D425080963C41 /* TyphoonPropertyInjectionDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = BD6C0ACD75414FAE94E71246 /* TyphoonPropertyInjectionDelegate.h */; }; + 11F50BFFC20F4EC5970D2413 /* TyphoonRXMLElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EE9FF8A75D54C5FB1A611C7 /* TyphoonRXMLElement.m */; settings = {COMPILER_FLAGS = "-fobjc-arc -DOS_OBJECT_USE_OBJC=0"; }; }; + 127F8AAC8542474F9E795F10 /* HCStringContains.h in Headers */ = {isa = PBXBuildFile; fileRef = 6550AB43F1A74BD8A1BF4152 /* HCStringContains.h */; }; + 128F69608AA345B281DCDBD0 /* TyphoonInitializer+InstanceBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 764A045F4D964DEE9FA2C71B /* TyphoonInitializer+InstanceBuilder.m */; settings = {COMPILER_FLAGS = "-fobjc-arc -DOS_OBJECT_USE_OBJC=0"; }; }; + 12F59CF202E34F3D904EB7AB /* MKTVerificationMode.h in Headers */ = {isa = PBXBuildFile; fileRef = CB6C064DF299400AB26F38B5 /* MKTVerificationMode.h */; }; + 12FEDD3229C4417393C7D9EC /* MKTStubbedInvocationMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 3458B8AD68D1400490D5C55F /* MKTStubbedInvocationMatcher.m */; }; + 13AC8221FEC24D06BD2F60F3 /* TyphoonTypeDescriptor.h in Headers */ = {isa = PBXBuildFile; fileRef = 6196035D745A40F4B7449944 /* TyphoonTypeDescriptor.h */; }; + 1468D904EC7F415FB2C326EA /* HCIsCloseTo.h in Headers */ = {isa = PBXBuildFile; fileRef = 2A9009F438A4422DBEFA8CFD /* HCIsCloseTo.h */; }; + 148B763DFE234CEAA2370989 /* HCHasCount.h in Headers */ = {isa = PBXBuildFile; fileRef = 6F5145992B9C48A09994C196 /* HCHasCount.h */; }; + 14F5563524F349A2A29EF622 /* HCIsEmptyCollection.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F264122581E4858ADA32DE0 /* HCIsEmptyCollection.m */; }; + 151941568E0D41F19C212A32 /* MKTPrimitiveArgumentMatching.h in Headers */ = {isa = PBXBuildFile; fileRef = 74C4AAE1C01A463686814E35 /* MKTPrimitiveArgumentMatching.h */; }; + 15F8E077736642FAAE711784 /* TyphoonBundleResource.h in Headers */ = {isa = PBXBuildFile; fileRef = 74D770F07DA145739BCBA310 /* TyphoonBundleResource.h */; }; + 161DC6905A574498B530EBFC /* OCMockito.m in Sources */ = {isa = PBXBuildFile; fileRef = 72F4EA1126504862B3FC2EAC /* OCMockito.m */; }; + 1635CB5F6CC64FEB96838482 /* HCIsDictionaryContainingValue.h in Headers */ = {isa = PBXBuildFile; fileRef = 6883140368BF48C68C891B62 /* HCIsDictionaryContainingValue.h */; }; + 1682DFEBA2664B4CB3936FD9 /* HCIsNot.h in Headers */ = {isa = PBXBuildFile; fileRef = D75C8A86972A4507B026FD8E /* HCIsNot.h */; }; + 1706A886CE0142D6BD81FD69 /* TyphoonCollectionValue.h in Headers */ = {isa = PBXBuildFile; fileRef = AF4C416F44964F23BAE78AB3 /* TyphoonCollectionValue.h */; }; + 174A3BAA122B4C32B8F3B3AC /* TyphoonParameterInjectedByValue.m in Sources */ = {isa = PBXBuildFile; fileRef = E095E0659D564B6E8A25F992 /* TyphoonParameterInjectedByValue.m */; settings = {COMPILER_FLAGS = "-fobjc-arc -DOS_OBJECT_USE_OBJC=0"; }; }; + 177485CB10E14DAF9658B10C /* TyphoonComponentFactory.m in Sources */ = {isa = PBXBuildFile; fileRef = DA1810DD94B348758B28BE94 /* TyphoonComponentFactory.m */; settings = {COMPILER_FLAGS = "-fobjc-arc -DOS_OBJECT_USE_OBJC=0"; }; }; + 17A3CB2FBB8B4EBC80CE2EB2 /* TyphoonPropertyInjectedAsCollection.m in Sources */ = {isa = PBXBuildFile; fileRef = B4EBDD2F33F449CD8D9F5E7D /* TyphoonPropertyInjectedAsCollection.m */; settings = {COMPILER_FLAGS = "-fobjc-arc -DOS_OBJECT_USE_OBJC=0"; }; }; + 17C47C17970D400BA7B6DB8C /* MKTProtocolMock.m in Sources */ = {isa = PBXBuildFile; fileRef = CA72BA37EEEC4BD9811D6134 /* MKTProtocolMock.m */; }; + 17F12005D522471594C59115 /* HCIsAnything.m in Sources */ = {isa = PBXBuildFile; fileRef = 94375E99D593456EA23726B2 /* HCIsAnything.m */; }; + 196E799491554617B1042FF1 /* HCIsEqualIgnoringCase.m in Sources */ = {isa = PBXBuildFile; fileRef = 5E5EE4CC480243AC81EE26E5 /* HCIsEqualIgnoringCase.m */; }; + 1A7C4887140E4302BC3DCEB7 /* MKTProtocolMock.h in Headers */ = {isa = PBXBuildFile; fileRef = 1FCB09B2A16C4834A0449976 /* MKTProtocolMock.h */; }; + 1B12181D614844C1B5A1FEDF /* HCSubstringMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 5EA7FD14056049CEBE5CD83D /* HCSubstringMatcher.h */; }; + 1B85DFBA44C142F89C0F66C9 /* HCIsEqualToNumber.h in Headers */ = {isa = PBXBuildFile; fileRef = 8409E9DCDE13462EA9A54F48 /* HCIsEqualToNumber.h */; }; + 1F47F3FC0DEE42EDA8F3763F /* TyphoonParameterInjectedByReference.m in Sources */ = {isa = PBXBuildFile; fileRef = 869634DA6A5740FCA64AD8E3 /* TyphoonParameterInjectedByReference.m */; settings = {COMPILER_FLAGS = "-fobjc-arc -DOS_OBJECT_USE_OBJC=0"; }; }; + 2084E0A16A914CECA505B3B3 /* HCIsInstanceOf.h in Headers */ = {isa = PBXBuildFile; fileRef = 89098CD900EB420EBF488F31 /* HCIsInstanceOf.h */; }; + 20E7B197841B474CB1043F51 /* HCStringStartsWith.h in Headers */ = {isa = PBXBuildFile; fileRef = 3C1EFC1C31DA4D7B8787DBE1 /* HCStringStartsWith.h */; }; + 214BBEE05D524D6E8F6DA425 /* MKTVerificationData.m in Sources */ = {isa = PBXBuildFile; fileRef = 5BF8A09541784CEEBB26AB49 /* MKTVerificationData.m */; }; + 2241802323C7411A942D4DC8 /* HCIsEmptyCollection.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F264122581E4858ADA32DE0 /* HCIsEmptyCollection.m */; }; + 226B005B72F0435BBEEBE032 /* HCHasProperty.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CDD5FE1518F4E7AAAF26F6E /* HCHasProperty.m */; }; + 228F00BFAE2E42D0973BE7E3 /* libPods-ios-OCMockito.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F23C0CBA10A94AD29C012263 /* libPods-ios-OCMockito.a */; }; + 23763B12161D419D8FF2CC39 /* TyphoonTypeConvertedCollectionValue.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A2B334C801241A39201AD1E /* TyphoonTypeConvertedCollectionValue.h */; }; + 23B83309726B401ABCDC9FCD /* TyphoonBlockComponentFactory.h in Headers */ = {isa = PBXBuildFile; fileRef = 6A9B68FAF553490DA11DBA17 /* TyphoonBlockComponentFactory.h */; }; + 23B8A7936986453CBF2C9024 /* TyphoonPropertyInjectedByReference.m in Sources */ = {isa = PBXBuildFile; fileRef = CC305A0B240740998A5437B9 /* TyphoonPropertyInjectedByReference.m */; settings = {COMPILER_FLAGS = "-fobjc-arc -DOS_OBJECT_USE_OBJC=0"; }; }; + 246AC7A82D56474B922CBBB6 /* MKTBaseMockObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 86E4B043C027469A9F59B8CE /* MKTBaseMockObject.h */; }; + 24837343E39B47FE8A0125FE /* HCIsCollectionOnlyContaining.h in Headers */ = {isa = PBXBuildFile; fileRef = 69DC020E96C744E4A4CF4421 /* HCIsCollectionOnlyContaining.h */; }; + 24FAAC208318434592397A8F /* TyphoonTypeDescriptor.h in Headers */ = {isa = PBXBuildFile; fileRef = 6196035D745A40F4B7449944 /* TyphoonTypeDescriptor.h */; }; + 2611C5D6454947978324441B /* HCIsEqualIgnoringWhiteSpace.m in Sources */ = {isa = PBXBuildFile; fileRef = 19C0A6AEB02F4C3C976D8F62 /* HCIsEqualIgnoringWhiteSpace.m */; }; + 26EED23E3FE241F6ACE48C3E /* HCHasDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = DAB2D2FCCF224901833548BF /* HCHasDescription.h */; }; + 276ACCBDB38C493FA7BA5EF0 /* HCAllOf.m in Sources */ = {isa = PBXBuildFile; fileRef = D58E747A50134E3ABAE25B1D /* HCAllOf.m */; }; + 2839D10877404F42A3902BCF /* HCStringContainsInOrder.m in Sources */ = {isa = PBXBuildFile; fileRef = 7696F2CB26584E95B703FA5C /* HCStringContainsInOrder.m */; }; + 28786E7851AF4D218B03D949 /* HCStringStartsWith.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D9917D5D89E4373951C991F /* HCStringStartsWith.m */; }; + 289C405D6722405DA87081A7 /* TyphoonTypeConvertedCollectionValue.m in Sources */ = {isa = PBXBuildFile; fileRef = E1D9E603CB2E4E319149358C /* TyphoonTypeConvertedCollectionValue.m */; settings = {COMPILER_FLAGS = "-fobjc-arc -DOS_OBJECT_USE_OBJC=0"; }; }; + 28C1C67F91134B01B0763D00 /* Pods-osx-OCMockito-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 7128F446564B4C5687491CAC /* Pods-osx-OCMockito-dummy.m */; }; + 28F5950882B44F55A592B1E8 /* TyphoonXmlComponentFactory.m in Sources */ = {isa = PBXBuildFile; fileRef = 9C81C83558E6402E810CA447 /* TyphoonXmlComponentFactory.m */; settings = {COMPILER_FLAGS = "-fobjc-arc -DOS_OBJECT_USE_OBJC=0"; }; }; + 2A248D6F87EE428F87453CC8 /* HCAnyOf.m in Sources */ = {isa = PBXBuildFile; fileRef = 03B1FB7AC8434C62908B7A3A /* HCAnyOf.m */; }; + 2ACB1FA48C4E4FFA991DD3D1 /* TyphoonIntrospectionUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = EDA503B7F49948999F104A90 /* TyphoonIntrospectionUtils.h */; }; + 2C1DA1B128864DB99857E84C /* HCIsCollectionContaining.h in Headers */ = {isa = PBXBuildFile; fileRef = 0EC31642BED145B79B7FD704 /* HCIsCollectionContaining.h */; }; + 2C239B9824F34B75A0ACA37C /* TyphoonParameterInjectedByRawValue.h in Headers */ = {isa = PBXBuildFile; fileRef = DDCCB96EA8CB45D59578D3BA /* TyphoonParameterInjectedByRawValue.h */; }; + 2C4344B6F1A04AE5B0D3538D /* TyphoonTypeConvertedCollectionValue.m in Sources */ = {isa = PBXBuildFile; fileRef = E1D9E603CB2E4E319149358C /* TyphoonTypeConvertedCollectionValue.m */; settings = {COMPILER_FLAGS = "-fobjc-arc -DOS_OBJECT_USE_OBJC=0"; }; }; + 2C4D01FA879347DFAE607399 /* TyphoonComponentFactory+InstanceBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 9FF4A3F38F6C4FDF8C883AD0 /* TyphoonComponentFactory+InstanceBuilder.h */; }; + 2C7316BCF0734191B4FE511D /* TyphoonAssembly.h in Headers */ = {isa = PBXBuildFile; fileRef = B6577F648EB44FCF92C42B6F /* TyphoonAssembly.h */; }; + 2CDD67074DF34423AB0A5BAD /* HCStringContains.h in Headers */ = {isa = PBXBuildFile; fileRef = 6550AB43F1A74BD8A1BF4152 /* HCStringContains.h */; }; + 2D268F0457CB454A8F1C31CD /* MKTBaseMockObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 212CA6A1AC924F85A87E3ABC /* MKTBaseMockObject.m */; }; + 2EDFC33AEEE04D318E24651B /* TyphoonXmlComponentFactory.m in Sources */ = {isa = PBXBuildFile; fileRef = 9C81C83558E6402E810CA447 /* TyphoonXmlComponentFactory.m */; settings = {COMPILER_FLAGS = "-fobjc-arc -DOS_OBJECT_USE_OBJC=0"; }; }; + 2EF40579FC4B4D9EB46245BF /* HCIsCollectionContaining.m in Sources */ = {isa = PBXBuildFile; fileRef = 80479D96ECA3462889095AB3 /* HCIsCollectionContaining.m */; }; + 2F2D40DFB03542E0A0470EFD /* TyphoonPassThroughTypeConverter.h in Headers */ = {isa = PBXBuildFile; fileRef = FC6D393A4D3B4663B496C7DA /* TyphoonPassThroughTypeConverter.h */; }; + 306AB1BF34564AF78218CF8F /* TyphoonNSURLTypeConverter.h in Headers */ = {isa = PBXBuildFile; fileRef = DA3719EE05E640FB8D48146B /* TyphoonNSURLTypeConverter.h */; }; + 3185BFFD9B93473A80B91B85 /* TyphoonNSURLTypeConverter.m in Sources */ = {isa = PBXBuildFile; fileRef = 118B4A9913D94BBC80742A1D /* TyphoonNSURLTypeConverter.m */; settings = {COMPILER_FLAGS = "-fobjc-arc -DOS_OBJECT_USE_OBJC=0"; }; }; + 322D7AD8F1B04602B2BEFE52 /* TyphoonXmlComponentFactory.h in Headers */ = {isa = PBXBuildFile; fileRef = 7BD460E8C6EE4481851BF278 /* TyphoonXmlComponentFactory.h */; }; + 332ADA693FFD462DBA6076F5 /* TyphoonInjectedParameter.h in Headers */ = {isa = PBXBuildFile; fileRef = 518763CCD3C1430BA4849906 /* TyphoonInjectedParameter.h */; }; + 33CA005091484F70BA2BE4FA /* OCHamcrest.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A449A77F4ED4916AD6C60AC /* OCHamcrest.h */; }; + 33E4B4CE996942D3848168D5 /* HCIsCollectionContainingInAnyOrder.m in Sources */ = {isa = PBXBuildFile; fileRef = EC093D67C1FC456AA600F112 /* HCIsCollectionContainingInAnyOrder.m */; }; + 33EECB14EA7746739C9E6402 /* HCAllOf.h in Headers */ = {isa = PBXBuildFile; fileRef = 8205F969BC174A3CAB13B5D7 /* HCAllOf.h */; }; + 34964F4893304BFBA085CF16 /* MKTObjectAndProtocolMock.h in Headers */ = {isa = PBXBuildFile; fileRef = 78FCEE94727F442C802D5620 /* MKTObjectAndProtocolMock.h */; }; + 34D25D05A2D34218B15513B0 /* TyphoonPropertyInjectedByType.h in Headers */ = {isa = PBXBuildFile; fileRef = 7B2CE525D43942929F3DB634 /* TyphoonPropertyInjectedByType.h */; }; + 34DF7F5CF1C649F1A576A469 /* HCAnyOf.m in Sources */ = {isa = PBXBuildFile; fileRef = 03B1FB7AC8434C62908B7A3A /* HCAnyOf.m */; }; + 355253FD3C394655B0BB2EA3 /* HCIsIn.m in Sources */ = {isa = PBXBuildFile; fileRef = 52BFD09A6E4D4FA59CB8DEF2 /* HCIsIn.m */; }; + 3602449DD4724E4791FD56DC /* MKTProtocolMock.h in Headers */ = {isa = PBXBuildFile; fileRef = 1FCB09B2A16C4834A0449976 /* MKTProtocolMock.h */; }; + 36FFA0E45F3C490E885F33C3 /* HCRequireNonNilString.m in Sources */ = {isa = PBXBuildFile; fileRef = 21E5FAAC23514139AAEC51BF /* HCRequireNonNilString.m */; }; + 382499C931E7466EB54BD0F4 /* TyphoonPassThroughTypeConverter.h in Headers */ = {isa = PBXBuildFile; fileRef = FC6D393A4D3B4663B496C7DA /* TyphoonPassThroughTypeConverter.h */; }; + 38CD07B0FE1849569FC16F88 /* TyphoonNSURLTypeConverter.h in Headers */ = {isa = PBXBuildFile; fileRef = DA3719EE05E640FB8D48146B /* TyphoonNSURLTypeConverter.h */; }; + 38DB37FA213E4B1B8EEFF4C3 /* TyphoonAssembly.m in Sources */ = {isa = PBXBuildFile; fileRef = A0C8B9A54A914D618FC77BD3 /* TyphoonAssembly.m */; settings = {COMPILER_FLAGS = "-fobjc-arc -DOS_OBJECT_USE_OBJC=0"; }; }; + 3906668CCD104642BBE1F091 /* HCIsNil.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C6854BFDB344FC79476E91C /* HCIsNil.m */; }; + 3AD0D300BC7D4E73BBBE72E8 /* HCBoxNumber.h in Headers */ = {isa = PBXBuildFile; fileRef = 8623C11BCE814AB78817981E /* HCBoxNumber.h */; }; + 3AD5BCF76DDE4FB8BA9A6D71 /* MKTInvocationMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 04E3EAAD65154688A459E29E /* MKTInvocationMatcher.h */; }; + 3C3B816BF59F4DE4AA66AE48 /* HCIsEqual.m in Sources */ = {isa = PBXBuildFile; fileRef = 5FE34005C9A34346980D5CED /* HCIsEqual.m */; }; + 3C464E5BA5634AF3BAB560A0 /* HCSelfDescribing.h in Headers */ = {isa = PBXBuildFile; fileRef = 23C2B61782494D48A6D2BA51 /* HCSelfDescribing.h */; }; + 3CFC192F85884B7CB2019F2A /* HCNumberAssert.m in Sources */ = {isa = PBXBuildFile; fileRef = 06E9831B9A884F8C97A065E8 /* HCNumberAssert.m */; }; + 3D4530F2E39E40C7B649469F /* HCHasCount.m in Sources */ = {isa = PBXBuildFile; fileRef = DACECFB098154038BE570933 /* HCHasCount.m */; }; + 3D665086676A4405BCEBC98A /* TyphoonInjectedParameter.h in Headers */ = {isa = PBXBuildFile; fileRef = 518763CCD3C1430BA4849906 /* TyphoonInjectedParameter.h */; }; + 3F6C4D839F1C403F95BD1CD3 /* HCIsAnything.h in Headers */ = {isa = PBXBuildFile; fileRef = D0C5965C237A484A9795092C /* HCIsAnything.h */; }; + 4036BF884B6F44DA88F76AA8 /* OCHamcrest.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A449A77F4ED4916AD6C60AC /* OCHamcrest.h */; }; + 40C3EE4D58984266923E275F /* TyphoonParameterInjectedByReference.h in Headers */ = {isa = PBXBuildFile; fileRef = 7AC6E264A0704A979FA32BC5 /* TyphoonParameterInjectedByReference.h */; }; + 410FBE860CD448759805C5A5 /* OCMockito.h in Headers */ = {isa = PBXBuildFile; fileRef = 2C194BF7FB644029B8F5FF4F /* OCMockito.h */; }; + 4112F374DE7E499681D463B3 /* Typhoon.h in Headers */ = {isa = PBXBuildFile; fileRef = 0A233AF632654EC4801DECCA /* Typhoon.h */; }; + 41291664CA074C6F948FA4A1 /* TyphoonByReferenceCollectionValue.m in Sources */ = {isa = PBXBuildFile; fileRef = A69BC2A6ECA54A4F9A10A3EC /* TyphoonByReferenceCollectionValue.m */; settings = {COMPILER_FLAGS = "-fobjc-arc -DOS_OBJECT_USE_OBJC=0"; }; }; + 412D2F9B29CB481981263D49 /* HCIsCloseTo.h in Headers */ = {isa = PBXBuildFile; fileRef = 2A9009F438A4422DBEFA8CFD /* HCIsCloseTo.h */; }; + 414ACC0C32EE4200996928C1 /* HCDescribedAs.h in Headers */ = {isa = PBXBuildFile; fileRef = 7E8017C86082407582E0C6AF /* HCDescribedAs.h */; }; + 415ED7EBE7D841129B4C44F1 /* HCBoxNumber.h in Headers */ = {isa = PBXBuildFile; fileRef = 8623C11BCE814AB78817981E /* HCBoxNumber.h */; }; + 41836888D23A428691FE385C /* TyphoonDefinition.h in Headers */ = {isa = PBXBuildFile; fileRef = 8526CEB3901D4CF6A5152408 /* TyphoonDefinition.h */; }; + 42D808B817A34ED9BDF46D84 /* HCIsEqualIgnoringWhiteSpace.m in Sources */ = {isa = PBXBuildFile; fileRef = 19C0A6AEB02F4C3C976D8F62 /* HCIsEqualIgnoringWhiteSpace.m */; }; + 42E07FB9105B4691B376A94F /* MKTMockAwareVerificationMode.m in Sources */ = {isa = PBXBuildFile; fileRef = DA011FD85AF24CFA8E88E9D7 /* MKTMockAwareVerificationMode.m */; }; + 43A5412DC9DE41CA844E43BB /* TyphoonTypeConverter.h in Headers */ = {isa = PBXBuildFile; fileRef = 2191EF81DDC344148688925A /* TyphoonTypeConverter.h */; }; + 4478D3DF9A804E3BA9A9DB8F /* HCBaseMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = A6FEEE3A8F9E49A583612C11 /* HCBaseMatcher.m */; }; + 4497C36B780E4714AE803872 /* TyphoonRXMLElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EE9FF8A75D54C5FB1A611C7 /* TyphoonRXMLElement.m */; settings = {COMPILER_FLAGS = "-fobjc-arc -DOS_OBJECT_USE_OBJC=0"; }; }; + 449A7C5610874FE0B8F1EC57 /* HCIsNil.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C6854BFDB344FC79476E91C /* HCIsNil.m */; }; + 453B3061D4B143D090BE54C2 /* MKTException.m in Sources */ = {isa = PBXBuildFile; fileRef = E224DDC37FFD459894CF5E75 /* MKTException.m */; }; + 45FB534CEF1F4E8BA079E059 /* TyphoonRXMLElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 06661B5818FC41B48DB046F7 /* TyphoonRXMLElement.h */; }; + 4676682E2D3F4D02911F5087 /* HCNumberAssert.m in Sources */ = {isa = PBXBuildFile; fileRef = 06E9831B9A884F8C97A065E8 /* HCNumberAssert.m */; }; + 468176F1CEB34AF6B6524B70 /* HCIsEqualIgnoringCase.m in Sources */ = {isa = PBXBuildFile; fileRef = 5E5EE4CC480243AC81EE26E5 /* HCIsEqualIgnoringCase.m */; }; + 47720B232B4C4462A0F45142 /* MKTClassObjectMock.h in Headers */ = {isa = PBXBuildFile; fileRef = FA3E9AF3B8704EAD8350FE2D /* MKTClassObjectMock.h */; }; + 47D67FE5EC7B4C4CBEC58DBC /* HCCollectMatchers.h in Headers */ = {isa = PBXBuildFile; fileRef = B638C43205764300AD553552 /* HCCollectMatchers.h */; }; + 47D680116BB34B369BB3D966 /* HCIsDictionaryContainingKey.h in Headers */ = {isa = PBXBuildFile; fileRef = 81BF95ED2B844AE7B5AF0DA9 /* HCIsDictionaryContainingKey.h */; }; + 487B8D09016B4D34B6855B2A /* MKTBaseMockObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 86E4B043C027469A9F59B8CE /* MKTBaseMockObject.h */; }; + 4A6EF9BF0AF04076BAE806DB /* TyphoonIntrospectionUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = A188FA548D6B4F529DA01427 /* TyphoonIntrospectionUtils.m */; settings = {COMPILER_FLAGS = "-fobjc-arc -DOS_OBJECT_USE_OBJC=0"; }; }; + 4AB71EEA6DBE4B408061A4E5 /* HCStringContainsInOrder.h in Headers */ = {isa = PBXBuildFile; fileRef = 39BA032BC2FB4FD4A35388E5 /* HCStringContainsInOrder.h */; }; + 4C25D22BD2FB4516881A789C /* HCRequireNonNilObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 56AEF36506DC45E79FCAC084 /* HCRequireNonNilObject.m */; }; + 4D38C55F5A654505BBA45992 /* TyphoonTypeConverterRegistry.h in Headers */ = {isa = PBXBuildFile; fileRef = A63F5258596842228FEB7ABC /* TyphoonTypeConverterRegistry.h */; }; + 4D8209AD88C44D55B8612708 /* TyphoonTypeDescriptor.m in Sources */ = {isa = PBXBuildFile; fileRef = F0442322B1544B63AF43D960 /* TyphoonTypeDescriptor.m */; settings = {COMPILER_FLAGS = "-fobjc-arc -DOS_OBJECT_USE_OBJC=0"; }; }; + 4E73DED06AC1420198F8F943 /* TyphoonPropertyInjectionDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = BD6C0ACD75414FAE94E71246 /* TyphoonPropertyInjectionDelegate.h */; }; + 4ECE52026C06491B9636786F /* HCBaseMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 766B8E660E5D4C8684454DA0 /* HCBaseMatcher.h */; }; + 4FCC8618EA31462CB9C6F120 /* MKTObjectMock.h in Headers */ = {isa = PBXBuildFile; fileRef = 388A5AAB700A4DA9BF7B0924 /* MKTObjectMock.h */; }; + 50CB1AC0EAB546DBA04692A2 /* TyphoonIntrospectionUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = EDA503B7F49948999F104A90 /* TyphoonIntrospectionUtils.h */; }; + 5177ACD94256402FBBA2C919 /* HCNumberAssert.h in Headers */ = {isa = PBXBuildFile; fileRef = 845DA4E118DF463F87476C16 /* HCNumberAssert.h */; }; + 5237B04CCA4F463293E9C97B /* MKTClassObjectMock.m in Sources */ = {isa = PBXBuildFile; fileRef = 12DEE28C1F8D4B5B882AD94D /* MKTClassObjectMock.m */; }; + 524A3B66380D46A5B07D324F /* HCIs.h in Headers */ = {isa = PBXBuildFile; fileRef = 861BDE9B3E104298BF11CCF0 /* HCIs.h */; }; + 5271162FCDB54C55A684D238 /* HCAllOf.m in Sources */ = {isa = PBXBuildFile; fileRef = D58E747A50134E3ABAE25B1D /* HCAllOf.m */; }; + 52EB447E125D4E9B8442DAC3 /* TyphoonDefinition+InstanceBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 0E0FE01A66E84DD1BED66656 /* TyphoonDefinition+InstanceBuilder.m */; settings = {COMPILER_FLAGS = "-fobjc-arc -DOS_OBJECT_USE_OBJC=0"; }; }; + 52F81862EA0845E48F2C8224 /* HCDescribedAs.h in Headers */ = {isa = PBXBuildFile; fileRef = 7E8017C86082407582E0C6AF /* HCDescribedAs.h */; }; + 5346E2810971490AA3EB7B1A /* HCConformsToProtocol.m in Sources */ = {isa = PBXBuildFile; fileRef = DCC77CE52BC3479F9F203481 /* HCConformsToProtocol.m */; }; + 5360F41262A04C3DABDA266A /* TyphoonParameterInjectedByValue.m in Sources */ = {isa = PBXBuildFile; fileRef = E095E0659D564B6E8A25F992 /* TyphoonParameterInjectedByValue.m */; settings = {COMPILER_FLAGS = "-fobjc-arc -DOS_OBJECT_USE_OBJC=0"; }; }; + 53B96EF47F55431EA418B599 /* HCIsDictionaryContainingValue.m in Sources */ = {isa = PBXBuildFile; fileRef = 5A681E29A2D54DAAAB8856E3 /* HCIsDictionaryContainingValue.m */; }; + 53C48D4F64784314A77FBA90 /* MKTTypeEncoding.h in Headers */ = {isa = PBXBuildFile; fileRef = 12395B7BE97B4DBE86BBFA86 /* MKTTypeEncoding.h */; }; + 54D1286F8183433ABEF3321E /* MKTMockingProgress.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C9ED326AEBE4336A04EECFA /* MKTMockingProgress.m */; }; + 558AB967849E4C328A5BB34A /* TyphoonRXMLElement+XmlComponentFactory.h in Headers */ = {isa = PBXBuildFile; fileRef = 2E567891663F4955BD63EA75 /* TyphoonRXMLElement+XmlComponentFactory.h */; }; + 55FE5DE6E0B74FACB3A07BC8 /* HCCollectMatchers.h in Headers */ = {isa = PBXBuildFile; fileRef = B638C43205764300AD553552 /* HCCollectMatchers.h */; }; + 5658D6994C8B4B0FACF544B8 /* HCIsDictionaryContainingKey.m in Sources */ = {isa = PBXBuildFile; fileRef = 6D7D635B27BC4CCBA12B4D40 /* HCIsDictionaryContainingKey.m */; }; + 566922F6694D4B3B94E7727A /* HCInvocationMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 17CCE0D9DE17483E839E9E7B /* HCInvocationMatcher.m */; }; + 575D968A8EAB41D68A460B63 /* HCIsDictionaryContaining.m in Sources */ = {isa = PBXBuildFile; fileRef = 4BB5414CC3D34BF69F78EA64 /* HCIsDictionaryContaining.m */; }; + 57CD3788C3124E8B8896D4DD /* HCIsCollectionContainingInAnyOrder.m in Sources */ = {isa = PBXBuildFile; fileRef = EC093D67C1FC456AA600F112 /* HCIsCollectionContainingInAnyOrder.m */; }; + 57E24A3E2FB14CFE8D018236 /* HCOrderingComparison.m in Sources */ = {isa = PBXBuildFile; fileRef = E96865896C974B0294FA2D60 /* HCOrderingComparison.m */; }; + 5898503A7811429D985220CF /* MKTMockingProgress.h in Headers */ = {isa = PBXBuildFile; fileRef = E3FCB6F03D6E48D398A7645E /* MKTMockingProgress.h */; }; + 58BA8AA5F3574282AB3F5836 /* TyphoonComponentFactoryMutator.h in Headers */ = {isa = PBXBuildFile; fileRef = 220846D794054D57A1A9320D /* TyphoonComponentFactoryMutator.h */; }; + 5922D3DF41294BCF9A233008 /* HCInvocationMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = DCD694CFAE974BD6B010A67D /* HCInvocationMatcher.h */; }; + 595228815F34440E8C4DE034 /* HCIsCloseTo.m in Sources */ = {isa = PBXBuildFile; fileRef = 5430B9C99AC84EB78E7C45B8 /* HCIsCloseTo.m */; }; + 59A15FB0C14F43DEBD6D23E9 /* HCStringEndsWith.m in Sources */ = {isa = PBXBuildFile; fileRef = C8295D4DB6D8472DB37A9141 /* HCStringEndsWith.m */; }; + 5ABF5C91B90C420D96473B82 /* HCMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 726ACE1F477E496E873EA6E6 /* HCMatcher.h */; }; + 5B130627D0054FC8B8117F9B /* MKTTestLocation.m in Sources */ = {isa = PBXBuildFile; fileRef = DDEEC919B3054DC1BA179D76 /* MKTTestLocation.m */; }; + 5CA6153A7BF14CA08F3D3798 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9FEB53916EEA44498B96B67D /* Foundation.framework */; }; + 5CA6342FA9FD45F59F2247A5 /* libPods-osx-OCHamcrest.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 86533AB97AE143AE9A23D820 /* libPods-osx-OCHamcrest.a */; }; + 5CA7E8DB86724896B4341579 /* HCIsEqual.m in Sources */ = {isa = PBXBuildFile; fileRef = 5FE34005C9A34346980D5CED /* HCIsEqual.m */; }; + 5CB180F7A142494C92B69D42 /* MKTExactTimes.h in Headers */ = {isa = PBXBuildFile; fileRef = C29F17B462B3457BB3D7B308 /* MKTExactTimes.h */; }; + 5D494FE00C7248079616AB09 /* HCIsIn.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F86E42F3AC24FF384B80ACC /* HCIsIn.h */; }; + 5D5A29949FD049508713901A /* HCWrapInMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = F60B22D57C4E433F9C9216C4 /* HCWrapInMatcher.h */; }; + 5D6A418BE02C44B2B1BFED12 /* HCIs.m in Sources */ = {isa = PBXBuildFile; fileRef = B88D03F318424DBD886BA214 /* HCIs.m */; }; + 5D87169182A14B3293DBF54E /* HCIsEmptyCollection.h in Headers */ = {isa = PBXBuildFile; fileRef = DA078B80506344F0A05524EF /* HCIsEmptyCollection.h */; }; + 5D9229BD533548CDAC43F100 /* MKTVerificationData.h in Headers */ = {isa = PBXBuildFile; fileRef = 153647AE901149399734B9D6 /* MKTVerificationData.h */; }; + 5DDFBAD1A5B245778ECA306B /* HCBaseDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 807E559235344CADB14B668C /* HCBaseDescription.h */; }; + 5F1ABABEB48546D9A8EB0369 /* HCIsDictionaryContaining.h in Headers */ = {isa = PBXBuildFile; fileRef = 2217CDF7A99940479E0FB91D /* HCIsDictionaryContaining.h */; }; + 5FAB5CC1889848D484C2E5F1 /* TyphoonDefinition+InstanceBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 44FC78BF07BF4A9D9623A458 /* TyphoonDefinition+InstanceBuilder.h */; }; + 5FFD364B2BA944F4AE6842E1 /* HCIsCollectionContainingInOrder.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BECB4DEAE794350B77C5843 /* HCIsCollectionContainingInOrder.h */; }; + 6020954DEAC14E7EB88283E3 /* TyphoonTestUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 286E7F4E97DE4DF5830E26EC /* TyphoonTestUtils.m */; settings = {COMPILER_FLAGS = "-fobjc-arc -DOS_OBJECT_USE_OBJC=0"; }; }; + 603587D119C54D9BAEC3B3E2 /* HCIsEqualIgnoringCase.h in Headers */ = {isa = PBXBuildFile; fileRef = 58EBBB6AB951490BB57E6542 /* HCIsEqualIgnoringCase.h */; }; + 6048DA77DB314F29AD38D723 /* TyphoonPropertyPlaceholderConfigurer.h in Headers */ = {isa = PBXBuildFile; fileRef = 46956D67A3D44B828E4D872D /* TyphoonPropertyPlaceholderConfigurer.h */; }; + 605A76AD865249ACB7148B3D /* TyphoonResource.h in Headers */ = {isa = PBXBuildFile; fileRef = AF6C5FCCA14748B09911D961 /* TyphoonResource.h */; }; + 6081D175E77041CF9E9DBA42 /* MKTTestLocation.h in Headers */ = {isa = PBXBuildFile; fileRef = 96457CE734B94EA18CF38901 /* MKTTestLocation.h */; }; + 6108E692E535495298A73733 /* TyphoonBundleResource.h in Headers */ = {isa = PBXBuildFile; fileRef = 74D770F07DA145739BCBA310 /* TyphoonBundleResource.h */; }; + 6133F3289A104691AE10AFA8 /* MKTObjectMock.m in Sources */ = {isa = PBXBuildFile; fileRef = B1848085A2CB4EA3B3646E6D /* MKTObjectMock.m */; }; + 625AE6E59430491CBCF99995 /* MKTInvocationContainer.h in Headers */ = {isa = PBXBuildFile; fileRef = E7ECF76C96434501A80978EA /* MKTInvocationContainer.h */; }; + 62DBED080AEA4B06B14DCA29 /* TyphoonTypeConverterRegistry.h in Headers */ = {isa = PBXBuildFile; fileRef = A63F5258596842228FEB7ABC /* TyphoonTypeConverterRegistry.h */; }; + 634B0ACA05E24945A02A6A14 /* TyphoonInitializer.h in Headers */ = {isa = PBXBuildFile; fileRef = 302A322E684345119897D618 /* TyphoonInitializer.h */; }; + 65EADE1860654EEA85E25901 /* TyphoonBlockComponentFactory.m in Sources */ = {isa = PBXBuildFile; fileRef = 5561B654654D45B5A0D75883 /* TyphoonBlockComponentFactory.m */; settings = {COMPILER_FLAGS = "-fobjc-arc -DOS_OBJECT_USE_OBJC=0"; }; }; + 665D8EA3357741398A85127A /* HCIsInstanceOf.m in Sources */ = {isa = PBXBuildFile; fileRef = 9031A80D6D80433DA579CEF6 /* HCIsInstanceOf.m */; }; + 66CC380B432C4D4BABA65D1E /* TyphoonTypeDescriptor.m in Sources */ = {isa = PBXBuildFile; fileRef = F0442322B1544B63AF43D960 /* TyphoonTypeDescriptor.m */; settings = {COMPILER_FLAGS = "-fobjc-arc -DOS_OBJECT_USE_OBJC=0"; }; }; + 66E7E342872F4D458E673EB6 /* HCInvocationMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = DCD694CFAE974BD6B010A67D /* HCInvocationMatcher.h */; }; + 66E9A469D95244C19CC7CDCD /* TyphoonBlockComponentFactory.h in Headers */ = {isa = PBXBuildFile; fileRef = 6A9B68FAF553490DA11DBA17 /* TyphoonBlockComponentFactory.h */; }; + 673DC48EF7944E05951B657F /* HCIsCollectionContainingInOrder.m in Sources */ = {isa = PBXBuildFile; fileRef = 5E86D6173C294472AFF205FF /* HCIsCollectionContainingInOrder.m */; }; + 67746887B23544E9A261885C /* HCBaseDescription.m in Sources */ = {isa = PBXBuildFile; fileRef = F9C4F75E99804AD090E63966 /* HCBaseDescription.m */; }; + 67D6AE9D394745B0B6AECE38 /* MKTException.h in Headers */ = {isa = PBXBuildFile; fileRef = 7126C0BD5F234CC6A63051F6 /* MKTException.h */; }; + 67DC25491772404A99D7FCD4 /* HCIsCollectionContainingInAnyOrder.h in Headers */ = {isa = PBXBuildFile; fileRef = 963C82CC40AF413D9E6DD3FC /* HCIsCollectionContainingInAnyOrder.h */; }; + 67EBC35BB7F34437A6E2B9BD /* HCHasCount.m in Sources */ = {isa = PBXBuildFile; fileRef = DACECFB098154038BE570933 /* HCHasCount.m */; }; + 690B1DAECEA74240892D9E0D /* HCIsNil.h in Headers */ = {isa = PBXBuildFile; fileRef = B2CE49E253304136B47C54A2 /* HCIsNil.h */; }; + 692E066AAF34499494DD5773 /* MKTProtocolMock.m in Sources */ = {isa = PBXBuildFile; fileRef = CA72BA37EEEC4BD9811D6134 /* MKTProtocolMock.m */; }; + 6AF4BA039EA147778503DF7B /* HCOrderingComparison.m in Sources */ = {isa = PBXBuildFile; fileRef = E96865896C974B0294FA2D60 /* HCOrderingComparison.m */; }; + 6B0C4D1AA7C94E508D437F29 /* HCBaseMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = A6FEEE3A8F9E49A583612C11 /* HCBaseMatcher.m */; }; + 6B4F1C4C9DC04CD38A4FFF46 /* NSObject+TyphoonIntrospectionUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = 351E44DD724047429EEFB397 /* NSObject+TyphoonIntrospectionUtils.h */; }; + 6BE5110238934939847B3E49 /* MKTInvocationMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 226280CA5A834405B092114E /* MKTInvocationMatcher.m */; }; + 6CDEC0DEDFE7437091EC8F2F /* libPods-ios-Typhoon.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E6A511E7955B4E6ABA371215 /* libPods-ios-Typhoon.a */; }; + 6CF6B16D621E4A02A396279C /* TyphoonAssembly.h in Headers */ = {isa = PBXBuildFile; fileRef = B6577F648EB44FCF92C42B6F /* TyphoonAssembly.h */; }; + 6D8D7158DE194438AE7ECDE0 /* HCIsEqual.h in Headers */ = {isa = PBXBuildFile; fileRef = 1252811CCDFF46068C1BF2BA /* HCIsEqual.h */; }; + 6D99FB5C59C5448FB951DC6E /* TyphoonBlockComponentFactory.m in Sources */ = {isa = PBXBuildFile; fileRef = 5561B654654D45B5A0D75883 /* TyphoonBlockComponentFactory.m */; settings = {COMPILER_FLAGS = "-fobjc-arc -DOS_OBJECT_USE_OBJC=0"; }; }; + 6F1D5B8D9554421B9B57AA83 /* MKTMockitoCore.m in Sources */ = {isa = PBXBuildFile; fileRef = 07227EEF03A64FABA6F8B829 /* MKTMockitoCore.m */; }; + 6F3A443FD1884030A1298C53 /* MKTStubbedInvocationMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 3458B8AD68D1400490D5C55F /* MKTStubbedInvocationMatcher.m */; }; + 6F461D0AEC314A5ABC0952F6 /* TyphoonDefinition.m in Sources */ = {isa = PBXBuildFile; fileRef = 44A1E62D6FB44ADAAA399A31 /* TyphoonDefinition.m */; settings = {COMPILER_FLAGS = "-fobjc-arc -DOS_OBJECT_USE_OBJC=0"; }; }; + 6F5D7F17407046F1A261401D /* HCRequireNonNilString.m in Sources */ = {isa = PBXBuildFile; fileRef = 21E5FAAC23514139AAEC51BF /* HCRequireNonNilString.m */; }; + 711C6C44D64A4884BD179111 /* HCIsCollectionOnlyContaining.m in Sources */ = {isa = PBXBuildFile; fileRef = 31DF66697EE947ABA60F970D /* HCIsCollectionOnlyContaining.m */; }; + 71E41955A45D42E3B632B065 /* MKTMockitoCore.h in Headers */ = {isa = PBXBuildFile; fileRef = DB4F8230EF654B5E80443DAB /* MKTMockitoCore.h */; }; + 7225CDC63F0945C7BB4CB82B /* HCIs.h in Headers */ = {isa = PBXBuildFile; fileRef = 861BDE9B3E104298BF11CCF0 /* HCIs.h */; }; + 72E49B147086493AB6FAAB2E /* TyphoonPropertyPlaceholderConfigurer.h in Headers */ = {isa = PBXBuildFile; fileRef = 46956D67A3D44B828E4D872D /* TyphoonPropertyPlaceholderConfigurer.h */; }; + 733BC2C4855B423FBE438D2A /* TyphoonParameterInjectedByValue.h in Headers */ = {isa = PBXBuildFile; fileRef = FF470EB02AE54DC085B0A1FD /* TyphoonParameterInjectedByValue.h */; }; + 7363A8392734430EB0F759CE /* TyphoonResource.h in Headers */ = {isa = PBXBuildFile; fileRef = AF6C5FCCA14748B09911D961 /* TyphoonResource.h */; }; + 73AC18A3C8364CD4AC70FD1C /* HCHasProperty.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CDD5FE1518F4E7AAAF26F6E /* HCHasProperty.m */; }; + 7401C899A41C4615BF1439ED /* HCHasDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = DAB2D2FCCF224901833548BF /* HCHasDescription.h */; }; + 756EE4D477474E92A870DC45 /* TyphoonPrimitiveTypeConverter.h in Headers */ = {isa = PBXBuildFile; fileRef = 16753E0B65874A53A5004EF1 /* TyphoonPrimitiveTypeConverter.h */; }; + 761005A698D348EDB4E7A4DD /* TyphoonRXMLElement+XmlComponentFactory.m in Sources */ = {isa = PBXBuildFile; fileRef = E0F69E97633845E38953C6FF /* TyphoonRXMLElement+XmlComponentFactory.m */; settings = {COMPILER_FLAGS = "-fobjc-arc -DOS_OBJECT_USE_OBJC=0"; }; }; + 76E6E93C6C3F4BECA2A1C8A0 /* Pods-osx-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 2738BE25FFA04D29A11D2C96 /* Pods-osx-dummy.m */; }; + 772EF9F1C3394D769DA287A8 /* HCIsInstanceOf.m in Sources */ = {isa = PBXBuildFile; fileRef = 9031A80D6D80433DA579CEF6 /* HCIsInstanceOf.m */; }; + 77F135D03EA2446D94A3FD7E /* TyphoonAutowire.h in Headers */ = {isa = PBXBuildFile; fileRef = 6FA9EF23862E4375AB2BCEB6 /* TyphoonAutowire.h */; }; + 7C2E0DAD74FC42839139D605 /* MKTObjectAndProtocolMock.m in Sources */ = {isa = PBXBuildFile; fileRef = 21D97416B1834DCBA7A614C3 /* MKTObjectAndProtocolMock.m */; }; + 7C5D01DE2DD14BBDB85C853B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9FEB53916EEA44498B96B67D /* Foundation.framework */; }; + 7D6EA255B8B142188156951A /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3482A30FCB374C56B7632828 /* Cocoa.framework */; }; + 7D955B739C094626AEEC192F /* TyphoonJRSwizzle.m in Sources */ = {isa = PBXBuildFile; fileRef = 22F430C79FE844BCA944A53E /* TyphoonJRSwizzle.m */; settings = {COMPILER_FLAGS = "-fobjc-arc -DOS_OBJECT_USE_OBJC=0"; }; }; + 7DB7603B75DB455280FB6A5E /* TyphoonRXMLElement+XmlComponentFactory.m in Sources */ = {isa = PBXBuildFile; fileRef = E0F69E97633845E38953C6FF /* TyphoonRXMLElement+XmlComponentFactory.m */; settings = {COMPILER_FLAGS = "-fobjc-arc -DOS_OBJECT_USE_OBJC=0"; }; }; + 7F961684475446C6909DEC4F /* MKTStubbedInvocationMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 185E2BFCA26F43E6BA56D052 /* MKTStubbedInvocationMatcher.h */; }; + 7F96A35BEC30413BAE72E51E /* MKTAtLeastTimes.h in Headers */ = {isa = PBXBuildFile; fileRef = 579A6B5910FD474F850046F1 /* MKTAtLeastTimes.h */; }; + 801157C769F340288F2362C6 /* HCRequireNonNilString.h in Headers */ = {isa = PBXBuildFile; fileRef = 5EF1EA4DD84E4E33842E976D /* HCRequireNonNilString.h */; }; + 804039BF691443D69A92928E /* HCHasDescription.m in Sources */ = {isa = PBXBuildFile; fileRef = DC6DA8ABFD6A4DC7BEA291DD /* HCHasDescription.m */; }; + 806AB657405F481593570D0A /* MKTException.m in Sources */ = {isa = PBXBuildFile; fileRef = E224DDC37FFD459894CF5E75 /* MKTException.m */; }; + 814EC5E2B703433B9F16390F /* HCStringEndsWith.h in Headers */ = {isa = PBXBuildFile; fileRef = B283C04AB89D4E4687E644EA /* HCStringEndsWith.h */; }; + 81AB38D572B24C438A0E7F65 /* HCIsInstanceOf.h in Headers */ = {isa = PBXBuildFile; fileRef = 89098CD900EB420EBF488F31 /* HCIsInstanceOf.h */; }; + 8377509A0DCB4A4DB3552097 /* TyphoonParameterInjectedByRawValue.m in Sources */ = {isa = PBXBuildFile; fileRef = 64DF3FB6A5C64529B731517E /* TyphoonParameterInjectedByRawValue.m */; settings = {COMPILER_FLAGS = "-fobjc-arc -DOS_OBJECT_USE_OBJC=0"; }; }; + 838E6E68060A4F97B18125D3 /* MKTClassObjectMock.m in Sources */ = {isa = PBXBuildFile; fileRef = 12DEE28C1F8D4B5B882AD94D /* MKTClassObjectMock.m */; }; + 848E45541A6E45D79C4D3489 /* TyphoonPassThroughTypeConverter.m in Sources */ = {isa = PBXBuildFile; fileRef = 53108CA26D404049B86C211C /* TyphoonPassThroughTypeConverter.m */; settings = {COMPILER_FLAGS = "-fobjc-arc -DOS_OBJECT_USE_OBJC=0"; }; }; + 84ACB98F4B71418D8DEAF091 /* HCIsEqualToNumber.h in Headers */ = {isa = PBXBuildFile; fileRef = 8409E9DCDE13462EA9A54F48 /* HCIsEqualToNumber.h */; }; + 86EBFADAA9BC4AE09FC8FE88 /* TyphoonBundleResource.m in Sources */ = {isa = PBXBuildFile; fileRef = 4F317258029B431AB5A810BF /* TyphoonBundleResource.m */; settings = {COMPILER_FLAGS = "-fobjc-arc -DOS_OBJECT_USE_OBJC=0"; }; }; + 87426A319EED40EB84434B66 /* HCIsCollectionOnlyContaining.m in Sources */ = {isa = PBXBuildFile; fileRef = 31DF66697EE947ABA60F970D /* HCIsCollectionOnlyContaining.m */; }; + 874FA10322AE4F5BA305A4AC /* MKTMockAwareVerificationMode.h in Headers */ = {isa = PBXBuildFile; fileRef = 49E1B206147A476A95ADF364 /* MKTMockAwareVerificationMode.h */; }; + 88BD5219675845F5A906422A /* Pods-ios-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 63A5483BF58D40CDB129C3FF /* Pods-ios-dummy.m */; }; + 8A81299E70384469A9B6D154 /* TyphoonTypeConvertedCollectionValue.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A2B334C801241A39201AD1E /* TyphoonTypeConvertedCollectionValue.h */; }; + 8A8400494BD14E2383C53BE4 /* HCConformsToProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = 25FBCBF295294BA78BDA6547 /* HCConformsToProtocol.h */; }; + 8BD9B865CFE54F20ABB68461 /* MKTObjectMock.m in Sources */ = {isa = PBXBuildFile; fileRef = B1848085A2CB4EA3B3646E6D /* MKTObjectMock.m */; }; + 8C2A09E8C2FE4E2F9116F8D5 /* HCIsSame.h in Headers */ = {isa = PBXBuildFile; fileRef = 695CD0AD3EAA4A87B0A6D21B /* HCIsSame.h */; }; + 8E2FC73B1ED84372956C3DA7 /* TyphoonParameterInjectedByReference.h in Headers */ = {isa = PBXBuildFile; fileRef = 7AC6E264A0704A979FA32BC5 /* TyphoonParameterInjectedByReference.h */; }; + 8EB5930A875A4956991A5C98 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3482A30FCB374C56B7632828 /* Cocoa.framework */; }; + 8EEA74E8EDB94ED1BBEABABB /* HCStringStartsWith.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D9917D5D89E4373951C991F /* HCStringStartsWith.m */; }; + 8F27AF3D00C849C0A89631E6 /* Pods-ios-Typhoon-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E4F679D4AAF4615AC26A6D5 /* Pods-ios-Typhoon-dummy.m */; }; + 8F8E2588BF5D472097728390 /* TyphoonDefinition+InstanceBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 0E0FE01A66E84DD1BED66656 /* TyphoonDefinition+InstanceBuilder.m */; settings = {COMPILER_FLAGS = "-fobjc-arc -DOS_OBJECT_USE_OBJC=0"; }; }; + 8FD424E56C4D43EBABD93B22 /* MKTVerificationData.h in Headers */ = {isa = PBXBuildFile; fileRef = 153647AE901149399734B9D6 /* MKTVerificationData.h */; }; + 9013F7A339B04040B208DCDE /* HCStringStartsWith.h in Headers */ = {isa = PBXBuildFile; fileRef = 3C1EFC1C31DA4D7B8787DBE1 /* HCStringStartsWith.h */; }; + 90D3FECA77274A8697398145 /* OCMockito.m in Sources */ = {isa = PBXBuildFile; fileRef = 72F4EA1126504862B3FC2EAC /* OCMockito.m */; }; + 91637567C644465792C6ABAE /* HCIsDictionaryContaining.h in Headers */ = {isa = PBXBuildFile; fileRef = 2217CDF7A99940479E0FB91D /* HCIsDictionaryContaining.h */; }; + 916E25CFBBB842B38A09F5BB /* HCSubstringMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 5A7D002BE680438A9ED9DB3A /* HCSubstringMatcher.m */; }; + 91EBFA8D14D24CE3946C813F /* HCStringEndsWith.h in Headers */ = {isa = PBXBuildFile; fileRef = B283C04AB89D4E4687E644EA /* HCStringEndsWith.h */; }; + 922CEDF3F01548AEB9E90EDE /* HCIsSame.m in Sources */ = {isa = PBXBuildFile; fileRef = B4DC6A13B5D44D40A0D5420C /* HCIsSame.m */; }; + 93F88712D74A404A941592A7 /* MKTInvocationContainer.m in Sources */ = {isa = PBXBuildFile; fileRef = 94D99B66E9FA40C8BF0E168B /* MKTInvocationContainer.m */; }; + 949F971559F54445B7C97D8E /* HCIsCollectionContainingInAnyOrder.h in Headers */ = {isa = PBXBuildFile; fileRef = 963C82CC40AF413D9E6DD3FC /* HCIsCollectionContainingInAnyOrder.h */; }; + 957E574A7CC24942A81460E7 /* HCIsEmptyCollection.h in Headers */ = {isa = PBXBuildFile; fileRef = DA078B80506344F0A05524EF /* HCIsEmptyCollection.h */; }; + 95EB205F24F9460492FE53BA /* HCIsEqual.h in Headers */ = {isa = PBXBuildFile; fileRef = 1252811CCDFF46068C1BF2BA /* HCIsEqual.h */; }; + 95F64C007C7C4DB095EEE91C /* MKTOngoingStubbing.h in Headers */ = {isa = PBXBuildFile; fileRef = F9B7C505ABC04483A581AF16 /* MKTOngoingStubbing.h */; }; + 96B597DA0AD94AA1AA9AD640 /* HCAssertThat.m in Sources */ = {isa = PBXBuildFile; fileRef = ED8C80010ED2467EA7621A03 /* HCAssertThat.m */; }; + 98B0B4B7226848A5895CA41D /* HCIsCollectionContaining.h in Headers */ = {isa = PBXBuildFile; fileRef = 0EC31642BED145B79B7FD704 /* HCIsCollectionContaining.h */; }; + 99884EF95D7B437EA8B5C28C /* TyphoonTypeConverterRegistry.m in Sources */ = {isa = PBXBuildFile; fileRef = 1162996A50404638900B532F /* TyphoonTypeConverterRegistry.m */; settings = {COMPILER_FLAGS = "-fobjc-arc -DOS_OBJECT_USE_OBJC=0"; }; }; + 99ECFAF1B9BE4D3EAB572A49 /* HCStringEndsWith.m in Sources */ = {isa = PBXBuildFile; fileRef = C8295D4DB6D8472DB37A9141 /* HCStringEndsWith.m */; }; + 9B3CDCDE77B94532B979394D /* HCCollectMatchers.m in Sources */ = {isa = PBXBuildFile; fileRef = D24852E45EC24269829FD6AD /* HCCollectMatchers.m */; }; + 9E01323EC5D241E5B6452090 /* HCIsCollectionContainingInOrder.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BECB4DEAE794350B77C5843 /* HCIsCollectionContainingInOrder.h */; }; + 9E8B12C47CEA4855A4656A7C /* TyphoonShorthand.h in Headers */ = {isa = PBXBuildFile; fileRef = 1245ED39E78042E9A864C9FF /* TyphoonShorthand.h */; }; + A00CB9B64B63435BAC0FBB2B /* MKTMockAwareVerificationMode.h in Headers */ = {isa = PBXBuildFile; fileRef = 49E1B206147A476A95ADF364 /* MKTMockAwareVerificationMode.h */; }; + A082494077664F0D9679D30C /* HCStringDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = FA6412B28D3848C1BC1E75AF /* HCStringDescription.h */; }; + A2D055224D204ECC80B7670C /* MKTObjectMock.h in Headers */ = {isa = PBXBuildFile; fileRef = 388A5AAB700A4DA9BF7B0924 /* MKTObjectMock.h */; }; + A44A1A48BF6B4F4CB6F64C50 /* TyphoonByReferenceCollectionValue.m in Sources */ = {isa = PBXBuildFile; fileRef = A69BC2A6ECA54A4F9A10A3EC /* TyphoonByReferenceCollectionValue.m */; settings = {COMPILER_FLAGS = "-fobjc-arc -DOS_OBJECT_USE_OBJC=0"; }; }; + A5EF0CC7D3254F9E99D6E1A3 /* HCIsEqualToNumber.m in Sources */ = {isa = PBXBuildFile; fileRef = 38F8C2DFCCC645919681CFF7 /* HCIsEqualToNumber.m */; }; + A6CBEACD096043469A3974F4 /* MKTMockitoCore.h in Headers */ = {isa = PBXBuildFile; fileRef = DB4F8230EF654B5E80443DAB /* MKTMockitoCore.h */; }; + A6F2E5A1307A48E59E5EAEE2 /* TyphoonPropertyInjectedAsCollection.m in Sources */ = {isa = PBXBuildFile; fileRef = B4EBDD2F33F449CD8D9F5E7D /* TyphoonPropertyInjectedAsCollection.m */; settings = {COMPILER_FLAGS = "-fobjc-arc -DOS_OBJECT_USE_OBJC=0"; }; }; + A773050CB5CB49ADB2F43964 /* HCHasDescription.m in Sources */ = {isa = PBXBuildFile; fileRef = DC6DA8ABFD6A4DC7BEA291DD /* HCHasDescription.m */; }; + A7735B4B6AD642A485DB6318 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9FEB53916EEA44498B96B67D /* Foundation.framework */; }; + A78E8B78901D417391711F4C /* TyphoonParameterInjectedByRawValue.h in Headers */ = {isa = PBXBuildFile; fileRef = DDCCB96EA8CB45D59578D3BA /* TyphoonParameterInjectedByRawValue.h */; }; + A8013554117D4E859DC6E2D5 /* TyphoonJRSwizzle.h in Headers */ = {isa = PBXBuildFile; fileRef = E3300CD5CD31427BB6B0146D /* TyphoonJRSwizzle.h */; }; + A8C72FFDC8B64015BBBBB7FB /* TyphoonJRSwizzle.h in Headers */ = {isa = PBXBuildFile; fileRef = E3300CD5CD31427BB6B0146D /* TyphoonJRSwizzle.h */; }; + A931863910864625AA3FEAF9 /* TyphoonPrimitiveTypeConverter.h in Headers */ = {isa = PBXBuildFile; fileRef = 16753E0B65874A53A5004EF1 /* TyphoonPrimitiveTypeConverter.h */; }; + A9874AF8E4D64B738DE30CA1 /* MKTInvocationContainer.h in Headers */ = {isa = PBXBuildFile; fileRef = E7ECF76C96434501A80978EA /* MKTInvocationContainer.h */; }; + A9946051CF96452FA9E544A2 /* MKTPrimitiveArgumentMatching.h in Headers */ = {isa = PBXBuildFile; fileRef = 74C4AAE1C01A463686814E35 /* MKTPrimitiveArgumentMatching.h */; }; + AAAFD01893904E2D90C8CE39 /* Pods-ios-OCMockito-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = E89CF53FB31E414C9DCA5934 /* Pods-ios-OCMockito-dummy.m */; }; + AB0373EA89934F02A45500AD /* MKTObjectAndProtocolMock.h in Headers */ = {isa = PBXBuildFile; fileRef = 78FCEE94727F442C802D5620 /* MKTObjectAndProtocolMock.h */; }; + AB4405FF653742F2AF12DDDE /* MKTInvocationContainer.m in Sources */ = {isa = PBXBuildFile; fileRef = 94D99B66E9FA40C8BF0E168B /* MKTInvocationContainer.m */; }; + AC42562C0431428A959A2A0A /* TyphoonComponentFactoryMutator.h in Headers */ = {isa = PBXBuildFile; fileRef = 220846D794054D57A1A9320D /* TyphoonComponentFactoryMutator.h */; }; + ACD5A8CC881246F8BD6B188F /* HCStringContains.m in Sources */ = {isa = PBXBuildFile; fileRef = 3DEC2C3CF20C4BF2B43FA45B /* HCStringContains.m */; }; + ACEF690E2A0B4CD883CF1785 /* HCOrderingComparison.h in Headers */ = {isa = PBXBuildFile; fileRef = 5A419F3717C14536B84B71CF /* HCOrderingComparison.h */; }; + AD547EE46F7D4295951DD14E /* TyphoonAutowire.h in Headers */ = {isa = PBXBuildFile; fileRef = 6FA9EF23862E4375AB2BCEB6 /* TyphoonAutowire.h */; }; + AD8F52EDEBF94EF680B0166D /* HCIsDictionaryContainingEntries.m in Sources */ = {isa = PBXBuildFile; fileRef = 8A1F5CE240CA4AA5BAB5BB2C /* HCIsDictionaryContainingEntries.m */; }; + AF071925D31F41ECBFE5AAD6 /* TyphoonDefinition.m in Sources */ = {isa = PBXBuildFile; fileRef = 44A1E62D6FB44ADAAA399A31 /* TyphoonDefinition.m */; settings = {COMPILER_FLAGS = "-fobjc-arc -DOS_OBJECT_USE_OBJC=0"; }; }; + B101DB25951F46C2B19A9390 /* TyphoonTypeConverter.h in Headers */ = {isa = PBXBuildFile; fileRef = 2191EF81DDC344148688925A /* TyphoonTypeConverter.h */; }; + B11E4C939577412CA68AD0F5 /* MKTTestLocation.m in Sources */ = {isa = PBXBuildFile; fileRef = DDEEC919B3054DC1BA179D76 /* MKTTestLocation.m */; }; + B1EDAFC479BB4147BBB494B6 /* MKTAtLeastTimes.h in Headers */ = {isa = PBXBuildFile; fileRef = 579A6B5910FD474F850046F1 /* MKTAtLeastTimes.h */; }; + B345848EAFC4409490CDEA66 /* TyphoonComponentFactory.h in Headers */ = {isa = PBXBuildFile; fileRef = E89D28982D6641C4AF6289FF /* TyphoonComponentFactory.h */; }; + B3F3C8EFFBFC47AA85F93F15 /* HCRequireNonNilObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 56AEF36506DC45E79FCAC084 /* HCRequireNonNilObject.m */; }; + B4192C1F1B6A4BC195E4111B /* MKTOngoingStubbing.h in Headers */ = {isa = PBXBuildFile; fileRef = F9B7C505ABC04483A581AF16 /* MKTOngoingStubbing.h */; }; + B48BF425165746A481F3A2A2 /* MKTVerificationMode.h in Headers */ = {isa = PBXBuildFile; fileRef = CB6C064DF299400AB26F38B5 /* MKTVerificationMode.h */; }; + B4FDDAFCFE8A4B7CBBCADC56 /* MKTExactTimes.m in Sources */ = {isa = PBXBuildFile; fileRef = 82AD35B543084944BD51EB01 /* MKTExactTimes.m */; }; + B5772713B24848E1823988F5 /* HCBaseDescription.m in Sources */ = {isa = PBXBuildFile; fileRef = F9C4F75E99804AD090E63966 /* HCBaseDescription.m */; }; + B5991FFE829D4ABE820BEA57 /* HCHasProperty.h in Headers */ = {isa = PBXBuildFile; fileRef = 046DF737D4C645DEAE9A93EA /* HCHasProperty.h */; }; + B67D27630B4C4FDD81A5AF20 /* HCIsNot.h in Headers */ = {isa = PBXBuildFile; fileRef = D75C8A86972A4507B026FD8E /* HCIsNot.h */; }; + B6E746D591FA415C8AF7F0B7 /* TyphoonComponentFactory.m in Sources */ = {isa = PBXBuildFile; fileRef = DA1810DD94B348758B28BE94 /* TyphoonComponentFactory.m */; settings = {COMPILER_FLAGS = "-fobjc-arc -DOS_OBJECT_USE_OBJC=0"; }; }; + B7113A211A444561892B184D /* TyphoonInitializer+InstanceBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 764A045F4D964DEE9FA2C71B /* TyphoonInitializer+InstanceBuilder.m */; settings = {COMPILER_FLAGS = "-fobjc-arc -DOS_OBJECT_USE_OBJC=0"; }; }; + B7401236E3334753B0CF04A0 /* HCRequireNonNilString.h in Headers */ = {isa = PBXBuildFile; fileRef = 5EF1EA4DD84E4E33842E976D /* HCRequireNonNilString.h */; }; + B75ECDAFF4AF4A79AF2B8851 /* HCIsEqualIgnoringWhiteSpace.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EB74F28DCF4B95BC32CFAB /* HCIsEqualIgnoringWhiteSpace.h */; }; + BBF7D3807B3044F18BBA9D16 /* TyphoonPropertyPlaceholderConfigurer.m in Sources */ = {isa = PBXBuildFile; fileRef = C5FB0044DAF3465AB113B326 /* TyphoonPropertyPlaceholderConfigurer.m */; settings = {COMPILER_FLAGS = "-fobjc-arc -DOS_OBJECT_USE_OBJC=0"; }; }; + BBF908448C98400C99029B48 /* libPods-osx-OCMockito.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F6C710DDCD2F4E468791D35E /* libPods-osx-OCMockito.a */; }; + BC135069622A4C47A3594AE3 /* Pods-osx-Typhoon-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = F2ED6FC7588B4615B3F25F6B /* Pods-osx-Typhoon-dummy.m */; }; + BD3496DD4115429EA889B945 /* HCStringDescription.m in Sources */ = {isa = PBXBuildFile; fileRef = 1C1B10C3843A45418C24CC22 /* HCStringDescription.m */; }; + BDB3AB1614524DB7B01465BA /* HCDescribedAs.m in Sources */ = {isa = PBXBuildFile; fileRef = 8A5E040E9DA74123A533A4B2 /* HCDescribedAs.m */; }; + BDBA51E977844B58AD8BC77A /* HCStringDescription.m in Sources */ = {isa = PBXBuildFile; fileRef = 1C1B10C3843A45418C24CC22 /* HCStringDescription.m */; }; + BDF24912F127481189A8DE68 /* TyphoonTestUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = 335A48AF5EBB4968BF205225 /* TyphoonTestUtils.h */; }; + BEA98F58CB464BB5836450BF /* libPods-osx-Typhoon.a in Frameworks */ = {isa = PBXBuildFile; fileRef = ABEDA51C8D5948C9A7ABD4A8 /* libPods-osx-Typhoon.a */; }; + BFE85C435D614E9B8B1D860E /* HCWrapInMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = F60B22D57C4E433F9C9216C4 /* HCWrapInMatcher.h */; }; + C001BF6BC021454CBDF72046 /* MKTException.h in Headers */ = {isa = PBXBuildFile; fileRef = 7126C0BD5F234CC6A63051F6 /* MKTException.h */; }; + C0D1E1DD9029454E8E47B9A5 /* TyphoonPrimitiveTypeConverter.m in Sources */ = {isa = PBXBuildFile; fileRef = 019CC8DB0C8D4083AA773E7D /* TyphoonPrimitiveTypeConverter.m */; settings = {COMPILER_FLAGS = "-fobjc-arc -DOS_OBJECT_USE_OBJC=0"; }; }; + C11404B640BD4F0485834F03 /* MKTObjectAndProtocolMock.m in Sources */ = {isa = PBXBuildFile; fileRef = 21D97416B1834DCBA7A614C3 /* MKTObjectAndProtocolMock.m */; }; + C12226FB5AE64B7EA09B48F4 /* TyphoonInitializer.m in Sources */ = {isa = PBXBuildFile; fileRef = 7C15E1D0C720427483A0D1B8 /* TyphoonInitializer.m */; settings = {COMPILER_FLAGS = "-fobjc-arc -DOS_OBJECT_USE_OBJC=0"; }; }; + C127AF3720EC4149A818EAC4 /* TyphoonPrimitiveTypeConverter.m in Sources */ = {isa = PBXBuildFile; fileRef = 019CC8DB0C8D4083AA773E7D /* TyphoonPrimitiveTypeConverter.m */; settings = {COMPILER_FLAGS = "-fobjc-arc -DOS_OBJECT_USE_OBJC=0"; }; }; + C29F5AAB89D74D30A1DE26D8 /* HCIsAnything.h in Headers */ = {isa = PBXBuildFile; fileRef = D0C5965C237A484A9795092C /* HCIsAnything.h */; }; + C2DDB71927F04E64B7577407 /* HCIsNil.h in Headers */ = {isa = PBXBuildFile; fileRef = B2CE49E253304136B47C54A2 /* HCIsNil.h */; }; + C32A0D73877241CFA1FDDC83 /* HCDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 83FBB0E6DE2B4CDCBAF63243 /* HCDescription.h */; }; + C371527173044562870EBC7D /* MKTVerificationData.m in Sources */ = {isa = PBXBuildFile; fileRef = 5BF8A09541784CEEBB26AB49 /* MKTVerificationData.m */; }; + C45B806A81524249B3F6254C /* HCAssertThat.h in Headers */ = {isa = PBXBuildFile; fileRef = 4964367123D34192BC7933A6 /* HCAssertThat.h */; }; + C4A72FBAD6EC40368C97EB2E /* HCInvocationMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 17CCE0D9DE17483E839E9E7B /* HCInvocationMatcher.m */; }; + C55C6C12ED5A4DB9869C1FD9 /* MKTOngoingStubbing.m in Sources */ = {isa = PBXBuildFile; fileRef = B9CA1486519949DCAA9BFD6B /* MKTOngoingStubbing.m */; }; + C57C2E1156A4450199418BCC /* TyphoonComponentFactory+InstanceBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = E4A022C9E61D4EF3957BAFDB /* TyphoonComponentFactory+InstanceBuilder.m */; settings = {COMPILER_FLAGS = "-fobjc-arc -DOS_OBJECT_USE_OBJC=0"; }; }; + C6378217BA7A449DAC848D9F /* HCAnyOf.h in Headers */ = {isa = PBXBuildFile; fileRef = 52F5AB50B4174E29A6CA4C37 /* HCAnyOf.h */; }; + C7319F966AAE4797BFA1BB60 /* HCIsIn.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F86E42F3AC24FF384B80ACC /* HCIsIn.h */; }; + C734E93E3FB14DE79C5AF172 /* HCStringContains.m in Sources */ = {isa = PBXBuildFile; fileRef = 3DEC2C3CF20C4BF2B43FA45B /* HCStringContains.m */; }; + C78DCB16196848E790D922B9 /* HCIsSame.m in Sources */ = {isa = PBXBuildFile; fileRef = B4DC6A13B5D44D40A0D5420C /* HCIsSame.m */; }; + C8295361D48347BAB834C197 /* Typhoon.h in Headers */ = {isa = PBXBuildFile; fileRef = 0A233AF632654EC4801DECCA /* Typhoon.h */; }; + C864172DCA7043B3A3F32CDE /* MKTAtLeastTimes.m in Sources */ = {isa = PBXBuildFile; fileRef = 210BC84DAFE1455AB4F2B961 /* MKTAtLeastTimes.m */; }; + C8FEDACEDD88484995E83BC1 /* TyphoonPropertyInjectedByType.m in Sources */ = {isa = PBXBuildFile; fileRef = F3C9BA84F4EE4F2FA9EF981F /* TyphoonPropertyInjectedByType.m */; settings = {COMPILER_FLAGS = "-fobjc-arc -DOS_OBJECT_USE_OBJC=0"; }; }; + C9EEEA1B15FA4E379093F1B6 /* TyphoonTestUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = 335A48AF5EBB4968BF205225 /* TyphoonTestUtils.h */; }; + CA47EC6159D94640939DD65C /* TyphoonInitializer.h in Headers */ = {isa = PBXBuildFile; fileRef = 302A322E684345119897D618 /* TyphoonInitializer.h */; }; + CAAEA5FBE014464DB004AAAB /* Pods-osx-OCHamcrest-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = F7544F6F4C5145B7B6A6EA4D /* Pods-osx-OCHamcrest-dummy.m */; }; + CAF73B1E6A2A4C8A9522A312 /* TyphoonPropertyInjectedByValue.h in Headers */ = {isa = PBXBuildFile; fileRef = E01A8239888643FC88334763 /* TyphoonPropertyInjectedByValue.h */; }; + CB173B26CC6547B190248077 /* HCIsDictionaryContainingEntries.h in Headers */ = {isa = PBXBuildFile; fileRef = 9210DAE725914BE5A8E7D4D9 /* HCIsDictionaryContainingEntries.h */; }; + CB3C0C5B9C254B189C2CAFC6 /* TyphoonRXMLElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 06661B5818FC41B48DB046F7 /* TyphoonRXMLElement.h */; }; + CC1586C092AC4E9AA63A113C /* HCAllOf.h in Headers */ = {isa = PBXBuildFile; fileRef = 8205F969BC174A3CAB13B5D7 /* HCAllOf.h */; }; + CC3873574AEF40ABAAC514B9 /* HCMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 726ACE1F477E496E873EA6E6 /* HCMatcher.h */; }; + CD022152DD4347B9913A1B91 /* TyphoonInitializer+InstanceBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 9D0AF0C5500B4F67B268224A /* TyphoonInitializer+InstanceBuilder.h */; }; + CD5EE5B6A0794EB7AD91E191 /* HCIsDictionaryContaining.m in Sources */ = {isa = PBXBuildFile; fileRef = 4BB5414CC3D34BF69F78EA64 /* HCIsDictionaryContaining.m */; }; + CDA5A0EF94E649619ECDBCCD /* TyphoonPropertyInjectedByReference.h in Headers */ = {isa = PBXBuildFile; fileRef = 2791682154E44970844149AC /* TyphoonPropertyInjectedByReference.h */; }; + CED1A1184E6D464493ADDD9F /* HCRequireNonNilObject.h in Headers */ = {isa = PBXBuildFile; fileRef = F6E6ECDB6340431390041F99 /* HCRequireNonNilObject.h */; }; + CF7B3801519448E7B9D22F8F /* TyphoonPropertyInjectedByReference.m in Sources */ = {isa = PBXBuildFile; fileRef = CC305A0B240740998A5437B9 /* TyphoonPropertyInjectedByReference.m */; settings = {COMPILER_FLAGS = "-fobjc-arc -DOS_OBJECT_USE_OBJC=0"; }; }; + D034F2FCE52342B88918053C /* TyphoonPropertyInjectedByValue.m in Sources */ = {isa = PBXBuildFile; fileRef = 03640C9FEDD149A9A6469570 /* TyphoonPropertyInjectedByValue.m */; settings = {COMPILER_FLAGS = "-fobjc-arc -DOS_OBJECT_USE_OBJC=0"; }; }; + D0C0D866961B4DFBA4D8B57F /* MKTInvocationMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 04E3EAAD65154688A459E29E /* MKTInvocationMatcher.h */; }; + D133C263E4FD46ACA7CD8E9D /* HCIs.m in Sources */ = {isa = PBXBuildFile; fileRef = B88D03F318424DBD886BA214 /* HCIs.m */; }; + D2AD0F74A4EC47F2830C0D6F /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9FEB53916EEA44498B96B67D /* Foundation.framework */; }; + D3556608B7EB496CA58B7CC9 /* TyphoonComponentFactory+InstanceBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 9FF4A3F38F6C4FDF8C883AD0 /* TyphoonComponentFactory+InstanceBuilder.h */; }; + D3B854176E2648919608AE8D /* TyphoonTypeConverterRegistry.m in Sources */ = {isa = PBXBuildFile; fileRef = 1162996A50404638900B532F /* TyphoonTypeConverterRegistry.m */; settings = {COMPILER_FLAGS = "-fobjc-arc -DOS_OBJECT_USE_OBJC=0"; }; }; + D3D117964C264139A1240C77 /* NSObject+TyphoonIntrospectionUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = 351E44DD724047429EEFB397 /* NSObject+TyphoonIntrospectionUtils.h */; }; + D53EAB7C7EC94BF883BC4316 /* TyphoonDefinition+InstanceBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 44FC78BF07BF4A9D9623A458 /* TyphoonDefinition+InstanceBuilder.h */; }; + D563957F563B455C9D3342E7 /* MKTTypeEncoding.h in Headers */ = {isa = PBXBuildFile; fileRef = 12395B7BE97B4DBE86BBFA86 /* MKTTypeEncoding.h */; }; + D7514BEA31584BEB9035DB57 /* HCIsDictionaryContainingEntries.h in Headers */ = {isa = PBXBuildFile; fileRef = 9210DAE725914BE5A8E7D4D9 /* HCIsDictionaryContainingEntries.h */; }; + D75F8ED064D341BF97A47CAA /* HCOrderingComparison.h in Headers */ = {isa = PBXBuildFile; fileRef = 5A419F3717C14536B84B71CF /* HCOrderingComparison.h */; }; + D773FD04CD984E68A3874F8C /* TyphoonNSURLTypeConverter.m in Sources */ = {isa = PBXBuildFile; fileRef = 118B4A9913D94BBC80742A1D /* TyphoonNSURLTypeConverter.m */; settings = {COMPILER_FLAGS = "-fobjc-arc -DOS_OBJECT_USE_OBJC=0"; }; }; + D8E3F0B7F0DB4F4FBEFFD7FB /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3482A30FCB374C56B7632828 /* Cocoa.framework */; }; + DA2425B266884DEDB061A495 /* TyphoonShorthand.h in Headers */ = {isa = PBXBuildFile; fileRef = 1245ED39E78042E9A864C9FF /* TyphoonShorthand.h */; }; + DA671F335A4F4E999151ACA5 /* HCIsAnything.m in Sources */ = {isa = PBXBuildFile; fileRef = 94375E99D593456EA23726B2 /* HCIsAnything.m */; }; + DABCEBF361DF403ABE610A36 /* MKTTestLocation.h in Headers */ = {isa = PBXBuildFile; fileRef = 96457CE734B94EA18CF38901 /* MKTTestLocation.h */; }; + DAD17A59D8D34CEB83ED475A /* TyphoonParameterInjectedByRawValue.m in Sources */ = {isa = PBXBuildFile; fileRef = 64DF3FB6A5C64529B731517E /* TyphoonParameterInjectedByRawValue.m */; settings = {COMPILER_FLAGS = "-fobjc-arc -DOS_OBJECT_USE_OBJC=0"; }; }; + DB12EBF9038B43EBAF86CB11 /* MKTOngoingStubbing.m in Sources */ = {isa = PBXBuildFile; fileRef = B9CA1486519949DCAA9BFD6B /* MKTOngoingStubbing.m */; }; + DB8420C83F634B9485DF670D /* HCHasProperty.h in Headers */ = {isa = PBXBuildFile; fileRef = 046DF737D4C645DEAE9A93EA /* HCHasProperty.h */; }; + DB9834B70C6F4C38B18768C8 /* MKTExactTimes.h in Headers */ = {isa = PBXBuildFile; fileRef = C29F17B462B3457BB3D7B308 /* MKTExactTimes.h */; }; + DC121B96783147C585DB7811 /* TyphoonPropertyInjectedByType.m in Sources */ = {isa = PBXBuildFile; fileRef = F3C9BA84F4EE4F2FA9EF981F /* TyphoonPropertyInjectedByType.m */; settings = {COMPILER_FLAGS = "-fobjc-arc -DOS_OBJECT_USE_OBJC=0"; }; }; + DC2419251A07411685C2FFF1 /* MKTBaseMockObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 212CA6A1AC924F85A87E3ABC /* MKTBaseMockObject.m */; }; + DDBE5CFB61894F4ABC9EBF78 /* TyphoonInitializer.m in Sources */ = {isa = PBXBuildFile; fileRef = 7C15E1D0C720427483A0D1B8 /* TyphoonInitializer.m */; settings = {COMPILER_FLAGS = "-fobjc-arc -DOS_OBJECT_USE_OBJC=0"; }; }; + DE62E235841B4BB5BDA0058D /* HCStringContainsInOrder.h in Headers */ = {isa = PBXBuildFile; fileRef = 39BA032BC2FB4FD4A35388E5 /* HCStringContainsInOrder.h */; }; + DE865ADBBAD140F6A33CDC8C /* TyphoonComponentFactory+InstanceBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = E4A022C9E61D4EF3957BAFDB /* TyphoonComponentFactory+InstanceBuilder.m */; settings = {COMPILER_FLAGS = "-fobjc-arc -DOS_OBJECT_USE_OBJC=0"; }; }; + DE8A92E806834D2CAEC20CC4 /* HCCollectMatchers.m in Sources */ = {isa = PBXBuildFile; fileRef = D24852E45EC24269829FD6AD /* HCCollectMatchers.m */; }; + DF9E2DB2F10E44B593A58210 /* TyphoonBundleResource.m in Sources */ = {isa = PBXBuildFile; fileRef = 4F317258029B431AB5A810BF /* TyphoonBundleResource.m */; settings = {COMPILER_FLAGS = "-fobjc-arc -DOS_OBJECT_USE_OBJC=0"; }; }; + E0BE945FF7E94EFAA09A277C /* TyphoonByReferenceCollectionValue.h in Headers */ = {isa = PBXBuildFile; fileRef = C85DD2DA622D43C4AD85BB96 /* TyphoonByReferenceCollectionValue.h */; }; + E1483CCA88E44EA8A03FDDC0 /* OCMockito.h in Headers */ = {isa = PBXBuildFile; fileRef = 2C194BF7FB644029B8F5FF4F /* OCMockito.h */; }; + E26CA00D1B474402AD94FBAE /* TyphoonComponentFactory.h in Headers */ = {isa = PBXBuildFile; fileRef = E89D28982D6641C4AF6289FF /* TyphoonComponentFactory.h */; }; + E2D2CC6403A143C0995DE943 /* TyphoonJRSwizzle.m in Sources */ = {isa = PBXBuildFile; fileRef = 22F430C79FE844BCA944A53E /* TyphoonJRSwizzle.m */; settings = {COMPILER_FLAGS = "-fobjc-arc -DOS_OBJECT_USE_OBJC=0"; }; }; + E2EFA5AA5F6542BCA024860D /* TyphoonPropertyPlaceholderConfigurer.m in Sources */ = {isa = PBXBuildFile; fileRef = C5FB0044DAF3465AB113B326 /* TyphoonPropertyPlaceholderConfigurer.m */; settings = {COMPILER_FLAGS = "-fobjc-arc -DOS_OBJECT_USE_OBJC=0"; }; }; + E31FD501F0C641FE9FAD9CD0 /* libPods-ios-OCHamcrest.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BBBE265079884BF69F52FE5D /* libPods-ios-OCHamcrest.a */; }; + E4E9D84EE634433EA067E215 /* HCIsDictionaryContainingKey.h in Headers */ = {isa = PBXBuildFile; fileRef = 81BF95ED2B844AE7B5AF0DA9 /* HCIsDictionaryContainingKey.h */; }; + E582DD0597B34C6697B0CEA9 /* HCIsCloseTo.m in Sources */ = {isa = PBXBuildFile; fileRef = 5430B9C99AC84EB78E7C45B8 /* HCIsCloseTo.m */; }; + E6EED07DC31644229C9DED79 /* MKTClassObjectMock.h in Headers */ = {isa = PBXBuildFile; fileRef = FA3E9AF3B8704EAD8350FE2D /* MKTClassObjectMock.h */; }; + E6F2354152FC4737A842963C /* TyphoonPropertyInjectedAsCollection.h in Headers */ = {isa = PBXBuildFile; fileRef = EDA22F4932CA453D94B728EF /* TyphoonPropertyInjectedAsCollection.h */; }; + E828E7C518E24237A1C646F1 /* TyphoonTestUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 286E7F4E97DE4DF5830E26EC /* TyphoonTestUtils.m */; settings = {COMPILER_FLAGS = "-fobjc-arc -DOS_OBJECT_USE_OBJC=0"; }; }; + E9F2EEA7D4F147629FF3A2C7 /* TyphoonPropertyInjectedByReference.h in Headers */ = {isa = PBXBuildFile; fileRef = 2791682154E44970844149AC /* TyphoonPropertyInjectedByReference.h */; }; + EA4F608968B3451494DAA1F5 /* TyphoonPassThroughTypeConverter.m in Sources */ = {isa = PBXBuildFile; fileRef = 53108CA26D404049B86C211C /* TyphoonPassThroughTypeConverter.m */; settings = {COMPILER_FLAGS = "-fobjc-arc -DOS_OBJECT_USE_OBJC=0"; }; }; + EA91731CAD194843BB48AC45 /* HCConformsToProtocol.m in Sources */ = {isa = PBXBuildFile; fileRef = DCC77CE52BC3479F9F203481 /* HCConformsToProtocol.m */; }; + EAC462FAD10844FE978DBBC9 /* HCAssertThat.m in Sources */ = {isa = PBXBuildFile; fileRef = ED8C80010ED2467EA7621A03 /* HCAssertThat.m */; }; + EC0727C91E2149E3AD7F9C9D /* HCDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 83FBB0E6DE2B4CDCBAF63243 /* HCDescription.h */; }; + ECAF35469D514CECA8B3549F /* MKTMockingProgress.h in Headers */ = {isa = PBXBuildFile; fileRef = E3FCB6F03D6E48D398A7645E /* MKTMockingProgress.h */; }; + EFA31906F9EE4C6C9871275D /* HCIsEqualIgnoringWhiteSpace.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EB74F28DCF4B95BC32CFAB /* HCIsEqualIgnoringWhiteSpace.h */; }; + F03EEFE3E36E4A6C83C72DBA /* HCIsIn.m in Sources */ = {isa = PBXBuildFile; fileRef = 52BFD09A6E4D4FA59CB8DEF2 /* HCIsIn.m */; }; + F06DC6148374479F8818F0A0 /* HCWrapInMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 7A450EED522E4458AC4F00F1 /* HCWrapInMatcher.m */; }; + F1156EAD0D2B43758D7B770C /* TyphoonCollectionValue.h in Headers */ = {isa = PBXBuildFile; fileRef = AF4C416F44964F23BAE78AB3 /* TyphoonCollectionValue.h */; }; + F1159D89F25E425CAC03EF32 /* HCStringDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = FA6412B28D3848C1BC1E75AF /* HCStringDescription.h */; }; + F3608C14224A4B66A11EC1D7 /* MKTAtLeastTimes.m in Sources */ = {isa = PBXBuildFile; fileRef = 210BC84DAFE1455AB4F2B961 /* MKTAtLeastTimes.m */; }; + F3D0BC91B8C740F582A938D2 /* HCSubstringMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 5EA7FD14056049CEBE5CD83D /* HCSubstringMatcher.h */; }; + F5F75ADB4EEC47E3BD6FC72D /* HCIsDictionaryContainingKey.m in Sources */ = {isa = PBXBuildFile; fileRef = 6D7D635B27BC4CCBA12B4D40 /* HCIsDictionaryContainingKey.m */; }; + F61EE283F98343F3B530B97D /* TyphoonInjectedProperty.h in Headers */ = {isa = PBXBuildFile; fileRef = D3E98434DBEE4372A177AF7C /* TyphoonInjectedProperty.h */; }; + F6FA3E6478AF448BB90488C7 /* TyphoonIntrospectionUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = A188FA548D6B4F529DA01427 /* TyphoonIntrospectionUtils.m */; settings = {COMPILER_FLAGS = "-fobjc-arc -DOS_OBJECT_USE_OBJC=0"; }; }; + F85BE1A74270496299718691 /* HCBaseMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 766B8E660E5D4C8684454DA0 /* HCBaseMatcher.h */; }; + F89215DE980F4C15B956FA50 /* HCHasCount.h in Headers */ = {isa = PBXBuildFile; fileRef = 6F5145992B9C48A09994C196 /* HCHasCount.h */; }; + F8E81C9438CF4DA782A707C0 /* HCIsDictionaryContainingEntries.m in Sources */ = {isa = PBXBuildFile; fileRef = 8A1F5CE240CA4AA5BAB5BB2C /* HCIsDictionaryContainingEntries.m */; }; + F8F488EEA5AA4B4C8A471733 /* MKTMockAwareVerificationMode.m in Sources */ = {isa = PBXBuildFile; fileRef = DA011FD85AF24CFA8E88E9D7 /* MKTMockAwareVerificationMode.m */; }; + F93966C07AF641988D34C8FF /* TyphoonParameterInjectedByReference.m in Sources */ = {isa = PBXBuildFile; fileRef = 869634DA6A5740FCA64AD8E3 /* TyphoonParameterInjectedByReference.m */; settings = {COMPILER_FLAGS = "-fobjc-arc -DOS_OBJECT_USE_OBJC=0"; }; }; + F9507CDA18354CAC9BA5CFA7 /* HCDescribedAs.m in Sources */ = {isa = PBXBuildFile; fileRef = 8A5E040E9DA74123A533A4B2 /* HCDescribedAs.m */; }; + F9BF94C4231A46EB8F4F65A8 /* HCIsNot.m in Sources */ = {isa = PBXBuildFile; fileRef = FF3A47D0A1534D52A22214B5 /* HCIsNot.m */; }; + FAC87902D590486CA517057E /* NSObject+TyphoonIntrospectionUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 0C6746C3A2DC447883C5471D /* NSObject+TyphoonIntrospectionUtils.m */; settings = {COMPILER_FLAGS = "-fobjc-arc -DOS_OBJECT_USE_OBJC=0"; }; }; + FAE156606377403894B4A4C5 /* TyphoonByReferenceCollectionValue.h in Headers */ = {isa = PBXBuildFile; fileRef = C85DD2DA622D43C4AD85BB96 /* TyphoonByReferenceCollectionValue.h */; }; + FC30B4EBBE7649EDA6BC78CB /* HCBaseDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 807E559235344CADB14B668C /* HCBaseDescription.h */; }; + FC6034318B26414A8A8A8B10 /* HCIsEqualToNumber.m in Sources */ = {isa = PBXBuildFile; fileRef = 38F8C2DFCCC645919681CFF7 /* HCIsEqualToNumber.m */; }; + FC8897CACB784E47BA6DF462 /* TyphoonAssembly.m in Sources */ = {isa = PBXBuildFile; fileRef = A0C8B9A54A914D618FC77BD3 /* TyphoonAssembly.m */; settings = {COMPILER_FLAGS = "-fobjc-arc -DOS_OBJECT_USE_OBJC=0"; }; }; + FCA0613854A946AA8568CFF3 /* MKTInvocationMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 226280CA5A834405B092114E /* MKTInvocationMatcher.m */; }; + FCA5092F0062443ABB772868 /* TyphoonParameterInjectedByValue.h in Headers */ = {isa = PBXBuildFile; fileRef = FF470EB02AE54DC085B0A1FD /* TyphoonParameterInjectedByValue.h */; }; + FCD19A605E2042669C74E0FC /* HCWrapInMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 7A450EED522E4458AC4F00F1 /* HCWrapInMatcher.m */; }; + FD09115934414490951AA51A /* HCSelfDescribing.h in Headers */ = {isa = PBXBuildFile; fileRef = 23C2B61782494D48A6D2BA51 /* HCSelfDescribing.h */; }; + FD477A191382466CAA65E16D /* HCNumberAssert.h in Headers */ = {isa = PBXBuildFile; fileRef = 845DA4E118DF463F87476C16 /* HCNumberAssert.h */; }; + FD56A480A61B4DD2A30BB9B7 /* HCRequireNonNilObject.h in Headers */ = {isa = PBXBuildFile; fileRef = F6E6ECDB6340431390041F99 /* HCRequireNonNilObject.h */; }; + FD77594B03434DE3847A06D0 /* NSObject+TyphoonIntrospectionUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 0C6746C3A2DC447883C5471D /* NSObject+TyphoonIntrospectionUtils.m */; settings = {COMPILER_FLAGS = "-fobjc-arc -DOS_OBJECT_USE_OBJC=0"; }; }; + FE31CD742AA04621B423CE07 /* TyphoonXmlComponentFactory.h in Headers */ = {isa = PBXBuildFile; fileRef = 7BD460E8C6EE4481851BF278 /* TyphoonXmlComponentFactory.h */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 211D5696118348589FB4E682 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = C036B8F7C3854C9AB18532EE /* Project object */; + proxyType = 1; + remoteGlobalIDString = 486D5F32D87D487EA0B40819; + remoteInfo = "Pods-ios-OCHamcrest"; + }; + 264F22C6A6694AF8B90F7091 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = C036B8F7C3854C9AB18532EE /* Project object */; + proxyType = 1; + remoteGlobalIDString = 1D0611DA70434545933F2AF5; + remoteInfo = "Pods-ios-OCMockito"; + }; + 6084578213A44F558A35126A /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = C036B8F7C3854C9AB18532EE /* Project object */; + proxyType = 1; + remoteGlobalIDString = 53A5CA1190E74B8AA833599F; + remoteInfo = "Pods-osx-OCMockito"; + }; + 771C1F3EEBAE411DAF2C9FB9 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = C036B8F7C3854C9AB18532EE /* Project object */; + proxyType = 1; + remoteGlobalIDString = D10F740290F4442C8ED4AD8E; + remoteInfo = "Pods-osx-OCHamcrest"; + }; + B9DF477FBF914CBD9BE52837 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = C036B8F7C3854C9AB18532EE /* Project object */; + proxyType = 1; + remoteGlobalIDString = 486D5F32D87D487EA0B40819; + remoteInfo = "Pods-ios-OCHamcrest"; + }; + C87AB4DF0F1847F29BA8D48C /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = C036B8F7C3854C9AB18532EE /* Project object */; + proxyType = 1; + remoteGlobalIDString = 8DFD08D3F7324EED859BF75B; + remoteInfo = "Pods-osx-Typhoon"; + }; + E2F1439050644A81BB078DB2 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = C036B8F7C3854C9AB18532EE /* Project object */; + proxyType = 1; + remoteGlobalIDString = D10F740290F4442C8ED4AD8E; + remoteInfo = "Pods-osx-OCHamcrest"; + }; + E69AA870210A416382C17F78 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = C036B8F7C3854C9AB18532EE /* Project object */; + proxyType = 1; + remoteGlobalIDString = EC398FF940A24F83A53E7609; + remoteInfo = "Pods-ios-Typhoon"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 019CC8DB0C8D4083AA773E7D /* TyphoonPrimitiveTypeConverter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = TyphoonPrimitiveTypeConverter.m; path = ../../Source/TypeConversion/TyphoonPrimitiveTypeConverter.m; sourceTree = SOURCE_ROOT; }; + 03640C9FEDD149A9A6469570 /* TyphoonPropertyInjectedByValue.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = TyphoonPropertyInjectedByValue.m; path = ../../Source/Component/Properties/TyphoonPropertyInjectedByValue.m; sourceTree = SOURCE_ROOT; }; + 03A1C68FC7604CA3A35F8DD8 /* Pods-osx-OCMockito.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-osx-OCMockito.xcconfig"; sourceTree = SOURCE_ROOT; }; + 03B1FB7AC8434C62908B7A3A /* HCAnyOf.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCAnyOf.m; path = OCHamcrest/Source/Library/Logical/HCAnyOf.m; sourceTree = SOURCE_ROOT; }; + 046DF737D4C645DEAE9A93EA /* HCHasProperty.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCHasProperty.h; path = OCHamcrest/Source/Library/Object/HCHasProperty.h; sourceTree = SOURCE_ROOT; }; + 04E3EAAD65154688A459E29E /* MKTInvocationMatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MKTInvocationMatcher.h; path = OCMockito/Source/OCMockito/MKTInvocationMatcher.h; sourceTree = SOURCE_ROOT; }; + 06661B5818FC41B48DB046F7 /* TyphoonRXMLElement.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = TyphoonRXMLElement.h; path = ../../Source/Factory/Xml/TyphoonRXMLElement.h; sourceTree = SOURCE_ROOT; }; + 06E9831B9A884F8C97A065E8 /* HCNumberAssert.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCNumberAssert.m; path = OCHamcrest/Source/Library/Number/HCNumberAssert.m; sourceTree = SOURCE_ROOT; }; + 07227EEF03A64FABA6F8B829 /* MKTMockitoCore.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MKTMockitoCore.m; path = OCMockito/Source/OCMockito/MKTMockitoCore.m; sourceTree = SOURCE_ROOT; }; + 0A17DA9959654CA7AC0D4C66 /* libPods-ios.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-ios.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 0A233AF632654EC4801DECCA /* Typhoon.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Typhoon.h; path = ../../Source/Typhoon.h; sourceTree = SOURCE_ROOT; }; + 0C6746C3A2DC447883C5471D /* NSObject+TyphoonIntrospectionUtils.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSObject+TyphoonIntrospectionUtils.m"; path = "../../Source/Utils/NSObject+TyphoonIntrospectionUtils.m"; sourceTree = SOURCE_ROOT; }; + 0CDD5FE1518F4E7AAAF26F6E /* HCHasProperty.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCHasProperty.m; path = OCHamcrest/Source/Library/Object/HCHasProperty.m; sourceTree = SOURCE_ROOT; }; + 0E0FE01A66E84DD1BED66656 /* TyphoonDefinition+InstanceBuilder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "TyphoonDefinition+InstanceBuilder.m"; path = "../../Source/Factory/InstanceBuilder/TyphoonDefinition+InstanceBuilder.m"; sourceTree = SOURCE_ROOT; }; + 0EC31642BED145B79B7FD704 /* HCIsCollectionContaining.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCIsCollectionContaining.h; path = OCHamcrest/Source/Library/Collection/HCIsCollectionContaining.h; sourceTree = SOURCE_ROOT; }; + 0F86E42F3AC24FF384B80ACC /* HCIsIn.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCIsIn.h; path = OCHamcrest/Source/Library/Collection/HCIsIn.h; sourceTree = SOURCE_ROOT; }; + 108F5AD75F734BE0AE8654B1 /* Pods-osx-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-osx-acknowledgements.markdown"; sourceTree = SOURCE_ROOT; }; + 1162996A50404638900B532F /* TyphoonTypeConverterRegistry.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = TyphoonTypeConverterRegistry.m; path = ../../Source/TypeConversion/TyphoonTypeConverterRegistry.m; sourceTree = SOURCE_ROOT; }; + 118B4A9913D94BBC80742A1D /* TyphoonNSURLTypeConverter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = TyphoonNSURLTypeConverter.m; path = ../../Source/TypeConversion/TyphoonNSURLTypeConverter.m; sourceTree = SOURCE_ROOT; }; + 12395B7BE97B4DBE86BBFA86 /* MKTTypeEncoding.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MKTTypeEncoding.h; path = OCMockito/Source/OCMockito/MKTTypeEncoding.h; sourceTree = SOURCE_ROOT; }; + 1245ED39E78042E9A864C9FF /* TyphoonShorthand.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = TyphoonShorthand.h; path = ../../Source/TyphoonShorthand.h; sourceTree = SOURCE_ROOT; }; + 1252811CCDFF46068C1BF2BA /* HCIsEqual.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCIsEqual.h; path = OCHamcrest/Source/Library/Object/HCIsEqual.h; sourceTree = SOURCE_ROOT; }; + 12682C8773164F3684FF4973 /* Pods-osx-Typhoon-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-osx-Typhoon-Private.xcconfig"; sourceTree = SOURCE_ROOT; }; + 12DEE28C1F8D4B5B882AD94D /* MKTClassObjectMock.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MKTClassObjectMock.m; path = OCMockito/Source/OCMockito/MKTClassObjectMock.m; sourceTree = SOURCE_ROOT; }; + 153647AE901149399734B9D6 /* MKTVerificationData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MKTVerificationData.h; path = OCMockito/Source/OCMockito/MKTVerificationData.h; sourceTree = SOURCE_ROOT; }; + 16753E0B65874A53A5004EF1 /* TyphoonPrimitiveTypeConverter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = TyphoonPrimitiveTypeConverter.h; path = ../../Source/TypeConversion/TyphoonPrimitiveTypeConverter.h; sourceTree = SOURCE_ROOT; }; + 17CCE0D9DE17483E839E9E7B /* HCInvocationMatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCInvocationMatcher.m; path = OCHamcrest/Source/Core/Helpers/HCInvocationMatcher.m; sourceTree = SOURCE_ROOT; }; + 185E2BFCA26F43E6BA56D052 /* MKTStubbedInvocationMatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MKTStubbedInvocationMatcher.h; path = OCMockito/Source/OCMockito/MKTStubbedInvocationMatcher.h; sourceTree = SOURCE_ROOT; }; + 19C0A6AEB02F4C3C976D8F62 /* HCIsEqualIgnoringWhiteSpace.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCIsEqualIgnoringWhiteSpace.m; path = OCHamcrest/Source/Library/Text/HCIsEqualIgnoringWhiteSpace.m; sourceTree = SOURCE_ROOT; }; + 1A2B334C801241A39201AD1E /* TyphoonTypeConvertedCollectionValue.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = TyphoonTypeConvertedCollectionValue.h; path = ../../Source/Component/Properties/Collection/TyphoonTypeConvertedCollectionValue.h; sourceTree = SOURCE_ROOT; }; + 1C1B10C3843A45418C24CC22 /* HCStringDescription.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCStringDescription.m; path = OCHamcrest/Source/Core/HCStringDescription.m; sourceTree = SOURCE_ROOT; }; + 1E8EF1B845144A978FDC0DFB /* Pods-ios-environment.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-ios-environment.h"; sourceTree = SOURCE_ROOT; }; + 1FCB09B2A16C4834A0449976 /* MKTProtocolMock.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MKTProtocolMock.h; path = OCMockito/Source/OCMockito/MKTProtocolMock.h; sourceTree = SOURCE_ROOT; }; + 1FDB067D15BB4C9FA3B3518E /* Pods-ios-OCHamcrest-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ios-OCHamcrest-Private.xcconfig"; sourceTree = SOURCE_ROOT; }; + 20BAAAB96C6546C4B3E4E638 /* Pods-ios-Typhoon-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ios-Typhoon-Private.xcconfig"; sourceTree = SOURCE_ROOT; }; + 210BC84DAFE1455AB4F2B961 /* MKTAtLeastTimes.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MKTAtLeastTimes.m; path = OCMockito/Source/OCMockito/MKTAtLeastTimes.m; sourceTree = SOURCE_ROOT; }; + 212CA6A1AC924F85A87E3ABC /* MKTBaseMockObject.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MKTBaseMockObject.m; path = OCMockito/Source/OCMockito/MKTBaseMockObject.m; sourceTree = SOURCE_ROOT; }; + 2191EF81DDC344148688925A /* TyphoonTypeConverter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = TyphoonTypeConverter.h; path = ../../Source/TypeConversion/TyphoonTypeConverter.h; sourceTree = SOURCE_ROOT; }; + 21D97416B1834DCBA7A614C3 /* MKTObjectAndProtocolMock.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MKTObjectAndProtocolMock.m; path = OCMockito/Source/OCMockito/MKTObjectAndProtocolMock.m; sourceTree = SOURCE_ROOT; }; + 21E5FAAC23514139AAEC51BF /* HCRequireNonNilString.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCRequireNonNilString.m; path = OCHamcrest/Source/Core/Helpers/HCRequireNonNilString.m; sourceTree = SOURCE_ROOT; }; + 220846D794054D57A1A9320D /* TyphoonComponentFactoryMutator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = TyphoonComponentFactoryMutator.h; path = ../../Source/Factory/Mutator/TyphoonComponentFactoryMutator.h; sourceTree = SOURCE_ROOT; }; + 2217CDF7A99940479E0FB91D /* HCIsDictionaryContaining.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCIsDictionaryContaining.h; path = OCHamcrest/Source/Library/Collection/HCIsDictionaryContaining.h; sourceTree = SOURCE_ROOT; }; + 226280CA5A834405B092114E /* MKTInvocationMatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MKTInvocationMatcher.m; path = OCMockito/Source/OCMockito/MKTInvocationMatcher.m; sourceTree = SOURCE_ROOT; }; + 22F430C79FE844BCA944A53E /* TyphoonJRSwizzle.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = TyphoonJRSwizzle.m; path = ../../Source/Utils/Swizzle/TyphoonJRSwizzle.m; sourceTree = SOURCE_ROOT; }; + 23C2B61782494D48A6D2BA51 /* HCSelfDescribing.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCSelfDescribing.h; path = OCHamcrest/Source/Core/HCSelfDescribing.h; sourceTree = SOURCE_ROOT; }; + 23C693FB631C4AB787065FDF /* libPods-osx.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-osx.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 25FBCBF295294BA78BDA6547 /* HCConformsToProtocol.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCConformsToProtocol.h; path = OCHamcrest/Source/Library/Object/HCConformsToProtocol.h; sourceTree = SOURCE_ROOT; }; + 2738BE25FFA04D29A11D2C96 /* Pods-osx-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-osx-dummy.m"; sourceTree = SOURCE_ROOT; }; + 2791682154E44970844149AC /* TyphoonPropertyInjectedByReference.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = TyphoonPropertyInjectedByReference.h; path = ../../Source/Component/Properties/TyphoonPropertyInjectedByReference.h; sourceTree = SOURCE_ROOT; }; + 286E7F4E97DE4DF5830E26EC /* TyphoonTestUtils.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = TyphoonTestUtils.m; path = ../../Source/Utils/TyphoonTestUtils.m; sourceTree = SOURCE_ROOT; }; + 2A9009F438A4422DBEFA8CFD /* HCIsCloseTo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCIsCloseTo.h; path = OCHamcrest/Source/Library/Number/HCIsCloseTo.h; sourceTree = SOURCE_ROOT; }; + 2C194BF7FB644029B8F5FF4F /* OCMockito.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OCMockito.h; path = OCMockito/Source/OCMockito/OCMockito.h; sourceTree = SOURCE_ROOT; }; + 2E25913A453D4219BCA81373 /* Pods-osx-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-osx-acknowledgements.plist"; sourceTree = SOURCE_ROOT; }; + 2E567891663F4955BD63EA75 /* TyphoonRXMLElement+XmlComponentFactory.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "TyphoonRXMLElement+XmlComponentFactory.h"; path = "../../Source/Factory/Xml/TyphoonRXMLElement+XmlComponentFactory.h"; sourceTree = SOURCE_ROOT; }; + 2E8E4F194F0445139C075CE9 /* Pods-ios-OCHamcrest.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ios-OCHamcrest.xcconfig"; sourceTree = SOURCE_ROOT; }; + 302A322E684345119897D618 /* TyphoonInitializer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = TyphoonInitializer.h; path = ../../Source/Component/Initializer/TyphoonInitializer.h; sourceTree = SOURCE_ROOT; }; + 31DF66697EE947ABA60F970D /* HCIsCollectionOnlyContaining.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCIsCollectionOnlyContaining.m; path = OCHamcrest/Source/Library/Collection/HCIsCollectionOnlyContaining.m; sourceTree = SOURCE_ROOT; }; + 335A48AF5EBB4968BF205225 /* TyphoonTestUtils.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = TyphoonTestUtils.h; path = ../../Source/Utils/TyphoonTestUtils.h; sourceTree = SOURCE_ROOT; }; + 3458B8AD68D1400490D5C55F /* MKTStubbedInvocationMatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MKTStubbedInvocationMatcher.m; path = OCMockito/Source/OCMockito/MKTStubbedInvocationMatcher.m; sourceTree = SOURCE_ROOT; }; + 3482A30FCB374C56B7632828 /* Cocoa.framework */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk/System/Library/Frameworks/Cocoa.framework; sourceTree = DEVELOPER_DIR; }; + 351E44DD724047429EEFB397 /* NSObject+TyphoonIntrospectionUtils.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSObject+TyphoonIntrospectionUtils.h"; path = "../../Source/Utils/NSObject+TyphoonIntrospectionUtils.h"; sourceTree = SOURCE_ROOT; }; + 388A5AAB700A4DA9BF7B0924 /* MKTObjectMock.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MKTObjectMock.h; path = OCMockito/Source/OCMockito/MKTObjectMock.h; sourceTree = SOURCE_ROOT; }; + 38F8C2DFCCC645919681CFF7 /* HCIsEqualToNumber.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCIsEqualToNumber.m; path = OCHamcrest/Source/Library/Number/HCIsEqualToNumber.m; sourceTree = SOURCE_ROOT; }; + 39BA032BC2FB4FD4A35388E5 /* HCStringContainsInOrder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCStringContainsInOrder.h; path = OCHamcrest/Source/Library/Text/HCStringContainsInOrder.h; sourceTree = SOURCE_ROOT; }; + 3C1EFC1C31DA4D7B8787DBE1 /* HCStringStartsWith.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCStringStartsWith.h; path = OCHamcrest/Source/Library/Text/HCStringStartsWith.h; sourceTree = SOURCE_ROOT; }; + 3D9917D5D89E4373951C991F /* HCStringStartsWith.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCStringStartsWith.m; path = OCHamcrest/Source/Library/Text/HCStringStartsWith.m; sourceTree = SOURCE_ROOT; }; + 3DEC2C3CF20C4BF2B43FA45B /* HCStringContains.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCStringContains.m; path = OCHamcrest/Source/Library/Text/HCStringContains.m; sourceTree = SOURCE_ROOT; }; + 44A1E62D6FB44ADAAA399A31 /* TyphoonDefinition.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = TyphoonDefinition.m; path = ../../Source/Component/TyphoonDefinition.m; sourceTree = SOURCE_ROOT; }; + 44FC78BF07BF4A9D9623A458 /* TyphoonDefinition+InstanceBuilder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "TyphoonDefinition+InstanceBuilder.h"; path = "../../Source/Factory/InstanceBuilder/TyphoonDefinition+InstanceBuilder.h"; sourceTree = SOURCE_ROOT; }; + 46956D67A3D44B828E4D872D /* TyphoonPropertyPlaceholderConfigurer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = TyphoonPropertyPlaceholderConfigurer.h; path = ../../Source/Factory/PropertyConfigurers/TyphoonPropertyPlaceholderConfigurer.h; sourceTree = SOURCE_ROOT; }; + 4964367123D34192BC7933A6 /* HCAssertThat.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCAssertThat.h; path = OCHamcrest/Source/Core/HCAssertThat.h; sourceTree = SOURCE_ROOT; }; + 49E1B206147A476A95ADF364 /* MKTMockAwareVerificationMode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MKTMockAwareVerificationMode.h; path = OCMockito/Source/OCMockito/MKTMockAwareVerificationMode.h; sourceTree = SOURCE_ROOT; }; + 4BB5414CC3D34BF69F78EA64 /* HCIsDictionaryContaining.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCIsDictionaryContaining.m; path = OCHamcrest/Source/Library/Collection/HCIsDictionaryContaining.m; sourceTree = SOURCE_ROOT; }; + 4C6854BFDB344FC79476E91C /* HCIsNil.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCIsNil.m; path = OCHamcrest/Source/Library/Object/HCIsNil.m; sourceTree = SOURCE_ROOT; }; + 4C9ED326AEBE4336A04EECFA /* MKTMockingProgress.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MKTMockingProgress.m; path = OCMockito/Source/OCMockito/MKTMockingProgress.m; sourceTree = SOURCE_ROOT; }; + 4CF0EC2D9BA748DDB4CBB664 /* Pods-ios-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-ios-resources.sh"; sourceTree = SOURCE_ROOT; }; + 4F317258029B431AB5A810BF /* TyphoonBundleResource.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = TyphoonBundleResource.m; path = ../../Source/Utils/Resource/TyphoonBundleResource.m; sourceTree = SOURCE_ROOT; }; + 4FF153B066A54841B76CF3B4 /* Pods-ios-OCHamcrest-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-ios-OCHamcrest-prefix.pch"; sourceTree = SOURCE_ROOT; }; + 518763CCD3C1430BA4849906 /* TyphoonInjectedParameter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = TyphoonInjectedParameter.h; path = ../../Source/Component/Initializer/TyphoonInjectedParameter.h; sourceTree = SOURCE_ROOT; }; + 52BFD09A6E4D4FA59CB8DEF2 /* HCIsIn.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCIsIn.m; path = OCHamcrest/Source/Library/Collection/HCIsIn.m; sourceTree = SOURCE_ROOT; }; + 52F5AB50B4174E29A6CA4C37 /* HCAnyOf.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCAnyOf.h; path = OCHamcrest/Source/Library/Logical/HCAnyOf.h; sourceTree = SOURCE_ROOT; }; + 53108CA26D404049B86C211C /* TyphoonPassThroughTypeConverter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = TyphoonPassThroughTypeConverter.m; path = ../../Source/TypeConversion/TyphoonPassThroughTypeConverter.m; sourceTree = SOURCE_ROOT; }; + 5430B9C99AC84EB78E7C45B8 /* HCIsCloseTo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCIsCloseTo.m; path = OCHamcrest/Source/Library/Number/HCIsCloseTo.m; sourceTree = SOURCE_ROOT; }; + 5561B654654D45B5A0D75883 /* TyphoonBlockComponentFactory.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = TyphoonBlockComponentFactory.m; path = ../../Source/Factory/Block/TyphoonBlockComponentFactory.m; sourceTree = SOURCE_ROOT; }; + 5692CFC66D934E11B34C8176 /* Pods-osx-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-osx-resources.sh"; sourceTree = SOURCE_ROOT; }; + 56AEF36506DC45E79FCAC084 /* HCRequireNonNilObject.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCRequireNonNilObject.m; path = OCHamcrest/Source/Core/Helpers/HCRequireNonNilObject.m; sourceTree = SOURCE_ROOT; }; + 579A6B5910FD474F850046F1 /* MKTAtLeastTimes.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MKTAtLeastTimes.h; path = OCMockito/Source/OCMockito/MKTAtLeastTimes.h; sourceTree = SOURCE_ROOT; }; + 58EBBB6AB951490BB57E6542 /* HCIsEqualIgnoringCase.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCIsEqualIgnoringCase.h; path = OCHamcrest/Source/Library/Text/HCIsEqualIgnoringCase.h; sourceTree = SOURCE_ROOT; }; + 5A419F3717C14536B84B71CF /* HCOrderingComparison.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCOrderingComparison.h; path = OCHamcrest/Source/Library/Number/HCOrderingComparison.h; sourceTree = SOURCE_ROOT; }; + 5A681E29A2D54DAAAB8856E3 /* HCIsDictionaryContainingValue.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCIsDictionaryContainingValue.m; path = OCHamcrest/Source/Library/Collection/HCIsDictionaryContainingValue.m; sourceTree = SOURCE_ROOT; }; + 5A7D002BE680438A9ED9DB3A /* HCSubstringMatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCSubstringMatcher.m; path = OCHamcrest/Source/Library/Text/HCSubstringMatcher.m; sourceTree = SOURCE_ROOT; }; + 5BF8A09541784CEEBB26AB49 /* MKTVerificationData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MKTVerificationData.m; path = OCMockito/Source/OCMockito/MKTVerificationData.m; sourceTree = SOURCE_ROOT; }; + 5E5EE4CC480243AC81EE26E5 /* HCIsEqualIgnoringCase.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCIsEqualIgnoringCase.m; path = OCHamcrest/Source/Library/Text/HCIsEqualIgnoringCase.m; sourceTree = SOURCE_ROOT; }; + 5E86D6173C294472AFF205FF /* HCIsCollectionContainingInOrder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCIsCollectionContainingInOrder.m; path = OCHamcrest/Source/Library/Collection/HCIsCollectionContainingInOrder.m; sourceTree = SOURCE_ROOT; }; + 5EA7FD14056049CEBE5CD83D /* HCSubstringMatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCSubstringMatcher.h; path = OCHamcrest/Source/Library/Text/HCSubstringMatcher.h; sourceTree = SOURCE_ROOT; }; + 5EF1EA4DD84E4E33842E976D /* HCRequireNonNilString.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCRequireNonNilString.h; path = OCHamcrest/Source/Core/Helpers/HCRequireNonNilString.h; sourceTree = SOURCE_ROOT; }; + 5FE34005C9A34346980D5CED /* HCIsEqual.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCIsEqual.m; path = OCHamcrest/Source/Library/Object/HCIsEqual.m; sourceTree = SOURCE_ROOT; }; + 6196035D745A40F4B7449944 /* TyphoonTypeDescriptor.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = TyphoonTypeDescriptor.h; path = ../../Source/TypeConversion/TyphoonTypeDescriptor.h; sourceTree = SOURCE_ROOT; }; + 61E9037385254669A84DDA03 /* Podfile */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + 63A5483BF58D40CDB129C3FF /* Pods-ios-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-ios-dummy.m"; sourceTree = SOURCE_ROOT; }; + 64DF3FB6A5C64529B731517E /* TyphoonParameterInjectedByRawValue.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = TyphoonParameterInjectedByRawValue.m; path = ../../Source/Component/Initializer/TyphoonParameterInjectedByRawValue.m; sourceTree = SOURCE_ROOT; }; + 6550AB43F1A74BD8A1BF4152 /* HCStringContains.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCStringContains.h; path = OCHamcrest/Source/Library/Text/HCStringContains.h; sourceTree = SOURCE_ROOT; }; + 6883140368BF48C68C891B62 /* HCIsDictionaryContainingValue.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCIsDictionaryContainingValue.h; path = OCHamcrest/Source/Library/Collection/HCIsDictionaryContainingValue.h; sourceTree = SOURCE_ROOT; }; + 695CD0AD3EAA4A87B0A6D21B /* HCIsSame.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCIsSame.h; path = OCHamcrest/Source/Library/Object/HCIsSame.h; sourceTree = SOURCE_ROOT; }; + 69DC020E96C744E4A4CF4421 /* HCIsCollectionOnlyContaining.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCIsCollectionOnlyContaining.h; path = OCHamcrest/Source/Library/Collection/HCIsCollectionOnlyContaining.h; sourceTree = SOURCE_ROOT; }; + 6A9B68FAF553490DA11DBA17 /* TyphoonBlockComponentFactory.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = TyphoonBlockComponentFactory.h; path = ../../Source/Factory/Block/TyphoonBlockComponentFactory.h; sourceTree = SOURCE_ROOT; }; + 6D7D635B27BC4CCBA12B4D40 /* HCIsDictionaryContainingKey.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCIsDictionaryContainingKey.m; path = OCHamcrest/Source/Library/Collection/HCIsDictionaryContainingKey.m; sourceTree = SOURCE_ROOT; }; + 6E4F679D4AAF4615AC26A6D5 /* Pods-ios-Typhoon-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-ios-Typhoon-dummy.m"; sourceTree = SOURCE_ROOT; }; + 6F5145992B9C48A09994C196 /* HCHasCount.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCHasCount.h; path = OCHamcrest/Source/Library/Collection/HCHasCount.h; sourceTree = SOURCE_ROOT; }; + 6FA9EF23862E4375AB2BCEB6 /* TyphoonAutowire.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = TyphoonAutowire.h; path = ../../Source/TyphoonAutowire.h; sourceTree = SOURCE_ROOT; }; + 6FD30A2EDCC44016A4C4254D /* Pods-ios-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-ios-acknowledgements.markdown"; sourceTree = SOURCE_ROOT; }; + 7126C0BD5F234CC6A63051F6 /* MKTException.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MKTException.h; path = OCMockito/Source/OCMockito/MKTException.h; sourceTree = SOURCE_ROOT; }; + 7128F446564B4C5687491CAC /* Pods-osx-OCMockito-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-osx-OCMockito-dummy.m"; sourceTree = SOURCE_ROOT; }; + 726ACE1F477E496E873EA6E6 /* HCMatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCMatcher.h; path = OCHamcrest/Source/Core/HCMatcher.h; sourceTree = SOURCE_ROOT; }; + 72F4EA1126504862B3FC2EAC /* OCMockito.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OCMockito.m; path = OCMockito/Source/OCMockito/OCMockito.m; sourceTree = SOURCE_ROOT; }; + 74C4AAE1C01A463686814E35 /* MKTPrimitiveArgumentMatching.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MKTPrimitiveArgumentMatching.h; path = OCMockito/Source/OCMockito/MKTPrimitiveArgumentMatching.h; sourceTree = SOURCE_ROOT; }; + 74D770F07DA145739BCBA310 /* TyphoonBundleResource.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = TyphoonBundleResource.h; path = ../../Source/Utils/Resource/TyphoonBundleResource.h; sourceTree = SOURCE_ROOT; }; + 764A045F4D964DEE9FA2C71B /* TyphoonInitializer+InstanceBuilder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "TyphoonInitializer+InstanceBuilder.m"; path = "../../Source/Factory/InstanceBuilder/TyphoonInitializer+InstanceBuilder.m"; sourceTree = SOURCE_ROOT; }; + 766B8E660E5D4C8684454DA0 /* HCBaseMatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCBaseMatcher.h; path = OCHamcrest/Source/Core/HCBaseMatcher.h; sourceTree = SOURCE_ROOT; }; + 7696F2CB26584E95B703FA5C /* HCStringContainsInOrder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCStringContainsInOrder.m; path = OCHamcrest/Source/Library/Text/HCStringContainsInOrder.m; sourceTree = SOURCE_ROOT; }; + 7881F52A2B134F158345414E /* Pods-osx-Typhoon-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-osx-Typhoon-prefix.pch"; sourceTree = SOURCE_ROOT; }; + 78FCEE94727F442C802D5620 /* MKTObjectAndProtocolMock.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MKTObjectAndProtocolMock.h; path = OCMockito/Source/OCMockito/MKTObjectAndProtocolMock.h; sourceTree = SOURCE_ROOT; }; + 7A450EED522E4458AC4F00F1 /* HCWrapInMatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCWrapInMatcher.m; path = OCHamcrest/Source/Core/Helpers/HCWrapInMatcher.m; sourceTree = SOURCE_ROOT; }; + 7AC6E264A0704A979FA32BC5 /* TyphoonParameterInjectedByReference.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = TyphoonParameterInjectedByReference.h; path = ../../Source/Component/Initializer/TyphoonParameterInjectedByReference.h; sourceTree = SOURCE_ROOT; }; + 7B2CE525D43942929F3DB634 /* TyphoonPropertyInjectedByType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = TyphoonPropertyInjectedByType.h; path = ../../Source/Component/Properties/TyphoonPropertyInjectedByType.h; sourceTree = SOURCE_ROOT; }; + 7BD460E8C6EE4481851BF278 /* TyphoonXmlComponentFactory.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = TyphoonXmlComponentFactory.h; path = ../../Source/Factory/Xml/TyphoonXmlComponentFactory.h; sourceTree = SOURCE_ROOT; }; + 7C15E1D0C720427483A0D1B8 /* TyphoonInitializer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = TyphoonInitializer.m; path = ../../Source/Component/Initializer/TyphoonInitializer.m; sourceTree = SOURCE_ROOT; }; + 7E8017C86082407582E0C6AF /* HCDescribedAs.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCDescribedAs.h; path = OCHamcrest/Source/Library/Decorator/HCDescribedAs.h; sourceTree = SOURCE_ROOT; }; + 7FD800747C45414E80A5C8F8 /* Pods-osx-Typhoon.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-osx-Typhoon.xcconfig"; sourceTree = SOURCE_ROOT; }; + 80479D96ECA3462889095AB3 /* HCIsCollectionContaining.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCIsCollectionContaining.m; path = OCHamcrest/Source/Library/Collection/HCIsCollectionContaining.m; sourceTree = SOURCE_ROOT; }; + 807E559235344CADB14B668C /* HCBaseDescription.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCBaseDescription.h; path = OCHamcrest/Source/Core/HCBaseDescription.h; sourceTree = SOURCE_ROOT; }; + 81BF95ED2B844AE7B5AF0DA9 /* HCIsDictionaryContainingKey.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCIsDictionaryContainingKey.h; path = OCHamcrest/Source/Library/Collection/HCIsDictionaryContainingKey.h; sourceTree = SOURCE_ROOT; }; + 8205F969BC174A3CAB13B5D7 /* HCAllOf.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCAllOf.h; path = OCHamcrest/Source/Library/Logical/HCAllOf.h; sourceTree = SOURCE_ROOT; }; + 82AD35B543084944BD51EB01 /* MKTExactTimes.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MKTExactTimes.m; path = OCMockito/Source/OCMockito/MKTExactTimes.m; sourceTree = SOURCE_ROOT; }; + 83FBB0E6DE2B4CDCBAF63243 /* HCDescription.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCDescription.h; path = OCHamcrest/Source/Core/HCDescription.h; sourceTree = SOURCE_ROOT; }; + 8409E9DCDE13462EA9A54F48 /* HCIsEqualToNumber.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCIsEqualToNumber.h; path = OCHamcrest/Source/Library/Number/HCIsEqualToNumber.h; sourceTree = SOURCE_ROOT; }; + 845DA4E118DF463F87476C16 /* HCNumberAssert.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCNumberAssert.h; path = OCHamcrest/Source/Library/Number/HCNumberAssert.h; sourceTree = SOURCE_ROOT; }; + 8526CEB3901D4CF6A5152408 /* TyphoonDefinition.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = TyphoonDefinition.h; path = ../../Source/Component/TyphoonDefinition.h; sourceTree = SOURCE_ROOT; }; + 861BDE9B3E104298BF11CCF0 /* HCIs.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCIs.h; path = OCHamcrest/Source/Library/Decorator/HCIs.h; sourceTree = SOURCE_ROOT; }; + 8623C11BCE814AB78817981E /* HCBoxNumber.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCBoxNumber.h; path = OCHamcrest/Source/Library/Number/HCBoxNumber.h; sourceTree = SOURCE_ROOT; }; + 86533AB97AE143AE9A23D820 /* libPods-osx-OCHamcrest.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-osx-OCHamcrest.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 869634DA6A5740FCA64AD8E3 /* TyphoonParameterInjectedByReference.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = TyphoonParameterInjectedByReference.m; path = ../../Source/Component/Initializer/TyphoonParameterInjectedByReference.m; sourceTree = SOURCE_ROOT; }; + 86E4B043C027469A9F59B8CE /* MKTBaseMockObject.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MKTBaseMockObject.h; path = OCMockito/Source/OCMockito/MKTBaseMockObject.h; sourceTree = SOURCE_ROOT; }; + 89098CD900EB420EBF488F31 /* HCIsInstanceOf.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCIsInstanceOf.h; path = OCHamcrest/Source/Library/Object/HCIsInstanceOf.h; sourceTree = SOURCE_ROOT; }; + 8A1F5CE240CA4AA5BAB5BB2C /* HCIsDictionaryContainingEntries.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCIsDictionaryContainingEntries.m; path = OCHamcrest/Source/Library/Collection/HCIsDictionaryContainingEntries.m; sourceTree = SOURCE_ROOT; }; + 8A5E040E9DA74123A533A4B2 /* HCDescribedAs.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCDescribedAs.m; path = OCHamcrest/Source/Library/Decorator/HCDescribedAs.m; sourceTree = SOURCE_ROOT; }; + 8BECB4DEAE794350B77C5843 /* HCIsCollectionContainingInOrder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCIsCollectionContainingInOrder.h; path = OCHamcrest/Source/Library/Collection/HCIsCollectionContainingInOrder.h; sourceTree = SOURCE_ROOT; }; + 8EE9FF8A75D54C5FB1A611C7 /* TyphoonRXMLElement.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = TyphoonRXMLElement.m; path = ../../Source/Factory/Xml/TyphoonRXMLElement.m; sourceTree = SOURCE_ROOT; }; + 8F48F63493FD45E0848E73FE /* Pods-osx-OCHamcrest-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-osx-OCHamcrest-Private.xcconfig"; sourceTree = SOURCE_ROOT; }; + 9031A80D6D80433DA579CEF6 /* HCIsInstanceOf.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCIsInstanceOf.m; path = OCHamcrest/Source/Library/Object/HCIsInstanceOf.m; sourceTree = SOURCE_ROOT; }; + 9210DAE725914BE5A8E7D4D9 /* HCIsDictionaryContainingEntries.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCIsDictionaryContainingEntries.h; path = OCHamcrest/Source/Library/Collection/HCIsDictionaryContainingEntries.h; sourceTree = SOURCE_ROOT; }; + 9272E75F76F546FD896B2FB2 /* Pods-ios-OCMockito-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ios-OCMockito-Private.xcconfig"; sourceTree = SOURCE_ROOT; }; + 94375E99D593456EA23726B2 /* HCIsAnything.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCIsAnything.m; path = OCHamcrest/Source/Library/Logical/HCIsAnything.m; sourceTree = SOURCE_ROOT; }; + 94D99B66E9FA40C8BF0E168B /* MKTInvocationContainer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MKTInvocationContainer.m; path = OCMockito/Source/OCMockito/MKTInvocationContainer.m; sourceTree = SOURCE_ROOT; }; + 963C82CC40AF413D9E6DD3FC /* HCIsCollectionContainingInAnyOrder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCIsCollectionContainingInAnyOrder.h; path = OCHamcrest/Source/Library/Collection/HCIsCollectionContainingInAnyOrder.h; sourceTree = SOURCE_ROOT; }; + 96457CE734B94EA18CF38901 /* MKTTestLocation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MKTTestLocation.h; path = OCMockito/Source/OCMockito/MKTTestLocation.h; sourceTree = SOURCE_ROOT; }; + 9A449A77F4ED4916AD6C60AC /* OCHamcrest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OCHamcrest.h; path = OCHamcrest/Source/OCHamcrest.h; sourceTree = SOURCE_ROOT; }; + 9C81C83558E6402E810CA447 /* TyphoonXmlComponentFactory.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = TyphoonXmlComponentFactory.m; path = ../../Source/Factory/Xml/TyphoonXmlComponentFactory.m; sourceTree = SOURCE_ROOT; }; + 9D0AF0C5500B4F67B268224A /* TyphoonInitializer+InstanceBuilder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "TyphoonInitializer+InstanceBuilder.h"; path = "../../Source/Factory/InstanceBuilder/TyphoonInitializer+InstanceBuilder.h"; sourceTree = SOURCE_ROOT; }; + 9F264122581E4858ADA32DE0 /* HCIsEmptyCollection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCIsEmptyCollection.m; path = OCHamcrest/Source/Library/Collection/HCIsEmptyCollection.m; sourceTree = SOURCE_ROOT; }; + 9FEB53916EEA44498B96B67D /* Foundation.framework */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; + 9FF4A3F38F6C4FDF8C883AD0 /* TyphoonComponentFactory+InstanceBuilder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "TyphoonComponentFactory+InstanceBuilder.h"; path = "../../Source/Factory/InstanceBuilder/TyphoonComponentFactory+InstanceBuilder.h"; sourceTree = SOURCE_ROOT; }; + A0C8B9A54A914D618FC77BD3 /* TyphoonAssembly.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = TyphoonAssembly.m; path = ../../Source/Factory/Block/TyphoonAssembly.m; sourceTree = SOURCE_ROOT; }; + A188FA548D6B4F529DA01427 /* TyphoonIntrospectionUtils.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = TyphoonIntrospectionUtils.m; path = ../../Source/Utils/TyphoonIntrospectionUtils.m; sourceTree = SOURCE_ROOT; }; + A63F5258596842228FEB7ABC /* TyphoonTypeConverterRegistry.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = TyphoonTypeConverterRegistry.h; path = ../../Source/TypeConversion/TyphoonTypeConverterRegistry.h; sourceTree = SOURCE_ROOT; }; + A69BC2A6ECA54A4F9A10A3EC /* TyphoonByReferenceCollectionValue.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = TyphoonByReferenceCollectionValue.m; path = ../../Source/Component/Properties/Collection/TyphoonByReferenceCollectionValue.m; sourceTree = SOURCE_ROOT; }; + A6FEEE3A8F9E49A583612C11 /* HCBaseMatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCBaseMatcher.m; path = OCHamcrest/Source/Core/HCBaseMatcher.m; sourceTree = SOURCE_ROOT; }; + A9EB74F28DCF4B95BC32CFAB /* HCIsEqualIgnoringWhiteSpace.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCIsEqualIgnoringWhiteSpace.h; path = OCHamcrest/Source/Library/Text/HCIsEqualIgnoringWhiteSpace.h; sourceTree = SOURCE_ROOT; }; + ABEDA51C8D5948C9A7ABD4A8 /* libPods-osx-Typhoon.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-osx-Typhoon.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + AF4C416F44964F23BAE78AB3 /* TyphoonCollectionValue.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = TyphoonCollectionValue.h; path = ../../Source/Component/Properties/Collection/TyphoonCollectionValue.h; sourceTree = SOURCE_ROOT; }; + AF6C5FCCA14748B09911D961 /* TyphoonResource.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = TyphoonResource.h; path = ../../Source/Utils/Resource/TyphoonResource.h; sourceTree = SOURCE_ROOT; }; + B1848085A2CB4EA3B3646E6D /* MKTObjectMock.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MKTObjectMock.m; path = OCMockito/Source/OCMockito/MKTObjectMock.m; sourceTree = SOURCE_ROOT; }; + B283C04AB89D4E4687E644EA /* HCStringEndsWith.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCStringEndsWith.h; path = OCHamcrest/Source/Library/Text/HCStringEndsWith.h; sourceTree = SOURCE_ROOT; }; + B2CE49E253304136B47C54A2 /* HCIsNil.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCIsNil.h; path = OCHamcrest/Source/Library/Object/HCIsNil.h; sourceTree = SOURCE_ROOT; }; + B4DC6A13B5D44D40A0D5420C /* HCIsSame.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCIsSame.m; path = OCHamcrest/Source/Library/Object/HCIsSame.m; sourceTree = SOURCE_ROOT; }; + B4EBDD2F33F449CD8D9F5E7D /* TyphoonPropertyInjectedAsCollection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = TyphoonPropertyInjectedAsCollection.m; path = ../../Source/Component/Properties/Collection/TyphoonPropertyInjectedAsCollection.m; sourceTree = SOURCE_ROOT; }; + B638C43205764300AD553552 /* HCCollectMatchers.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCCollectMatchers.h; path = OCHamcrest/Source/Core/Helpers/HCCollectMatchers.h; sourceTree = SOURCE_ROOT; }; + B6577F648EB44FCF92C42B6F /* TyphoonAssembly.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = TyphoonAssembly.h; path = ../../Source/Factory/Block/TyphoonAssembly.h; sourceTree = SOURCE_ROOT; }; + B88D03F318424DBD886BA214 /* HCIs.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCIs.m; path = OCHamcrest/Source/Library/Decorator/HCIs.m; sourceTree = SOURCE_ROOT; }; + B9CA1486519949DCAA9BFD6B /* MKTOngoingStubbing.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MKTOngoingStubbing.m; path = OCMockito/Source/OCMockito/MKTOngoingStubbing.m; sourceTree = SOURCE_ROOT; }; + BBBE265079884BF69F52FE5D /* libPods-ios-OCHamcrest.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-ios-OCHamcrest.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + BD6C0ACD75414FAE94E71246 /* TyphoonPropertyInjectionDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = TyphoonPropertyInjectionDelegate.h; path = ../../Source/Component/Properties/TyphoonPropertyInjectionDelegate.h; sourceTree = SOURCE_ROOT; }; + BD8E7E0B09944558AABBD1A1 /* Pods-ios-OCMockito.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ios-OCMockito.xcconfig"; sourceTree = SOURCE_ROOT; }; + BEDE45F64D1F489B87207C88 /* Pods-ios.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ios.xcconfig"; sourceTree = SOURCE_ROOT; }; + C29F17B462B3457BB3D7B308 /* MKTExactTimes.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MKTExactTimes.h; path = OCMockito/Source/OCMockito/MKTExactTimes.h; sourceTree = SOURCE_ROOT; }; + C5FB0044DAF3465AB113B326 /* TyphoonPropertyPlaceholderConfigurer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = TyphoonPropertyPlaceholderConfigurer.m; path = ../../Source/Factory/PropertyConfigurers/TyphoonPropertyPlaceholderConfigurer.m; sourceTree = SOURCE_ROOT; }; + C82191A8009C42A7B374708B /* Pods-osx.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-osx.xcconfig"; sourceTree = SOURCE_ROOT; }; + C8295D4DB6D8472DB37A9141 /* HCStringEndsWith.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCStringEndsWith.m; path = OCHamcrest/Source/Library/Text/HCStringEndsWith.m; sourceTree = SOURCE_ROOT; }; + C85DD2DA622D43C4AD85BB96 /* TyphoonByReferenceCollectionValue.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = TyphoonByReferenceCollectionValue.h; path = ../../Source/Component/Properties/Collection/TyphoonByReferenceCollectionValue.h; sourceTree = SOURCE_ROOT; }; + CA72BA37EEEC4BD9811D6134 /* MKTProtocolMock.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MKTProtocolMock.m; path = OCMockito/Source/OCMockito/MKTProtocolMock.m; sourceTree = SOURCE_ROOT; }; + CB6C064DF299400AB26F38B5 /* MKTVerificationMode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MKTVerificationMode.h; path = OCMockito/Source/OCMockito/MKTVerificationMode.h; sourceTree = SOURCE_ROOT; }; + CC211BDD4B1C45758731F2EF /* Pods-ios-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-ios-acknowledgements.plist"; sourceTree = SOURCE_ROOT; }; + CC305A0B240740998A5437B9 /* TyphoonPropertyInjectedByReference.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = TyphoonPropertyInjectedByReference.m; path = ../../Source/Component/Properties/TyphoonPropertyInjectedByReference.m; sourceTree = SOURCE_ROOT; }; + D0C5965C237A484A9795092C /* HCIsAnything.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCIsAnything.h; path = OCHamcrest/Source/Library/Logical/HCIsAnything.h; sourceTree = SOURCE_ROOT; }; + D24852E45EC24269829FD6AD /* HCCollectMatchers.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCCollectMatchers.m; path = OCHamcrest/Source/Core/Helpers/HCCollectMatchers.m; sourceTree = SOURCE_ROOT; }; + D3E98434DBEE4372A177AF7C /* TyphoonInjectedProperty.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = TyphoonInjectedProperty.h; path = ../../Source/Component/Properties/TyphoonInjectedProperty.h; sourceTree = SOURCE_ROOT; }; + D506595E44CD44E286C6B533 /* Pods-ios-OCMockito-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-ios-OCMockito-prefix.pch"; sourceTree = SOURCE_ROOT; }; + D58E747A50134E3ABAE25B1D /* HCAllOf.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCAllOf.m; path = OCHamcrest/Source/Library/Logical/HCAllOf.m; sourceTree = SOURCE_ROOT; }; + D75C8A86972A4507B026FD8E /* HCIsNot.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCIsNot.h; path = OCHamcrest/Source/Library/Logical/HCIsNot.h; sourceTree = SOURCE_ROOT; }; + D7F1E12D94AE4118970C3E9A /* Pods-osx-environment.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-osx-environment.h"; sourceTree = SOURCE_ROOT; }; + DA011FD85AF24CFA8E88E9D7 /* MKTMockAwareVerificationMode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MKTMockAwareVerificationMode.m; path = OCMockito/Source/OCMockito/MKTMockAwareVerificationMode.m; sourceTree = SOURCE_ROOT; }; + DA078B80506344F0A05524EF /* HCIsEmptyCollection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCIsEmptyCollection.h; path = OCHamcrest/Source/Library/Collection/HCIsEmptyCollection.h; sourceTree = SOURCE_ROOT; }; + DA1810DD94B348758B28BE94 /* TyphoonComponentFactory.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = TyphoonComponentFactory.m; path = ../../Source/Factory/TyphoonComponentFactory.m; sourceTree = SOURCE_ROOT; }; + DA3719EE05E640FB8D48146B /* TyphoonNSURLTypeConverter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = TyphoonNSURLTypeConverter.h; path = ../../Source/TypeConversion/TyphoonNSURLTypeConverter.h; sourceTree = SOURCE_ROOT; }; + DAB2D2FCCF224901833548BF /* HCHasDescription.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCHasDescription.h; path = OCHamcrest/Source/Library/Object/HCHasDescription.h; sourceTree = SOURCE_ROOT; }; + DACECFB098154038BE570933 /* HCHasCount.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCHasCount.m; path = OCHamcrest/Source/Library/Collection/HCHasCount.m; sourceTree = SOURCE_ROOT; }; + DB4F8230EF654B5E80443DAB /* MKTMockitoCore.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MKTMockitoCore.h; path = OCMockito/Source/OCMockito/MKTMockitoCore.h; sourceTree = SOURCE_ROOT; }; + DC1E9E5382864F53A2D65926 /* Pods-ios-Typhoon.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ios-Typhoon.xcconfig"; sourceTree = SOURCE_ROOT; }; + DC6DA8ABFD6A4DC7BEA291DD /* HCHasDescription.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCHasDescription.m; path = OCHamcrest/Source/Library/Object/HCHasDescription.m; sourceTree = SOURCE_ROOT; }; + DCC77CE52BC3479F9F203481 /* HCConformsToProtocol.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCConformsToProtocol.m; path = OCHamcrest/Source/Library/Object/HCConformsToProtocol.m; sourceTree = SOURCE_ROOT; }; + DCD694CFAE974BD6B010A67D /* HCInvocationMatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCInvocationMatcher.h; path = OCHamcrest/Source/Core/Helpers/HCInvocationMatcher.h; sourceTree = SOURCE_ROOT; }; + DDCCB96EA8CB45D59578D3BA /* TyphoonParameterInjectedByRawValue.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = TyphoonParameterInjectedByRawValue.h; path = ../../Source/Component/Initializer/TyphoonParameterInjectedByRawValue.h; sourceTree = SOURCE_ROOT; }; + DDEEC919B3054DC1BA179D76 /* MKTTestLocation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MKTTestLocation.m; path = OCMockito/Source/OCMockito/MKTTestLocation.m; sourceTree = SOURCE_ROOT; }; + E01A8239888643FC88334763 /* TyphoonPropertyInjectedByValue.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = TyphoonPropertyInjectedByValue.h; path = ../../Source/Component/Properties/TyphoonPropertyInjectedByValue.h; sourceTree = SOURCE_ROOT; }; + E095E0659D564B6E8A25F992 /* TyphoonParameterInjectedByValue.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = TyphoonParameterInjectedByValue.m; path = ../../Source/Component/Initializer/TyphoonParameterInjectedByValue.m; sourceTree = SOURCE_ROOT; }; + E0F69E97633845E38953C6FF /* TyphoonRXMLElement+XmlComponentFactory.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "TyphoonRXMLElement+XmlComponentFactory.m"; path = "../../Source/Factory/Xml/TyphoonRXMLElement+XmlComponentFactory.m"; sourceTree = SOURCE_ROOT; }; + E1D9E603CB2E4E319149358C /* TyphoonTypeConvertedCollectionValue.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = TyphoonTypeConvertedCollectionValue.m; path = ../../Source/Component/Properties/Collection/TyphoonTypeConvertedCollectionValue.m; sourceTree = SOURCE_ROOT; }; + E224DDC37FFD459894CF5E75 /* MKTException.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MKTException.m; path = OCMockito/Source/OCMockito/MKTException.m; sourceTree = SOURCE_ROOT; }; + E3300CD5CD31427BB6B0146D /* TyphoonJRSwizzle.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = TyphoonJRSwizzle.h; path = ../../Source/Utils/Swizzle/TyphoonJRSwizzle.h; sourceTree = SOURCE_ROOT; }; + E3FCB6F03D6E48D398A7645E /* MKTMockingProgress.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MKTMockingProgress.h; path = OCMockito/Source/OCMockito/MKTMockingProgress.h; sourceTree = SOURCE_ROOT; }; + E4A022C9E61D4EF3957BAFDB /* TyphoonComponentFactory+InstanceBuilder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "TyphoonComponentFactory+InstanceBuilder.m"; path = "../../Source/Factory/InstanceBuilder/TyphoonComponentFactory+InstanceBuilder.m"; sourceTree = SOURCE_ROOT; }; + E6A511E7955B4E6ABA371215 /* libPods-ios-Typhoon.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-ios-Typhoon.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + E7ECF76C96434501A80978EA /* MKTInvocationContainer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MKTInvocationContainer.h; path = OCMockito/Source/OCMockito/MKTInvocationContainer.h; sourceTree = SOURCE_ROOT; }; + E89CF53FB31E414C9DCA5934 /* Pods-ios-OCMockito-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-ios-OCMockito-dummy.m"; sourceTree = SOURCE_ROOT; }; + E89D28982D6641C4AF6289FF /* TyphoonComponentFactory.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = TyphoonComponentFactory.h; path = ../../Source/Factory/TyphoonComponentFactory.h; sourceTree = SOURCE_ROOT; }; + E96865896C974B0294FA2D60 /* HCOrderingComparison.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCOrderingComparison.m; path = OCHamcrest/Source/Library/Number/HCOrderingComparison.m; sourceTree = SOURCE_ROOT; }; + EC093D67C1FC456AA600F112 /* HCIsCollectionContainingInAnyOrder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCIsCollectionContainingInAnyOrder.m; path = OCHamcrest/Source/Library/Collection/HCIsCollectionContainingInAnyOrder.m; sourceTree = SOURCE_ROOT; }; + EC2A4BBC3C8D45AAAFC1F770 /* Pods-osx-OCHamcrest.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-osx-OCHamcrest.xcconfig"; sourceTree = SOURCE_ROOT; }; + ED8C80010ED2467EA7621A03 /* HCAssertThat.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCAssertThat.m; path = OCHamcrest/Source/Core/HCAssertThat.m; sourceTree = SOURCE_ROOT; }; + EDA22F4932CA453D94B728EF /* TyphoonPropertyInjectedAsCollection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = TyphoonPropertyInjectedAsCollection.h; path = ../../Source/Component/Properties/Collection/TyphoonPropertyInjectedAsCollection.h; sourceTree = SOURCE_ROOT; }; + EDA503B7F49948999F104A90 /* TyphoonIntrospectionUtils.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = TyphoonIntrospectionUtils.h; path = ../../Source/Utils/TyphoonIntrospectionUtils.h; sourceTree = SOURCE_ROOT; }; + F0442322B1544B63AF43D960 /* TyphoonTypeDescriptor.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = TyphoonTypeDescriptor.m; path = ../../Source/TypeConversion/TyphoonTypeDescriptor.m; sourceTree = SOURCE_ROOT; }; + F082D545B2AE4E11902AB578 /* TyphoonIntrospectiveNSObject.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = TyphoonIntrospectiveNSObject.h; path = ../../Source/Utils/TyphoonIntrospectiveNSObject.h; sourceTree = SOURCE_ROOT; }; + F1EE8F6A57424187A7D26C8F /* Pods-osx-OCMockito-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-osx-OCMockito-Private.xcconfig"; sourceTree = SOURCE_ROOT; }; + F23C0CBA10A94AD29C012263 /* libPods-ios-OCMockito.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-ios-OCMockito.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + F2ED6FC7588B4615B3F25F6B /* Pods-osx-Typhoon-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-osx-Typhoon-dummy.m"; sourceTree = SOURCE_ROOT; }; + F3C9BA84F4EE4F2FA9EF981F /* TyphoonPropertyInjectedByType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = TyphoonPropertyInjectedByType.m; path = ../../Source/Component/Properties/TyphoonPropertyInjectedByType.m; sourceTree = SOURCE_ROOT; }; + F455871ADB104EC1B8A6DB8B /* Pods-ios-OCHamcrest-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-ios-OCHamcrest-dummy.m"; sourceTree = SOURCE_ROOT; }; + F5F1E9AF58B7416E90C81146 /* Pods-osx-OCHamcrest-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-osx-OCHamcrest-prefix.pch"; sourceTree = SOURCE_ROOT; }; + F60B22D57C4E433F9C9216C4 /* HCWrapInMatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCWrapInMatcher.h; path = OCHamcrest/Source/Core/Helpers/HCWrapInMatcher.h; sourceTree = SOURCE_ROOT; }; + F680FCBA8C2444BC86887C43 /* Pods-ios-Typhoon-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-ios-Typhoon-prefix.pch"; sourceTree = SOURCE_ROOT; }; + F6C710DDCD2F4E468791D35E /* libPods-osx-OCMockito.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-osx-OCMockito.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + F6E6ECDB6340431390041F99 /* HCRequireNonNilObject.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCRequireNonNilObject.h; path = OCHamcrest/Source/Core/Helpers/HCRequireNonNilObject.h; sourceTree = SOURCE_ROOT; }; + F7544F6F4C5145B7B6A6EA4D /* Pods-osx-OCHamcrest-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-osx-OCHamcrest-dummy.m"; sourceTree = SOURCE_ROOT; }; + F9B7C505ABC04483A581AF16 /* MKTOngoingStubbing.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MKTOngoingStubbing.h; path = OCMockito/Source/OCMockito/MKTOngoingStubbing.h; sourceTree = SOURCE_ROOT; }; + F9C4F75E99804AD090E63966 /* HCBaseDescription.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCBaseDescription.m; path = OCHamcrest/Source/Core/HCBaseDescription.m; sourceTree = SOURCE_ROOT; }; + FA3E9AF3B8704EAD8350FE2D /* MKTClassObjectMock.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MKTClassObjectMock.h; path = OCMockito/Source/OCMockito/MKTClassObjectMock.h; sourceTree = SOURCE_ROOT; }; + FA6412B28D3848C1BC1E75AF /* HCStringDescription.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HCStringDescription.h; path = OCHamcrest/Source/Core/HCStringDescription.h; sourceTree = SOURCE_ROOT; }; + FC3E33029DC1464E83B5B799 /* Pods-osx-OCMockito-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-osx-OCMockito-prefix.pch"; sourceTree = SOURCE_ROOT; }; + FC6D393A4D3B4663B496C7DA /* TyphoonPassThroughTypeConverter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = TyphoonPassThroughTypeConverter.h; path = ../../Source/TypeConversion/TyphoonPassThroughTypeConverter.h; sourceTree = SOURCE_ROOT; }; + FF3A47D0A1534D52A22214B5 /* HCIsNot.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HCIsNot.m; path = OCHamcrest/Source/Library/Logical/HCIsNot.m; sourceTree = SOURCE_ROOT; }; + FF470EB02AE54DC085B0A1FD /* TyphoonParameterInjectedByValue.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = TyphoonParameterInjectedByValue.h; path = ../../Source/Component/Initializer/TyphoonParameterInjectedByValue.h; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 1906861D64EF46F6B8284396 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + D8E3F0B7F0DB4F4FBEFFD7FB /* Cocoa.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 229A21B3224940A4B271DE5A /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 7D6EA255B8B142188156951A /* Cocoa.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 282E139D33CB440DA749FBE9 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 0B2120D646714179996D3289 /* Cocoa.framework in Frameworks */, + 5CA6342FA9FD45F59F2247A5 /* libPods-osx-OCHamcrest.a in Frameworks */, + BBF908448C98400C99029B48 /* libPods-osx-OCMockito.a in Frameworks */, + BEA98F58CB464BB5836450BF /* libPods-osx-Typhoon.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 40CC4301510A4E29BF7D22AB /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + D2AD0F74A4EC47F2830C0D6F /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 6D3EAFB34F0F4945A35C18A9 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 7C5D01DE2DD14BBDB85C853B /* Foundation.framework in Frameworks */, + E31FD501F0C641FE9FAD9CD0 /* libPods-ios-OCHamcrest.a in Frameworks */, + 228F00BFAE2E42D0973BE7E3 /* libPods-ios-OCMockito.a in Frameworks */, + 6CDEC0DEDFE7437091EC8F2F /* libPods-ios-Typhoon.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 975B803E342140BA8FB04F38 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + A7735B4B6AD642A485DB6318 /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BFCA9D381F074B28AEFCEF3D /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 5CA6153A7BF14CA08F3D3798 /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + E2EF4D7DF5CF48A49BFEBA10 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 8EB5930A875A4956991A5C98 /* Cocoa.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 0B10ED9C33F84E98B9EDDF48 /* Pods-osx-OCHamcrest */ = { + isa = PBXGroup; + children = ( + EC2A4BBC3C8D45AAAFC1F770 /* Pods-osx-OCHamcrest.xcconfig */, + 8F48F63493FD45E0848E73FE /* Pods-osx-OCHamcrest-Private.xcconfig */, + F5F1E9AF58B7416E90C81146 /* Pods-osx-OCHamcrest-prefix.pch */, + F7544F6F4C5145B7B6A6EA4D /* Pods-osx-OCHamcrest-dummy.m */, + ); + name = "Pods-osx-OCHamcrest"; + sourceTree = ""; + }; + 1299C999D7DB4D1AB1214674 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 3482A30FCB374C56B7632828 /* Cocoa.framework */, + 9FEB53916EEA44498B96B67D /* Foundation.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + 1413E1B569CB4AB9AB9499A7 = { + isa = PBXGroup; + children = ( + 1299C999D7DB4D1AB1214674 /* Frameworks */, + 7A005B792ED444EEB8BBF2CC /* Local Pods */, + 7BB7B547D451495F96046111 /* Pods */, + 4951E7C4E1D84364B14FC13B /* Products */, + 1CC1A934DE364DEC996031DF /* Targets Support Files */, + 61E9037385254669A84DDA03 /* Podfile */, + ); + sourceTree = ""; + }; + 1CC1A934DE364DEC996031DF /* Targets Support Files */ = { + isa = PBXGroup; + children = ( + EA37F32F84804A439D78475B /* Pods-ios-OCHamcrest */, + 4593B77394204B16B7C1D78C /* Pods-ios-OCMockito */, + CB1868E5342748C3B7659A00 /* Pods-ios-Typhoon */, + 0B10ED9C33F84E98B9EDDF48 /* Pods-osx-OCHamcrest */, + 66B35EF68DC7414BBCB37FB4 /* Pods-osx-OCMockito */, + 9B2D0BDB57594838BA622FEE /* Pods-osx-Typhoon */, + 756DF8145B074523920E0CDD /* Pods-ios */, + FC4D53A8006C41EAB467EAAB /* Pods-osx */, + ); + name = "Targets Support Files"; + sourceTree = ""; + }; + 4593B77394204B16B7C1D78C /* Pods-ios-OCMockito */ = { + isa = PBXGroup; + children = ( + BD8E7E0B09944558AABBD1A1 /* Pods-ios-OCMockito.xcconfig */, + 9272E75F76F546FD896B2FB2 /* Pods-ios-OCMockito-Private.xcconfig */, + D506595E44CD44E286C6B533 /* Pods-ios-OCMockito-prefix.pch */, + E89CF53FB31E414C9DCA5934 /* Pods-ios-OCMockito-dummy.m */, + ); + name = "Pods-ios-OCMockito"; + sourceTree = ""; + }; + 4951E7C4E1D84364B14FC13B /* Products */ = { + isa = PBXGroup; + children = ( + BBBE265079884BF69F52FE5D /* libPods-ios-OCHamcrest.a */, + F23C0CBA10A94AD29C012263 /* libPods-ios-OCMockito.a */, + E6A511E7955B4E6ABA371215 /* libPods-ios-Typhoon.a */, + 86533AB97AE143AE9A23D820 /* libPods-osx-OCHamcrest.a */, + F6C710DDCD2F4E468791D35E /* libPods-osx-OCMockito.a */, + ABEDA51C8D5948C9A7ABD4A8 /* libPods-osx-Typhoon.a */, + 0A17DA9959654CA7AC0D4C66 /* libPods-ios.a */, + 23C693FB631C4AB787065FDF /* libPods-osx.a */, + ); + name = Products; + sourceTree = ""; + }; + 65BA25341A3945E884C7DDF0 /* Typhoon */ = { + isa = PBXGroup; + children = ( + 302A322E684345119897D618 /* TyphoonInitializer.h */, + 7C15E1D0C720427483A0D1B8 /* TyphoonInitializer.m */, + 518763CCD3C1430BA4849906 /* TyphoonInjectedParameter.h */, + DDCCB96EA8CB45D59578D3BA /* TyphoonParameterInjectedByRawValue.h */, + 64DF3FB6A5C64529B731517E /* TyphoonParameterInjectedByRawValue.m */, + 7AC6E264A0704A979FA32BC5 /* TyphoonParameterInjectedByReference.h */, + 869634DA6A5740FCA64AD8E3 /* TyphoonParameterInjectedByReference.m */, + FF470EB02AE54DC085B0A1FD /* TyphoonParameterInjectedByValue.h */, + E095E0659D564B6E8A25F992 /* TyphoonParameterInjectedByValue.m */, + C85DD2DA622D43C4AD85BB96 /* TyphoonByReferenceCollectionValue.h */, + A69BC2A6ECA54A4F9A10A3EC /* TyphoonByReferenceCollectionValue.m */, + AF4C416F44964F23BAE78AB3 /* TyphoonCollectionValue.h */, + EDA22F4932CA453D94B728EF /* TyphoonPropertyInjectedAsCollection.h */, + B4EBDD2F33F449CD8D9F5E7D /* TyphoonPropertyInjectedAsCollection.m */, + 1A2B334C801241A39201AD1E /* TyphoonTypeConvertedCollectionValue.h */, + E1D9E603CB2E4E319149358C /* TyphoonTypeConvertedCollectionValue.m */, + D3E98434DBEE4372A177AF7C /* TyphoonInjectedProperty.h */, + 2791682154E44970844149AC /* TyphoonPropertyInjectedByReference.h */, + CC305A0B240740998A5437B9 /* TyphoonPropertyInjectedByReference.m */, + 7B2CE525D43942929F3DB634 /* TyphoonPropertyInjectedByType.h */, + F3C9BA84F4EE4F2FA9EF981F /* TyphoonPropertyInjectedByType.m */, + E01A8239888643FC88334763 /* TyphoonPropertyInjectedByValue.h */, + 03640C9FEDD149A9A6469570 /* TyphoonPropertyInjectedByValue.m */, + BD6C0ACD75414FAE94E71246 /* TyphoonPropertyInjectionDelegate.h */, + 8526CEB3901D4CF6A5152408 /* TyphoonDefinition.h */, + 44A1E62D6FB44ADAAA399A31 /* TyphoonDefinition.m */, + B6577F648EB44FCF92C42B6F /* TyphoonAssembly.h */, + A0C8B9A54A914D618FC77BD3 /* TyphoonAssembly.m */, + 6A9B68FAF553490DA11DBA17 /* TyphoonBlockComponentFactory.h */, + 5561B654654D45B5A0D75883 /* TyphoonBlockComponentFactory.m */, + 9FF4A3F38F6C4FDF8C883AD0 /* TyphoonComponentFactory+InstanceBuilder.h */, + E4A022C9E61D4EF3957BAFDB /* TyphoonComponentFactory+InstanceBuilder.m */, + 44FC78BF07BF4A9D9623A458 /* TyphoonDefinition+InstanceBuilder.h */, + 0E0FE01A66E84DD1BED66656 /* TyphoonDefinition+InstanceBuilder.m */, + 9D0AF0C5500B4F67B268224A /* TyphoonInitializer+InstanceBuilder.h */, + 764A045F4D964DEE9FA2C71B /* TyphoonInitializer+InstanceBuilder.m */, + 220846D794054D57A1A9320D /* TyphoonComponentFactoryMutator.h */, + 46956D67A3D44B828E4D872D /* TyphoonPropertyPlaceholderConfigurer.h */, + C5FB0044DAF3465AB113B326 /* TyphoonPropertyPlaceholderConfigurer.m */, + E89D28982D6641C4AF6289FF /* TyphoonComponentFactory.h */, + DA1810DD94B348758B28BE94 /* TyphoonComponentFactory.m */, + 2E567891663F4955BD63EA75 /* TyphoonRXMLElement+XmlComponentFactory.h */, + E0F69E97633845E38953C6FF /* TyphoonRXMLElement+XmlComponentFactory.m */, + 06661B5818FC41B48DB046F7 /* TyphoonRXMLElement.h */, + 8EE9FF8A75D54C5FB1A611C7 /* TyphoonRXMLElement.m */, + 7BD460E8C6EE4481851BF278 /* TyphoonXmlComponentFactory.h */, + 9C81C83558E6402E810CA447 /* TyphoonXmlComponentFactory.m */, + DA3719EE05E640FB8D48146B /* TyphoonNSURLTypeConverter.h */, + 118B4A9913D94BBC80742A1D /* TyphoonNSURLTypeConverter.m */, + FC6D393A4D3B4663B496C7DA /* TyphoonPassThroughTypeConverter.h */, + 53108CA26D404049B86C211C /* TyphoonPassThroughTypeConverter.m */, + 16753E0B65874A53A5004EF1 /* TyphoonPrimitiveTypeConverter.h */, + 019CC8DB0C8D4083AA773E7D /* TyphoonPrimitiveTypeConverter.m */, + 2191EF81DDC344148688925A /* TyphoonTypeConverter.h */, + A63F5258596842228FEB7ABC /* TyphoonTypeConverterRegistry.h */, + 1162996A50404638900B532F /* TyphoonTypeConverterRegistry.m */, + 6196035D745A40F4B7449944 /* TyphoonTypeDescriptor.h */, + F0442322B1544B63AF43D960 /* TyphoonTypeDescriptor.m */, + 0A233AF632654EC4801DECCA /* Typhoon.h */, + 6FA9EF23862E4375AB2BCEB6 /* TyphoonAutowire.h */, + 1245ED39E78042E9A864C9FF /* TyphoonShorthand.h */, + 351E44DD724047429EEFB397 /* NSObject+TyphoonIntrospectionUtils.h */, + 0C6746C3A2DC447883C5471D /* NSObject+TyphoonIntrospectionUtils.m */, + 74D770F07DA145739BCBA310 /* TyphoonBundleResource.h */, + 4F317258029B431AB5A810BF /* TyphoonBundleResource.m */, + AF6C5FCCA14748B09911D961 /* TyphoonResource.h */, + E3300CD5CD31427BB6B0146D /* TyphoonJRSwizzle.h */, + 22F430C79FE844BCA944A53E /* TyphoonJRSwizzle.m */, + EDA503B7F49948999F104A90 /* TyphoonIntrospectionUtils.h */, + A188FA548D6B4F529DA01427 /* TyphoonIntrospectionUtils.m */, + F082D545B2AE4E11902AB578 /* TyphoonIntrospectiveNSObject.h */, + 335A48AF5EBB4968BF205225 /* TyphoonTestUtils.h */, + 286E7F4E97DE4DF5830E26EC /* TyphoonTestUtils.m */, + ); + name = Typhoon; + sourceTree = ""; + }; + 66B35EF68DC7414BBCB37FB4 /* Pods-osx-OCMockito */ = { + isa = PBXGroup; + children = ( + 03A1C68FC7604CA3A35F8DD8 /* Pods-osx-OCMockito.xcconfig */, + F1EE8F6A57424187A7D26C8F /* Pods-osx-OCMockito-Private.xcconfig */, + FC3E33029DC1464E83B5B799 /* Pods-osx-OCMockito-prefix.pch */, + 7128F446564B4C5687491CAC /* Pods-osx-OCMockito-dummy.m */, + ); + name = "Pods-osx-OCMockito"; + sourceTree = ""; + }; + 756DF8145B074523920E0CDD /* Pods-ios */ = { + isa = PBXGroup; + children = ( + BEDE45F64D1F489B87207C88 /* Pods-ios.xcconfig */, + 1E8EF1B845144A978FDC0DFB /* Pods-ios-environment.h */, + 4CF0EC2D9BA748DDB4CBB664 /* Pods-ios-resources.sh */, + CC211BDD4B1C45758731F2EF /* Pods-ios-acknowledgements.plist */, + 6FD30A2EDCC44016A4C4254D /* Pods-ios-acknowledgements.markdown */, + 63A5483BF58D40CDB129C3FF /* Pods-ios-dummy.m */, + ); + name = "Pods-ios"; + sourceTree = ""; + }; + 7A005B792ED444EEB8BBF2CC /* Local Pods */ = { + isa = PBXGroup; + children = ( + 65BA25341A3945E884C7DDF0 /* Typhoon */, + ); + name = "Local Pods"; + sourceTree = ""; + }; + 7BB7B547D451495F96046111 /* Pods */ = { + isa = PBXGroup; + children = ( + 8BC861BDA54A46C8835FF334 /* OCHamcrest */, + 95C5A5CE9DB24CCE8346AFBA /* OCMockito */, + ); + name = Pods; + sourceTree = ""; + }; + 8BC861BDA54A46C8835FF334 /* OCHamcrest */ = { + isa = PBXGroup; + children = ( + 9A449A77F4ED4916AD6C60AC /* OCHamcrest.h */, + 4964367123D34192BC7933A6 /* HCAssertThat.h */, + ED8C80010ED2467EA7621A03 /* HCAssertThat.m */, + 807E559235344CADB14B668C /* HCBaseDescription.h */, + F9C4F75E99804AD090E63966 /* HCBaseDescription.m */, + 766B8E660E5D4C8684454DA0 /* HCBaseMatcher.h */, + A6FEEE3A8F9E49A583612C11 /* HCBaseMatcher.m */, + 83FBB0E6DE2B4CDCBAF63243 /* HCDescription.h */, + 726ACE1F477E496E873EA6E6 /* HCMatcher.h */, + 23C2B61782494D48A6D2BA51 /* HCSelfDescribing.h */, + FA6412B28D3848C1BC1E75AF /* HCStringDescription.h */, + 1C1B10C3843A45418C24CC22 /* HCStringDescription.m */, + B638C43205764300AD553552 /* HCCollectMatchers.h */, + D24852E45EC24269829FD6AD /* HCCollectMatchers.m */, + DCD694CFAE974BD6B010A67D /* HCInvocationMatcher.h */, + 17CCE0D9DE17483E839E9E7B /* HCInvocationMatcher.m */, + F6E6ECDB6340431390041F99 /* HCRequireNonNilObject.h */, + 56AEF36506DC45E79FCAC084 /* HCRequireNonNilObject.m */, + 5EF1EA4DD84E4E33842E976D /* HCRequireNonNilString.h */, + 21E5FAAC23514139AAEC51BF /* HCRequireNonNilString.m */, + F60B22D57C4E433F9C9216C4 /* HCWrapInMatcher.h */, + 7A450EED522E4458AC4F00F1 /* HCWrapInMatcher.m */, + 6F5145992B9C48A09994C196 /* HCHasCount.h */, + DACECFB098154038BE570933 /* HCHasCount.m */, + 0EC31642BED145B79B7FD704 /* HCIsCollectionContaining.h */, + 80479D96ECA3462889095AB3 /* HCIsCollectionContaining.m */, + 963C82CC40AF413D9E6DD3FC /* HCIsCollectionContainingInAnyOrder.h */, + EC093D67C1FC456AA600F112 /* HCIsCollectionContainingInAnyOrder.m */, + 8BECB4DEAE794350B77C5843 /* HCIsCollectionContainingInOrder.h */, + 5E86D6173C294472AFF205FF /* HCIsCollectionContainingInOrder.m */, + 69DC020E96C744E4A4CF4421 /* HCIsCollectionOnlyContaining.h */, + 31DF66697EE947ABA60F970D /* HCIsCollectionOnlyContaining.m */, + 2217CDF7A99940479E0FB91D /* HCIsDictionaryContaining.h */, + 4BB5414CC3D34BF69F78EA64 /* HCIsDictionaryContaining.m */, + 9210DAE725914BE5A8E7D4D9 /* HCIsDictionaryContainingEntries.h */, + 8A1F5CE240CA4AA5BAB5BB2C /* HCIsDictionaryContainingEntries.m */, + 81BF95ED2B844AE7B5AF0DA9 /* HCIsDictionaryContainingKey.h */, + 6D7D635B27BC4CCBA12B4D40 /* HCIsDictionaryContainingKey.m */, + 6883140368BF48C68C891B62 /* HCIsDictionaryContainingValue.h */, + 5A681E29A2D54DAAAB8856E3 /* HCIsDictionaryContainingValue.m */, + DA078B80506344F0A05524EF /* HCIsEmptyCollection.h */, + 9F264122581E4858ADA32DE0 /* HCIsEmptyCollection.m */, + 0F86E42F3AC24FF384B80ACC /* HCIsIn.h */, + 52BFD09A6E4D4FA59CB8DEF2 /* HCIsIn.m */, + 7E8017C86082407582E0C6AF /* HCDescribedAs.h */, + 8A5E040E9DA74123A533A4B2 /* HCDescribedAs.m */, + 861BDE9B3E104298BF11CCF0 /* HCIs.h */, + B88D03F318424DBD886BA214 /* HCIs.m */, + 8205F969BC174A3CAB13B5D7 /* HCAllOf.h */, + D58E747A50134E3ABAE25B1D /* HCAllOf.m */, + 52F5AB50B4174E29A6CA4C37 /* HCAnyOf.h */, + 03B1FB7AC8434C62908B7A3A /* HCAnyOf.m */, + D0C5965C237A484A9795092C /* HCIsAnything.h */, + 94375E99D593456EA23726B2 /* HCIsAnything.m */, + D75C8A86972A4507B026FD8E /* HCIsNot.h */, + FF3A47D0A1534D52A22214B5 /* HCIsNot.m */, + 8623C11BCE814AB78817981E /* HCBoxNumber.h */, + 2A9009F438A4422DBEFA8CFD /* HCIsCloseTo.h */, + 5430B9C99AC84EB78E7C45B8 /* HCIsCloseTo.m */, + 8409E9DCDE13462EA9A54F48 /* HCIsEqualToNumber.h */, + 38F8C2DFCCC645919681CFF7 /* HCIsEqualToNumber.m */, + 845DA4E118DF463F87476C16 /* HCNumberAssert.h */, + 06E9831B9A884F8C97A065E8 /* HCNumberAssert.m */, + 5A419F3717C14536B84B71CF /* HCOrderingComparison.h */, + E96865896C974B0294FA2D60 /* HCOrderingComparison.m */, + 25FBCBF295294BA78BDA6547 /* HCConformsToProtocol.h */, + DCC77CE52BC3479F9F203481 /* HCConformsToProtocol.m */, + DAB2D2FCCF224901833548BF /* HCHasDescription.h */, + DC6DA8ABFD6A4DC7BEA291DD /* HCHasDescription.m */, + 046DF737D4C645DEAE9A93EA /* HCHasProperty.h */, + 0CDD5FE1518F4E7AAAF26F6E /* HCHasProperty.m */, + 1252811CCDFF46068C1BF2BA /* HCIsEqual.h */, + 5FE34005C9A34346980D5CED /* HCIsEqual.m */, + 89098CD900EB420EBF488F31 /* HCIsInstanceOf.h */, + 9031A80D6D80433DA579CEF6 /* HCIsInstanceOf.m */, + B2CE49E253304136B47C54A2 /* HCIsNil.h */, + 4C6854BFDB344FC79476E91C /* HCIsNil.m */, + 695CD0AD3EAA4A87B0A6D21B /* HCIsSame.h */, + B4DC6A13B5D44D40A0D5420C /* HCIsSame.m */, + 58EBBB6AB951490BB57E6542 /* HCIsEqualIgnoringCase.h */, + 5E5EE4CC480243AC81EE26E5 /* HCIsEqualIgnoringCase.m */, + A9EB74F28DCF4B95BC32CFAB /* HCIsEqualIgnoringWhiteSpace.h */, + 19C0A6AEB02F4C3C976D8F62 /* HCIsEqualIgnoringWhiteSpace.m */, + 6550AB43F1A74BD8A1BF4152 /* HCStringContains.h */, + 3DEC2C3CF20C4BF2B43FA45B /* HCStringContains.m */, + 39BA032BC2FB4FD4A35388E5 /* HCStringContainsInOrder.h */, + 7696F2CB26584E95B703FA5C /* HCStringContainsInOrder.m */, + B283C04AB89D4E4687E644EA /* HCStringEndsWith.h */, + C8295D4DB6D8472DB37A9141 /* HCStringEndsWith.m */, + 3C1EFC1C31DA4D7B8787DBE1 /* HCStringStartsWith.h */, + 3D9917D5D89E4373951C991F /* HCStringStartsWith.m */, + 5EA7FD14056049CEBE5CD83D /* HCSubstringMatcher.h */, + 5A7D002BE680438A9ED9DB3A /* HCSubstringMatcher.m */, + ); + name = OCHamcrest; + sourceTree = ""; + }; + 95C5A5CE9DB24CCE8346AFBA /* OCMockito */ = { + isa = PBXGroup; + children = ( + 2C194BF7FB644029B8F5FF4F /* OCMockito.h */, + 579A6B5910FD474F850046F1 /* MKTAtLeastTimes.h */, + 210BC84DAFE1455AB4F2B961 /* MKTAtLeastTimes.m */, + 86E4B043C027469A9F59B8CE /* MKTBaseMockObject.h */, + 212CA6A1AC924F85A87E3ABC /* MKTBaseMockObject.m */, + FA3E9AF3B8704EAD8350FE2D /* MKTClassObjectMock.h */, + 12DEE28C1F8D4B5B882AD94D /* MKTClassObjectMock.m */, + C29F17B462B3457BB3D7B308 /* MKTExactTimes.h */, + 82AD35B543084944BD51EB01 /* MKTExactTimes.m */, + 7126C0BD5F234CC6A63051F6 /* MKTException.h */, + E224DDC37FFD459894CF5E75 /* MKTException.m */, + E7ECF76C96434501A80978EA /* MKTInvocationContainer.h */, + 94D99B66E9FA40C8BF0E168B /* MKTInvocationContainer.m */, + 04E3EAAD65154688A459E29E /* MKTInvocationMatcher.h */, + 226280CA5A834405B092114E /* MKTInvocationMatcher.m */, + 49E1B206147A476A95ADF364 /* MKTMockAwareVerificationMode.h */, + DA011FD85AF24CFA8E88E9D7 /* MKTMockAwareVerificationMode.m */, + E3FCB6F03D6E48D398A7645E /* MKTMockingProgress.h */, + 4C9ED326AEBE4336A04EECFA /* MKTMockingProgress.m */, + DB4F8230EF654B5E80443DAB /* MKTMockitoCore.h */, + 07227EEF03A64FABA6F8B829 /* MKTMockitoCore.m */, + 78FCEE94727F442C802D5620 /* MKTObjectAndProtocolMock.h */, + 21D97416B1834DCBA7A614C3 /* MKTObjectAndProtocolMock.m */, + 388A5AAB700A4DA9BF7B0924 /* MKTObjectMock.h */, + B1848085A2CB4EA3B3646E6D /* MKTObjectMock.m */, + F9B7C505ABC04483A581AF16 /* MKTOngoingStubbing.h */, + B9CA1486519949DCAA9BFD6B /* MKTOngoingStubbing.m */, + 74C4AAE1C01A463686814E35 /* MKTPrimitiveArgumentMatching.h */, + 1FCB09B2A16C4834A0449976 /* MKTProtocolMock.h */, + CA72BA37EEEC4BD9811D6134 /* MKTProtocolMock.m */, + 185E2BFCA26F43E6BA56D052 /* MKTStubbedInvocationMatcher.h */, + 3458B8AD68D1400490D5C55F /* MKTStubbedInvocationMatcher.m */, + 96457CE734B94EA18CF38901 /* MKTTestLocation.h */, + DDEEC919B3054DC1BA179D76 /* MKTTestLocation.m */, + 12395B7BE97B4DBE86BBFA86 /* MKTTypeEncoding.h */, + 153647AE901149399734B9D6 /* MKTVerificationData.h */, + 5BF8A09541784CEEBB26AB49 /* MKTVerificationData.m */, + CB6C064DF299400AB26F38B5 /* MKTVerificationMode.h */, + 72F4EA1126504862B3FC2EAC /* OCMockito.m */, + ); + name = OCMockito; + sourceTree = ""; + }; + 9B2D0BDB57594838BA622FEE /* Pods-osx-Typhoon */ = { + isa = PBXGroup; + children = ( + 7FD800747C45414E80A5C8F8 /* Pods-osx-Typhoon.xcconfig */, + 12682C8773164F3684FF4973 /* Pods-osx-Typhoon-Private.xcconfig */, + 7881F52A2B134F158345414E /* Pods-osx-Typhoon-prefix.pch */, + F2ED6FC7588B4615B3F25F6B /* Pods-osx-Typhoon-dummy.m */, + ); + name = "Pods-osx-Typhoon"; + sourceTree = ""; + }; + CB1868E5342748C3B7659A00 /* Pods-ios-Typhoon */ = { + isa = PBXGroup; + children = ( + DC1E9E5382864F53A2D65926 /* Pods-ios-Typhoon.xcconfig */, + 20BAAAB96C6546C4B3E4E638 /* Pods-ios-Typhoon-Private.xcconfig */, + F680FCBA8C2444BC86887C43 /* Pods-ios-Typhoon-prefix.pch */, + 6E4F679D4AAF4615AC26A6D5 /* Pods-ios-Typhoon-dummy.m */, + ); + name = "Pods-ios-Typhoon"; + sourceTree = ""; + }; + EA37F32F84804A439D78475B /* Pods-ios-OCHamcrest */ = { + isa = PBXGroup; + children = ( + 2E8E4F194F0445139C075CE9 /* Pods-ios-OCHamcrest.xcconfig */, + 1FDB067D15BB4C9FA3B3518E /* Pods-ios-OCHamcrest-Private.xcconfig */, + 4FF153B066A54841B76CF3B4 /* Pods-ios-OCHamcrest-prefix.pch */, + F455871ADB104EC1B8A6DB8B /* Pods-ios-OCHamcrest-dummy.m */, + ); + name = "Pods-ios-OCHamcrest"; + sourceTree = ""; + }; + FC4D53A8006C41EAB467EAAB /* Pods-osx */ = { + isa = PBXGroup; + children = ( + C82191A8009C42A7B374708B /* Pods-osx.xcconfig */, + D7F1E12D94AE4118970C3E9A /* Pods-osx-environment.h */, + 5692CFC66D934E11B34C8176 /* Pods-osx-resources.sh */, + 2E25913A453D4219BCA81373 /* Pods-osx-acknowledgements.plist */, + 108F5AD75F734BE0AE8654B1 /* Pods-osx-acknowledgements.markdown */, + 2738BE25FFA04D29A11D2C96 /* Pods-osx-dummy.m */, + ); + name = "Pods-osx"; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + 0D777A15C4F94CB88A256326 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 410FBE860CD448759805C5A5 /* OCMockito.h in Headers */, + 7F96A35BEC30413BAE72E51E /* MKTAtLeastTimes.h in Headers */, + 246AC7A82D56474B922CBBB6 /* MKTBaseMockObject.h in Headers */, + E6EED07DC31644229C9DED79 /* MKTClassObjectMock.h in Headers */, + 5CB180F7A142494C92B69D42 /* MKTExactTimes.h in Headers */, + C001BF6BC021454CBDF72046 /* MKTException.h in Headers */, + 625AE6E59430491CBCF99995 /* MKTInvocationContainer.h in Headers */, + D0C0D866961B4DFBA4D8B57F /* MKTInvocationMatcher.h in Headers */, + A00CB9B64B63435BAC0FBB2B /* MKTMockAwareVerificationMode.h in Headers */, + ECAF35469D514CECA8B3549F /* MKTMockingProgress.h in Headers */, + 71E41955A45D42E3B632B065 /* MKTMockitoCore.h in Headers */, + AB0373EA89934F02A45500AD /* MKTObjectAndProtocolMock.h in Headers */, + 4FCC8618EA31462CB9C6F120 /* MKTObjectMock.h in Headers */, + 95F64C007C7C4DB095EEE91C /* MKTOngoingStubbing.h in Headers */, + A9946051CF96452FA9E544A2 /* MKTPrimitiveArgumentMatching.h in Headers */, + 1A7C4887140E4302BC3DCEB7 /* MKTProtocolMock.h in Headers */, + 7F961684475446C6909DEC4F /* MKTStubbedInvocationMatcher.h in Headers */, + 6081D175E77041CF9E9DBA42 /* MKTTestLocation.h in Headers */, + D563957F563B455C9D3342E7 /* MKTTypeEncoding.h in Headers */, + 8FD424E56C4D43EBABD93B22 /* MKTVerificationData.h in Headers */, + 12F59CF202E34F3D904EB7AB /* MKTVerificationMode.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 12A0FB267DDC4A05BD9E5ABC /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 33CA005091484F70BA2BE4FA /* OCHamcrest.h in Headers */, + C45B806A81524249B3F6254C /* HCAssertThat.h in Headers */, + 5DDFBAD1A5B245778ECA306B /* HCBaseDescription.h in Headers */, + F85BE1A74270496299718691 /* HCBaseMatcher.h in Headers */, + C32A0D73877241CFA1FDDC83 /* HCDescription.h in Headers */, + CC3873574AEF40ABAAC514B9 /* HCMatcher.h in Headers */, + FD09115934414490951AA51A /* HCSelfDescribing.h in Headers */, + F1159D89F25E425CAC03EF32 /* HCStringDescription.h in Headers */, + 55FE5DE6E0B74FACB3A07BC8 /* HCCollectMatchers.h in Headers */, + 66E7E342872F4D458E673EB6 /* HCInvocationMatcher.h in Headers */, + CED1A1184E6D464493ADDD9F /* HCRequireNonNilObject.h in Headers */, + B7401236E3334753B0CF04A0 /* HCRequireNonNilString.h in Headers */, + BFE85C435D614E9B8B1D860E /* HCWrapInMatcher.h in Headers */, + F89215DE980F4C15B956FA50 /* HCHasCount.h in Headers */, + 2C1DA1B128864DB99857E84C /* HCIsCollectionContaining.h in Headers */, + 949F971559F54445B7C97D8E /* HCIsCollectionContainingInAnyOrder.h in Headers */, + 5FFD364B2BA944F4AE6842E1 /* HCIsCollectionContainingInOrder.h in Headers */, + 05220E9456314AB99524D64C /* HCIsCollectionOnlyContaining.h in Headers */, + 5F1ABABEB48546D9A8EB0369 /* HCIsDictionaryContaining.h in Headers */, + D7514BEA31584BEB9035DB57 /* HCIsDictionaryContainingEntries.h in Headers */, + 47D680116BB34B369BB3D966 /* HCIsDictionaryContainingKey.h in Headers */, + 0D1428AD0D854F18AB34778E /* HCIsDictionaryContainingValue.h in Headers */, + 957E574A7CC24942A81460E7 /* HCIsEmptyCollection.h in Headers */, + 5D494FE00C7248079616AB09 /* HCIsIn.h in Headers */, + 52F81862EA0845E48F2C8224 /* HCDescribedAs.h in Headers */, + 524A3B66380D46A5B07D324F /* HCIs.h in Headers */, + 33EECB14EA7746739C9E6402 /* HCAllOf.h in Headers */, + C6378217BA7A449DAC848D9F /* HCAnyOf.h in Headers */, + 3F6C4D839F1C403F95BD1CD3 /* HCIsAnything.h in Headers */, + B67D27630B4C4FDD81A5AF20 /* HCIsNot.h in Headers */, + 3AD0D300BC7D4E73BBBE72E8 /* HCBoxNumber.h in Headers */, + 412D2F9B29CB481981263D49 /* HCIsCloseTo.h in Headers */, + 1B85DFBA44C142F89C0F66C9 /* HCIsEqualToNumber.h in Headers */, + FD477A191382466CAA65E16D /* HCNumberAssert.h in Headers */, + D75F8ED064D341BF97A47CAA /* HCOrderingComparison.h in Headers */, + 0517BC5C135D43DC965A1741 /* HCConformsToProtocol.h in Headers */, + 7401C899A41C4615BF1439ED /* HCHasDescription.h in Headers */, + DB8420C83F634B9485DF670D /* HCHasProperty.h in Headers */, + 95EB205F24F9460492FE53BA /* HCIsEqual.h in Headers */, + 81AB38D572B24C438A0E7F65 /* HCIsInstanceOf.h in Headers */, + C2DDB71927F04E64B7577407 /* HCIsNil.h in Headers */, + 038B3FF8E61846E88FE53DBF /* HCIsSame.h in Headers */, + 017678BCEF46424DA9DEAD33 /* HCIsEqualIgnoringCase.h in Headers */, + B75ECDAFF4AF4A79AF2B8851 /* HCIsEqualIgnoringWhiteSpace.h in Headers */, + 127F8AAC8542474F9E795F10 /* HCStringContains.h in Headers */, + DE62E235841B4BB5BDA0058D /* HCStringContainsInOrder.h in Headers */, + 91EBFA8D14D24CE3946C813F /* HCStringEndsWith.h in Headers */, + 20E7B197841B474CB1043F51 /* HCStringStartsWith.h in Headers */, + F3D0BC91B8C740F582A938D2 /* HCSubstringMatcher.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 6544ABCA892E411F9AAB9028 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 634B0ACA05E24945A02A6A14 /* TyphoonInitializer.h in Headers */, + 332ADA693FFD462DBA6076F5 /* TyphoonInjectedParameter.h in Headers */, + A78E8B78901D417391711F4C /* TyphoonParameterInjectedByRawValue.h in Headers */, + 40C3EE4D58984266923E275F /* TyphoonParameterInjectedByReference.h in Headers */, + 733BC2C4855B423FBE438D2A /* TyphoonParameterInjectedByValue.h in Headers */, + E0BE945FF7E94EFAA09A277C /* TyphoonByReferenceCollectionValue.h in Headers */, + 1706A886CE0142D6BD81FD69 /* TyphoonCollectionValue.h in Headers */, + 108D5A27F38F42D9A115F1F8 /* TyphoonPropertyInjectedAsCollection.h in Headers */, + 8A81299E70384469A9B6D154 /* TyphoonTypeConvertedCollectionValue.h in Headers */, + F61EE283F98343F3B530B97D /* TyphoonInjectedProperty.h in Headers */, + CDA5A0EF94E649619ECDBCCD /* TyphoonPropertyInjectedByReference.h in Headers */, + 08A0EC35EDF249DEA23BC04B /* TyphoonPropertyInjectedByType.h in Headers */, + CAF73B1E6A2A4C8A9522A312 /* TyphoonPropertyInjectedByValue.h in Headers */, + 4E73DED06AC1420198F8F943 /* TyphoonPropertyInjectionDelegate.h in Headers */, + 072B0436624F4D8D8AF60530 /* TyphoonDefinition.h in Headers */, + 6CF6B16D621E4A02A396279C /* TyphoonAssembly.h in Headers */, + 66E9A469D95244C19CC7CDCD /* TyphoonBlockComponentFactory.h in Headers */, + D3556608B7EB496CA58B7CC9 /* TyphoonComponentFactory+InstanceBuilder.h in Headers */, + D53EAB7C7EC94BF883BC4316 /* TyphoonDefinition+InstanceBuilder.h in Headers */, + 0BE392B82B4B4739AB60EFF8 /* TyphoonInitializer+InstanceBuilder.h in Headers */, + AC42562C0431428A959A2A0A /* TyphoonComponentFactoryMutator.h in Headers */, + 6048DA77DB314F29AD38D723 /* TyphoonPropertyPlaceholderConfigurer.h in Headers */, + E26CA00D1B474402AD94FBAE /* TyphoonComponentFactory.h in Headers */, + 558AB967849E4C328A5BB34A /* TyphoonRXMLElement+XmlComponentFactory.h in Headers */, + 45FB534CEF1F4E8BA079E059 /* TyphoonRXMLElement.h in Headers */, + 322D7AD8F1B04602B2BEFE52 /* TyphoonXmlComponentFactory.h in Headers */, + 306AB1BF34564AF78218CF8F /* TyphoonNSURLTypeConverter.h in Headers */, + 2F2D40DFB03542E0A0470EFD /* TyphoonPassThroughTypeConverter.h in Headers */, + 756EE4D477474E92A870DC45 /* TyphoonPrimitiveTypeConverter.h in Headers */, + 43A5412DC9DE41CA844E43BB /* TyphoonTypeConverter.h in Headers */, + 62DBED080AEA4B06B14DCA29 /* TyphoonTypeConverterRegistry.h in Headers */, + 24FAAC208318434592397A8F /* TyphoonTypeDescriptor.h in Headers */, + 4112F374DE7E499681D463B3 /* Typhoon.h in Headers */, + AD547EE46F7D4295951DD14E /* TyphoonAutowire.h in Headers */, + DA2425B266884DEDB061A495 /* TyphoonShorthand.h in Headers */, + 6B4F1C4C9DC04CD38A4FFF46 /* NSObject+TyphoonIntrospectionUtils.h in Headers */, + 6108E692E535495298A73733 /* TyphoonBundleResource.h in Headers */, + 605A76AD865249ACB7148B3D /* TyphoonResource.h in Headers */, + A8C72FFDC8B64015BBBBB7FB /* TyphoonJRSwizzle.h in Headers */, + 50CB1AC0EAB546DBA04692A2 /* TyphoonIntrospectionUtils.h in Headers */, + 11039FF2064E43A1B42C5E1B /* TyphoonIntrospectiveNSObject.h in Headers */, + BDF24912F127481189A8DE68 /* TyphoonTestUtils.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 8227EBD40C47486BBACBF141 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + CA47EC6159D94640939DD65C /* TyphoonInitializer.h in Headers */, + 3D665086676A4405BCEBC98A /* TyphoonInjectedParameter.h in Headers */, + 2C239B9824F34B75A0ACA37C /* TyphoonParameterInjectedByRawValue.h in Headers */, + 8E2FC73B1ED84372956C3DA7 /* TyphoonParameterInjectedByReference.h in Headers */, + FCA5092F0062443ABB772868 /* TyphoonParameterInjectedByValue.h in Headers */, + FAE156606377403894B4A4C5 /* TyphoonByReferenceCollectionValue.h in Headers */, + F1156EAD0D2B43758D7B770C /* TyphoonCollectionValue.h in Headers */, + E6F2354152FC4737A842963C /* TyphoonPropertyInjectedAsCollection.h in Headers */, + 23763B12161D419D8FF2CC39 /* TyphoonTypeConvertedCollectionValue.h in Headers */, + 060304F65D584945A2FB0326 /* TyphoonInjectedProperty.h in Headers */, + E9F2EEA7D4F147629FF3A2C7 /* TyphoonPropertyInjectedByReference.h in Headers */, + 34D25D05A2D34218B15513B0 /* TyphoonPropertyInjectedByType.h in Headers */, + 042E92AAA58A4DF0904DE022 /* TyphoonPropertyInjectedByValue.h in Headers */, + 11D49985DF5D425080963C41 /* TyphoonPropertyInjectionDelegate.h in Headers */, + 41836888D23A428691FE385C /* TyphoonDefinition.h in Headers */, + 2C7316BCF0734191B4FE511D /* TyphoonAssembly.h in Headers */, + 23B83309726B401ABCDC9FCD /* TyphoonBlockComponentFactory.h in Headers */, + 2C4D01FA879347DFAE607399 /* TyphoonComponentFactory+InstanceBuilder.h in Headers */, + 5FAB5CC1889848D484C2E5F1 /* TyphoonDefinition+InstanceBuilder.h in Headers */, + CD022152DD4347B9913A1B91 /* TyphoonInitializer+InstanceBuilder.h in Headers */, + 58BA8AA5F3574282AB3F5836 /* TyphoonComponentFactoryMutator.h in Headers */, + 72E49B147086493AB6FAAB2E /* TyphoonPropertyPlaceholderConfigurer.h in Headers */, + B345848EAFC4409490CDEA66 /* TyphoonComponentFactory.h in Headers */, + 00B4A901A937479A85C1CB25 /* TyphoonRXMLElement+XmlComponentFactory.h in Headers */, + CB3C0C5B9C254B189C2CAFC6 /* TyphoonRXMLElement.h in Headers */, + FE31CD742AA04621B423CE07 /* TyphoonXmlComponentFactory.h in Headers */, + 38CD07B0FE1849569FC16F88 /* TyphoonNSURLTypeConverter.h in Headers */, + 382499C931E7466EB54BD0F4 /* TyphoonPassThroughTypeConverter.h in Headers */, + A931863910864625AA3FEAF9 /* TyphoonPrimitiveTypeConverter.h in Headers */, + B101DB25951F46C2B19A9390 /* TyphoonTypeConverter.h in Headers */, + 4D38C55F5A654505BBA45992 /* TyphoonTypeConverterRegistry.h in Headers */, + 13AC8221FEC24D06BD2F60F3 /* TyphoonTypeDescriptor.h in Headers */, + C8295361D48347BAB834C197 /* Typhoon.h in Headers */, + 77F135D03EA2446D94A3FD7E /* TyphoonAutowire.h in Headers */, + 9E8B12C47CEA4855A4656A7C /* TyphoonShorthand.h in Headers */, + D3D117964C264139A1240C77 /* NSObject+TyphoonIntrospectionUtils.h in Headers */, + 15F8E077736642FAAE711784 /* TyphoonBundleResource.h in Headers */, + 7363A8392734430EB0F759CE /* TyphoonResource.h in Headers */, + A8013554117D4E859DC6E2D5 /* TyphoonJRSwizzle.h in Headers */, + 2ACB1FA48C4E4FFA991DD3D1 /* TyphoonIntrospectionUtils.h in Headers */, + 08DA89FC55014D4EA1E5CF1A /* TyphoonIntrospectiveNSObject.h in Headers */, + C9EEEA1B15FA4E379093F1B6 /* TyphoonTestUtils.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 94376F40638C48DDB52EC3FD /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 4036BF884B6F44DA88F76AA8 /* OCHamcrest.h in Headers */, + 07123041713A408898F3B81B /* HCAssertThat.h in Headers */, + FC30B4EBBE7649EDA6BC78CB /* HCBaseDescription.h in Headers */, + 4ECE52026C06491B9636786F /* HCBaseMatcher.h in Headers */, + EC0727C91E2149E3AD7F9C9D /* HCDescription.h in Headers */, + 5ABF5C91B90C420D96473B82 /* HCMatcher.h in Headers */, + 3C464E5BA5634AF3BAB560A0 /* HCSelfDescribing.h in Headers */, + A082494077664F0D9679D30C /* HCStringDescription.h in Headers */, + 47D67FE5EC7B4C4CBEC58DBC /* HCCollectMatchers.h in Headers */, + 5922D3DF41294BCF9A233008 /* HCInvocationMatcher.h in Headers */, + FD56A480A61B4DD2A30BB9B7 /* HCRequireNonNilObject.h in Headers */, + 801157C769F340288F2362C6 /* HCRequireNonNilString.h in Headers */, + 5D5A29949FD049508713901A /* HCWrapInMatcher.h in Headers */, + 148B763DFE234CEAA2370989 /* HCHasCount.h in Headers */, + 98B0B4B7226848A5895CA41D /* HCIsCollectionContaining.h in Headers */, + 67DC25491772404A99D7FCD4 /* HCIsCollectionContainingInAnyOrder.h in Headers */, + 9E01323EC5D241E5B6452090 /* HCIsCollectionContainingInOrder.h in Headers */, + 24837343E39B47FE8A0125FE /* HCIsCollectionOnlyContaining.h in Headers */, + 91637567C644465792C6ABAE /* HCIsDictionaryContaining.h in Headers */, + CB173B26CC6547B190248077 /* HCIsDictionaryContainingEntries.h in Headers */, + E4E9D84EE634433EA067E215 /* HCIsDictionaryContainingKey.h in Headers */, + 1635CB5F6CC64FEB96838482 /* HCIsDictionaryContainingValue.h in Headers */, + 5D87169182A14B3293DBF54E /* HCIsEmptyCollection.h in Headers */, + C7319F966AAE4797BFA1BB60 /* HCIsIn.h in Headers */, + 414ACC0C32EE4200996928C1 /* HCDescribedAs.h in Headers */, + 7225CDC63F0945C7BB4CB82B /* HCIs.h in Headers */, + CC1586C092AC4E9AA63A113C /* HCAllOf.h in Headers */, + 03222D1DD2E94056A12D0A35 /* HCAnyOf.h in Headers */, + C29F5AAB89D74D30A1DE26D8 /* HCIsAnything.h in Headers */, + 1682DFEBA2664B4CB3936FD9 /* HCIsNot.h in Headers */, + 415ED7EBE7D841129B4C44F1 /* HCBoxNumber.h in Headers */, + 1468D904EC7F415FB2C326EA /* HCIsCloseTo.h in Headers */, + 84ACB98F4B71418D8DEAF091 /* HCIsEqualToNumber.h in Headers */, + 5177ACD94256402FBBA2C919 /* HCNumberAssert.h in Headers */, + ACEF690E2A0B4CD883CF1785 /* HCOrderingComparison.h in Headers */, + 8A8400494BD14E2383C53BE4 /* HCConformsToProtocol.h in Headers */, + 26EED23E3FE241F6ACE48C3E /* HCHasDescription.h in Headers */, + B5991FFE829D4ABE820BEA57 /* HCHasProperty.h in Headers */, + 6D8D7158DE194438AE7ECDE0 /* HCIsEqual.h in Headers */, + 2084E0A16A914CECA505B3B3 /* HCIsInstanceOf.h in Headers */, + 690B1DAECEA74240892D9E0D /* HCIsNil.h in Headers */, + 8C2A09E8C2FE4E2F9116F8D5 /* HCIsSame.h in Headers */, + 603587D119C54D9BAEC3B3E2 /* HCIsEqualIgnoringCase.h in Headers */, + EFA31906F9EE4C6C9871275D /* HCIsEqualIgnoringWhiteSpace.h in Headers */, + 2CDD67074DF34423AB0A5BAD /* HCStringContains.h in Headers */, + 4AB71EEA6DBE4B408061A4E5 /* HCStringContainsInOrder.h in Headers */, + 814EC5E2B703433B9F16390F /* HCStringEndsWith.h in Headers */, + 9013F7A339B04040B208DCDE /* HCStringStartsWith.h in Headers */, + 1B12181D614844C1B5A1FEDF /* HCSubstringMatcher.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 94AA14BDA16745178F97B755 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + E1483CCA88E44EA8A03FDDC0 /* OCMockito.h in Headers */, + B1EDAFC479BB4147BBB494B6 /* MKTAtLeastTimes.h in Headers */, + 487B8D09016B4D34B6855B2A /* MKTBaseMockObject.h in Headers */, + 47720B232B4C4462A0F45142 /* MKTClassObjectMock.h in Headers */, + DB9834B70C6F4C38B18768C8 /* MKTExactTimes.h in Headers */, + 67D6AE9D394745B0B6AECE38 /* MKTException.h in Headers */, + A9874AF8E4D64B738DE30CA1 /* MKTInvocationContainer.h in Headers */, + 3AD5BCF76DDE4FB8BA9A6D71 /* MKTInvocationMatcher.h in Headers */, + 874FA10322AE4F5BA305A4AC /* MKTMockAwareVerificationMode.h in Headers */, + 5898503A7811429D985220CF /* MKTMockingProgress.h in Headers */, + A6CBEACD096043469A3974F4 /* MKTMockitoCore.h in Headers */, + 34964F4893304BFBA085CF16 /* MKTObjectAndProtocolMock.h in Headers */, + A2D055224D204ECC80B7670C /* MKTObjectMock.h in Headers */, + B4192C1F1B6A4BC195E4111B /* MKTOngoingStubbing.h in Headers */, + 151941568E0D41F19C212A32 /* MKTPrimitiveArgumentMatching.h in Headers */, + 3602449DD4724E4791FD56DC /* MKTProtocolMock.h in Headers */, + 01EFE372E38B42378AFE8D20 /* MKTStubbedInvocationMatcher.h in Headers */, + DABCEBF361DF403ABE610A36 /* MKTTestLocation.h in Headers */, + 53C48D4F64784314A77FBA90 /* MKTTypeEncoding.h in Headers */, + 5D9229BD533548CDAC43F100 /* MKTVerificationData.h in Headers */, + B48BF425165746A481F3A2A2 /* MKTVerificationMode.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + 1D0611DA70434545933F2AF5 /* Pods-ios-OCMockito */ = { + isa = PBXNativeTarget; + buildConfigurationList = 93A6046813A64FF7B945123C /* Build configuration list for PBXNativeTarget "Pods-ios-OCMockito" */; + buildPhases = ( + 79C20161BD57418A97E4A48E /* Sources */, + 975B803E342140BA8FB04F38 /* Frameworks */, + 94AA14BDA16745178F97B755 /* Headers */, + ); + buildRules = ( + ); + dependencies = ( + A3E0EB3406DE4E2F85525539 /* PBXTargetDependency */, + ); + name = "Pods-ios-OCMockito"; + productName = "Pods-ios-OCMockito"; + productReference = F23C0CBA10A94AD29C012263 /* libPods-ios-OCMockito.a */; + productType = "com.apple.product-type.library.static"; + }; + 262BF57BA93B4402A7FEDD06 /* Pods-osx */ = { + isa = PBXNativeTarget; + buildConfigurationList = 7D2F230A05404EF38BE4E43C /* Build configuration list for PBXNativeTarget "Pods-osx" */; + buildPhases = ( + 40B07E9702A64A84AE31961A /* Sources */, + 282E139D33CB440DA749FBE9 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 09E53CF7E5714E4A961960B9 /* PBXTargetDependency */, + 2DDE1C8A8EE0444EAC065983 /* PBXTargetDependency */, + 2E6C0215CA74414F93D4B4B4 /* PBXTargetDependency */, + ); + name = "Pods-osx"; + productName = "Pods-osx"; + productReference = 23C693FB631C4AB787065FDF /* libPods-osx.a */; + productType = "com.apple.product-type.library.static"; + }; + 279F2E2858294B59B03693E7 /* Pods-ios */ = { + isa = PBXNativeTarget; + buildConfigurationList = 759ACDCA72824EC19B08718A /* Build configuration list for PBXNativeTarget "Pods-ios" */; + buildPhases = ( + 230B986C711D43768AF2CE34 /* Sources */, + 6D3EAFB34F0F4945A35C18A9 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 08BF649B582D408EAD2A9536 /* PBXTargetDependency */, + 3328B87FFF484CC4A3330FA2 /* PBXTargetDependency */, + 2B13BD332F8D4027BA2EE363 /* PBXTargetDependency */, + ); + name = "Pods-ios"; + productName = "Pods-ios"; + productReference = 0A17DA9959654CA7AC0D4C66 /* libPods-ios.a */; + productType = "com.apple.product-type.library.static"; + }; + 486D5F32D87D487EA0B40819 /* Pods-ios-OCHamcrest */ = { + isa = PBXNativeTarget; + buildConfigurationList = E527C85351464322812C4349 /* Build configuration list for PBXNativeTarget "Pods-ios-OCHamcrest" */; + buildPhases = ( + 170E33C5F67C49B5AAD54B3C /* Sources */, + 40CC4301510A4E29BF7D22AB /* Frameworks */, + 94376F40638C48DDB52EC3FD /* Headers */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "Pods-ios-OCHamcrest"; + productName = "Pods-ios-OCHamcrest"; + productReference = BBBE265079884BF69F52FE5D /* libPods-ios-OCHamcrest.a */; + productType = "com.apple.product-type.library.static"; + }; + 53A5CA1190E74B8AA833599F /* Pods-osx-OCMockito */ = { + isa = PBXNativeTarget; + buildConfigurationList = 8B65B3FA36D8451CA3273704 /* Build configuration list for PBXNativeTarget "Pods-osx-OCMockito" */; + buildPhases = ( + 363CDF03BC4C4539857A67FD /* Sources */, + E2EF4D7DF5CF48A49BFEBA10 /* Frameworks */, + 0D777A15C4F94CB88A256326 /* Headers */, + ); + buildRules = ( + ); + dependencies = ( + 787F61307429428D8098F740 /* PBXTargetDependency */, + ); + name = "Pods-osx-OCMockito"; + productName = "Pods-osx-OCMockito"; + productReference = F6C710DDCD2F4E468791D35E /* libPods-osx-OCMockito.a */; + productType = "com.apple.product-type.library.static"; + }; + 8DFD08D3F7324EED859BF75B /* Pods-osx-Typhoon */ = { + isa = PBXNativeTarget; + buildConfigurationList = 2D3C0D375FDD4FEE9394933F /* Build configuration list for PBXNativeTarget "Pods-osx-Typhoon" */; + buildPhases = ( + D73F87772E8F4079A91832A9 /* Sources */, + 229A21B3224940A4B271DE5A /* Frameworks */, + 6544ABCA892E411F9AAB9028 /* Headers */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "Pods-osx-Typhoon"; + productName = "Pods-osx-Typhoon"; + productReference = ABEDA51C8D5948C9A7ABD4A8 /* libPods-osx-Typhoon.a */; + productType = "com.apple.product-type.library.static"; + }; + D10F740290F4442C8ED4AD8E /* Pods-osx-OCHamcrest */ = { + isa = PBXNativeTarget; + buildConfigurationList = E17F544D32E54B4D958F77DC /* Build configuration list for PBXNativeTarget "Pods-osx-OCHamcrest" */; + buildPhases = ( + 09A2150928684E97B2155751 /* Sources */, + 1906861D64EF46F6B8284396 /* Frameworks */, + 12A0FB267DDC4A05BD9E5ABC /* Headers */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "Pods-osx-OCHamcrest"; + productName = "Pods-osx-OCHamcrest"; + productReference = 86533AB97AE143AE9A23D820 /* libPods-osx-OCHamcrest.a */; + productType = "com.apple.product-type.library.static"; + }; + EC398FF940A24F83A53E7609 /* Pods-ios-Typhoon */ = { + isa = PBXNativeTarget; + buildConfigurationList = 162AE839F2CF48ABA497A66C /* Build configuration list for PBXNativeTarget "Pods-ios-Typhoon" */; + buildPhases = ( + 60721D45CA08425899FD308B /* Sources */, + BFCA9D381F074B28AEFCEF3D /* Frameworks */, + 8227EBD40C47486BBACBF141 /* Headers */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "Pods-ios-Typhoon"; + productName = "Pods-ios-Typhoon"; + productReference = E6A511E7955B4E6ABA371215 /* libPods-ios-Typhoon.a */; + productType = "com.apple.product-type.library.static"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + C036B8F7C3854C9AB18532EE /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 0450; + }; + buildConfigurationList = 8B50B603216641DBB822BFCF /* Build configuration list for PBXProject "Pods" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = 1413E1B569CB4AB9AB9499A7; + productRefGroup = 4951E7C4E1D84364B14FC13B /* Products */; + projectDirPath = ""; + projectReferences = ( + ); + projectRoot = ""; + targets = ( + 486D5F32D87D487EA0B40819 /* Pods-ios-OCHamcrest */, + 1D0611DA70434545933F2AF5 /* Pods-ios-OCMockito */, + EC398FF940A24F83A53E7609 /* Pods-ios-Typhoon */, + D10F740290F4442C8ED4AD8E /* Pods-osx-OCHamcrest */, + 53A5CA1190E74B8AA833599F /* Pods-osx-OCMockito */, + 8DFD08D3F7324EED859BF75B /* Pods-osx-Typhoon */, + 279F2E2858294B59B03693E7 /* Pods-ios */, + 262BF57BA93B4402A7FEDD06 /* Pods-osx */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXSourcesBuildPhase section */ + 09A2150928684E97B2155751 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 96B597DA0AD94AA1AA9AD640 /* HCAssertThat.m in Sources */, + B5772713B24848E1823988F5 /* HCBaseDescription.m in Sources */, + 4478D3DF9A804E3BA9A9DB8F /* HCBaseMatcher.m in Sources */, + BD3496DD4115429EA889B945 /* HCStringDescription.m in Sources */, + 9B3CDCDE77B94532B979394D /* HCCollectMatchers.m in Sources */, + 566922F6694D4B3B94E7727A /* HCInvocationMatcher.m in Sources */, + B3F3C8EFFBFC47AA85F93F15 /* HCRequireNonNilObject.m in Sources */, + 6F5D7F17407046F1A261401D /* HCRequireNonNilString.m in Sources */, + F06DC6148374479F8818F0A0 /* HCWrapInMatcher.m in Sources */, + 67EBC35BB7F34437A6E2B9BD /* HCHasCount.m in Sources */, + 2EF40579FC4B4D9EB46245BF /* HCIsCollectionContaining.m in Sources */, + 57CD3788C3124E8B8896D4DD /* HCIsCollectionContainingInAnyOrder.m in Sources */, + 673DC48EF7944E05951B657F /* HCIsCollectionContainingInOrder.m in Sources */, + 87426A319EED40EB84434B66 /* HCIsCollectionOnlyContaining.m in Sources */, + 575D968A8EAB41D68A460B63 /* HCIsDictionaryContaining.m in Sources */, + AD8F52EDEBF94EF680B0166D /* HCIsDictionaryContainingEntries.m in Sources */, + 5658D6994C8B4B0FACF544B8 /* HCIsDictionaryContainingKey.m in Sources */, + 05A4546F19B34E429908262A /* HCIsDictionaryContainingValue.m in Sources */, + 14F5563524F349A2A29EF622 /* HCIsEmptyCollection.m in Sources */, + F03EEFE3E36E4A6C83C72DBA /* HCIsIn.m in Sources */, + F9507CDA18354CAC9BA5CFA7 /* HCDescribedAs.m in Sources */, + 5D6A418BE02C44B2B1BFED12 /* HCIs.m in Sources */, + 5271162FCDB54C55A684D238 /* HCAllOf.m in Sources */, + 34DF7F5CF1C649F1A576A469 /* HCAnyOf.m in Sources */, + 17F12005D522471594C59115 /* HCIsAnything.m in Sources */, + 016CB22C9DE54F95BE62502C /* HCIsNot.m in Sources */, + E582DD0597B34C6697B0CEA9 /* HCIsCloseTo.m in Sources */, + A5EF0CC7D3254F9E99D6E1A3 /* HCIsEqualToNumber.m in Sources */, + 4676682E2D3F4D02911F5087 /* HCNumberAssert.m in Sources */, + 57E24A3E2FB14CFE8D018236 /* HCOrderingComparison.m in Sources */, + 5346E2810971490AA3EB7B1A /* HCConformsToProtocol.m in Sources */, + A773050CB5CB49ADB2F43964 /* HCHasDescription.m in Sources */, + 226B005B72F0435BBEEBE032 /* HCHasProperty.m in Sources */, + 5CA7E8DB86724896B4341579 /* HCIsEqual.m in Sources */, + 665D8EA3357741398A85127A /* HCIsInstanceOf.m in Sources */, + 449A7C5610874FE0B8F1EC57 /* HCIsNil.m in Sources */, + 922CEDF3F01548AEB9E90EDE /* HCIsSame.m in Sources */, + 468176F1CEB34AF6B6524B70 /* HCIsEqualIgnoringCase.m in Sources */, + 2611C5D6454947978324441B /* HCIsEqualIgnoringWhiteSpace.m in Sources */, + ACD5A8CC881246F8BD6B188F /* HCStringContains.m in Sources */, + 2839D10877404F42A3902BCF /* HCStringContainsInOrder.m in Sources */, + 99ECFAF1B9BE4D3EAB572A49 /* HCStringEndsWith.m in Sources */, + 8EEA74E8EDB94ED1BBEABABB /* HCStringStartsWith.m in Sources */, + 0CEFBA592F044AF7B4F676DF /* HCSubstringMatcher.m in Sources */, + CAAEA5FBE014464DB004AAAB /* Pods-osx-OCHamcrest-dummy.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 170E33C5F67C49B5AAD54B3C /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + EAC462FAD10844FE978DBBC9 /* HCAssertThat.m in Sources */, + 67746887B23544E9A261885C /* HCBaseDescription.m in Sources */, + 6B0C4D1AA7C94E508D437F29 /* HCBaseMatcher.m in Sources */, + BDBA51E977844B58AD8BC77A /* HCStringDescription.m in Sources */, + DE8A92E806834D2CAEC20CC4 /* HCCollectMatchers.m in Sources */, + C4A72FBAD6EC40368C97EB2E /* HCInvocationMatcher.m in Sources */, + 4C25D22BD2FB4516881A789C /* HCRequireNonNilObject.m in Sources */, + 36FFA0E45F3C490E885F33C3 /* HCRequireNonNilString.m in Sources */, + FCD19A605E2042669C74E0FC /* HCWrapInMatcher.m in Sources */, + 3D4530F2E39E40C7B649469F /* HCHasCount.m in Sources */, + 10D76D8B785D4C1981605BCF /* HCIsCollectionContaining.m in Sources */, + 33E4B4CE996942D3848168D5 /* HCIsCollectionContainingInAnyOrder.m in Sources */, + 054CC3F6442E47A09F4B6224 /* HCIsCollectionContainingInOrder.m in Sources */, + 711C6C44D64A4884BD179111 /* HCIsCollectionOnlyContaining.m in Sources */, + CD5EE5B6A0794EB7AD91E191 /* HCIsDictionaryContaining.m in Sources */, + F8E81C9438CF4DA782A707C0 /* HCIsDictionaryContainingEntries.m in Sources */, + F5F75ADB4EEC47E3BD6FC72D /* HCIsDictionaryContainingKey.m in Sources */, + 53B96EF47F55431EA418B599 /* HCIsDictionaryContainingValue.m in Sources */, + 2241802323C7411A942D4DC8 /* HCIsEmptyCollection.m in Sources */, + 355253FD3C394655B0BB2EA3 /* HCIsIn.m in Sources */, + BDB3AB1614524DB7B01465BA /* HCDescribedAs.m in Sources */, + D133C263E4FD46ACA7CD8E9D /* HCIs.m in Sources */, + 276ACCBDB38C493FA7BA5EF0 /* HCAllOf.m in Sources */, + 2A248D6F87EE428F87453CC8 /* HCAnyOf.m in Sources */, + DA671F335A4F4E999151ACA5 /* HCIsAnything.m in Sources */, + F9BF94C4231A46EB8F4F65A8 /* HCIsNot.m in Sources */, + 595228815F34440E8C4DE034 /* HCIsCloseTo.m in Sources */, + FC6034318B26414A8A8A8B10 /* HCIsEqualToNumber.m in Sources */, + 3CFC192F85884B7CB2019F2A /* HCNumberAssert.m in Sources */, + 6AF4BA039EA147778503DF7B /* HCOrderingComparison.m in Sources */, + EA91731CAD194843BB48AC45 /* HCConformsToProtocol.m in Sources */, + 804039BF691443D69A92928E /* HCHasDescription.m in Sources */, + 73AC18A3C8364CD4AC70FD1C /* HCHasProperty.m in Sources */, + 3C3B816BF59F4DE4AA66AE48 /* HCIsEqual.m in Sources */, + 772EF9F1C3394D769DA287A8 /* HCIsInstanceOf.m in Sources */, + 3906668CCD104642BBE1F091 /* HCIsNil.m in Sources */, + C78DCB16196848E790D922B9 /* HCIsSame.m in Sources */, + 196E799491554617B1042FF1 /* HCIsEqualIgnoringCase.m in Sources */, + 42D808B817A34ED9BDF46D84 /* HCIsEqualIgnoringWhiteSpace.m in Sources */, + C734E93E3FB14DE79C5AF172 /* HCStringContains.m in Sources */, + 09D341212E73474DA50B48EF /* HCStringContainsInOrder.m in Sources */, + 59A15FB0C14F43DEBD6D23E9 /* HCStringEndsWith.m in Sources */, + 28786E7851AF4D218B03D949 /* HCStringStartsWith.m in Sources */, + 916E25CFBBB842B38A09F5BB /* HCSubstringMatcher.m in Sources */, + 0F17EA170BED47BA9E052A43 /* Pods-ios-OCHamcrest-dummy.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 230B986C711D43768AF2CE34 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 88BD5219675845F5A906422A /* Pods-ios-dummy.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 363CDF03BC4C4539857A67FD /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + C864172DCA7043B3A3F32CDE /* MKTAtLeastTimes.m in Sources */, + DC2419251A07411685C2FFF1 /* MKTBaseMockObject.m in Sources */, + 838E6E68060A4F97B18125D3 /* MKTClassObjectMock.m in Sources */, + B4FDDAFCFE8A4B7CBBCADC56 /* MKTExactTimes.m in Sources */, + 806AB657405F481593570D0A /* MKTException.m in Sources */, + 93F88712D74A404A941592A7 /* MKTInvocationContainer.m in Sources */, + FCA0613854A946AA8568CFF3 /* MKTInvocationMatcher.m in Sources */, + 42E07FB9105B4691B376A94F /* MKTMockAwareVerificationMode.m in Sources */, + 0912FE841346401DB546127A /* MKTMockingProgress.m in Sources */, + 0B254BE78B144D7885EAA444 /* MKTMockitoCore.m in Sources */, + C11404B640BD4F0485834F03 /* MKTObjectAndProtocolMock.m in Sources */, + 6133F3289A104691AE10AFA8 /* MKTObjectMock.m in Sources */, + DB12EBF9038B43EBAF86CB11 /* MKTOngoingStubbing.m in Sources */, + 692E066AAF34499494DD5773 /* MKTProtocolMock.m in Sources */, + 12FEDD3229C4417393C7D9EC /* MKTStubbedInvocationMatcher.m in Sources */, + B11E4C939577412CA68AD0F5 /* MKTTestLocation.m in Sources */, + 214BBEE05D524D6E8F6DA425 /* MKTVerificationData.m in Sources */, + 161DC6905A574498B530EBFC /* OCMockito.m in Sources */, + 28C1C67F91134B01B0763D00 /* Pods-osx-OCMockito-dummy.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 40B07E9702A64A84AE31961A /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 76E6E93C6C3F4BECA2A1C8A0 /* Pods-osx-dummy.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 60721D45CA08425899FD308B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + DDBE5CFB61894F4ABC9EBF78 /* TyphoonInitializer.m in Sources */, + DAD17A59D8D34CEB83ED475A /* TyphoonParameterInjectedByRawValue.m in Sources */, + 1F47F3FC0DEE42EDA8F3763F /* TyphoonParameterInjectedByReference.m in Sources */, + 5360F41262A04C3DABDA266A /* TyphoonParameterInjectedByValue.m in Sources */, + A44A1A48BF6B4F4CB6F64C50 /* TyphoonByReferenceCollectionValue.m in Sources */, + 17A3CB2FBB8B4EBC80CE2EB2 /* TyphoonPropertyInjectedAsCollection.m in Sources */, + 2C4344B6F1A04AE5B0D3538D /* TyphoonTypeConvertedCollectionValue.m in Sources */, + 23B8A7936986453CBF2C9024 /* TyphoonPropertyInjectedByReference.m in Sources */, + C8FEDACEDD88484995E83BC1 /* TyphoonPropertyInjectedByType.m in Sources */, + D034F2FCE52342B88918053C /* TyphoonPropertyInjectedByValue.m in Sources */, + 6F461D0AEC314A5ABC0952F6 /* TyphoonDefinition.m in Sources */, + 38DB37FA213E4B1B8EEFF4C3 /* TyphoonAssembly.m in Sources */, + 6D99FB5C59C5448FB951DC6E /* TyphoonBlockComponentFactory.m in Sources */, + C57C2E1156A4450199418BCC /* TyphoonComponentFactory+InstanceBuilder.m in Sources */, + 52EB447E125D4E9B8442DAC3 /* TyphoonDefinition+InstanceBuilder.m in Sources */, + 128F69608AA345B281DCDBD0 /* TyphoonInitializer+InstanceBuilder.m in Sources */, + BBF7D3807B3044F18BBA9D16 /* TyphoonPropertyPlaceholderConfigurer.m in Sources */, + B6E746D591FA415C8AF7F0B7 /* TyphoonComponentFactory.m in Sources */, + 761005A698D348EDB4E7A4DD /* TyphoonRXMLElement+XmlComponentFactory.m in Sources */, + 4497C36B780E4714AE803872 /* TyphoonRXMLElement.m in Sources */, + 2EDFC33AEEE04D318E24651B /* TyphoonXmlComponentFactory.m in Sources */, + D773FD04CD984E68A3874F8C /* TyphoonNSURLTypeConverter.m in Sources */, + EA4F608968B3451494DAA1F5 /* TyphoonPassThroughTypeConverter.m in Sources */, + C0D1E1DD9029454E8E47B9A5 /* TyphoonPrimitiveTypeConverter.m in Sources */, + D3B854176E2648919608AE8D /* TyphoonTypeConverterRegistry.m in Sources */, + 4D8209AD88C44D55B8612708 /* TyphoonTypeDescriptor.m in Sources */, + FD77594B03434DE3847A06D0 /* NSObject+TyphoonIntrospectionUtils.m in Sources */, + DF9E2DB2F10E44B593A58210 /* TyphoonBundleResource.m in Sources */, + E2D2CC6403A143C0995DE943 /* TyphoonJRSwizzle.m in Sources */, + 4A6EF9BF0AF04076BAE806DB /* TyphoonIntrospectionUtils.m in Sources */, + 6020954DEAC14E7EB88283E3 /* TyphoonTestUtils.m in Sources */, + 8F27AF3D00C849C0A89631E6 /* Pods-ios-Typhoon-dummy.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 79C20161BD57418A97E4A48E /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + F3608C14224A4B66A11EC1D7 /* MKTAtLeastTimes.m in Sources */, + 2D268F0457CB454A8F1C31CD /* MKTBaseMockObject.m in Sources */, + 5237B04CCA4F463293E9C97B /* MKTClassObjectMock.m in Sources */, + 09701EAF079848EF8236E37C /* MKTExactTimes.m in Sources */, + 453B3061D4B143D090BE54C2 /* MKTException.m in Sources */, + AB4405FF653742F2AF12DDDE /* MKTInvocationContainer.m in Sources */, + 6BE5110238934939847B3E49 /* MKTInvocationMatcher.m in Sources */, + F8F488EEA5AA4B4C8A471733 /* MKTMockAwareVerificationMode.m in Sources */, + 54D1286F8183433ABEF3321E /* MKTMockingProgress.m in Sources */, + 6F1D5B8D9554421B9B57AA83 /* MKTMockitoCore.m in Sources */, + 7C2E0DAD74FC42839139D605 /* MKTObjectAndProtocolMock.m in Sources */, + 8BD9B865CFE54F20ABB68461 /* MKTObjectMock.m in Sources */, + C55C6C12ED5A4DB9869C1FD9 /* MKTOngoingStubbing.m in Sources */, + 17C47C17970D400BA7B6DB8C /* MKTProtocolMock.m in Sources */, + 6F3A443FD1884030A1298C53 /* MKTStubbedInvocationMatcher.m in Sources */, + 5B130627D0054FC8B8117F9B /* MKTTestLocation.m in Sources */, + C371527173044562870EBC7D /* MKTVerificationData.m in Sources */, + 90D3FECA77274A8697398145 /* OCMockito.m in Sources */, + AAAFD01893904E2D90C8CE39 /* Pods-ios-OCMockito-dummy.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + D73F87772E8F4079A91832A9 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + C12226FB5AE64B7EA09B48F4 /* TyphoonInitializer.m in Sources */, + 8377509A0DCB4A4DB3552097 /* TyphoonParameterInjectedByRawValue.m in Sources */, + F93966C07AF641988D34C8FF /* TyphoonParameterInjectedByReference.m in Sources */, + 174A3BAA122B4C32B8F3B3AC /* TyphoonParameterInjectedByValue.m in Sources */, + 41291664CA074C6F948FA4A1 /* TyphoonByReferenceCollectionValue.m in Sources */, + A6F2E5A1307A48E59E5EAEE2 /* TyphoonPropertyInjectedAsCollection.m in Sources */, + 289C405D6722405DA87081A7 /* TyphoonTypeConvertedCollectionValue.m in Sources */, + CF7B3801519448E7B9D22F8F /* TyphoonPropertyInjectedByReference.m in Sources */, + DC121B96783147C585DB7811 /* TyphoonPropertyInjectedByType.m in Sources */, + 00F89C65B9604B84A000DCFB /* TyphoonPropertyInjectedByValue.m in Sources */, + AF071925D31F41ECBFE5AAD6 /* TyphoonDefinition.m in Sources */, + FC8897CACB784E47BA6DF462 /* TyphoonAssembly.m in Sources */, + 65EADE1860654EEA85E25901 /* TyphoonBlockComponentFactory.m in Sources */, + DE865ADBBAD140F6A33CDC8C /* TyphoonComponentFactory+InstanceBuilder.m in Sources */, + 8F8E2588BF5D472097728390 /* TyphoonDefinition+InstanceBuilder.m in Sources */, + B7113A211A444561892B184D /* TyphoonInitializer+InstanceBuilder.m in Sources */, + E2EFA5AA5F6542BCA024860D /* TyphoonPropertyPlaceholderConfigurer.m in Sources */, + 177485CB10E14DAF9658B10C /* TyphoonComponentFactory.m in Sources */, + 7DB7603B75DB455280FB6A5E /* TyphoonRXMLElement+XmlComponentFactory.m in Sources */, + 11F50BFFC20F4EC5970D2413 /* TyphoonRXMLElement.m in Sources */, + 28F5950882B44F55A592B1E8 /* TyphoonXmlComponentFactory.m in Sources */, + 3185BFFD9B93473A80B91B85 /* TyphoonNSURLTypeConverter.m in Sources */, + 848E45541A6E45D79C4D3489 /* TyphoonPassThroughTypeConverter.m in Sources */, + C127AF3720EC4149A818EAC4 /* TyphoonPrimitiveTypeConverter.m in Sources */, + 99884EF95D7B437EA8B5C28C /* TyphoonTypeConverterRegistry.m in Sources */, + 66CC380B432C4D4BABA65D1E /* TyphoonTypeDescriptor.m in Sources */, + FAC87902D590486CA517057E /* NSObject+TyphoonIntrospectionUtils.m in Sources */, + 86EBFADAA9BC4AE09FC8FE88 /* TyphoonBundleResource.m in Sources */, + 7D955B739C094626AEEC192F /* TyphoonJRSwizzle.m in Sources */, + F6FA3E6478AF448BB90488C7 /* TyphoonIntrospectionUtils.m in Sources */, + E828E7C518E24237A1C646F1 /* TyphoonTestUtils.m in Sources */, + BC135069622A4C47A3594AE3 /* Pods-osx-Typhoon-dummy.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 08BF649B582D408EAD2A9536 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 486D5F32D87D487EA0B40819 /* Pods-ios-OCHamcrest */; + targetProxy = 211D5696118348589FB4E682 /* PBXContainerItemProxy */; + }; + 09E53CF7E5714E4A961960B9 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = D10F740290F4442C8ED4AD8E /* Pods-osx-OCHamcrest */; + targetProxy = E2F1439050644A81BB078DB2 /* PBXContainerItemProxy */; + }; + 2B13BD332F8D4027BA2EE363 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = EC398FF940A24F83A53E7609 /* Pods-ios-Typhoon */; + targetProxy = E69AA870210A416382C17F78 /* PBXContainerItemProxy */; + }; + 2DDE1C8A8EE0444EAC065983 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 53A5CA1190E74B8AA833599F /* Pods-osx-OCMockito */; + targetProxy = 6084578213A44F558A35126A /* PBXContainerItemProxy */; + }; + 2E6C0215CA74414F93D4B4B4 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 8DFD08D3F7324EED859BF75B /* Pods-osx-Typhoon */; + targetProxy = C87AB4DF0F1847F29BA8D48C /* PBXContainerItemProxy */; + }; + 3328B87FFF484CC4A3330FA2 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 1D0611DA70434545933F2AF5 /* Pods-ios-OCMockito */; + targetProxy = 264F22C6A6694AF8B90F7091 /* PBXContainerItemProxy */; + }; + 787F61307429428D8098F740 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = D10F740290F4442C8ED4AD8E /* Pods-osx-OCHamcrest */; + targetProxy = 771C1F3EEBAE411DAF2C9FB9 /* PBXContainerItemProxy */; + }; + A3E0EB3406DE4E2F85525539 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 486D5F32D87D487EA0B40819 /* Pods-ios-OCHamcrest */; + targetProxy = B9DF477FBF914CBD9BE52837 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 0A8DFAA7905C493F9C6F2844 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 9272E75F76F546FD896B2FB2 /* Pods-ios-OCMockito-Private.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = "$(ARCHS_STANDARD_32_BIT)"; + COPY_PHASE_STRIP = YES; + DSTROOT = /tmp/xcodeproj.dst; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "Pods-ios-OCMockito-prefix.pch"; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + INSTALL_PATH = "$(BUILT_PRODUCTS_DIR)"; + IPHONEOS_DEPLOYMENT_TARGET = 5.0; + OTHER_CFLAGS = ( + "-DNS_BLOCK_ASSERTIONS=1", + "$(inherited)", + ); + OTHER_CPLUSPLUSFLAGS = ( + "-DNS_BLOCK_ASSERTIONS=1", + "$(inherited)", + ); + OTHER_LDFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + PUBLIC_HEADERS_FOLDER_PATH = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 1E1782BF4F4D4BF4B3E10666 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + IPHONEOS_DEPLOYMENT_TARGET = 5.0; + MACOSX_DEPLOYMENT_TARGET = 10.7; + }; + name = Debug; + }; + 208C034B18BA4ABBAD31FE99 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 12682C8773164F3684FF4973 /* Pods-osx-Typhoon-Private.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + COMBINE_HIDPI_IMAGES = YES; + COPY_PHASE_STRIP = NO; + DSTROOT = /tmp/xcodeproj.dst; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "Pods-osx-Typhoon-prefix.pch"; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + INSTALL_PATH = "$(BUILT_PRODUCTS_DIR)"; + MACOSX_DEPLOYMENT_TARGET = 10.7; + ONLY_ACTIVE_ARCH = YES; + OTHER_LDFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + SKIP_INSTALL = YES; + }; + name = Debug; + }; + 3A5981BE01184939B27CF501 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 9272E75F76F546FD896B2FB2 /* Pods-ios-OCMockito-Private.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = "$(ARCHS_STANDARD_32_BIT)"; + COPY_PHASE_STRIP = NO; + DSTROOT = /tmp/xcodeproj.dst; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "Pods-ios-OCMockito-prefix.pch"; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + INSTALL_PATH = "$(BUILT_PRODUCTS_DIR)"; + IPHONEOS_DEPLOYMENT_TARGET = 5.0; + OTHER_LDFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + PUBLIC_HEADERS_FOLDER_PATH = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Debug; + }; + 422048C9AC6940BAA49D02A0 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 12682C8773164F3684FF4973 /* Pods-osx-Typhoon-Private.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + COMBINE_HIDPI_IMAGES = YES; + COPY_PHASE_STRIP = YES; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DSTROOT = /tmp/xcodeproj.dst; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_OBJC_EXCEPTIONS = YES; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "Pods-osx-Typhoon-prefix.pch"; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + INSTALL_PATH = "$(BUILT_PRODUCTS_DIR)"; + MACOSX_DEPLOYMENT_TARGET = 10.7; + OTHER_CFLAGS = ( + "-DNS_BLOCK_ASSERTIONS=1", + "$(inherited)", + ); + OTHER_CPLUSPLUSFLAGS = ( + "-DNS_BLOCK_ASSERTIONS=1", + "$(inherited)", + ); + OTHER_LDFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + SKIP_INSTALL = YES; + }; + name = Release; + }; + 443FD35E6DBD44B5B8E5FAE7 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = BEDE45F64D1F489B87207C88 /* Pods-ios.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = "$(ARCHS_STANDARD_32_BIT)"; + COPY_PHASE_STRIP = YES; + DSTROOT = /tmp/xcodeproj.dst; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + INSTALL_PATH = "$(BUILT_PRODUCTS_DIR)"; + IPHONEOS_DEPLOYMENT_TARGET = 5.0; + OTHER_CFLAGS = ( + "-DNS_BLOCK_ASSERTIONS=1", + "$(inherited)", + ); + OTHER_CPLUSPLUSFLAGS = ( + "-DNS_BLOCK_ASSERTIONS=1", + "$(inherited)", + ); + OTHER_LDFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + PUBLIC_HEADERS_FOLDER_PATH = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 469F22C54E6140A082F021FD /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = C82191A8009C42A7B374708B /* Pods-osx.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + COMBINE_HIDPI_IMAGES = YES; + COPY_PHASE_STRIP = NO; + DSTROOT = /tmp/xcodeproj.dst; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + INSTALL_PATH = "$(BUILT_PRODUCTS_DIR)"; + MACOSX_DEPLOYMENT_TARGET = 10.7; + ONLY_ACTIVE_ARCH = YES; + OTHER_LDFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + SKIP_INSTALL = YES; + }; + name = Debug; + }; + 65A2456F20454B92801EA5C4 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = F1EE8F6A57424187A7D26C8F /* Pods-osx-OCMockito-Private.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + COMBINE_HIDPI_IMAGES = YES; + COPY_PHASE_STRIP = YES; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DSTROOT = /tmp/xcodeproj.dst; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_OBJC_EXCEPTIONS = YES; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "Pods-osx-OCMockito-prefix.pch"; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + INSTALL_PATH = "$(BUILT_PRODUCTS_DIR)"; + MACOSX_DEPLOYMENT_TARGET = 10.7; + OTHER_CFLAGS = ( + "-DNS_BLOCK_ASSERTIONS=1", + "$(inherited)", + ); + OTHER_CPLUSPLUSFLAGS = ( + "-DNS_BLOCK_ASSERTIONS=1", + "$(inherited)", + ); + OTHER_LDFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + SKIP_INSTALL = YES; + }; + name = Release; + }; + 8CFD4A22B5A34EA89295C616 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 1FDB067D15BB4C9FA3B3518E /* Pods-ios-OCHamcrest-Private.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = "$(ARCHS_STANDARD_32_BIT)"; + COPY_PHASE_STRIP = YES; + DSTROOT = /tmp/xcodeproj.dst; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "Pods-ios-OCHamcrest-prefix.pch"; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + INSTALL_PATH = "$(BUILT_PRODUCTS_DIR)"; + IPHONEOS_DEPLOYMENT_TARGET = 5.0; + OTHER_CFLAGS = ( + "-DNS_BLOCK_ASSERTIONS=1", + "$(inherited)", + ); + OTHER_CPLUSPLUSFLAGS = ( + "-DNS_BLOCK_ASSERTIONS=1", + "$(inherited)", + ); + OTHER_LDFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + PUBLIC_HEADERS_FOLDER_PATH = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 94EFF9E83F1D40FD952B5349 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = BEDE45F64D1F489B87207C88 /* Pods-ios.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = "$(ARCHS_STANDARD_32_BIT)"; + COPY_PHASE_STRIP = NO; + DSTROOT = /tmp/xcodeproj.dst; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + INSTALL_PATH = "$(BUILT_PRODUCTS_DIR)"; + IPHONEOS_DEPLOYMENT_TARGET = 5.0; + OTHER_LDFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + PUBLIC_HEADERS_FOLDER_PATH = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Debug; + }; + A5B77E42BC874705B113AA7A /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 20BAAAB96C6546C4B3E4E638 /* Pods-ios-Typhoon-Private.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = "$(ARCHS_STANDARD_32_BIT)"; + COPY_PHASE_STRIP = YES; + DSTROOT = /tmp/xcodeproj.dst; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "Pods-ios-Typhoon-prefix.pch"; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + INSTALL_PATH = "$(BUILT_PRODUCTS_DIR)"; + IPHONEOS_DEPLOYMENT_TARGET = 5.0; + OTHER_CFLAGS = ( + "-DNS_BLOCK_ASSERTIONS=1", + "$(inherited)", + ); + OTHER_CPLUSPLUSFLAGS = ( + "-DNS_BLOCK_ASSERTIONS=1", + "$(inherited)", + ); + OTHER_LDFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + PUBLIC_HEADERS_FOLDER_PATH = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + B16F7F55782944CF98083923 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 20BAAAB96C6546C4B3E4E638 /* Pods-ios-Typhoon-Private.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = "$(ARCHS_STANDARD_32_BIT)"; + COPY_PHASE_STRIP = NO; + DSTROOT = /tmp/xcodeproj.dst; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "Pods-ios-Typhoon-prefix.pch"; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + INSTALL_PATH = "$(BUILT_PRODUCTS_DIR)"; + IPHONEOS_DEPLOYMENT_TARGET = 5.0; + OTHER_LDFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + PUBLIC_HEADERS_FOLDER_PATH = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Debug; + }; + B24B1B43A75944A999C84F0C /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 8F48F63493FD45E0848E73FE /* Pods-osx-OCHamcrest-Private.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + COMBINE_HIDPI_IMAGES = YES; + COPY_PHASE_STRIP = NO; + DSTROOT = /tmp/xcodeproj.dst; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "Pods-osx-OCHamcrest-prefix.pch"; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + INSTALL_PATH = "$(BUILT_PRODUCTS_DIR)"; + MACOSX_DEPLOYMENT_TARGET = 10.7; + ONLY_ACTIVE_ARCH = YES; + OTHER_LDFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + SKIP_INSTALL = YES; + }; + name = Debug; + }; + C6D1FA6561DB41769B2C095E /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 1FDB067D15BB4C9FA3B3518E /* Pods-ios-OCHamcrest-Private.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = "$(ARCHS_STANDARD_32_BIT)"; + COPY_PHASE_STRIP = NO; + DSTROOT = /tmp/xcodeproj.dst; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "Pods-ios-OCHamcrest-prefix.pch"; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + INSTALL_PATH = "$(BUILT_PRODUCTS_DIR)"; + IPHONEOS_DEPLOYMENT_TARGET = 5.0; + OTHER_LDFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + PUBLIC_HEADERS_FOLDER_PATH = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Debug; + }; + F5FBADD66D2746EFA7EE7DD3 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = F1EE8F6A57424187A7D26C8F /* Pods-osx-OCMockito-Private.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + COMBINE_HIDPI_IMAGES = YES; + COPY_PHASE_STRIP = NO; + DSTROOT = /tmp/xcodeproj.dst; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "Pods-osx-OCMockito-prefix.pch"; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + INSTALL_PATH = "$(BUILT_PRODUCTS_DIR)"; + MACOSX_DEPLOYMENT_TARGET = 10.7; + ONLY_ACTIVE_ARCH = YES; + OTHER_LDFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + SKIP_INSTALL = YES; + }; + name = Debug; + }; + F87AA9B35009435383ACE9D2 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + IPHONEOS_DEPLOYMENT_TARGET = 5.0; + MACOSX_DEPLOYMENT_TARGET = 10.7; + }; + name = Release; + }; + FBD15BE9AC9B49A8A213DE26 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 8F48F63493FD45E0848E73FE /* Pods-osx-OCHamcrest-Private.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + COMBINE_HIDPI_IMAGES = YES; + COPY_PHASE_STRIP = YES; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DSTROOT = /tmp/xcodeproj.dst; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_OBJC_EXCEPTIONS = YES; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "Pods-osx-OCHamcrest-prefix.pch"; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + INSTALL_PATH = "$(BUILT_PRODUCTS_DIR)"; + MACOSX_DEPLOYMENT_TARGET = 10.7; + OTHER_CFLAGS = ( + "-DNS_BLOCK_ASSERTIONS=1", + "$(inherited)", + ); + OTHER_CPLUSPLUSFLAGS = ( + "-DNS_BLOCK_ASSERTIONS=1", + "$(inherited)", + ); + OTHER_LDFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + SKIP_INSTALL = YES; + }; + name = Release; + }; + FC2A0FA31FFB4F9D8B4F53F0 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = C82191A8009C42A7B374708B /* Pods-osx.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + COMBINE_HIDPI_IMAGES = YES; + COPY_PHASE_STRIP = YES; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DSTROOT = /tmp/xcodeproj.dst; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_OBJC_EXCEPTIONS = YES; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + INSTALL_PATH = "$(BUILT_PRODUCTS_DIR)"; + MACOSX_DEPLOYMENT_TARGET = 10.7; + OTHER_CFLAGS = ( + "-DNS_BLOCK_ASSERTIONS=1", + "$(inherited)", + ); + OTHER_CPLUSPLUSFLAGS = ( + "-DNS_BLOCK_ASSERTIONS=1", + "$(inherited)", + ); + OTHER_LDFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + SKIP_INSTALL = YES; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 162AE839F2CF48ABA497A66C /* Build configuration list for PBXNativeTarget "Pods-ios-Typhoon" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + A5B77E42BC874705B113AA7A /* Release */, + B16F7F55782944CF98083923 /* Debug */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 2D3C0D375FDD4FEE9394933F /* Build configuration list for PBXNativeTarget "Pods-osx-Typhoon" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 422048C9AC6940BAA49D02A0 /* Release */, + 208C034B18BA4ABBAD31FE99 /* Debug */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 759ACDCA72824EC19B08718A /* Build configuration list for PBXNativeTarget "Pods-ios" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 443FD35E6DBD44B5B8E5FAE7 /* Release */, + 94EFF9E83F1D40FD952B5349 /* Debug */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 7D2F230A05404EF38BE4E43C /* Build configuration list for PBXNativeTarget "Pods-osx" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + FC2A0FA31FFB4F9D8B4F53F0 /* Release */, + 469F22C54E6140A082F021FD /* Debug */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 8B50B603216641DBB822BFCF /* Build configuration list for PBXProject "Pods" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + F87AA9B35009435383ACE9D2 /* Release */, + 1E1782BF4F4D4BF4B3E10666 /* Debug */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 8B65B3FA36D8451CA3273704 /* Build configuration list for PBXNativeTarget "Pods-osx-OCMockito" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 65A2456F20454B92801EA5C4 /* Release */, + F5FBADD66D2746EFA7EE7DD3 /* Debug */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 93A6046813A64FF7B945123C /* Build configuration list for PBXNativeTarget "Pods-ios-OCMockito" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 0A8DFAA7905C493F9C6F2844 /* Release */, + 3A5981BE01184939B27CF501 /* Debug */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + E17F544D32E54B4D958F77DC /* Build configuration list for PBXNativeTarget "Pods-osx-OCHamcrest" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + FBD15BE9AC9B49A8A213DE26 /* Release */, + B24B1B43A75944A999C84F0C /* Debug */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + E527C85351464322812C4349 /* Build configuration list for PBXNativeTarget "Pods-ios-OCHamcrest" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 8CFD4A22B5A34EA89295C616 /* Release */, + C6D1FA6561DB41769B2C095E /* Debug */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = C036B8F7C3854C9AB18532EE /* Project object */; +} diff --git a/Tests/Pods/Typhoon/LICENSE b/Tests/Pods/Typhoon/LICENSE new file mode 100644 index 000000000..57bc88a15 --- /dev/null +++ b/Tests/Pods/Typhoon/LICENSE @@ -0,0 +1,202 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + diff --git a/Tests/Pods/Typhoon/README.md b/Tests/Pods/Typhoon/README.md new file mode 100644 index 000000000..30240f275 --- /dev/null +++ b/Tests/Pods/Typhoon/README.md @@ -0,0 +1,207 @@ +# Typhoon! (www.typhoonframework.org) + +A new dependency injection container for Objective-C. Light-weight, yet full-featured and super-easy to use. + +## Familiar with Dependency Injection? + +* Read the User Guide. +* Try the sample application. +* Check the feature list. + +otherwise. . . + +### What is Dependency Injection? + +Many people have trouble getting the hang of dependency injection, at first. And I think part of the problem is that +it is actually so simple that we're inclined to look for something more complicated. "Surely that there has to be +more to it?!", so to say. + +So, with that in mind, imagine that you're writing an app that gives weather reports. You need a cloud-service +(excuse the pun ;) ) to provide the data, and at first you go for a free weather report provider, but in future you'd +like to integrate a weather service with better accuracy and more features. So, as do all good object-oriented +developers, you make a WeatherClient protocol and back it initially with an implementation based on the free, online +data provider. + +___Without dependency injection, you might have a View Controller like this___: + +```objective-c + +-(id) init +{ + self = [super init]; + if (self) + { + //The class using some collaborating class builds its own assistant. + //it might be one of several classes using the weatherClient. + _weatherClient = [[GoogleWeatherClientImpl alloc] initWithParameters:xyz]; + } + return self; +} + +``` + +The thing with this approach is, if you wanted to change to another weather client implementation you'd have to go +and find all the places in your code that use the old one, and move them over to the new one. Each time, making sure +to pass in the correct initialization parameters. + +A very common approach is to have a centrally configured singleton: + +```objective-c +_weatherClient = [GoogleWeatherClient sharedInstance]; +``` + +With either of the above approaches, in order to test your view controller, you now have to test its collaborating +class (the weather client) at the same time, and this can get tricky, especially as your application gets more +complex. Imagine testing Class A, depends on Class B, depends on Class C, depends on .... Not much fun! + +_Sure, you could patch out the singleton with a mock or a stub, but this requires peeking inside the code to find the +dependencies. Besides taking time that could be better spent else-where, this ends up becoming "glass-box" testing as +opposed to "black-box" testing. Isn't it better to be able to test the external interface to a class, without having +worry about what's going on inside? _And_ you have to remember un-patch again at the end of the test-case or risk +strange breakages to other tests, where its difficult to pin-point what the real problem is might be._ . . + +. . . So with dependency injection, rather than having objects make their own collaborators, we have them supplied to the +class instance via an initializer or property setter. + +___And now, it simply becomes___: + +```objective-c + +-(id) initWithWeatherClient:(id)weatherClient +{ + self = [super init]; + if (self) + { + _weatherClient = weatherClient; + } + return self; +} + +``` + + +####Is that all they mean by 'injected'? +Yes it is. Right now, you might be thinking "Geez! That's a pretty fancy name for something so plain." Well, you'd be right. But let's look at the implications on our application architecture: If you do this with significant collaborators throughout your app, it means that the __GoogleWeatherClientImpl__ is now declared in a single place - the top-level assembly, so-to-speak. ___And___ all of the classes that need to use some kind of __id<WeatherClient>__ will have it passed in. This means that: + +* If you want to change from one implementation to another, you need only change a single declaration. +* Classes are easier to test, because we can supply simple mocks and stubs in place of concrete collaborators. Or +the real collaborators, but configured to be used in a test scenario. (One of my design goals). +* It promotes separation of concerns and a clear contract between classes. Its easy to see what each class needs in order +to do its job. +* Your app is easier to maintain and can accommodate new requirements. + + +# Your Dependency Injection Options + +If you proceed with the Dependency Injection pattern _(assuming you're not one of the remaining "flat-earthers", who +believe that Objective-C somehow magically alleviates the need for common-sense: "Oh, I don't do DI, I use swizzling +class-clusters!")_, then there are basically two options: + +* You can do dependency injection without a framework/library/container to help you. It ___is___ simple after all, and in +fact I recommend you do this, at least as an exercise in software design. And yes, it is certainly possble that this will be +adequate. ___But___, I think its good to have help, if you can get it. You can also write tests without a test +framework, mocks with out a mock library, software without a compiler. + +* So, going down the library/framework route, there's been quite a lot of action in Objective-C land, over the last +three years. In fact, there are now around 15 Dependency Injection frameworks, many following in the footsteps of Google Guice. +The authors have done a great job (Objection is especially good). However, I wanted an approach that allows the +following: + +## Design Goals / Features + +* Dependencies declared in any order. (The order that makes sense to humans). + +* Allows both dependency injection (injection of classes defined in the DI context) as well as configuration + management (values that get converted to the required type at runtime). Because this allows. . . + +* . . . ability to configure components for use in eg ___Test___ vs ___Production___ scenarios. This faciliates a +good compromise between integration testing and pure unit testing. (Biggest testing bang-for-your-buck). + +* ***Doesn't get all "meta" on you. Supports auto-wiring "annotations" (macros), for simple cases. When convention-over-configuration doesn't provide a simple answer, it +gets straight-to-the-point by defining what depends on what.*** + +* No fragmented qualifier macros, modules, etc. Makes it easy to have multiple configurations of the same base-class or protocol. + +* Application assembly - the wiring of dependencies and configuration management - is all encapsulated in a +convenient document. At the same time this document can be grouped into chapters. Now you know where to look if you need to change something. + +* Non-invasive. Its not necessary to change ***any*** of your classes to use the framework. It does not swizzle your classes, so you can use the same class with or without dependency injection. + +* Supports both initializer and property injection. In the case of the latter, it has customizable call-backs to +ensure that the class is in the required state before and after properties are set. + +* Flexibility. Supports different approaches of dependency injection for different scenarios - native block-style, auto-wiring macros or Spring-style XML. + +* Lean. It has a very low footprint, so is appropriate for CPU and memory constrained devices. + + +# Usage + +* Play with the sample application. + +And then: + +* Assembling Components with Blocks (recommended) ___or___ Assembling Components in XML + +* Autowiring + +* Using Assembled Components + +* Incorporating the framework into your project. + +* Configuration Management & Testing. + +# Reports + +In the spirit of lean-methodologies, the API and Test Coverage reports below are published by my build server, after +each commit. (If you'd like the script I will share it). + +* API +* Test Results +* Coverage Reports + + + +# Feature Requests and Contributions + +. . . are very welcome. + +* Contribution Guide. + +* Look at, and contribute to the roadmap here. + +##Current Work? + +* ***New!!*** Just added support for collections - NSArray and NSSet properties injected by type-converted value or references. . . . docs and dictionaries coming soon. +* More AppCode IDE integration. (Thanks to Jetbrains for the assistance). +* API docs. + +# Frequently Asked Questions + +. . . are here. + +# Authors + +* Jasper Blues - jasper@appsquick.ly + +### With contributions from: + +* Jeffrey Roberts, Mobile Software Engineer at +Riot Games, previous contributor to Swiz for ActionScript : Advice, feedback and testing. +* John Blanco of Rapture in Venice, LLC : contributed his +lean and elegant XML library. A great example that full-featured +is not the same as heavy. +* Jetbrains, maker of very cool software development tools : Assistance with AppCode integration. +* José González Gómez, Mobile and cloud developer at OPEN input : Feedback; testing, support for property placeholders in initializers. +* ___Your name here!!!!!!!___ + +Thanks!!! + + +# LICENSE + +Apache License, Version 2.0, January 2004, http://www.apache.org/licenses/ + +© 2012 - 2013 Jasper Blues and contributors. + +[![githalytics.com alpha](https://cruel-carlota.pagodabox.com/0e47e2f2028b2badfc88e13f95914938 "githalytics.com")](http://githalytics.com/jasperblues/Typhoon) diff --git a/Tests/Pods/Typhoon/Source/Component/Initializer/TyphoonInitializer.h b/Tests/Pods/Typhoon/Source/Component/Initializer/TyphoonInitializer.h new file mode 100644 index 000000000..017fd433b --- /dev/null +++ b/Tests/Pods/Typhoon/Source/Component/Initializer/TyphoonInitializer.h @@ -0,0 +1,68 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// JASPER BLUES +// Copyright 2012 - 2013 Jasper Blues +// All Rights Reserved. +// +// NOTICE: Jasper Blues permits you to use, modify, and distribute this file +// in accordance with the terms of the license agreement accompanying it. +// +//////////////////////////////////////////////////////////////////////////////// + + +#import +@class TyphoonDefinition; + +typedef enum +{ + TyphoonComponentInitializerIsClassMethodGuess, + TyphoonComponentInitializerIsClassMethodYes, + TyphoonComponentInitializerIsClassMethodNo +} TyphoonComponentInitializerIsClassMethod; + +/** +* Represents an initializer for a component. +*/ +@interface TyphoonInitializer : NSObject +{ + NSMutableArray* _injectedParameters; + NSArray* _parameterNames; + __unsafe_unretained TyphoonDefinition* _definition; + TyphoonComponentInitializerIsClassMethod _isClassMethodStrategy; + SEL _selector; +} + +@property(nonatomic) SEL selector; + +- (id)initWithSelector:(SEL)initializer; + +- (id)initWithSelector:(SEL)initializer isClassMethod:(TyphoonComponentInitializerIsClassMethod)isClassMethod; + +- (void)injectParameterNamed:(NSString*)name withReference:(NSString*)reference; + +- (void)injectParameterAtIndex:(NSUInteger)index withReference:(NSString*)reference; + +- (void)injectParameterNamed:(NSString*)name withValueAsText:(NSString*)text requiredTypeOrNil:(id)classOrProtocol; + +- (void)injectParameterAtIndex:(NSUInteger)index withValueAsText:(NSString*)text requiredTypeOrNil:(id)requiredClass; + + +/* ====================================================================================================================================== */ +#pragma mark - Block assembly + +- (void)injectWithDefinition:(TyphoonDefinition*)definition; + +- (void)injectWithText:(NSString*)text; + +- (void)injectWithText:(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)injectParameterNamed:(NSString*)name withValue:(id)value; + +- (void)injectParameterWithValue:(id)value; +@end \ No newline at end of file diff --git a/Tests/Pods/Typhoon/Source/Component/Initializer/TyphoonInitializer.m b/Tests/Pods/Typhoon/Source/Component/Initializer/TyphoonInitializer.m new file mode 100644 index 000000000..d95e7b9f6 --- /dev/null +++ b/Tests/Pods/Typhoon/Source/Component/Initializer/TyphoonInitializer.m @@ -0,0 +1,165 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// JASPER BLUES +// Copyright 2012 - 2013 Jasper Blues +// All Rights Reserved. +// +// NOTICE: Jasper Blues permits you to use, modify, and distribute this file +// in accordance with the terms of the license agreement accompanying it. +// +//////////////////////////////////////////////////////////////////////////////// + + + +#import "TyphoonInitializer.h" +#import "TyphoonParameterInjectedByReference.h" +#import "NSObject+TyphoonIntrospectionUtils.h" +#import "TyphoonParameterInjectedByValue.h" +#import "TyphoonParameterInjectedByRawValue.h" +#import "TyphoonDefinition.h" + + +@implementation TyphoonInitializer + + +/* ============================================================ Initializers ============================================================ */ +- (id)initWithSelector:(SEL)initializer +{ + return [self initWithSelector:initializer isClassMethod:TyphoonComponentInitializerIsClassMethodGuess]; +} + +- (id)initWithSelector:(SEL)initializer isClassMethod:(TyphoonComponentInitializerIsClassMethod)isClassMethod; +{ + self = [super init]; + if (self) + { + _injectedParameters = [[NSMutableArray alloc] init]; + _isClassMethodStrategy = isClassMethod; + self.selector = initializer; + } + return self; +} + +- (id)init +{ + return [self initWithSelector:@selector(init) isClassMethod:NO]; +} + + + +/* ========================================================== Interface Methods ========================================================= */ + + +- (void)injectParameterNamed:(NSString*)name withReference:(NSString*)reference +{ + [self injectParameterAtIndex:[self indexOfParameter:name] withReference:reference]; +} + + +- (void)injectParameterAtIndex:(NSUInteger)index withReference:(NSString*)reference +{ + if (index != NSUIntegerMax && index < [_parameterNames count]) + { + [_injectedParameters addObject:[[TyphoonParameterInjectedByReference alloc] initWithParameterIndex:index reference:reference]]; + } +} + +- (void)injectParameterNamed:(NSString*)name withValueAsText:(NSString*)text requiredTypeOrNil:(id)classOrProtocol +{ + [self injectParameterAtIndex:[self indexOfParameter:name] withValueAsText:text requiredTypeOrNil:classOrProtocol]; +} + +- (void)injectParameterAtIndex:(NSUInteger)index withValueAsText:(NSString*)text requiredTypeOrNil:(id)requiredClass +{ + if (index != NSUIntegerMax && index < [_parameterNames count]) + { + TyphoonParameterInjectedByValue* parameterInjectedByValue = + [[TyphoonParameterInjectedByValue alloc] initWithIndex:index value:text requiredTypeOrNil:requiredClass]; + [parameterInjectedByValue setInitializer:self]; + [_injectedParameters addObject:parameterInjectedByValue]; + } +} + +/* ====================================================================================================================================== */ +- (void)injectParameterNamed:(NSString*)name withDefinition:(TyphoonDefinition*)definition; +{ + [self injectParameterNamed:name withReference:definition.key]; +} + +- (void)injectWithDefinition:(TyphoonDefinition*)definition; +{ + [self injectParameterAtIndex:[_injectedParameters count] withDefinition:definition]; +} + +- (void)injectWithText:(NSString*)text +{ + [self injectWithText:text requiredTypeOrNil:nil]; +} + +- (void)injectWithText:(NSString*)text requiredTypeOrNil:(id)requiredTypeOrNil +{ + [self injectParameterAtIndex:[_injectedParameters count] withValueAsText:text requiredTypeOrNil:requiredTypeOrNil]; +} + +- (void)injectParameterAtIndex:(NSUInteger)index withValue:(id)value +{ + if (index != NSUIntegerMax && index < [_parameterNames count]) + { + [_injectedParameters addObject:[[TyphoonParameterInjectedByRawValue alloc] initWithParameterIndex:index value:value]]; + } +} + +- (void)injectParameterNamed:(NSString*)name withValue:(id)value +{ + [self injectParameterAtIndex:[self indexOfParameter:name] withValue:value]; +} + +- (void)injectParameterWithValue:(id)value +{ + [self injectParameterAtIndex:[_injectedParameters count] withValue:value]; +} + +/* ====================================================================================================================================== */ +#pragma mark - Block assembly + +- (void)injectParameterAtIndex:(NSUInteger)index1 withDefinition:(TyphoonDefinition*)definition +{ + [self injectParameterAtIndex:index1 withReference:definition.key]; +} + + +- (void)setSelector:(SEL)selector +{ + _selector = selector; + _parameterNames = [self parameterNamesForSelector:_selector]; +} + +/* ============================================================ Utility Methods ========================================================= */ +- (void)dealloc +{ + for (id parameter in _injectedParameters) + { + //Null out the __unsafe_unretained pointer back to self. + [parameter setInitializer:nil]; + } +} + +/* ============================================================ Private Methods ========================================================= */ +- (int)indexOfParameter:(NSString*)name +{ + int parameterIndex = NSUIntegerMax; + for (int i = 0; i < [_parameterNames count]; i++) + { + NSString* parameterName = [_parameterNames objectAtIndex:i]; + if ([name isEqualToString:parameterName]) + { + parameterIndex = i; + break; + } + } + return parameterIndex; +} + + + +@end \ No newline at end of file diff --git a/Tests/Pods/Typhoon/Source/Component/Initializer/TyphoonInjectedParameter.h b/Tests/Pods/Typhoon/Source/Component/Initializer/TyphoonInjectedParameter.h new file mode 100644 index 000000000..5853b817f --- /dev/null +++ b/Tests/Pods/Typhoon/Source/Component/Initializer/TyphoonInjectedParameter.h @@ -0,0 +1,32 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// JASPER BLUES +// Copyright 2012 - 2013 Jasper Blues +// All Rights Reserved. +// +// NOTICE: Jasper Blues permits you to use, modify, and distribute this file +// in accordance with the terms of the license agreement accompanying it. +// +//////////////////////////////////////////////////////////////////////////////// + + + +#import +@class TyphoonInitializer; + +typedef enum +{ + TyphoonParameterInjectedByReferenceType, + TyphoonParameterInjectedByValueType, + TyphoonParameterInjectedByRawValueType +} TyphoonParameterInjectionType; + +@protocol TyphoonInjectedParameter + +- (NSUInteger)index; + +- (TyphoonParameterInjectionType)type; + +- (void)setInitializer:(TyphoonInitializer*)initializer; + +@end \ No newline at end of file diff --git a/Tests/Pods/Typhoon/Source/Component/Initializer/TyphoonParameterInjectedByRawValue.h b/Tests/Pods/Typhoon/Source/Component/Initializer/TyphoonParameterInjectedByRawValue.h new file mode 100644 index 000000000..c539dee32 --- /dev/null +++ b/Tests/Pods/Typhoon/Source/Component/Initializer/TyphoonParameterInjectedByRawValue.h @@ -0,0 +1,21 @@ +// +// TyphoonParameterInjectedByRowValue.h +// Typhoon +// +// Created by Иван Ушаков on 23.05.13. +// Copyright (c) 2013 Jasper Blues. All rights reserved. +// + +#import +#import "TyphoonInjectedParameter.h" + +@interface TyphoonParameterInjectedByRawValue : NSObject + +@property(nonatomic, readonly) NSUInteger index; +@property(nonatomic, readonly) TyphoonParameterInjectionType type; +@property(nonatomic, strong, readonly) id value; + +- (id)initWithParameterIndex:(NSUInteger)index value:(id)value; + + +@end diff --git a/Tests/Pods/Typhoon/Source/Component/Initializer/TyphoonParameterInjectedByRawValue.m b/Tests/Pods/Typhoon/Source/Component/Initializer/TyphoonParameterInjectedByRawValue.m new file mode 100644 index 000000000..368d71447 --- /dev/null +++ b/Tests/Pods/Typhoon/Source/Component/Initializer/TyphoonParameterInjectedByRawValue.m @@ -0,0 +1,33 @@ +// +// TyphoonParameterInjectedByRowValue.m +// Typhoon +// +// Created by Иван Ушаков on 23.05.13. +// Copyright (c) 2013 Jasper Blues. All rights reserved. +// + +#import "TyphoonParameterInjectedByRawValue.h" + +@implementation TyphoonParameterInjectedByRawValue + +- (id)initWithParameterIndex:(NSUInteger)index value:(id)value +{ + self = [super init]; + if (self) { + _index = index; + _value = value; + } + return self; +} + +- (TyphoonParameterInjectionType)type +{ + return TyphoonParameterInjectedByRawValueType; +} + +- (void)setInitializer:(TyphoonInitializer*)initializer +{ + //Do nothing. +} + +@end diff --git a/Tests/Pods/Typhoon/Source/Component/Initializer/TyphoonParameterInjectedByReference.h b/Tests/Pods/Typhoon/Source/Component/Initializer/TyphoonParameterInjectedByReference.h new file mode 100644 index 000000000..98230ec00 --- /dev/null +++ b/Tests/Pods/Typhoon/Source/Component/Initializer/TyphoonParameterInjectedByReference.h @@ -0,0 +1,28 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// JASPER BLUES +// Copyright 2012 - 2013 Jasper Blues +// All Rights Reserved. +// +// NOTICE: Jasper Blues permits you to use, modify, and distribute this file +// in accordance with the terms of the license agreement accompanying it. +// +//////////////////////////////////////////////////////////////////////////////// + + + + +#import +#import "TyphoonInjectedParameter.h" + + +@interface TyphoonParameterInjectedByReference : NSObject + +@property (nonatomic, readonly) NSUInteger index; +@property (nonatomic, readonly) TyphoonParameterInjectionType type; +@property (nonatomic, strong, readonly) NSString* reference; + +- (id)initWithParameterIndex:(NSUInteger)parameterIndex reference:(NSString*)reference; + + +@end \ No newline at end of file diff --git a/Tests/Pods/Typhoon/Source/Component/Initializer/TyphoonParameterInjectedByReference.m b/Tests/Pods/Typhoon/Source/Component/Initializer/TyphoonParameterInjectedByReference.m new file mode 100644 index 000000000..18e0a994f --- /dev/null +++ b/Tests/Pods/Typhoon/Source/Component/Initializer/TyphoonParameterInjectedByReference.m @@ -0,0 +1,43 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// JASPER BLUES +// Copyright 2012 - 2013 Jasper Blues +// All Rights Reserved. +// +// NOTICE: Jasper Blues permits you to use, modify, and distribute this file +// in accordance with the terms of the license agreement accompanying it. +// +//////////////////////////////////////////////////////////////////////////////// + + + +#import "TyphoonParameterInjectedByReference.h" +#import "TyphoonInitializer.h" + + +@implementation TyphoonParameterInjectedByReference + +/* ============================================================ Initializers ============================================================ */ +- (id)initWithParameterIndex:(NSUInteger)parameterIndex reference:(NSString*)reference +{ + self = [super init]; + if (self) + { + _index = parameterIndex; + _reference = reference; + } + return self; +} + +/* =========================================================== Protocol Methods ========================================================= */ +- (TyphoonParameterInjectionType)type +{ + return TyphoonParameterInjectedByReferenceType; +} + +- (void)setInitializer:(TyphoonInitializer*)initializer +{ + //Do nothing. +} + +@end \ No newline at end of file diff --git a/Tests/Pods/Typhoon/Source/Component/Initializer/TyphoonParameterInjectedByValue.h b/Tests/Pods/Typhoon/Source/Component/Initializer/TyphoonParameterInjectedByValue.h new file mode 100644 index 000000000..ef6965dc7 --- /dev/null +++ b/Tests/Pods/Typhoon/Source/Component/Initializer/TyphoonParameterInjectedByValue.h @@ -0,0 +1,40 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// JASPER BLUES +// Copyright 2012 - 2013 Jasper Blues +// All Rights Reserved. +// +// NOTICE: Jasper Blues permits you to use, modify, and distribute this file +// in accordance with the terms of the license agreement accompanying it. +// +//////////////////////////////////////////////////////////////////////////////// + + + + +#import +#import "TyphoonInjectedParameter.h" + +@class TyphoonTypeDescriptor; + + +@interface TyphoonParameterInjectedByValue : NSObject +{ + __unsafe_unretained TyphoonInitializer* _initializer; +} + +@property(nonatomic, readonly) NSUInteger index; +@property(nonatomic, readonly) TyphoonParameterInjectionType type; +@property(nonatomic, strong) NSString* textValue; +@property(nonatomic, strong, readonly) Class requiredType; + +- (id)initWithIndex:(NSUInteger)index value:(NSString*)value requiredTypeOrNil:(Class)requiredTypeOrNil; + +/** +* If the parameter is a primitive type, resolves the type descriptor. Throws an exception if either: +* - requiredType is set +* - The parameter is an object type. (If the parameter is an object type, classOrProtocol must be set explicitly). +*/ +- (TyphoonTypeDescriptor*)resolveTypeWith:(id)classOrInstance; + +@end \ No newline at end of file diff --git a/Tests/Pods/Typhoon/Source/Component/Initializer/TyphoonParameterInjectedByValue.m b/Tests/Pods/Typhoon/Source/Component/Initializer/TyphoonParameterInjectedByValue.m new file mode 100644 index 000000000..f4f41c351 --- /dev/null +++ b/Tests/Pods/Typhoon/Source/Component/Initializer/TyphoonParameterInjectedByValue.m @@ -0,0 +1,78 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// JASPER BLUES +// Copyright 2012 - 2013 Jasper Blues +// All Rights Reserved. +// +// NOTICE: Jasper Blues permits you to use, modify, and distribute this file +// in accordance with the terms of the license agreement accompanying it. +// +//////////////////////////////////////////////////////////////////////////////// + + +#import +#import "TyphoonParameterInjectedByValue.h" +#import "TyphoonInitializer.h" +#import "TyphoonTypeDescriptor.h" +#import "TyphoonIntrospectionUtils.h" + + +@implementation TyphoonParameterInjectedByValue + +/* ============================================================ Initializers ============================================================ */ +- (id)initWithIndex:(NSUInteger)index value:(NSString*)value requiredTypeOrNil:(Class)requiredTypeOrNil +{ + self = [super init]; + if (self) + { + _index = index; + _textValue = value; + _requiredType = requiredTypeOrNil; + } + return self; +} + +/* ========================================================== Interface Methods ========================================================= */ +- (TyphoonTypeDescriptor*)resolveTypeWith:(id)classOrInstance +{ + if (_requiredType) + { + return [TyphoonTypeDescriptor descriptorWithClassOrProtocol:_requiredType]; + } + else + { + BOOL isClass = class_isMetaClass(object_getClass(classOrInstance)); + Class clazz; + if (isClass) + { + clazz = classOrInstance; + } + else + { + clazz = [classOrInstance class]; + } + NSArray* typeCodes = [TyphoonIntrospectionUtils typeCodesForSelector:_initializer.selector ofClass:clazz isClassMethod:isClass]; + + if ([[typeCodes objectAtIndex:_index] isEqualToString:@"@"]) + { + [NSException raise:NSInvalidArgumentException + format:@"Unless the type is primitive (int, BOOL, etc), initializer injection requires the required class to be specified. Eg: "]; + } + return [TyphoonTypeDescriptor descriptorWithTypeCode:[typeCodes objectAtIndex:_index]]; + } +} + + +/* =========================================================== Protocol Methods ========================================================= */ +- (TyphoonParameterInjectionType)type +{ + return TyphoonParameterInjectedByValueType; +} + +- (void)setInitializer:(TyphoonInitializer*)initializer +{ + _initializer = initializer; +} + + +@end \ No newline at end of file diff --git a/Tests/Pods/Typhoon/Source/Component/Properties/Collection/TyphoonByReferenceCollectionValue.h b/Tests/Pods/Typhoon/Source/Component/Properties/Collection/TyphoonByReferenceCollectionValue.h new file mode 100644 index 000000000..f393991ff --- /dev/null +++ b/Tests/Pods/Typhoon/Source/Component/Properties/Collection/TyphoonByReferenceCollectionValue.h @@ -0,0 +1,24 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// JASPER BLUES +// Copyright 2013 Jasper Blues +// All Rights Reserved. +// +// NOTICE: Jasper Blues permits you to use, modify, and distribute this file +// in accordance with the terms of the license agreement accompanying it. +// +//////////////////////////////////////////////////////////////////////////////// + + + +#import +#import "TyphoonCollectionValue.h" + +@interface TyphoonByReferenceCollectionValue : NSObject + +@property (nonatomic, strong, readonly) NSString* componentName; + +- (id)initWithComponentName:(NSString*)componentName; + + +@end \ No newline at end of file diff --git a/Tests/Pods/Typhoon/Source/Component/Properties/Collection/TyphoonByReferenceCollectionValue.m b/Tests/Pods/Typhoon/Source/Component/Properties/Collection/TyphoonByReferenceCollectionValue.m new file mode 100644 index 000000000..a19ccb6d5 --- /dev/null +++ b/Tests/Pods/Typhoon/Source/Component/Properties/Collection/TyphoonByReferenceCollectionValue.m @@ -0,0 +1,35 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// JASPER BLUES +// Copyright 2013 Jasper Blues +// All Rights Reserved. +// +// NOTICE: Jasper Blues permits you to use, modify, and distribute this file +// in accordance with the terms of the license agreement accompanying it. +// +//////////////////////////////////////////////////////////////////////////////// + + +#import "TyphoonByReferenceCollectionValue.h" + + +@implementation TyphoonByReferenceCollectionValue + +/* ============================================================ Initializers ============================================================ */ +- (id)initWithComponentName:(NSString*)componentName +{ + self = [super init]; + if (self) + { + _componentName = componentName; + } + return self; +} + + +- (TyphoonCollectionValueType)type +{ + return TyphoonCollectionValueTypeByReference; +} + +@end \ No newline at end of file diff --git a/Tests/Pods/Typhoon/Source/Component/Properties/Collection/TyphoonCollectionValue.h b/Tests/Pods/Typhoon/Source/Component/Properties/Collection/TyphoonCollectionValue.h new file mode 100644 index 000000000..f5436bd46 --- /dev/null +++ b/Tests/Pods/Typhoon/Source/Component/Properties/Collection/TyphoonCollectionValue.h @@ -0,0 +1,24 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// INFRAXIS +// Copyright 2013 Infraxis +// All Rights Reserved. +// +// NOTICE: Infraxis permits you to use, modify, and distribute this file +// in accordance with the terms of the license agreement accompanying it. +// +//////////////////////////////////////////////////////////////////////////////// + +#import + +typedef enum +{ + TyphoonCollectionValueTypeByReference, + TyphoonCollectionValueTypeConvertedText +} TyphoonCollectionValueType; + +@protocol TyphoonCollectionValue + +- (TyphoonCollectionValueType)type; + +@end \ No newline at end of file diff --git a/Tests/Pods/Typhoon/Source/Component/Properties/Collection/TyphoonPropertyInjectedAsCollection.h b/Tests/Pods/Typhoon/Source/Component/Properties/Collection/TyphoonPropertyInjectedAsCollection.h new file mode 100644 index 000000000..c89e1e32e --- /dev/null +++ b/Tests/Pods/Typhoon/Source/Component/Properties/Collection/TyphoonPropertyInjectedAsCollection.h @@ -0,0 +1,56 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// JASPER BLUES +// Copyright 2013 Jasper Blues +// All Rights Reserved. +// +// NOTICE: Jasper Blues permits you to use, modify, and distribute this file +// in accordance with the terms of the license agreement accompanying it. +// +//////////////////////////////////////////////////////////////////////////////// + + +#import +#import "TyphoonInjectedProperty.h" + +@class TyphoonDefinition; + +typedef enum +{ + TyphoonCollectionTypeNSArray, + TyphoonCollectionTypeNSMutableArray, + TyphoonCollectionTypeNSSet, + TyphoonCollectionTypeNSMutableSet, + TyphoonCollectionTypeNSCountedSet +} TyphoonCollectionType; + +/** +* Represents a collection (NSArray, NSSet, c-style array) of items injected by reference, value or type. +*/ +@interface TyphoonPropertyInjectedAsCollection : NSObject +{ + NSString* _name; + NSMutableArray* _values; +} + +@property(nonatomic, strong, readonly) NSString* name; + +- (id)initWithName:(NSString*)name; + +- (void)addItemWithText:(NSString*)text requiredType:(Class)requiredType; + +- (void)addItemWithComponentName:(NSString*)componentName; + +- (void)addItemWithDefinition:(TyphoonDefinition*)definition; + +- (NSArray*)values; + +/** +* Returns the collection type for the named property on the parameter class. Raises an exception if the property is neither an NSSet nor +* an NSArray. +*/ +- (TyphoonCollectionType)resolveCollectionTypeWith:(id)instance; + + + +@end \ No newline at end of file diff --git a/Tests/Pods/Typhoon/Source/Component/Properties/Collection/TyphoonPropertyInjectedAsCollection.m b/Tests/Pods/Typhoon/Source/Component/Properties/Collection/TyphoonPropertyInjectedAsCollection.m new file mode 100644 index 000000000..77ee22160 --- /dev/null +++ b/Tests/Pods/Typhoon/Source/Component/Properties/Collection/TyphoonPropertyInjectedAsCollection.m @@ -0,0 +1,117 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// JASPER BLUES +// Copyright 2013 Jasper Blues +// All Rights Reserved. +// +// NOTICE: Jasper Blues permits you to use, modify, and distribute this file +// in accordance with the terms of the license agreement accompanying it. +// +//////////////////////////////////////////////////////////////////////////////// + + +#import "TyphoonPropertyInjectedAsCollection.h" +#import "TyphoonTypeDescriptor.h" +#import "TyphoonIntrospectionUtils.h" +#import "TyphoonDefinition.h" +#import "TyphoonTypeConvertedCollectionValue.h" +#import "TyphoonByReferenceCollectionValue.h" + + +@implementation TyphoonPropertyInjectedAsCollection + + +/* ============================================================ Initializers ============================================================ */ +- (id)initWithName:(NSString*)name +{ + self = [super init]; + if (self) + { + _name = name; + _values = [[NSMutableArray alloc] init]; + } + return self; +} + + +/* ========================================================== Interface Methods ========================================================= */ +- (void)addItemWithText:(NSString*)text requiredType:(Class)requiredType +{ + [_values addObject:[[TyphoonTypeConvertedCollectionValue alloc] initWithTextValue:text requiredType:requiredType]]; +} + +- (void)addItemWithComponentName:(NSString*)componentName +{ + [_values addObject:[[TyphoonByReferenceCollectionValue alloc] initWithComponentName:componentName]]; +} + +- (void)addItemWithDefinition:(TyphoonDefinition*)definition +{ + [_values addObject:[[TyphoonByReferenceCollectionValue alloc] initWithComponentName:definition.key]]; +} + +- (TyphoonCollectionType)resolveCollectionTypeWith:(id)instance; +{ + TyphoonTypeDescriptor* descriptor = [TyphoonIntrospectionUtils typeForPropertyWithName:_name inClass:[instance class]]; + Class describedClass = (Class) [descriptor classOrProtocol]; + if (describedClass == nil) + { + [NSException raise:NSInvalidArgumentException format:@"Property named '%@' does not exist on class '%@'.", _name, + NSStringFromClass([instance class])]; + } + if ([describedClass isSubclassOfClass:[NSMutableArray class]]) + { + return TyphoonCollectionTypeNSMutableArray; + } + else if ([describedClass isSubclassOfClass:[NSArray class]]) + { + return TyphoonCollectionTypeNSArray; + } + else if ([describedClass isSubclassOfClass:[NSCountedSet class]]) + { + return TyphoonCollectionTypeNSCountedSet; + } + else if ([describedClass isSubclassOfClass:[NSMutableSet class]]) + { + return TyphoonCollectionTypeNSMutableSet; + } + else if ([describedClass isSubclassOfClass:[NSSet class]]) + { + return TyphoonCollectionTypeNSSet; + } + + [NSException raise:NSInvalidArgumentException format:@"Property named '%@' on '%@' is neither an NSSet nor NSArray.", _name, + NSStringFromClass(describedClass)]; + return nil; +} + +- (NSArray*)values +{ + return [_values copy]; +} + +/* =========================================================== Protocol Methods ========================================================= */ +#pragma mark - + +- (NSString*)name +{ + return _name; +} + +- (TyphoonPropertyInjectionType)injectionType +{ + return TyphoonPropertyInjectionAsCollection; +} + +/* ============================================================ Utility Methods ========================================================= */ +- (NSString*)description +{ + NSMutableString* description = [NSMutableString stringWithFormat:@"<%@: ", NSStringFromClass([self class])]; + [description appendFormat:@"self.name=%@", self.name]; + [description appendFormat:@", _values=%@", _values]; + [description appendString:@">"]; + return description; +} + + +@end \ No newline at end of file diff --git a/Tests/Pods/Typhoon/Source/Component/Properties/Collection/TyphoonTypeConvertedCollectionValue.h b/Tests/Pods/Typhoon/Source/Component/Properties/Collection/TyphoonTypeConvertedCollectionValue.h new file mode 100644 index 000000000..1baebb43a --- /dev/null +++ b/Tests/Pods/Typhoon/Source/Component/Properties/Collection/TyphoonTypeConvertedCollectionValue.h @@ -0,0 +1,24 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// INFRAXIS +// Copyright 2013 Infraxis +// All Rights Reserved. +// +// NOTICE: Infraxis permits you to use, modify, and distribute this file +// in accordance with the terms of the license agreement accompanying it. +// +//////////////////////////////////////////////////////////////////////////////// + +#import +#import "TyphoonCollectionValue.h" + + +@interface TyphoonTypeConvertedCollectionValue : NSObject + +@property (nonatomic, strong, readonly) NSString* textValue; +@property (nonatomic, strong, readonly) Class requiredType; + +- (id)initWithTextValue:(NSString*)textValue requiredType:(Class)requiredType; + + +@end \ No newline at end of file diff --git a/Tests/Pods/Typhoon/Source/Component/Properties/Collection/TyphoonTypeConvertedCollectionValue.m b/Tests/Pods/Typhoon/Source/Component/Properties/Collection/TyphoonTypeConvertedCollectionValue.m new file mode 100644 index 000000000..edcd532d3 --- /dev/null +++ b/Tests/Pods/Typhoon/Source/Component/Properties/Collection/TyphoonTypeConvertedCollectionValue.m @@ -0,0 +1,44 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// INFRAXIS +// Copyright 2013 Infraxis +// All Rights Reserved. +// +// NOTICE: Infraxis permits you to use, modify, and distribute this file +// in accordance with the terms of the license agreement accompanying it. +// +//////////////////////////////////////////////////////////////////////////////// + +#import "TyphoonTypeConvertedCollectionValue.h" + + +@implementation TyphoonTypeConvertedCollectionValue + +/* ============================================================ Initializers ============================================================ */ +- (id)initWithTextValue:(NSString*)textValue requiredType:(Class)requiredType +{ + self = [super init]; + if (self) + { + _textValue = textValue; + _requiredType = requiredType; + } + return self; +} + +- (TyphoonCollectionValueType)type +{ + return TyphoonCollectionValueTypeConvertedText; +} + +/* ============================================================ Utility Methods ========================================================= */ +- (NSString*)description +{ + NSMutableString* description = [NSMutableString stringWithFormat:@"<%@: ", NSStringFromClass([self class])]; + [description appendFormat:@"self.textValue=%@", self.textValue]; + [description appendFormat:@", self.requiredType=%@", self.requiredType]; + [description appendString:@">"]; + return description; +} + +@end \ No newline at end of file diff --git a/Tests/Pods/Typhoon/Source/Component/Properties/TyphoonInjectedProperty.h b/Tests/Pods/Typhoon/Source/Component/Properties/TyphoonInjectedProperty.h new file mode 100644 index 000000000..1c15e1bdf --- /dev/null +++ b/Tests/Pods/Typhoon/Source/Component/Properties/TyphoonInjectedProperty.h @@ -0,0 +1,32 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// JASPER BLUES +// Copyright 2012 - 2013 Jasper Blues +// All Rights Reserved. +// +// NOTICE: Jasper Blues permits you to use, modify, and distribute this file +// in accordance with the terms of the license agreement accompanying it. +// +//////////////////////////////////////////////////////////////////////////////// + + + + +#import +#import "TyphoonIntrospectiveNSObject.h" + +typedef enum +{ + TyphoonPropertyInjectionByReferenceType, + TyphoonPropertyInjectionByTypeType, + TyphoonPropertyInjectionByValueType, + TyphoonPropertyInjectionAsCollection +} TyphoonPropertyInjectionType; + +@protocol TyphoonInjectedProperty + +- (NSString*)name; + +- (TyphoonPropertyInjectionType)injectionType; + +@end \ No newline at end of file diff --git a/Tests/Pods/Typhoon/Source/Component/Properties/TyphoonPropertyInjectedByReference.h b/Tests/Pods/Typhoon/Source/Component/Properties/TyphoonPropertyInjectedByReference.h new file mode 100644 index 000000000..cf0139abc --- /dev/null +++ b/Tests/Pods/Typhoon/Source/Component/Properties/TyphoonPropertyInjectedByReference.h @@ -0,0 +1,26 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// JASPER BLUES +// Copyright 2012 - 2013 Jasper Blues +// All Rights Reserved. +// +// NOTICE: Jasper Blues permits you to use, modify, and distribute this file +// in accordance with the terms of the license agreement accompanying it. +// +//////////////////////////////////////////////////////////////////////////////// + + + +#import +#import "TyphoonInjectedProperty.h" + + +@interface TyphoonPropertyInjectedByReference : NSObject + +@property (nonatomic, strong, readonly) NSString* name; +@property (nonatomic, strong, readonly) NSString* reference; + +- (id)initWithName:(NSString*)name reference:(NSString*)reference; + + +@end \ No newline at end of file diff --git a/Tests/Pods/Typhoon/Source/Component/Properties/TyphoonPropertyInjectedByReference.m b/Tests/Pods/Typhoon/Source/Component/Properties/TyphoonPropertyInjectedByReference.m new file mode 100644 index 000000000..2ac4b1d44 --- /dev/null +++ b/Tests/Pods/Typhoon/Source/Component/Properties/TyphoonPropertyInjectedByReference.m @@ -0,0 +1,44 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// JASPER BLUES +// Copyright 2012 - 2013 Jasper Blues +// All Rights Reserved. +// +// NOTICE: Jasper Blues permits you to use, modify, and distribute this file +// in accordance with the terms of the license agreement accompanying it. +// +//////////////////////////////////////////////////////////////////////////////// + + + + +#import "TyphoonPropertyInjectedByReference.h" + + +@implementation TyphoonPropertyInjectedByReference +{ + +} + +/* ============================================================ Initializers ============================================================ */ +- (id)initWithName:(NSString*)name reference:(NSString*)reference +{ + self = [super init]; + if (self) + { + _name = name; + _reference = reference; + } + return self; +} + +/* =========================================================== Protocol Methods ========================================================= */ +- (TyphoonPropertyInjectionType)injectionType +{ + return TyphoonPropertyInjectionByReferenceType; +} + + + + +@end \ No newline at end of file diff --git a/Tests/Pods/Typhoon/Source/Component/Properties/TyphoonPropertyInjectedByType.h b/Tests/Pods/Typhoon/Source/Component/Properties/TyphoonPropertyInjectedByType.h new file mode 100644 index 000000000..9551022d8 --- /dev/null +++ b/Tests/Pods/Typhoon/Source/Component/Properties/TyphoonPropertyInjectedByType.h @@ -0,0 +1,28 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// JASPER BLUES +// Copyright 2012 - 2013 Jasper Blues +// All Rights Reserved. +// +// NOTICE: Jasper Blues permits you to use, modify, and distribute this file +// in accordance with the terms of the license agreement accompanying it. +// +//////////////////////////////////////////////////////////////////////////////// + + + + + +#import +#import "TyphoonInjectedProperty.h" + + +@interface TyphoonPropertyInjectedByType : NSObject + +@property (nonatomic, strong, readonly) NSString* name; +@property (nonatomic, readonly) TyphoonPropertyInjectionType type; + +- (id)initWithName:(NSString*)name; + + +@end \ No newline at end of file diff --git a/Tests/Pods/Typhoon/Source/Component/Properties/TyphoonPropertyInjectedByType.m b/Tests/Pods/Typhoon/Source/Component/Properties/TyphoonPropertyInjectedByType.m new file mode 100644 index 000000000..3391cd3f1 --- /dev/null +++ b/Tests/Pods/Typhoon/Source/Component/Properties/TyphoonPropertyInjectedByType.m @@ -0,0 +1,38 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// JASPER BLUES +// Copyright 2012 - 2013 Jasper Blues +// All Rights Reserved. +// +// NOTICE: Jasper Blues permits you to use, modify, and distribute this file +// in accordance with the terms of the license agreement accompanying it. +// +//////////////////////////////////////////////////////////////////////////////// + + + +#import "TyphoonPropertyInjectedByType.h" + + +@implementation TyphoonPropertyInjectedByType + + +/* ============================================================ Initializers ============================================================ */ +- (id)initWithName:(NSString*)name +{ + self = [super init]; + if (self) + { + _name = name; + } + return self; +} + +/* =========================================================== Protocol Methods ========================================================= */ +- (TyphoonPropertyInjectionType)injectionType +{ + return TyphoonPropertyInjectionByTypeType; +} + + +@end \ No newline at end of file diff --git a/Tests/Pods/Typhoon/Source/Component/Properties/TyphoonPropertyInjectedByValue.h b/Tests/Pods/Typhoon/Source/Component/Properties/TyphoonPropertyInjectedByValue.h new file mode 100644 index 000000000..e5bad910a --- /dev/null +++ b/Tests/Pods/Typhoon/Source/Component/Properties/TyphoonPropertyInjectedByValue.h @@ -0,0 +1,29 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// JASPER BLUES +// Copyright 2012 - 2013 Jasper Blues +// All Rights Reserved. +// +// NOTICE: Jasper Blues permits you to use, modify, and distribute this file +// in accordance with the terms of the license agreement accompanying it. +// +//////////////////////////////////////////////////////////////////////////////// + + +#import +#import "TyphoonInjectedProperty.h" + + +@interface TyphoonPropertyInjectedByValue : NSObject +{ + NSString* _textValue; +} + +@property (nonatomic, strong, readonly) NSString* name; +@property (nonatomic, readonly) TyphoonPropertyInjectionType type; +@property (nonatomic, strong, readonly) NSString* textValue; + +- (id)initWithName:(NSString*)name value:(NSString*)value; + + +@end \ No newline at end of file diff --git a/Tests/Pods/Typhoon/Source/Component/Properties/TyphoonPropertyInjectedByValue.m b/Tests/Pods/Typhoon/Source/Component/Properties/TyphoonPropertyInjectedByValue.m new file mode 100644 index 000000000..2fc2ab320 --- /dev/null +++ b/Tests/Pods/Typhoon/Source/Component/Properties/TyphoonPropertyInjectedByValue.m @@ -0,0 +1,42 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// JASPER BLUES +// Copyright 2012 - 2013 Jasper Blues +// All Rights Reserved. +// +// NOTICE: Jasper Blues permits you to use, modify, and distribute this file +// in accordance with the terms of the license agreement accompanying it. +// +//////////////////////////////////////////////////////////////////////////////// + + + + +#import "TyphoonPropertyInjectedByValue.h" + + +@implementation TyphoonPropertyInjectedByValue +{ + +} + +/* ============================================================ Initializers ============================================================ */ +- (id)initWithName:(NSString*)name value:(NSString*)value +{ + self = [super init]; + if (self) + { + _name = name; + _textValue = value; + } + return self; +} + +/* =========================================================== Protocol Methods ========================================================= */ +- (TyphoonPropertyInjectionType)injectionType +{ + return TyphoonPropertyInjectionByValueType; +} + + +@end \ No newline at end of file diff --git a/Tests/Pods/Typhoon/Source/Component/Properties/TyphoonPropertyInjectionDelegate.h b/Tests/Pods/Typhoon/Source/Component/Properties/TyphoonPropertyInjectionDelegate.h new file mode 100644 index 000000000..cfe3e0641 --- /dev/null +++ b/Tests/Pods/Typhoon/Source/Component/Properties/TyphoonPropertyInjectionDelegate.h @@ -0,0 +1,22 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// JASPER BLUES +// Copyright 2012 - 2013 Jasper Blues +// All Rights Reserved. +// +// NOTICE: Jasper Blues permits you to use, modify, and distribute this file +// in accordance with the terms of the license agreement accompanying it. +// +//////////////////////////////////////////////////////////////////////////////// + + + +#import + +@protocol TyphoonPropertyInjectionDelegate + +- (void)beforePropertiesSet; + +- (void)afterPropertiesSet; + +@end \ No newline at end of file diff --git a/Tests/Pods/Typhoon/Source/Component/TyphoonDefinition.h b/Tests/Pods/Typhoon/Source/Component/TyphoonDefinition.h new file mode 100644 index 000000000..2c7ee1a98 --- /dev/null +++ b/Tests/Pods/Typhoon/Source/Component/TyphoonDefinition.h @@ -0,0 +1,87 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// JASPER BLUES +// Copyright 2012 - 2013 Jasper Blues +// All Rights Reserved. +// +// NOTICE: Jasper Blues permits you to use, modify, and distribute this file +// in accordance with the terms of the license agreement accompanying it. +// +//////////////////////////////////////////////////////////////////////////////// + + +#import + +@class TyphoonInitializer; +@class TyphoonDefinition; +@protocol TyphoonInjectedProperty; +@class TyphoonPropertyInjectedAsCollection; + +typedef enum +{ + TyphoonScopeDefault, + TyphoonScopeSingleton +} TyphoonScope; + + +@interface TyphoonDefinition : NSObject +{ + NSMutableSet* _injectedProperties; + NSString* _factoryReference; +} + +@property(nonatomic, readonly) Class type; +@property(nonatomic, strong) NSString* key; +@property(nonatomic, strong) TyphoonInitializer* initializer; +@property(nonatomic) SEL beforePropertyInjection; +@property(nonatomic) SEL afterPropertyInjection; +@property(nonatomic, strong, readonly) NSSet* injectedProperties; +@property(nonatomic) TyphoonScope scope; +@property(nonatomic, strong) TyphoonDefinition* factory; + + +/* ====================================================================================================================================== */ +#pragma mark Factory methods + ++ (TyphoonDefinition*)withClass:(Class)clazz; + ++ (TyphoonDefinition*)withClass:(Class)clazz key:(NSString*)key; + ++ (TyphoonDefinition*)withClass:(Class)clazz initialization:(void (^)(TyphoonInitializer*))initialization + properties:(void (^)(TyphoonDefinition*))properties; + ++ (TyphoonDefinition*)withClass:(Class)clazz initialization:(void (^)(TyphoonInitializer*))initialization; + ++ (TyphoonDefinition*)withClass:(Class)clazz properties:(void (^)(TyphoonDefinition*))properties; + +/* ====================================================================================================================================== */ +#pragma mark Initializers + +- (id)initWithClass:(Class)clazz key:(NSString*)key; + +- (id)initWithClass:(Class)clazz key:(NSString*)key factoryComponent:(NSString*)factoryComponent; + +/* ====================================================================================================================================== */ +#pragma mark Injection + +/** +* Injects property with a component from the container that matches the type (class or protocol) of the property. +*/ +- (void)injectProperty:(SEL)withSelector; + +/** +* Injects property with the given definition. +*/ +- (void)injectProperty:(SEL)selector withDefinition:(TyphoonDefinition*)definition; + +/** +* Injects property with the value represented by the given text. The text will be used to create an instance of a class matching the +* required type. +* +* @see TyphoonTypeConverterRegistry for details on declaring your own type converters. +*/ +- (void)injectProperty:(SEL)withSelector withValueAsText:(NSString*)textValue; + +- (void)injectProperty:(SEL)withSelector asCollection:(void (^)(TyphoonPropertyInjectedAsCollection*))collectionValues; + +@end \ No newline at end of file diff --git a/Tests/Pods/Typhoon/Source/Component/TyphoonDefinition.m b/Tests/Pods/Typhoon/Source/Component/TyphoonDefinition.m new file mode 100644 index 000000000..746b3c353 --- /dev/null +++ b/Tests/Pods/Typhoon/Source/Component/TyphoonDefinition.m @@ -0,0 +1,180 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// JASPER BLUES +// Copyright 2012 - 2013 Jasper Blues +// All Rights Reserved. +// +// NOTICE: Jasper Blues permits you to use, modify, and distribute this file +// in accordance with the terms of the license agreement accompanying it. +// +//////////////////////////////////////////////////////////////////////////////// + + +#import "TyphoonInitializer.h" +#import "TyphoonDefinition.h" +#import "TyphoonPropertyInjectedByType.h" +#import "TyphoonPropertyInjectedByValue.h" +#import "TyphoonInitializer+InstanceBuilder.h" +#import "TyphoonDefinition+InstanceBuilder.h" +#import "TyphoonPropertyInjectedAsCollection.h" + + +@implementation TyphoonDefinition + +/* ====================================================================================================================================== */ +#pragma mark - Factory methods + ++ (TyphoonDefinition*)withClass:(Class)clazz +{ + return [[TyphoonDefinition alloc] initWithClass:clazz key:nil]; +} + ++ (TyphoonDefinition*)withClass:(Class)clazz key:(NSString*)key +{ + return [[TyphoonDefinition alloc] initWithClass:clazz key:key]; +} + ++ (TyphoonDefinition*)withClass:(Class)clazz initialization:(void (^)(TyphoonInitializer*))initialization +{ + return [TyphoonDefinition withClass:clazz key:nil initialization:initialization properties:nil]; +} + ++ (TyphoonDefinition*)withClass:(Class)clazz properties:(void (^)(TyphoonDefinition*))properties +{ + return [TyphoonDefinition withClass:clazz key:nil initialization:nil properties:properties]; +} + ++ (TyphoonDefinition*)withClass:(Class)clazz initialization:(void (^)(TyphoonInitializer*))initialization + properties:(void (^)(TyphoonDefinition*))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* definition = [[TyphoonDefinition alloc] initWithClass:clazz key:key]; + if (initialization) + { + TyphoonInitializer* componentInitializer = [[TyphoonInitializer alloc] init]; + definition.initializer = componentInitializer; + __unsafe_unretained TyphoonInitializer* weakInitializer = componentInitializer; + initialization(weakInitializer); + } + if (properties) + { + __unsafe_unretained TyphoonDefinition* weakDefinition = definition; + properties(weakDefinition); + } + return definition; +} + ++ (TyphoonDefinition*)withClass:(Class)clazz key:(NSString*)key initialization:(void (^)(TyphoonInitializer*))initialization +{ + return [TyphoonDefinition withClass:clazz key:key initialization:initialization properties:nil]; +} + ++ (TyphoonDefinition*)withClass:(Class)clazz key:(NSString*)key properties:(void (^)(TyphoonDefinition*))properties +{ + return [TyphoonDefinition withClass:clazz key:key initialization:nil properties:properties]; +} + + +/* ============================================================ Initializers ============================================================ */ +- (id)initWithClass:(Class)clazz key:(NSString*)key factoryComponent:(NSString*)factoryComponent +{ + self = [super init]; + if (self) + { + _type = clazz; + _key = [key copy]; + _factoryReference = [factoryComponent copy]; + _injectedProperties = [[NSMutableSet alloc] init]; + [self validateRequiredParametersAreSet]; + } + return self; +} + +- (id)initWithClass:(Class)clazz key:(NSString*)key +{ + return [self initWithClass:clazz key:key factoryComponent:nil]; +} + +- (id)init +{ + return [self initWithClass:nil key:nil factoryComponent:nil]; +} + + +/* ========================================================== Interface Methods ========================================================= */ +- (void)injectProperty:(SEL)selector +{ + [_injectedProperties addObject:[[TyphoonPropertyInjectedByType alloc] initWithName:NSStringFromSelector(selector)]]; +} + +- (void)injectProperty:(SEL)selector withValueAsText:(NSString*)textValue +{ + [_injectedProperties addObject:[[TyphoonPropertyInjectedByValue alloc] initWithName:NSStringFromSelector(selector) value:textValue]]; +} + +- (void)injectProperty:(SEL)selector withDefinition:(TyphoonDefinition*)definition +{ + [self injectProperty:selector withReference:definition.key]; +} + +- (void)injectProperty:(SEL)withSelector asCollection:(void (^)(TyphoonPropertyInjectedAsCollection*))collectionValues; +{ + TyphoonPropertyInjectedAsCollection* propertyInjectedAsCollection = + [[TyphoonPropertyInjectedAsCollection alloc] initWithName:NSStringFromSelector(withSelector)]; + + if (collectionValues) + { + __unsafe_unretained TyphoonPropertyInjectedAsCollection* weakPropertyInjectedAsCollection = propertyInjectedAsCollection; + collectionValues(weakPropertyInjectedAsCollection); + } + [_injectedProperties addObject:propertyInjectedAsCollection]; +} + + +- (NSSet*)injectedProperties +{ + return [_injectedProperties copy]; +} + +- (void)setInitializer:(TyphoonInitializer*)initializer +{ + _initializer = initializer; + [_initializer setComponentDefinition:self]; +} + +- (void)setFactory:(TyphoonDefinition*)factory +{ + _factory = factory; + [self setFactoryReference:_factory.key]; +} + + +/* ============================================================ Utility Methods ========================================================= */ +- (NSString*)description +{ + return [NSString stringWithFormat:@"Definition: class='%@'", NSStringFromClass(_type)]; +} + +- (void)dealloc +{ + //Null out the __unsafe_unretained property on initializer + [_initializer setComponentDefinition:nil]; +} + +/* ============================================================ Private Methods ========================================================= */ +- (void)validateRequiredParametersAreSet +{ + if (_type == nil) + { + [NSException raise:NSInvalidArgumentException format:@"Property 'clazz' is required."]; + } +} + + +@end \ No newline at end of file diff --git a/Tests/Pods/Typhoon/Source/Factory/Block/TyphoonAssembly.h b/Tests/Pods/Typhoon/Source/Factory/Block/TyphoonAssembly.h new file mode 100644 index 000000000..ed935e30f --- /dev/null +++ b/Tests/Pods/Typhoon/Source/Factory/Block/TyphoonAssembly.h @@ -0,0 +1,32 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// AppsQuick.ly +// Copyright 2013 AppsQuick.ly +// All Rights Reserved. +// +// NOTICE: AppsQuick.ly permits you to use, modify, and distribute this file +// in accordance with the terms of the license agreement accompanying it. +// +//////////////////////////////////////////////////////////////////////////////// + + + +#import + + +static NSString* const TYPHOON_BEFORE_ADVICE_SUFFIX = @"__typhoonBeforeAdvice"; + +@interface TyphoonAssembly : NSObject +{ + NSMutableDictionary* _cachedDefinitions; +} + ++ (instancetype)assembly; + +/** +* Returns the [TyphoonComponentFactory defaultFactory], with components exposed using an assembly interface. +*/ ++ (instancetype)defaultAssembly; + + +@end \ No newline at end of file diff --git a/Tests/Pods/Typhoon/Source/Factory/Block/TyphoonAssembly.m b/Tests/Pods/Typhoon/Source/Factory/Block/TyphoonAssembly.m new file mode 100644 index 000000000..9be288ba6 --- /dev/null +++ b/Tests/Pods/Typhoon/Source/Factory/Block/TyphoonAssembly.m @@ -0,0 +1,126 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// AppsQuick.ly +// Copyright 2013 AppsQuick.ly +// All Rights Reserved. +// +// NOTICE: AppsQuick.ly permits you to use, modify, and distribute this file +// in accordance with the terms of the license agreement accompanying it. +// +//////////////////////////////////////////////////////////////////////////////// + + + +#import +#import +#import "TyphoonAssembly.h" +#import "TyphoonJRSwizzle.h" +#import "TyphoonDefinition.h" +#import "TyphoonComponentFactory.h" + +static NSMutableArray* resolveStack; + +@implementation TyphoonAssembly + + +/* =========================================================== Class Methods ============================================================ */ ++ (TyphoonAssembly*)assembly +{ + return [[[self class] alloc] init]; +} + ++ (BOOL)resolveInstanceMethod:(SEL)sel +{ + if ([TyphoonAssembly selectorReserved:sel]) + { + return [super resolveInstanceMethod:sel]; + } + + NSString* name = NSStringFromSelector(sel); + if ([name hasSuffix:TYPHOON_BEFORE_ADVICE_SUFFIX]) + { + IMP imp = imp_implementationWithBlock((__bridge id) objc_unretainedPointer(^(id me) + { + NSString* key = [name stringByReplacingOccurrencesOfString:TYPHOON_BEFORE_ADVICE_SUFFIX withString:@""]; + TyphoonDefinition* cached = [[me cachedSelectors] objectForKey:key]; + if (cached == nil) + { + [resolveStack addObject:key]; + if ([resolveStack count] > 2) + { + NSString* bottom = [resolveStack objectAtIndex:0]; + NSString* top = [resolveStack objectAtIndex:[resolveStack count] - 1]; + if ([top isEqualToString:bottom]) + { + NSLog(@"Resolve stack: %@", resolveStack); + return [[TyphoonDefinition alloc] initWithClass:[NSString class] key:key]; +// [NSException raise:NSInternalInconsistencyException format:@"Circular dependency detected."]; + } + } + + [[self class] typhoon_swizzleMethod:sel withMethod:NSSelectorFromString(key) error:nil]; + cached = objc_msgSend(me, sel); + if (cached && [cached isKindOfClass:[TyphoonDefinition class]]) + { + TyphoonDefinition* definition = (TyphoonDefinition*) cached; + if ([definition.key length] == 0) + { + definition.key = key; + } + [[me cachedSelectors] setObject:definition forKey:key]; + } + [[self class] typhoon_swizzleMethod:NSSelectorFromString(key) withMethod:sel error:nil]; + } + [resolveStack removeAllObjects]; + return cached; + + })); + class_addMethod(self, sel, imp, "@"); + return YES; + } + return NO; +} + ++ (TyphoonAssembly*)defaultAssembly +{ + return (TyphoonAssembly*) [TyphoonComponentFactory defaultFactory]; +} + + ++ (BOOL)selectorReserved:(SEL)selector +{ + return selector == @selector(init) || selector == @selector(cachedSelectors) || selector == NSSelectorFromString(@".cxx_destruct") || + selector == @selector(defaultAssembly); +} + ++ (void)load +{ + [super load]; + resolveStack = [[NSMutableArray alloc] init]; +} + +/* ============================================================ Initializers ============================================================ */ +- (id)init +{ + self = [super init]; + if (self) + { + _cachedDefinitions = [[NSMutableDictionary alloc] init]; + } + return self; +} + +/* ============================================================ Utility Methods ========================================================= */ +- (void)dealloc +{ + NSLog(@"$$$$$$ %@ in dealloc!", [self class]); +} + +/* ============================================================ Private Methods ========================================================= */ +- (NSMutableDictionary*)cachedSelectors +{ + return _cachedDefinitions; +} + + +@end \ No newline at end of file diff --git a/Tests/Pods/Typhoon/Source/Factory/Block/TyphoonBlockComponentFactory.h b/Tests/Pods/Typhoon/Source/Factory/Block/TyphoonBlockComponentFactory.h new file mode 100644 index 000000000..ac82e03b2 --- /dev/null +++ b/Tests/Pods/Typhoon/Source/Factory/Block/TyphoonBlockComponentFactory.h @@ -0,0 +1,26 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// AppsQuick.ly +// Copyright 2013 AppsQuick.ly +// All Rights Reserved. +// +// NOTICE: AppsQuick.ly permits you to use, modify, and distribute this file +// in accordance with the terms of the license agreement accompanying it. +// +//////////////////////////////////////////////////////////////////////////////// + + + +#import +#import "TyphoonComponentFactory.h" + +@class TyphoonAssembly; + + +@interface TyphoonBlockComponentFactory : TyphoonComponentFactory + ++ (id)factoryWithAssembly:(TyphoonAssembly*)assembly; + +- (id)initWithAssembly:(TyphoonAssembly*)assembly; + +@end \ No newline at end of file diff --git a/Tests/Pods/Typhoon/Source/Factory/Block/TyphoonBlockComponentFactory.m b/Tests/Pods/Typhoon/Source/Factory/Block/TyphoonBlockComponentFactory.m new file mode 100644 index 000000000..65ea4882e --- /dev/null +++ b/Tests/Pods/Typhoon/Source/Factory/Block/TyphoonBlockComponentFactory.m @@ -0,0 +1,159 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// AppsQuick.ly +// Copyright 2013 AppsQuick.ly +// All Rights Reserved. +// +// NOTICE: AppsQuick.ly permits you to use, modify, and distribute this file +// in accordance with the terms of the license agreement accompanying it. +// +//////////////////////////////////////////////////////////////////////////////// + + + +#import +#import +#import "TyphoonBlockComponentFactory.h" +#import "TyphoonAssembly.h" +#import "TyphoonDefinition.h" +#import "TyphoonJRSwizzle.h" + +static NSMutableArray* swizzleRegistry; + +@interface TyphoonAssembly (BlockFactoryFriend) + ++ (BOOL)selectorReserved:(SEL)selector; + +- (NSMutableDictionary*)cachedSelectors; + +@end + +@implementation TyphoonBlockComponentFactory + +/* =========================================================== Class Methods ============================================================ */ ++ (BOOL)resolveInstanceMethod:(SEL)sel +{ + if ([super resolveInstanceMethod:sel] == NO) + { + IMP imp = imp_implementationWithBlock((__bridge id) objc_unretainedPointer(^(id me) + { + return [me componentForKey:NSStringFromSelector(sel)]; + })); + class_addMethod(self, sel, imp, "@"); + return YES; + } + return NO; +} + ++ (void)initialize +{ + [super initialize]; + @synchronized (self) + { + swizzleRegistry = [[NSMutableArray alloc] init]; + } +} + + ++ (id)factoryWithAssembly:(TyphoonAssembly*)assembly +{ + return [[[self class] alloc] initWithAssembly:assembly]; +} + +/* ============================================================ Initializers ============================================================ */ +- (id)initWithAssembly:(TyphoonAssembly*)assembly; +{ + NSLog(@"Building assembly: %@", NSStringFromClass([assembly class])); + if (![assembly isKindOfClass:[TyphoonAssembly class]]) + { + [NSException raise:NSInvalidArgumentException format:@"Class '%@' is not a sub-class of %@", NSStringFromClass([assembly class]), + NSStringFromClass([TyphoonAssembly class])]; + } + self = [super init]; + if (self) + { + [self applyBeforeAdviceToAssemblyMethods:assembly]; + NSArray* definitions = [self populateCache:assembly]; + for (TyphoonDefinition* definition in definitions) + { + [self register:definition]; + } + } + return self; +} + +/* ============================================================ Private Methods ========================================================= */ +- (NSArray*)populateCache:(TyphoonAssembly*)assembly +{ + @synchronized (self) + { + NSSet *definitionSelectors = [self obtainDefinitionSelectors:assembly]; + + [definitionSelectors enumerateObjectsUsingBlock:^(id obj, BOOL *stop) { + objc_msgSend(assembly, (SEL)[obj pointerValue]); + }]; + + NSMutableDictionary* dictionary = [assembly cachedSelectors]; + return [dictionary allValues]; + } +} + +- (NSSet *)obtainDefinitionSelectors:(TyphoonAssembly*)assembly +{ + NSMutableSet *definitionSelectors = [[NSMutableSet alloc] init]; + + Class currentClass = [assembly class]; + while (strcmp(class_getName(currentClass), "TyphoonAssembly") != 0) { + [definitionSelectors unionSet:[self obtainDefinitionSelectorsInAssemblyClass:currentClass]]; + currentClass = class_getSuperclass(currentClass); + } + + return definitionSelectors; +} + +- (NSSet *)obtainDefinitionSelectorsInAssemblyClass:(Class)class +{ + NSMutableSet *definitionSelectors = [[NSMutableSet alloc] init]; + + unsigned int methodCount; + Method* methodList = class_copyMethodList(class, &methodCount); + for (int i = 0; i < methodCount; i++) + { + Method method = methodList[i]; + // NSLog(@"Selector: %@", NSStringFromSelector(method_getName(method))); + + int argumentCount = method_getNumberOfArguments(method); + if (argumentCount == 2) + { + SEL methodSelector = method_getName(method); + if (![class selectorReserved:methodSelector]) + { + [definitionSelectors addObject:[NSValue valueWithPointer:methodSelector]]; + } + } + } + free(methodList); + + return definitionSelectors; +} + +- (void)applyBeforeAdviceToAssemblyMethods:(TyphoonAssembly*)assembly +{ + @synchronized (self) + { + if (![swizzleRegistry containsObject:[assembly class]]) + { + [swizzleRegistry addObject:[assembly class]]; + + NSSet *definitionSelectors = [self obtainDefinitionSelectors:assembly]; + [definitionSelectors enumerateObjectsUsingBlock:^(id obj, BOOL *stop) { + SEL methodSelector = (SEL)[obj pointerValue]; + SEL swizzled = NSSelectorFromString( + [NSStringFromSelector(methodSelector) stringByAppendingString:TYPHOON_BEFORE_ADVICE_SUFFIX]); + [[assembly class] typhoon_swizzleMethod:methodSelector withMethod:swizzled error:nil]; + }]; + } + } +} + +@end \ No newline at end of file diff --git a/Tests/Pods/Typhoon/Source/Factory/InstanceBuilder/TyphoonComponentFactory+InstanceBuilder.h b/Tests/Pods/Typhoon/Source/Factory/InstanceBuilder/TyphoonComponentFactory+InstanceBuilder.h new file mode 100644 index 000000000..9b3c70cb5 --- /dev/null +++ b/Tests/Pods/Typhoon/Source/Factory/InstanceBuilder/TyphoonComponentFactory+InstanceBuilder.h @@ -0,0 +1,27 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// JASPER BLUES +// Copyright 2012 - 2013 Jasper Blues +// All Rights Reserved. +// +// NOTICE: Jasper Blues permits you to use, modify, and distribute this file +// in accordance with the terms of the license agreement accompanying it. +// +//////////////////////////////////////////////////////////////////////////////// + + + +#import +#import "TyphoonComponentFactory.h" +#import "TyphoonIntrospectiveNSObject.h" +@interface TyphoonComponentFactory (InstanceBuilder) + +- (id)buildInstanceWithDefinition:(TyphoonDefinition*)definition; + +- (void)injectPropertyDependenciesOn:(id )instance withDefinition:(TyphoonDefinition*)definition; + +- (NSArray*)allDefinitionsForType:(id)classOrProtocol; + +- (TyphoonDefinition*)definitionForType:(id)classOrProtocol; + +@end \ No newline at end of file diff --git a/Tests/Pods/Typhoon/Source/Factory/InstanceBuilder/TyphoonComponentFactory+InstanceBuilder.m b/Tests/Pods/Typhoon/Source/Factory/InstanceBuilder/TyphoonComponentFactory+InstanceBuilder.m new file mode 100644 index 000000000..faa240c39 --- /dev/null +++ b/Tests/Pods/Typhoon/Source/Factory/InstanceBuilder/TyphoonComponentFactory+InstanceBuilder.m @@ -0,0 +1,349 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// JASPER BLUES +// Copyright 2012 - 2013 Jasper Blues +// All Rights Reserved. +// +// NOTICE: Jasper Blues permits you to use, modify, and distribute this file +// in accordance with the terms of the license agreement accompanying it. +// +//////////////////////////////////////////////////////////////////////////////// + + +#import +#import +#import "TyphoonComponentFactory+InstanceBuilder.h" +#import "TyphoonDefinition.h" +#import "TyphoonParameterInjectedByReference.h" +#import "TyphoonInitializer.h" +#import "TyphoonPropertyInjectedByReference.h" +#import "TyphoonTypeDescriptor.h" +#import "TyphoonTypeConverterRegistry.h" +#import "TyphoonPropertyInjectedByValue.h" +#import "TyphoonPropertyInjectionDelegate.h" +#import "TyphoonParameterInjectedByValue.h" +#import "TyphoonPrimitiveTypeConverter.h" +#import "TyphoonInitializer+InstanceBuilder.h" +#import "TyphoonDefinition+InstanceBuilder.h" +#import "TyphoonPropertyInjectedAsCollection.h" +#import "TyphoonCollectionValue.h" +#import "TyphoonByReferenceCollectionValue.h" +#import "TyphoonTypeConvertedCollectionValue.h" +#import "TyphoonParameterInjectedByRawValue.h" +#import "TyphoonIntrospectionUtils.h" + + +@implementation TyphoonComponentFactory (InstanceBuilder) + +/* ========================================================== Interface Methods ========================================================= */ +- (id)buildInstanceWithDefinition:(TyphoonDefinition*)definition +{ + __autoreleasing id instance; + + if (definition.factoryReference) + { + instance = [self componentForKey:definition.factoryReference]; + } + else if (definition.initializer && definition.initializer.isClassMethod) + { + instance = [self invokeInitializerOn:definition.type withDefinition:definition]; + } + else + { + instance = [definition.type alloc]; + } + + if (definition.initializer && definition.initializer.isClassMethod == NO) + { + instance = [self invokeInitializerOn:instance withDefinition:definition]; + } + else if (definition.initializer == nil) + { + instance = objc_msgSend(instance, @selector(init)); + } + + [self injectPropertyDependenciesOn:instance withDefinition:definition]; + [self injectCircularDependenciesOn:instance]; + + return instance; +} + +- (void)injectPropertyDependenciesOn:(id )instance withDefinition:(TyphoonDefinition*)definition +{ + [self doBeforePropertyInjectionOn:instance withDefinition:definition]; + + for (id property in [definition injectedProperties]) + { + TyphoonTypeDescriptor* typeDescriptor = [instance typeForPropertyWithName:property.name]; + if (typeDescriptor == nil) + { + [NSException raise:NSInvalidArgumentException + format:@"Tried to inject property '%@' on object of type '%@', but the instance has no setter for this property.", + property.name, [instance class]]; + } + [self doPropertyInjection:instance property:property typeDescriptor:typeDescriptor]; + } + + [self doAfterPropertyInjectionOn:instance withDefinition:definition]; +} + + +/* ============================================================ Private Methods ========================================================= */ +- (id)invokeInitializerOn:(id)instanceOrClass withDefinition:(TyphoonDefinition*)definition +{ + NSInvocation* invocation = [definition.initializer asInvocationFor:instanceOrClass]; + + for (id parameter in [definition.initializer injectedParameters]) + { + if (parameter.type == TyphoonParameterInjectedByReferenceType) + { + TyphoonParameterInjectedByReference* byReference = (TyphoonParameterInjectedByReference*) parameter; + id reference = [self componentForKey:byReference.reference]; + [invocation setArgument:&reference atIndex:parameter.index + 2]; + } + else if (parameter.type == TyphoonParameterInjectedByValueType) + { + TyphoonParameterInjectedByValue* byValue = (TyphoonParameterInjectedByValue*) parameter; + [self setArgumentFor:invocation index:byValue.index + 2 textValue:byValue.textValue + requiredType:[byValue resolveTypeWith:instanceOrClass]]; + } + else if (parameter.type == TyphoonParameterInjectedByRawValueType) + { + TyphoonParameterInjectedByRawValue* byValue = (TyphoonParameterInjectedByRawValue*) parameter; + id value = byValue.value; + [invocation setArgument:&value atIndex:parameter.index + 2]; + } + } + [invocation invoke]; + __autoreleasing id returnValue = nil; + [invocation getReturnValue:&returnValue]; + return returnValue; +} + +/* ====================================================================================================================================== */ +#pragma mark - Property Injection + +- (void)doBeforePropertyInjectionOn:(id )instance withDefinition:(TyphoonDefinition*)definition +{ + if ([instance conformsToProtocol:@protocol(TyphoonPropertyInjectionDelegate)]) + { + [(id ) instance beforePropertiesSet]; + } + if ([instance respondsToSelector:definition.beforePropertyInjection]) + { + objc_msgSend(instance, definition.beforePropertyInjection); + } +} + +- (void)doPropertyInjection:(id )instance property:(id )property + typeDescriptor:(TyphoonTypeDescriptor*)typeDescriptor +{ + NSInvocation* invocation = [self propertySetterInvocationFor:instance property:property]; + NSLog(@"Property setter invocation: %@", invocation); + if (property.injectionType == TyphoonPropertyInjectionByTypeType) + { + TyphoonDefinition* definition = [self definitionForType:[typeDescriptor classOrProtocol]]; + [self evaluateCircularDependency:definition.key property:property.name instance:instance]; + if ([[instance circularDependentProperties] objectForKey:property.name] == nil) + { + id reference = [self componentForKey:definition.key]; + [invocation setArgument:&reference atIndex:2]; + } + } + else if (property.injectionType == TyphoonPropertyInjectionByReferenceType) + { + TyphoonPropertyInjectedByReference* byReference = (TyphoonPropertyInjectedByReference*) property; + [self evaluateCircularDependency:byReference.reference property:property.name instance:instance]; + if ([[instance circularDependentProperties] objectForKey:property.name] == nil) + { + id reference = [self componentForKey:byReference.reference]; + [invocation setArgument:&reference atIndex:2]; + } + } + else if (property.injectionType == TyphoonPropertyInjectionByValueType) + { + TyphoonPropertyInjectedByValue* valueProperty = (TyphoonPropertyInjectedByValue*) property; + [self setArgumentFor:invocation index:2 textValue:valueProperty.textValue requiredType:typeDescriptor]; + } + else if (property.injectionType == TyphoonPropertyInjectionAsCollection) + { + id collection = [self buildCollectionFor:(TyphoonPropertyInjectedAsCollection*) property instance:instance]; + [invocation setArgument:&collection atIndex:2]; + } + [invocation invoke]; +} + +- (NSInvocation*)propertySetterInvocationFor:(id )instance property:(id )property +{ + SEL pSelector = [instance setterForPropertyWithName:property.name]; + NSInvocation* invocation = [NSInvocation invocationWithMethodSignature:[(NSObject*) instance methodSignatureForSelector:pSelector]]; + [invocation setTarget:instance]; + [invocation setSelector:pSelector]; + return invocation; +} + + +- (void)doAfterPropertyInjectionOn:(id )instance withDefinition:(TyphoonDefinition*)definition +{ + if ([instance conformsToProtocol:@protocol(TyphoonPropertyInjectionDelegate)]) + { + [(id ) instance afterPropertiesSet]; + } + if ([instance respondsToSelector:definition.afterPropertyInjection]) + { + objc_msgSend(instance, definition.afterPropertyInjection); + } +} + + +/* ====================================================================================================================================== */ +- (void)setArgumentFor:(NSInvocation*)invocation index:(NSUInteger)index1 textValue:(NSString*)textValue + requiredType:(TyphoonTypeDescriptor*)requiredType +{ + if (requiredType.isPrimitive) + { + TyphoonPrimitiveTypeConverter* converter = [[TyphoonTypeConverterRegistry shared] primitiveTypeConverter]; + [converter setPrimitiveArgumentFor:invocation index:index1 textValue:textValue requiredType:requiredType]; + } + else + { + id converter = [[TyphoonTypeConverterRegistry shared] converterFor:requiredType]; + id converted = [converter convert:textValue]; + [invocation setArgument:&converted atIndex:index1]; + } +} + +- (id)buildCollectionFor:(TyphoonPropertyInjectedAsCollection*)propertyInjectedAsCollection + instance:(id )instance +{ + id collection = [self collectionFor:propertyInjectedAsCollection givenInstance:instance]; + NSLog(@"Property: %@", propertyInjectedAsCollection); + for (id value in [propertyInjectedAsCollection values]) + { + if (value.type == TyphoonCollectionValueTypeByReference) + { + TyphoonByReferenceCollectionValue* byReferenceValue = (TyphoonByReferenceCollectionValue*) value; + id reference = [self componentForKey:byReferenceValue.componentName]; + [collection addObject:reference]; + } + else if (value.type == TyphoonCollectionValueTypeConvertedText) + { + TyphoonTypeConvertedCollectionValue* typeConvertedValue = (TyphoonTypeConvertedCollectionValue*) value; + TyphoonTypeDescriptor* descriptor = [TyphoonTypeDescriptor descriptorWithClassOrProtocol:typeConvertedValue.requiredType]; + id converter = [[TyphoonTypeConverterRegistry shared] converterFor:descriptor]; + id converted = [converter convert:typeConvertedValue.textValue]; + [collection addObject:converted]; + } + } + BOOL isMutable = propertyInjectedAsCollection.injectionType == TyphoonCollectionTypeNSMutableArray || + propertyInjectedAsCollection.injectionType == TyphoonCollectionTypeNSMutableSet; + return propertyInjectedAsCollection.injectionType == isMutable ? [collection copy] : collection; +} + +- (id)collectionFor:(TyphoonPropertyInjectedAsCollection*)propertyInjectedAsCollection + givenInstance:(id )instance +{ + TyphoonCollectionType type = [propertyInjectedAsCollection resolveCollectionTypeWith:instance]; + id collection; + if (type == TyphoonCollectionTypeNSArray || type == TyphoonCollectionTypeNSMutableArray) + { + collection = [[NSMutableArray alloc] init]; + } + else if (type == TyphoonCollectionTypeNSCountedSet) + { + collection = [[NSCountedSet alloc] init]; + } + else if (type == TyphoonCollectionTypeNSSet || type == TyphoonCollectionTypeNSMutableSet) + { + collection = [[NSMutableSet alloc] init]; + } + NSLog(@"Returning this collection: %@", collection); + return collection; +} + + +- (TyphoonDefinition*)definitionForType:(id)classOrProtocol +{ + NSArray* candidates = [self allDefinitionsForType:classOrProtocol]; + if ([candidates count] == 0) + { + if (class_isMetaClass(object_getClass(classOrProtocol)) && + [classOrProtocol respondsToSelector:@selector(typhoonAutoInjectedProperties)]) + { + NSLog(@"Class %@ wants auto-wiring. . . registering.", NSStringFromClass(classOrProtocol)); + [self register:[TyphoonDefinition withClass:classOrProtocol]]; + return [self definitionForType:classOrProtocol]; + } + [NSException raise:NSInvalidArgumentException format:@"No components defined which satisify type: '%@'", + TyphoonTypeStringFor(classOrProtocol)]; + } + if ([candidates count] > 1) + { + [NSException raise:NSInvalidArgumentException format:@"More than one component is defined satisfying type: '%@'", classOrProtocol]; + } + return [candidates objectAtIndex:0]; +} + + +- (NSArray*)allDefinitionsForType:(id)classOrProtocol +{ + NSMutableArray* results = [[NSMutableArray alloc] init]; + BOOL isClass = class_isMetaClass(object_getClass(classOrProtocol)); + + for (TyphoonDefinition* definition in _registry) + { + if (isClass) + { + if (definition.type == classOrProtocol || [definition.type isSubclassOfClass:classOrProtocol]) + { + [results addObject:definition]; + } + } + else + { + if ([definition.type conformsToProtocol:classOrProtocol]) + { + [results addObject:definition]; + } + } + } + return [results copy]; +} + +/* ====================================================================================================================================== */ +#pragma mark - Circular Dependencies + +- (void)evaluateCircularDependency:(NSString*)componentKey property:(NSString*)propertyName + instance:(id )instance; +{ + if ([_currentlyResolvingReferences objectForKey:componentKey] != nil) + { + NSDictionary* circularDependencies = [instance circularDependentProperties]; + [circularDependencies setValue:componentKey forKey:propertyName]; + NSLog(@"$$$$$$$$$$$$ Circular now: %@", [instance circularDependentProperties]); + } + [_currentlyResolvingReferences setObject:instance forKey:componentKey]; +} + +- (void)injectCircularDependenciesOn:(__autoreleasing id )instance +{ + NSMutableDictionary* circularDependentProperties = [instance circularDependentProperties]; + for (NSString* propertyName in [circularDependentProperties allKeys]) + { + id propertyValue = objc_msgSend(instance, NSSelectorFromString(propertyName)); + if (!propertyValue) + { + SEL pSelector = [instance setterForPropertyWithName:propertyName]; + NSInvocation + * invocation = [NSInvocation invocationWithMethodSignature:[(NSObject*) instance methodSignatureForSelector:pSelector]]; + [invocation setTarget:instance]; + [invocation setSelector:pSelector]; + NSString* componentKey = [circularDependentProperties objectForKey:propertyName]; + id reference = [_currentlyResolvingReferences objectForKey:componentKey]; + [invocation setArgument:&reference atIndex:2]; + [invocation invoke]; + } + } +} + +@end \ No newline at end of file diff --git a/Tests/Pods/Typhoon/Source/Factory/InstanceBuilder/TyphoonDefinition+InstanceBuilder.h b/Tests/Pods/Typhoon/Source/Factory/InstanceBuilder/TyphoonDefinition+InstanceBuilder.h new file mode 100644 index 000000000..ee8ed64b2 --- /dev/null +++ b/Tests/Pods/Typhoon/Source/Factory/InstanceBuilder/TyphoonDefinition+InstanceBuilder.h @@ -0,0 +1,32 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// JASPER BLUES +// Copyright 2013 Jasper Blues +// All Rights Reserved. +// +// NOTICE: Jasper Blues permits you to use, modify, and distribute this file +// in accordance with the terms of the license agreement accompanying it. +// +//////////////////////////////////////////////////////////////////////////////// + + +#import +#import "TyphoonDefinition.h" + +@interface TyphoonDefinition (InstanceBuilder) + +- (NSString*)factoryReference; + +- (void)setFactoryReference:(NSString*)factoryReference; + +- (void)injectProperty:(SEL)withSelector withReference:(NSString*)reference; + +- (NSSet*)propertiesInjectedByValue; + +- (NSSet*)propertiesInjectedByType; + +- (NSSet*)propertiesInjectedByReference; + +- (void)addInjectedProperty:(id )property; + +@end \ No newline at end of file diff --git a/Tests/Pods/Typhoon/Source/Factory/InstanceBuilder/TyphoonDefinition+InstanceBuilder.m b/Tests/Pods/Typhoon/Source/Factory/InstanceBuilder/TyphoonDefinition+InstanceBuilder.m new file mode 100644 index 000000000..79879730c --- /dev/null +++ b/Tests/Pods/Typhoon/Source/Factory/InstanceBuilder/TyphoonDefinition+InstanceBuilder.m @@ -0,0 +1,69 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// JASPER BLUES +// Copyright 2013 Jasper Blues +// All Rights Reserved. +// +// NOTICE: Jasper Blues permits you to use, modify, and distribute this file +// in accordance with the terms of the license agreement accompanying it. +// +//////////////////////////////////////////////////////////////////////////////// + +#import "TyphoonDefinition+InstanceBuilder.h" +#import "TyphoonPropertyInjectedByValue.h" +#import "TyphoonPropertyInjectedByType.h" +#import "TyphoonPropertyInjectedByReference.h" + + +@implementation TyphoonDefinition (InstanceBuilder) + + + +/* ========================================================== Interface Methods ========================================================= */ +- (NSString*)factoryReference +{ + return _factoryReference; +} + +- (void)setFactoryReference:(NSString*)factoryReference; +{ + _factoryReference = factoryReference; +} + +- (void)injectProperty:(SEL)selector withReference:(NSString*)reference +{ + [_injectedProperties addObject:[[TyphoonPropertyInjectedByReference alloc] + initWithName:NSStringFromSelector(selector) reference:reference]]; +} + +- (NSSet*)propertiesInjectedByValue +{ + return [self injectedPropertiesWithKind:[TyphoonPropertyInjectedByValue class]]; +} + +- (NSSet*)propertiesInjectedByType +{ + return [self injectedPropertiesWithKind:[TyphoonPropertyInjectedByType class]]; +} + +- (NSSet*)propertiesInjectedByReference +{ + return [self injectedPropertiesWithKind:[TyphoonPropertyInjectedByReference class]]; +} + +- (void)addInjectedProperty:(id )property +{ + [_injectedProperties addObject:property]; +} + +/* ============================================================ Private Methods ========================================================= */ +- (NSSet*)injectedPropertiesWithKind:(Class)clazz +{ + NSPredicate* predicate = [NSPredicate predicateWithBlock:^BOOL(id evaluatedObject, NSDictionary* bindings) + { + return [evaluatedObject isKindOfClass:clazz]; + }]; + return [_injectedProperties filteredSetUsingPredicate:predicate]; +} + +@end \ No newline at end of file diff --git a/Tests/Pods/Typhoon/Source/Factory/InstanceBuilder/TyphoonInitializer+InstanceBuilder.h b/Tests/Pods/Typhoon/Source/Factory/InstanceBuilder/TyphoonInitializer+InstanceBuilder.h new file mode 100644 index 000000000..004b53680 --- /dev/null +++ b/Tests/Pods/Typhoon/Source/Factory/InstanceBuilder/TyphoonInitializer+InstanceBuilder.h @@ -0,0 +1,29 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// JASPER BLUES +// Copyright 2013 Jasper Blues +// All Rights Reserved. +// +// NOTICE: Jasper Blues permits you to use, modify, and distribute this file +// in accordance with the terms of the license agreement accompanying it. +// +//////////////////////////////////////////////////////////////////////////////// + + +#import +#import "TyphoonInitializer.h" + +@interface TyphoonInitializer (InstanceBuilder) + +@property(nonatomic, readonly) BOOL isClassMethod; + +- (NSArray*)injectedParameters; + +- (NSArray*)parametersInjectedByValue; + +- (NSInvocation*)asInvocationFor:(id)classOrInstance; + +- (void)setComponentDefinition:(TyphoonDefinition*)definition; + + +@end \ No newline at end of file diff --git a/Tests/Pods/Typhoon/Source/Factory/InstanceBuilder/TyphoonInitializer+InstanceBuilder.m b/Tests/Pods/Typhoon/Source/Factory/InstanceBuilder/TyphoonInitializer+InstanceBuilder.m new file mode 100644 index 000000000..0e12220eb --- /dev/null +++ b/Tests/Pods/Typhoon/Source/Factory/InstanceBuilder/TyphoonInitializer+InstanceBuilder.m @@ -0,0 +1,109 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// JASPER BLUES +// Copyright 2013 Jasper Blues +// All Rights Reserved. +// +// NOTICE: Jasper Blues permits you to use, modify, and distribute this file +// in accordance with the terms of the license agreement accompanying it. +// +//////////////////////////////////////////////////////////////////////////////// + + + +#import "TyphoonInitializer+InstanceBuilder.h" +#import "TyphoonParameterInjectedByValue.h" +#import "TyphoonDefinition.h" +#import "TyphoonDefinition+InstanceBuilder.h" + + +@implementation TyphoonInitializer (InstanceBuilder) + +/* ========================================================== Interface Methods ========================================================= */ +- (NSArray*)injectedParameters +{ + return [_injectedParameters copy]; +} + +- (NSArray *)parametersInjectedByValue +{ + NSPredicate* predicate = [NSPredicate predicateWithBlock:^BOOL(id evaluatedObject, NSDictionary* bindings) + { + return [evaluatedObject isKindOfClass:[TyphoonParameterInjectedByValue class]]; + }]; + return [_injectedParameters filteredArrayUsingPredicate:predicate]; + +} + +- (NSInvocation*)asInvocationFor:(id)classOrInstance +{ + if (![classOrInstance respondsToSelector:_selector]) + { + NSString* typeType = self.isClassMethod ? @"Class" : @"Instance"; + NSString* typeName = self.isClassMethod ? NSStringFromClass(classOrInstance) : NSStringFromClass([classOrInstance class]); + [NSException raise:NSInvalidArgumentException + format:@"%@ method '%@' not found on '%@'. Did you include the required ':' characters to signify arguments?", typeType, + NSStringFromSelector(_selector), typeName]; + } + + NSInvocation* invocation; + if (self.isClassMethod) + { + invocation = [NSInvocation invocationWithMethodSignature:[classOrInstance methodSignatureForSelector:_selector]]; + } + else + { + invocation = [NSInvocation invocationWithMethodSignature:[[classOrInstance class] instanceMethodSignatureForSelector:_selector]]; + } + [invocation setTarget:classOrInstance]; + [invocation setSelector:_selector]; + return invocation; +} + + +- (void)setComponentDefinition:(TyphoonDefinition*)definition +{ + _definition = definition; + [self resolveIsClassMethod]; +} + +- (NSString*)description +{ + return [NSString stringWithFormat:@"Initializer: %@, isFactoryMethod? %@, parameters: %@", NSStringFromSelector(_selector), + self.isClassMethod ? @"YES" : @"NO", _injectedParameters]; +} + +- (BOOL)isClassMethod +{ + return [self resolveIsClassMethod]; +} + + +/* ============================================================ Private Methods ========================================================= */ +- (BOOL)resolveIsClassMethod +{ + if (_definition.factoryReference) + { + if (_isClassMethodStrategy == YES) + { + [NSException raise:NSInvalidArgumentException format:@"'is-class-method' can't be 'YES' when factory-component is used!"]; + } + else + { + return NO; + } + } + + switch (_isClassMethodStrategy) + { + case TyphoonComponentInitializerIsClassMethodNo: + return NO; + case TyphoonComponentInitializerIsClassMethodYes: + return YES; + case TyphoonComponentInitializerIsClassMethodGuess: + return ![NSStringFromSelector(_selector) hasPrefix:@"init"]; + } +} + + +@end \ No newline at end of file diff --git a/Tests/Pods/Typhoon/Source/Factory/Mutator/TyphoonComponentFactoryMutator.h b/Tests/Pods/Typhoon/Source/Factory/Mutator/TyphoonComponentFactoryMutator.h new file mode 100644 index 000000000..59f69a017 --- /dev/null +++ b/Tests/Pods/Typhoon/Source/Factory/Mutator/TyphoonComponentFactoryMutator.h @@ -0,0 +1,19 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// JASPER BLUES +// Copyright 2013 Jasper Blues +// All Rights Reserved. +// +// NOTICE: Jasper Blues permits you to use, modify, and distribute this file +// in accordance with the terms of the license agreement accompanying it. +// +//////////////////////////////////////////////////////////////////////////////// + + +#import + +@protocol TyphoonComponentFactoryMutator + +- (void)mutateComponentDefinitionsIfRequired:(NSArray*)componentDefinitions; + +@end \ No newline at end of file diff --git a/Tests/Pods/Typhoon/Source/Factory/PropertyConfigurers/TyphoonPropertyPlaceholderConfigurer.h b/Tests/Pods/Typhoon/Source/Factory/PropertyConfigurers/TyphoonPropertyPlaceholderConfigurer.h new file mode 100644 index 000000000..3a9d7ad2b --- /dev/null +++ b/Tests/Pods/Typhoon/Source/Factory/PropertyConfigurers/TyphoonPropertyPlaceholderConfigurer.h @@ -0,0 +1,38 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// JASPER BLUES +// Copyright 2013 Jasper Blues +// All Rights Reserved. +// +// NOTICE: Jasper Blues permits you to use, modify, and distribute this file +// in accordance with the terms of the license agreement accompanying it. +// +//////////////////////////////////////////////////////////////////////////////// + + +#import +#import "TyphoonComponentFactoryMutator.h" + +@protocol TyphoonResource; + + +@interface TyphoonPropertyPlaceholderConfigurer : NSObject +{ + NSString* _prefix; + NSString* _suffix; + NSMutableDictionary* _properties; +} + ++ (TyphoonPropertyPlaceholderConfigurer*)configurer; + ++ (TyphoonPropertyPlaceholderConfigurer*)configurerWithResource:(id)resource; + ++ (TyphoonPropertyPlaceholderConfigurer*)configurerWithResources:(id)first, ...NS_REQUIRES_NIL_TERMINATION; + +- (id)initWithPrefix:(NSString*)prefix suffix:(NSString*)suffix; + +- (void)usePropertyStyleResource:(id )resource; + +- (NSDictionary*)properties; + +@end \ No newline at end of file diff --git a/Tests/Pods/Typhoon/Source/Factory/PropertyConfigurers/TyphoonPropertyPlaceholderConfigurer.m b/Tests/Pods/Typhoon/Source/Factory/PropertyConfigurers/TyphoonPropertyPlaceholderConfigurer.m new file mode 100644 index 000000000..dcc872f25 --- /dev/null +++ b/Tests/Pods/Typhoon/Source/Factory/PropertyConfigurers/TyphoonPropertyPlaceholderConfigurer.m @@ -0,0 +1,145 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// JASPER BLUES +// Copyright 2013 Jasper Blues +// All Rights Reserved. +// +// NOTICE: Jasper Blues permits you to use, modify, and distribute this file +// in accordance with the terms of the license agreement accompanying it. +// +//////////////////////////////////////////////////////////////////////////////// + + +#import "TyphoonPropertyPlaceholderConfigurer.h" +#import "TyphoonResource.h" +#import "TyphoonDefinition.h" +#import "TyphoonInitializer.h" +#import "TyphoonPropertyInjectedByValue.h" +#import "TyphoonParameterInjectedByValue.h" +#import "TyphoonDefinition+InstanceBuilder.h" +#import "TyphoonInitializer+InstanceBuilder.h" + +@interface TyphoonPropertyInjectedByValue (PropertyPlaceHolderConfigurer) + +- (void)setTextValue:(NSString*)textValue; + +@end + + +@implementation TyphoonPropertyInjectedByValue (PropertyPlaceHolderConfigurer) + +- (void)setTextValue:(NSString*)textValue +{ + _textValue = textValue; +} + + +@end + +@implementation TyphoonPropertyPlaceholderConfigurer + +/* =========================================================== Class Methods ============================================================ */ ++ (TyphoonPropertyPlaceholderConfigurer*)configurer +{ + return [[[self class] alloc] init]; +} + ++ (TyphoonPropertyPlaceholderConfigurer*)configurerWithResource:(id )resource +{ + TyphoonPropertyPlaceholderConfigurer* configurer = [TyphoonPropertyPlaceholderConfigurer configurer]; + [configurer usePropertyStyleResource:resource]; + return configurer; +} + ++ (TyphoonPropertyPlaceholderConfigurer*)configurerWithResources:(id )first, ... +{ + TyphoonPropertyPlaceholderConfigurer* configurer = [TyphoonPropertyPlaceholderConfigurer configurer]; + [configurer usePropertyStyleResource:first]; + + va_list resource_list; + va_start(resource_list, first); + id resource; + while ((resource = va_arg( resource_list, id < TyphoonResource >))) + { + [configurer usePropertyStyleResource:resource]; + } + va_end(resource_list); + return configurer; +} + + +/* ============================================================ Initializers ============================================================ */ +- (id)initWithPrefix:(NSString*)prefix suffix:(NSString*)suffix +{ + self = [super init]; + if (self) + { + _prefix = prefix; + _suffix = suffix; + _properties = [[NSMutableDictionary alloc] init]; + } + return self; +} + +- (id)init +{ + return [self initWithPrefix:@"${" suffix:@"}"]; +} + +/* ========================================================== Interface Methods ========================================================= */ +- (void)usePropertyStyleResource:(id )resource +{ + NSArray* lines = [[resource asString] componentsSeparatedByCharactersInSet:[NSCharacterSet newlineCharacterSet]]; + for (NSString* line in lines) + { + if (![line hasPrefix:@"#"]) + { + NSRange range = [line rangeOfString:@"="]; + if (range.location != NSNotFound) + { + NSString* property = [line substringToIndex:range.location]; + NSString* value = [line substringFromIndex:range.location + range.length]; + [_properties setObject:value forKey:property]; + } + } + } +} + +- (NSDictionary*)properties +{ + return [_properties copy]; +} + + +/* =========================================================== Protocol Methods ========================================================= */ +- (void)mutateComponentDefinitionsIfRequired:(NSArray*)componentDefinitions +{ + for (TyphoonDefinition* definition in componentDefinitions) + { + for (TyphoonParameterInjectedByValue* parameter in [definition.initializer parametersInjectedByValue]) + { + if ([parameter.textValue hasPrefix:_prefix] && [parameter.textValue hasSuffix:_suffix]) + { + NSString* key = [parameter.textValue substringFromIndex:[_prefix length]]; + key = [key substringToIndex:[key length] - [_suffix length]]; + NSString* value = [_properties valueForKey:key]; + NSLog(@"Setting property '%@' to value '%@'", key, value); + parameter.textValue = value; + } + } + + for (TyphoonPropertyInjectedByValue* property in [definition propertiesInjectedByValue]) + { + if ([property.textValue hasPrefix:_prefix] && [property.textValue hasSuffix:_suffix]) + { + NSString* key = [property.textValue substringFromIndex:[_prefix length]]; + key = [key substringToIndex:[key length] - [_suffix length]]; + NSString* value = [_properties valueForKey:key]; + NSLog(@"Setting property '%@' to value '%@'", key, value); + property.textValue = value; + } + } + } +} + +@end \ No newline at end of file diff --git a/Tests/Pods/Typhoon/Source/Factory/TyphoonComponentFactory.h b/Tests/Pods/Typhoon/Source/Factory/TyphoonComponentFactory.h new file mode 100644 index 000000000..922949d18 --- /dev/null +++ b/Tests/Pods/Typhoon/Source/Factory/TyphoonComponentFactory.h @@ -0,0 +1,79 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// JASPER BLUES +// Copyright 2012 - 2013 Jasper Blues +// All Rights Reserved. +// +// NOTICE: Jasper Blues permits you to use, modify, and distribute this file +// in accordance with the terms of the license agreement accompanying it. +// +//////////////////////////////////////////////////////////////////////////////// + + + +#import +#import "TyphoonComponentFactoryMutator.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 +* sub-class like TyphoonXmlComponentFactory. +*/ +@interface TyphoonComponentFactory : NSObject +{ + NSMutableArray* _registry; + NSMutableDictionary* _singletons; + + NSMutableDictionary* _currentlyResolvingReferences; + NSMutableArray* _mutators; + + BOOL _hasPerformedMutations; + +} + +/** +* Returns the default component factory, if one has been set. (See makeDefault ). +*/ ++ (id)defaultFactory; + + +/** +* Sets a given instance of TyphoonComponentFactory, as the default factory so that it can be retrieved later with: + + [TyphoonComponentFactory defaultFactory]; + +*/ +- (void)makeDefault; + +/** +* Registers a component into the factory. Components can be declared in any order, the container will work out how to resolve them. +*/ +- (void) register:(TyphoonDefinition*)definition; + +/** +* Returns an an instance of the component matching the supplied class or protocol. For example: + + [factory objectForType:[Knight class]]; + [factory objectForType:@protocol(Quest)]; + +* @exception NSInvalidArgumentException When no singletons or prototypes match the requested type. +* @exception NSInvalidArgumentException When when more than one singleton or prototype matches the requested type. +* +* @See: allComponentsForType: +*/ +- (id)componentForType:(id)classOrProtocol; + + - (NSArray*)allComponentsForType:(id)classOrProtocol; + +- (id)componentForKey:(NSString*)key; + +- (NSArray*)registry; + +- (void)attachMutator:(id)mutator; + +/** + * Injects the properties of an object + */ +- (void)injectProperties:(id)instance; + +@end \ No newline at end of file diff --git a/Tests/Pods/Typhoon/Source/Factory/TyphoonComponentFactory.m b/Tests/Pods/Typhoon/Source/Factory/TyphoonComponentFactory.m new file mode 100644 index 000000000..5fc95b014 --- /dev/null +++ b/Tests/Pods/Typhoon/Source/Factory/TyphoonComponentFactory.m @@ -0,0 +1,211 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// JASPER BLUES +// Copyright 2012 - 2013 Jasper Blues +// All Rights Reserved. +// +// NOTICE: Jasper Blues permits you to use, modify, and distribute this file +// in accordance with the terms of the license agreement accompanying it. +// +//////////////////////////////////////////////////////////////////////////////// + + +#import +#import +#import "TyphoonComponentFactory.h" +#import "TyphoonDefinition.h" +#import "TyphoonComponentFactory+InstanceBuilder.h" + + +@interface TyphoonDefinition (TyphoonComponentFactory) + +@property(nonatomic, strong) NSString* key; + +@end + +@implementation TyphoonComponentFactory + +static TyphoonComponentFactory* defaultFactory; + + +/* =========================================================== Class Methods ============================================================ */ ++ (id)defaultFactory +{ + return defaultFactory; +} + +/* ============================================================ Initializers ============================================================ */ +- (id)init +{ + self = [super init]; + if (self) + { + _registry = [[NSMutableArray alloc] init]; + _singletons = [[NSMutableDictionary alloc] init]; + _currentlyResolvingReferences = [[NSMutableDictionary alloc] init]; + _mutators = [[NSMutableArray alloc] init]; + _hasPerformedMutations = NO; + } + return self; +} + + +/* ========================================================== Interface Methods ========================================================= */ +- (void)register:(TyphoonDefinition*)definition +{ + if ([definition.key length] == 0) + { + NSString* uuidStr = [[NSProcessInfo processInfo] globallyUniqueString]; + definition.key = [NSString stringWithFormat:@"%@_%@", NSStringFromClass(definition.type), uuidStr]; + } + if ([self definitionForKey:definition.key]) + { + [NSException raise:NSInvalidArgumentException format:@"Key '%@' is already registered.", definition.key]; + } + if ([definition.type respondsToSelector:@selector(typhoonAutoInjectedProperties)]) + { + for (NSString* autoWired in objc_msgSend(definition.type, @selector(typhoonAutoInjectedProperties))) + { + [definition injectProperty:NSSelectorFromString(autoWired)]; + } + } + NSLog(@"Registering: %@ with key: %@", NSStringFromClass(definition.type), definition.key); + [_registry addObject:definition]; +} + +- (id)componentForType:(id)classOrProtocol +{ + return [self objectForDefinition:[self definitionForType:classOrProtocol]]; +} + +- (NSArray*)allComponentsForType:(id)classOrProtocol +{ + [self performMutationsIfRequired]; + NSMutableArray* results = [[NSMutableArray alloc] init]; + NSArray* definitions = [self allDefinitionsForType:classOrProtocol]; + NSLog(@"Definitions: %@", definitions); + for (TyphoonDefinition* definition in definitions) + { + [results addObject:[self objectForDefinition:definition]]; + } + [_currentlyResolvingReferences removeAllObjects]; + return [results copy]; +} + + +- (id)componentForKey:(NSString*)key +{ + if (key) + { + [self performMutationsIfRequired]; + TyphoonDefinition* definition = [self definitionForKey:key]; + if (!definition) + { + [NSException raise:NSInvalidArgumentException format:@"No component matching id '%@'.", key]; + } + __autoreleasing id returnValue = [self objectForDefinition:definition]; + [_currentlyResolvingReferences removeAllObjects]; + return returnValue; + } + return nil; +} + +- (void)makeDefault +{ + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^ + { + defaultFactory = self; + }); +} + +- (NSArray*)registry +{ + return [_registry copy]; +} + +- (void)attachMutator:(id)mutator +{ + NSLog(@"Attaching mutator: %@", mutator); + [_mutators addObject:mutator]; +} + +- (void)injectProperties:(id)instance { + Class class = [instance class]; + for (TyphoonDefinition* definition in _registry) + { + if(definition.type == class) + { + [self injectPropertyDependenciesOn:instance withDefinition:definition]; + } + } +} + +/* ============================================================ Utility Methods ========================================================= */ +- (NSString*)description +{ + NSMutableString* description = [NSMutableString stringWithFormat:@"<%@: ", NSStringFromClass([self class])]; + [description appendFormat:@"_registry=%@", _registry]; + [description appendString:@">"]; + return description; +} + + +/* ============================================================ Private Methods ========================================================= */ +- (id)objectForDefinition:(TyphoonDefinition*)definition +{ + if (definition.scope == TyphoonScopeDefault) + { + return [self buildInstanceWithDefinition:definition]; + } + else + { + return [self singletonForDefinition:definition]; + } +} + +- (id)singletonForDefinition:(TyphoonDefinition*)definition +{ + @synchronized (self) + { + id instance = [_singletons objectForKey:definition.key]; + if (instance == nil) + { + instance = [self buildInstanceWithDefinition:definition]; + [_singletons setObject:instance forKey:definition.key]; + } + return instance; + } +} + +- (TyphoonDefinition*)definitionForKey:(NSString*)key +{ + for (TyphoonDefinition* definition in _registry) + { + if ([definition.key isEqualToString:key]) + { + return definition; + } + } + return nil; +} + +- (void)performMutationsIfRequired +{ + @synchronized (self) + { + if (!_hasPerformedMutations) + { + NSLog(@"Running mutators. . . %@", _mutators); + for (id mutator in _mutators) + { + [mutator mutateComponentDefinitionsIfRequired:_registry]; + } + _hasPerformedMutations = YES; + } + } +} + + + +@end \ No newline at end of file diff --git a/Tests/Pods/Typhoon/Source/Factory/Xml/TyphoonRXMLElement+XmlComponentFactory.h b/Tests/Pods/Typhoon/Source/Factory/Xml/TyphoonRXMLElement+XmlComponentFactory.h new file mode 100644 index 000000000..9ec2e1d87 --- /dev/null +++ b/Tests/Pods/Typhoon/Source/Factory/Xml/TyphoonRXMLElement+XmlComponentFactory.h @@ -0,0 +1,32 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// JASPER BLUES +// Copyright 2012 - 2013 Jasper Blues +// All Rights Reserved. +// +// NOTICE: Jasper Blues permits you to use, modify, and distribute this file +// in accordance with the terms of the license agreement accompanying it. +// +//////////////////////////////////////////////////////////////////////////////// + + + +#import +#import "TyphoonRXMLElement.h" + +@class TyphoonDefinition; +@protocol TyphoonInjectedProperty; +@class TyphoonInitializer; +@protocol TyphoonInjectedParameter; + +@interface TyphoonRXMLElement (XmlComponentFactory) + +- (TyphoonDefinition*)asComponentDefinition; + +- (id)asInjectedProperty; + +- (TyphoonInitializer*)asInitializer; + + + +@end \ No newline at end of file diff --git a/Tests/Pods/Typhoon/Source/Factory/Xml/TyphoonRXMLElement+XmlComponentFactory.m b/Tests/Pods/Typhoon/Source/Factory/Xml/TyphoonRXMLElement+XmlComponentFactory.m new file mode 100644 index 000000000..55bd94385 --- /dev/null +++ b/Tests/Pods/Typhoon/Source/Factory/Xml/TyphoonRXMLElement+XmlComponentFactory.m @@ -0,0 +1,260 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// JASPER BLUES +// Copyright 2012 - 2013 Jasper Blues +// All Rights Reserved. +// +// NOTICE: Jasper Blues permits you to use, modify, and distribute this file +// in accordance with the terms of the license agreement accompanying it. +// +//////////////////////////////////////////////////////////////////////////////// + + + +#import "TyphoonRXMLElement+XmlComponentFactory.h" +#import "TyphoonDefinition.h" +#import "TyphoonInjectedProperty.h" +#import "TyphoonPropertyInjectedByReference.h" +#import "TyphoonPropertyInjectedByValue.h" +#import "TyphoonPropertyInjectedByType.h" +#import "TyphoonInitializer.h" +#import "TyphoonDefinition+InstanceBuilder.h" +#import "TyphoonPropertyInjectedAsCollection.h" + +@implementation TyphoonRXMLElement (XmlComponentFactory) + +- (TyphoonDefinition*)asComponentDefinition +{ + [self assertTagName:@"component"]; + Class clazz = NSClassFromString([self attribute:@"class"]); + if (clazz == nil) + { + [NSException raise:NSInvalidArgumentException format:@"Class '%@' can't be resolved.", [self attribute:@"class"]]; + } + NSString* key = [self attribute:@"key"]; + NSString* factory = [self attributeOrNilIfEmpty:@"factory-component"]; + TyphoonDefinition* definition = [[TyphoonDefinition alloc] initWithClass:clazz key:key factoryComponent:factory]; + + [definition setBeforePropertyInjection:NSSelectorFromString([self attribute:@"before-property-injection"])]; + [definition setAfterPropertyInjection:NSSelectorFromString([self attribute:@"after-property-injection"])]; + [self setScopeForDefinition:definition withStringValue:[[self attribute:@"scope"] lowercaseString]]; + [self parseComponentDefinitionChildren:definition]; + return definition; +} + +//TODO: Method too long, clean it up. +- (id )asInjectedProperty +{ + [self assertTagName:@"property"]; + + NSString* propertyName = [self attribute:@"name"]; + NSString* referenceName = [self attribute:@"ref"]; + NSString* value = [self attribute:@"value"]; + + TyphoonRXMLElement* collection = [self child:@"collection"]; + if ((referenceName || value) && collection) + { + [NSException raise:NSInvalidArgumentException format:@"'ref' and 'value' attributes cannot be used with 'collection'"]; + } + + id injectedProperty = nil; + if (referenceName && value) + { + [NSException raise:NSInvalidArgumentException format:@"Ambigous - both reference and value attributes are set. Can only be one."]; + } + else if (referenceName && [referenceName length] == 0) + { + [NSException raise:NSInvalidArgumentException format:@"Reference cannot be empty."]; + } + + else if ([referenceName length] > 0) + { + injectedProperty = [[TyphoonPropertyInjectedByReference alloc] initWithName:propertyName reference:referenceName]; + } + else if (value) + { + injectedProperty = [[TyphoonPropertyInjectedByValue alloc] initWithName:propertyName value:value]; + } + else if (collection) + { + TyphoonPropertyInjectedAsCollection* property = [[TyphoonPropertyInjectedAsCollection alloc] initWithName:propertyName]; + [collection iterate:@"*" usingBlock:^(TyphoonRXMLElement* child) + { + if ([[child tag] isEqualToString:@"ref"]) + { + [property addItemWithComponentName:[child text]]; + } + else if ([[child tag] isEqualToString:@"value"]) + { + Class type = NSClassFromString([child attribute:@"requiredType"]); + if (!type) + { + [NSException raise:NSInvalidArgumentException format:@"Type '%@' could not be resolved.", + [child attribute:@"requiredType"]]; + } + [property addItemWithText:[child text] requiredType:type]; + } + }]; + NSLog(@"$$$$$$$$$$$$$$ Here's the injected property: %@", property); + injectedProperty = property; + } + else + { + injectedProperty = [[TyphoonPropertyInjectedByType alloc] initWithName:propertyName]; + } + return injectedProperty; +} + + +- (TyphoonInitializer*)asInitializer +{ + [self assertTagName:@"initializer"]; + SEL selector = NSSelectorFromString([self attribute:@"selector"]); + TyphoonComponentInitializerIsClassMethod isClassMethod = [self handleIsClassMethod:[self attribute:@"is-class-method"]]; + TyphoonInitializer* initializer = [[TyphoonInitializer alloc] initWithSelector:selector isClassMethod:isClassMethod]; + + [self iterate:@"*" usingBlock:^(TyphoonRXMLElement* child) + { + if ([[child tag] isEqualToString:@"argument"]) + { + [self setArgumentOnInitializer:initializer withChildTag:child]; + } + else if ([[child tag] isEqualToString:@"description"]) + { + //do nothing. + } + else + { + [NSException raise:NSInvalidArgumentException format:@"The tag '%@' can't be used as part of an initializer.", [child tag]]; + } + }]; + return initializer; +} + +/* ============================================================ Private Methods ========================================================= */ +- (void)assertTagName:(NSString*)tagName +{ + if (![self.tag isEqualToString:tagName]) + { + [NSException raise:NSInvalidArgumentException format:@"Element is not a '%@'.", tagName]; + } +} + +- (void)setScopeForDefinition:(TyphoonDefinition*)definition withStringValue:(NSString*)scope; +{ + + if ([scope isEqualToString:@"singleton"]) + { + [definition setScope:TyphoonScopeSingleton]; + } + else if ([scope isEqualToString:@"prototype"]) + { + [definition setScope:TyphoonScopeDefault]; + } + else if ([scope length] > 0) + { + [NSException raise:NSInvalidArgumentException format:@"Scope was '%@', but can only be 'singleton' or 'prototype'", scope]; + } +} + + +- (void)parseComponentDefinitionChildren:(TyphoonDefinition*)componentDefinition +{ + [self iterate:@"*" usingBlock:^(TyphoonRXMLElement* child) + { + if ([[child tag] isEqualToString:@"property"]) + { + [componentDefinition addInjectedProperty:[child asInjectedProperty]]; + } + else if ([[child tag] isEqualToString:@"initializer"]) + { + [componentDefinition setInitializer:[child asInitializer]]; + } + else if ([[child tag] isEqualToString:@"description"]) + { + // do nothing + } + else + { + [NSException raise:NSInvalidArgumentException format:@"The tag '%@' can't be used as part of a component definition.", + [child tag]]; + } + }]; +} + +- (void)setArgumentOnInitializer:(TyphoonInitializer*)initializer withChildTag:(TyphoonRXMLElement*)child +{ + NSString* name = [child attribute:@"parameterName"]; + NSString* index = [child attribute:@"index"]; + + if (name && index) + { + [NSException raise:NSInvalidArgumentException format:@"'parameterName' and 'index' cannot be used together"]; + } + + NSString* reference = [child attribute:@"ref"]; + NSString* value = [child attribute:@"value"]; + + if (reference) + { + if (name) + { + [initializer injectParameterNamed:name withReference:reference]; + } + else if (index) + { + [initializer injectParameterAtIndex:[index integerValue] withReference:reference]; + } + + } + else if (value) + { + NSString* classAsString = [child attribute:@"required-class"]; + Class clazz; + if (classAsString) + { + clazz = NSClassFromString(classAsString); + if (clazz == nil) + { + [NSException raise:NSInvalidArgumentException format:@"Class '%@' could not be resolved.", classAsString]; + } + } + if (name) + { + [initializer injectParameterNamed:name withValueAsText:value requiredTypeOrNil:clazz]; + } + else if (index) + { + [initializer injectParameterAtIndex:[index integerValue] withValueAsText:value requiredTypeOrNil:clazz]; + } + + } +} + +- (TyphoonComponentInitializerIsClassMethod)handleIsClassMethod:(NSString*)isClassMethodString +{ + if ([[isClassMethodString lowercaseString] isEqualToString:@"yes"] || [[isClassMethodString lowercaseString] isEqualToString:@"true"]) + { + return TyphoonComponentInitializerIsClassMethodYes; + } + else if ([[isClassMethodString lowercaseString] isEqualToString:@"no"] || [[isClassMethodString lowercaseString] isEqualToString:@"no"]) + { + return TyphoonComponentInitializerIsClassMethodNo; + } + else + { + return TyphoonComponentInitializerIsClassMethodGuess; + } +} + +- (NSString*)attributeOrNilIfEmpty:(NSString*)attributeName +{ + NSString* attribute = [self attribute:attributeName]; + if ([attribute length] > 0) + { + return attribute; + } + return nil; +} + +@end \ No newline at end of file diff --git a/Tests/Pods/Typhoon/Source/Factory/Xml/TyphoonRXMLElement.h b/Tests/Pods/Typhoon/Source/Factory/Xml/TyphoonRXMLElement.h new file mode 100644 index 000000000..4265e5693 --- /dev/null +++ b/Tests/Pods/Typhoon/Source/Factory/Xml/TyphoonRXMLElement.h @@ -0,0 +1,86 @@ +// ================================================================================================ +// TyphoonRXMLElement+XmlComponentFactory.h +// Fast processing of XML files +// +// ================================================================================================ +// Created by John Blanco on 9/23/11. +// Version 1.4 +// +// Copyright (c) 2011 John Blanco +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// ================================================================================================ +// + +#import +#import +#import +#import +#import + +@interface TyphoonRXMLElement : NSObject +{ + xmlDocPtr doc_; + xmlNodePtr node_; +} + +- (id)initFromXMLString:(NSString *)xmlString encoding:(NSStringEncoding)encoding; +- (id)initFromXMLFile:(NSString *)filename; +- (id)initFromXMLFile:(NSString *)filename fileExtension:(NSString*)extension; +- (id)initFromURL:(NSURL *)url; +- (id)initFromXMLData:(NSData *)data; +- (id)initFromXMLNode:(xmlNodePtr)node; + ++ (id)elementFromXMLString:(NSString *)xmlString encoding:(NSStringEncoding)encoding; ++ (id)elementFromXMLFile:(NSString *)filename; ++ (id)elementFromXMLFilename:(NSString *)filename fileExtension:(NSString *)extension; ++ (id)elementFromURL:(NSURL *)url; ++ (id)elementFromXMLData:(NSData *)data; ++ (id)elementFromXMLNode:(xmlNodePtr)node; + +- (NSString *)attribute:(NSString *)attributeName; +- (NSString *)attribute:(NSString *)attributeName inNamespace:(NSString *)ns; + +- (NSInteger)attributeAsInt:(NSString *)attributeName; +- (NSInteger)attributeAsInt:(NSString *)attributeName inNamespace:(NSString *)ns; + +- (double)attributeAsDouble:(NSString *)attributeName; +- (double)attributeAsDouble:(NSString *)attributeName inNamespace:(NSString *)ns; + +- (TyphoonRXMLElement*)child:(NSString *)tag; +- (TyphoonRXMLElement*)child:(NSString *)tag inNamespace:(NSString *)ns; + +- (NSArray *)children:(NSString *)tag; +- (NSArray *)children:(NSString *)tag inNamespace:(NSString *)ns; +- (NSArray *)childrenWithRootXPath:(NSString *)xpath; + +- (void)iterate:(NSString *)query usingBlock:(void (^)(TyphoonRXMLElement*))blk; +- (void)iterateWithRootXPath:(NSString *)xpath usingBlock:(void (^)(TyphoonRXMLElement*))blk; +- (void)iterateElements:(NSArray *)elements usingBlock:(void (^)(TyphoonRXMLElement*))blk; + +@property (nonatomic, readonly) NSString *tag; +@property (nonatomic, readonly) NSString *text; +@property (nonatomic, readonly) NSInteger textAsInt; +@property (nonatomic, readonly) double textAsDouble; +@property (nonatomic, readonly) BOOL isValid; + +@end + +typedef void (^TyphoonRXMLBlock)(TyphoonRXMLElement*element); + diff --git a/Tests/Pods/Typhoon/Source/Factory/Xml/TyphoonRXMLElement.m b/Tests/Pods/Typhoon/Source/Factory/Xml/TyphoonRXMLElement.m new file mode 100644 index 000000000..4991f0102 --- /dev/null +++ b/Tests/Pods/Typhoon/Source/Factory/Xml/TyphoonRXMLElement.m @@ -0,0 +1,477 @@ +// ================================================================================================ +// TyphoonRXMLElement+XmlComponentFactory.m +// Fast processing of XML files +// +// ================================================================================================ +// Created by John Blanco on 9/23/11. +// Version 1.4 +// +// Copyright (c) 2011 John Blanco +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// ================================================================================================ +// + +#import "TyphoonRXMLElement.h" + +// macros for supporting ARC/NON-ARC without need for a branch + +#if __has_feature(objc_arc) + #define SAFE_ARC_RELEASE(x) + #define SAFE_ARC_AUTORELEASE(x) (x) + #define SAFE_ARC_SUPER_DEALLOC() +#else + #define SAFE_ARC_RELEASE(x) ([(x) release]) + #define SAFE_ARC_AUTORELEASE(x) ([(x) autorelease]) + #define SAFE_ARC_SUPER_DEALLOC() ([super dealloc]) +#endif + +@implementation TyphoonRXMLElement + +- (id)initFromXMLString:(NSString *)xmlString encoding:(NSStringEncoding)encoding { + if ((self = [super init])) { + NSData *data = [xmlString dataUsingEncoding:encoding]; + + doc_ = xmlReadMemory([data bytes], (int) [data length], "", nil, XML_PARSE_RECOVER); + + if ([self isValid]) { + node_ = xmlDocGetRootElement(doc_); + + if (!node_) { + xmlFreeDoc(doc_); doc_ = nil; + } + } + } + + return self; +} + +- (id)initFromXMLFile:(NSString *)filename { + if ((self = [super init])) { + NSString *fullPath = [[[NSBundle bundleForClass:self.class] bundlePath] stringByAppendingPathComponent:filename]; + NSData *data = [NSData dataWithContentsOfFile:fullPath]; + + doc_ = xmlReadMemory([data bytes], (int) [data length], "", nil, XML_PARSE_RECOVER); + + if ([self isValid]) { + node_ = xmlDocGetRootElement(doc_); + + if (!node_) { + xmlFreeDoc(doc_); doc_ = nil; + } + } + } + + return self; +} + +- (id)initFromXMLFile:(NSString *)filename fileExtension:(NSString *)extension { + if ((self = [super init])) { + NSString *fullPath = [[NSBundle bundleForClass:[self class]] pathForResource:filename ofType:extension]; + NSData *data = [NSData dataWithContentsOfFile:fullPath]; + + doc_ = xmlReadMemory([data bytes], (int) [data length], "", nil, XML_PARSE_RECOVER); + + if ([self isValid]) { + node_ = xmlDocGetRootElement(doc_); + + if (!node_) { + xmlFreeDoc(doc_); doc_ = nil; + } + } + } + + return self; +} + +- (id)initFromURL:(NSURL *)url { + if ((self = [super init])) { + NSData *data = [NSData dataWithContentsOfURL:url]; + + doc_ = xmlReadMemory([data bytes], (int) [data length], "", nil, XML_PARSE_RECOVER); + + if ([self isValid]) { + node_ = xmlDocGetRootElement(doc_); + + if (!node_) { + xmlFreeDoc(doc_); doc_ = nil; + } + } + } + + return self; +} + +- (id)initFromXMLData:(NSData *)data { + if ((self = [super init])) { + doc_ = xmlReadMemory([data bytes], (int) [data length], "", nil, XML_PARSE_RECOVER); + + if ([self isValid]) { + node_ = xmlDocGetRootElement(doc_); + + if (!node_) { + xmlFreeDoc(doc_); doc_ = nil; + } + } + } + + return self; +} + +- (id)initFromXMLNode:(xmlNodePtr)node { + if ((self = [super init])) { + doc_ = nil; + node_ = node; + } + + return self; +} + ++ (id)elementFromXMLString:(NSString *)attributeXML_ encoding:(NSStringEncoding)encoding { + return SAFE_ARC_AUTORELEASE([[TyphoonRXMLElement alloc] initFromXMLString:attributeXML_ encoding:encoding]); +} + ++ (id)elementFromXMLFile:(NSString *)filename { + return SAFE_ARC_AUTORELEASE([[TyphoonRXMLElement alloc] initFromXMLFile:filename]); +} + ++ (id)elementFromXMLFilename:(NSString *)filename fileExtension:(NSString *)extension { + return SAFE_ARC_AUTORELEASE([[TyphoonRXMLElement alloc] initFromXMLFile:filename fileExtension:extension]); +} + ++ (id)elementFromURL:(NSURL *)url { + return SAFE_ARC_AUTORELEASE([[TyphoonRXMLElement alloc] initFromURL:url]); +} + ++ (id)elementFromXMLData:(NSData *)data { + return SAFE_ARC_AUTORELEASE([[TyphoonRXMLElement alloc] initFromXMLData:data]); +} + ++ (id)elementFromXMLNode:(xmlNodePtr)node { + return SAFE_ARC_AUTORELEASE([[TyphoonRXMLElement alloc] initFromXMLNode:node]); +} + +- (NSString *)description { + return [self text]; +} + +- (void)dealloc { + if (doc_ != nil) xmlFreeDoc(doc_); + SAFE_ARC_SUPER_DEALLOC(); +} + +#pragma mark - + +- (NSString *)tag { + return [NSString stringWithUTF8String:(const char *)node_->name]; +} + +- (NSString *)text { + xmlChar *key = xmlNodeGetContent(node_); + NSString *text = (key ? [NSString stringWithUTF8String:(const char *)key] : @""); + xmlFree(key); + + return text; +} + +- (NSInteger)textAsInt { + return [self.text intValue]; +} + +- (double)textAsDouble { + return [self.text doubleValue]; +} + +- (NSString *)attribute:(NSString *)attName { + NSString *ret = nil; + const unsigned char *attCStr = xmlGetProp(node_, (const xmlChar *)[attName cStringUsingEncoding:NSUTF8StringEncoding]); + + if (attCStr) { + ret = [NSString stringWithUTF8String:(const char *)attCStr]; + xmlFree((void *)attCStr); + } + + return ret; +} + +- (NSString *)attribute:(NSString *)attName inNamespace:(NSString *)ns { + const unsigned char *attCStr = xmlGetNsProp(node_, (const xmlChar *)[attName cStringUsingEncoding:NSUTF8StringEncoding], (const xmlChar *)[ns cStringUsingEncoding:NSUTF8StringEncoding]); + + if (attCStr) { + return [NSString stringWithUTF8String:(const char *)attCStr]; + } + + return nil; +} + +- (NSInteger)attributeAsInt:(NSString *)attName { + return [[self attribute:attName] intValue]; +} + +- (NSInteger)attributeAsInt:(NSString *)attName inNamespace:(NSString *)ns { + return [[self attribute:attName inNamespace:ns] intValue]; +} + +- (double)attributeAsDouble:(NSString *)attName { + return [[self attribute:attName] doubleValue]; +} + +- (double)attributeAsDouble:(NSString *)attName inNamespace:(NSString *)ns { + return [[self attribute:attName inNamespace:ns] doubleValue]; +} + +- (BOOL)isValid { + return (doc_ != nil); +} + +#pragma mark - + +- (TyphoonRXMLElement*)child:(NSString *)tag { + NSArray *components = [tag componentsSeparatedByString:@"."]; + xmlNodePtr cur = node_; + + // navigate down + for (NSString *itag in components) { + const xmlChar *tagC = (const xmlChar *)[itag cStringUsingEncoding:NSUTF8StringEncoding]; + + if ([itag isEqualToString:@"*"]) { + cur = cur->children; + + while (cur != nil && cur->type != XML_ELEMENT_NODE) { + cur = cur->next; + } + } else { + cur = cur->children; + while (cur != nil) { + if (cur->type == XML_ELEMENT_NODE && !xmlStrcmp(cur->name, tagC)) { + break; + } + + cur = cur->next; + } + } + + if (!cur) { + break; + } + } + + if (cur) { + return [TyphoonRXMLElement elementFromXMLNode:cur]; + } + + return nil; +} + +- (TyphoonRXMLElement*)child:(NSString *)tag inNamespace:(NSString *)ns { + NSArray *components = [tag componentsSeparatedByString:@"."]; + xmlNodePtr cur = node_; + const xmlChar *namespaceC = (const xmlChar *)[ns cStringUsingEncoding:NSUTF8StringEncoding]; + + // navigate down + for (NSString *itag in components) { + const xmlChar *tagC = (const xmlChar *)[itag cStringUsingEncoding:NSUTF8StringEncoding]; + + if ([itag isEqualToString:@"*"]) { + cur = cur->children; + + while (cur != nil && cur->type != XML_ELEMENT_NODE && !xmlStrcmp(cur->ns->href, namespaceC)) { + cur = cur->next; + } + } else { + cur = cur->children; + while (cur != nil) { + if (cur->type == XML_ELEMENT_NODE && !xmlStrcmp(cur->name, tagC) && !xmlStrcmp(cur->ns->href, namespaceC)) { + break; + } + + cur = cur->next; + } + } + + if (!cur) { + break; + } + } + + if (cur) { + return [TyphoonRXMLElement elementFromXMLNode:cur]; + } + + return nil; +} + +- (NSArray *)children:(NSString *)tag { + const xmlChar *tagC = (const xmlChar *)[tag cStringUsingEncoding:NSUTF8StringEncoding]; + NSMutableArray *children = [NSMutableArray array]; + xmlNodePtr cur = node_->children; + + while (cur != nil) { + if (cur->type == XML_ELEMENT_NODE && !xmlStrcmp(cur->name, tagC)) { + [children addObject:[TyphoonRXMLElement elementFromXMLNode:cur]]; + } + + cur = cur->next; + } + + return SAFE_ARC_AUTORELEASE([children copy]); +} + +- (NSArray *)children:(NSString *)tag inNamespace:(NSString *)ns { + const xmlChar *tagC = (const xmlChar *)[tag cStringUsingEncoding:NSUTF8StringEncoding]; + const xmlChar *namespaceC = (const xmlChar *)[ns cStringUsingEncoding:NSUTF8StringEncoding]; + NSMutableArray *children = [NSMutableArray array]; + xmlNodePtr cur = node_->children; + + while (cur != nil) { + if (cur->type == XML_ELEMENT_NODE && !xmlStrcmp(cur->name, tagC) && !xmlStrcmp(cur->ns->href, namespaceC)) { + [children addObject:[TyphoonRXMLElement elementFromXMLNode:cur]]; + } + + cur = cur->next; + } + + return SAFE_ARC_AUTORELEASE([children copy]); +} + +- (NSArray *)childrenWithRootXPath:(NSString *)xpath { + // check for a query + if (!xpath) { + return [NSArray array]; + } + + xmlXPathContextPtr context = xmlXPathNewContext(doc_); + + if (context == NULL) { + return nil; + } + + xmlXPathObjectPtr object = xmlXPathEvalExpression((xmlChar *)[xpath cStringUsingEncoding:NSUTF8StringEncoding], context); + if(object == NULL) { + return nil; + } + + xmlNodeSetPtr nodes = object->nodesetval; + if (nodes == NULL) { + return nil; + } + + NSMutableArray *resultNodes = [NSMutableArray array]; + + for (NSInteger i = 0; i < nodes->nodeNr; i++) { + TyphoonRXMLElement*element = [TyphoonRXMLElement elementFromXMLNode:nodes->nodeTab[i]]; + + if (element != NULL) { + [resultNodes addObject:element]; + } + } + + xmlXPathFreeObject(object); + xmlXPathFreeContext(context); + + return resultNodes; +} + +#pragma mark - + +- (void)iterate:(NSString *)query usingBlock:(void (^)(TyphoonRXMLElement*))blk { + // check for a query + if (!query) { + return; + } + + NSArray *components = [query componentsSeparatedByString:@"."]; + xmlNodePtr cur = node_; + + // navigate down + for (NSInteger i=0; i < components.count; ++i) { + NSString *iTagName = [components objectAtIndex:i]; + + if ([iTagName isEqualToString:@"*"]) { + cur = cur->children; + + // different behavior depending on if this is the end of the query or midstream + if (i < (components.count - 1)) { + // midstream + do { + if (cur->type == XML_ELEMENT_NODE) { + TyphoonRXMLElement*element = [TyphoonRXMLElement elementFromXMLNode:cur]; + NSString *restOfQuery = [[components subarrayWithRange:NSMakeRange(i + 1, components.count - i - 1)] componentsJoinedByString:@"."]; + [element iterate:restOfQuery usingBlock:blk]; + } + + cur = cur->next; + } while (cur != nil); + + } + } else { + const xmlChar *tagNameC = (const xmlChar *)[iTagName cStringUsingEncoding:NSUTF8StringEncoding]; + + cur = cur->children; + while (cur != nil) { + if (cur->type == XML_ELEMENT_NODE && !xmlStrcmp(cur->name, tagNameC)) { + break; + } + + cur = cur->next; + } + } + + if (!cur) { + break; + } + } + + if (cur) { + // enumerate + NSString *childTagName = [components lastObject]; + + do { + if (cur->type == XML_ELEMENT_NODE) { + TyphoonRXMLElement*element = [TyphoonRXMLElement elementFromXMLNode:cur]; + blk(element); + } + + if ([childTagName isEqualToString:@"*"]) { + cur = cur->next; + } else { + const xmlChar *tagNameC = (const xmlChar *)[childTagName cStringUsingEncoding:NSUTF8StringEncoding]; + + while ((cur = cur->next)) { + if (cur->type == XML_ELEMENT_NODE && !xmlStrcmp(cur->name, tagNameC)) { + break; + } + } + } + } while (cur); + } +} + +- (void)iterateWithRootXPath:(NSString *)xpath usingBlock:(void (^)(TyphoonRXMLElement*))blk { + NSArray *children = [self childrenWithRootXPath:xpath]; + [self iterateElements:children usingBlock:blk]; +} + +- (void)iterateElements:(NSArray *)elements usingBlock:(void (^)(TyphoonRXMLElement*))blk { + for (TyphoonRXMLElement*iElement in elements) { + blk(iElement); + } +} + +@end diff --git a/Tests/Pods/Typhoon/Source/Factory/Xml/TyphoonXmlComponentFactory.h b/Tests/Pods/Typhoon/Source/Factory/Xml/TyphoonXmlComponentFactory.h new file mode 100644 index 000000000..f41ed97b3 --- /dev/null +++ b/Tests/Pods/Typhoon/Source/Factory/Xml/TyphoonXmlComponentFactory.h @@ -0,0 +1,28 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// JASPER BLUES +// Copyright 2012 - 2013 Jasper Blues +// All Rights Reserved. +// +// NOTICE: Jasper Blues permits you to use, modify, and distribute this file +// in accordance with the terms of the license agreement accompanying it. +// +//////////////////////////////////////////////////////////////////////////////// + + + + +#import +#import "TyphoonComponentFactory.h" + + +@interface TyphoonXmlComponentFactory : TyphoonComponentFactory +{ + NSMutableArray* _resourceNames; +} + +- (id)initWithConfigFileName:(NSString*)configFileName; + +- (id)initWithConfigFileNames:(NSString*)configFileNames, ...NS_REQUIRES_NIL_TERMINATION; + +@end \ No newline at end of file diff --git a/Tests/Pods/Typhoon/Source/Factory/Xml/TyphoonXmlComponentFactory.m b/Tests/Pods/Typhoon/Source/Factory/Xml/TyphoonXmlComponentFactory.m new file mode 100644 index 000000000..fd163cb6e --- /dev/null +++ b/Tests/Pods/Typhoon/Source/Factory/Xml/TyphoonXmlComponentFactory.m @@ -0,0 +1,66 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// JASPER BLUES +// Copyright 2012 - 2013 Jasper Blues +// All Rights Reserved. +// +// NOTICE: Jasper Blues permits you to use, modify, and distribute this file +// in accordance with the terms of the license agreement accompanying it. +// +//////////////////////////////////////////////////////////////////////////////// + + +#import "TyphoonXmlComponentFactory.h" +#import "TyphoonBundleResource.h" +#import "TyphoonRXMLElement+XmlComponentFactory.h" + + +@implementation TyphoonXmlComponentFactory + +/* ============================================================ Initializers ============================================================ */ +- (id)initWithConfigFileName:(NSString*)configFileName +{ + return [self initWithConfigFileNames:configFileName, nil]; +} + +- (id)initWithConfigFileNames:(NSString*)configFileName, ... +{ + self = [super init]; + if (self) + { + va_list xml_list; + _resourceNames = [NSMutableArray arrayWithObject:configFileName]; + + va_start(xml_list, configFileName); + NSString* resourceName; + while ((resourceName = va_arg( xml_list, NSString *))) + { + [_resourceNames addObject:resourceName]; + } + va_end(xml_list); + [self parseComponentDefinitions]; + } + return self; +} + + +/* ============================================================ Private Methods ========================================================= */ +- (void)parseComponentDefinitions +{ + for (NSString* resourceName in _resourceNames) + { + NSString* xmlString = [[TyphoonBundleResource withName:resourceName] asString]; + TyphoonRXMLElement* element = [TyphoonRXMLElement elementFromXMLString:xmlString encoding:NSUTF8StringEncoding]; + + [element iterate:@"*" usingBlock:^(TyphoonRXMLElement* child) + { + if ([[child tag] isEqualToString:@"component"]) + { + [self register:[child asComponentDefinition]]; + } + }]; + } +} + + +@end \ No newline at end of file diff --git a/Tests/Pods/Typhoon/Source/TypeConversion/TyphoonNSURLTypeConverter.h b/Tests/Pods/Typhoon/Source/TypeConversion/TyphoonNSURLTypeConverter.h new file mode 100644 index 000000000..cc2d9adba --- /dev/null +++ b/Tests/Pods/Typhoon/Source/TypeConversion/TyphoonNSURLTypeConverter.h @@ -0,0 +1,19 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// JASPER BLUES +// Copyright 2012 - 2013 Jasper Blues +// All Rights Reserved. +// +// NOTICE: Jasper Blues permits you to use, modify, and distribute this file +// in accordance with the terms of the license agreement accompanying it. +// +//////////////////////////////////////////////////////////////////////////////// + + + +#import +#import "TyphoonTypeConverter.h" + + +@interface TyphoonNSURLTypeConverter : NSObject +@end \ No newline at end of file diff --git a/Tests/Pods/Typhoon/Source/TypeConversion/TyphoonNSURLTypeConverter.m b/Tests/Pods/Typhoon/Source/TypeConversion/TyphoonNSURLTypeConverter.m new file mode 100644 index 000000000..b28bbba95 --- /dev/null +++ b/Tests/Pods/Typhoon/Source/TypeConversion/TyphoonNSURLTypeConverter.m @@ -0,0 +1,24 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// JASPER BLUES +// Copyright 2012 - 2013 Jasper Blues +// All Rights Reserved. +// +// NOTICE: Jasper Blues permits you to use, modify, and distribute this file +// in accordance with the terms of the license agreement accompanying it. +// +//////////////////////////////////////////////////////////////////////////////// + + +#import "TyphoonNSURLTypeConverter.h" + + +@implementation TyphoonNSURLTypeConverter + +- (id)convert:(NSString*)stringValue +{ + return [NSURL URLWithString:stringValue]; +} + + +@end \ No newline at end of file diff --git a/Tests/Pods/Typhoon/Source/TypeConversion/TyphoonPassThroughTypeConverter.h b/Tests/Pods/Typhoon/Source/TypeConversion/TyphoonPassThroughTypeConverter.h new file mode 100644 index 000000000..46df94977 --- /dev/null +++ b/Tests/Pods/Typhoon/Source/TypeConversion/TyphoonPassThroughTypeConverter.h @@ -0,0 +1,26 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// JASPER BLUES +// Copyright 2012 - 2013 Jasper Blues +// All Rights Reserved. +// +// NOTICE: Jasper Blues permits you to use, modify, and distribute this file +// in accordance with the terms of the license agreement accompanying it. +// +//////////////////////////////////////////////////////////////////////////////// + + +#import +#import "TyphoonTypeConverter.h" + +/** +* A 'type converter' for NSString and NSMutableString. +*/ +@interface TyphoonPassThroughTypeConverter : NSObject +{ + BOOL _isMutable; +} + +- (id)initWithIsMutable:(BOOL)isMutable; + +@end \ No newline at end of file diff --git a/Tests/Pods/Typhoon/Source/TypeConversion/TyphoonPassThroughTypeConverter.m b/Tests/Pods/Typhoon/Source/TypeConversion/TyphoonPassThroughTypeConverter.m new file mode 100644 index 000000000..af162e673 --- /dev/null +++ b/Tests/Pods/Typhoon/Source/TypeConversion/TyphoonPassThroughTypeConverter.m @@ -0,0 +1,43 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// JASPER BLUES +// Copyright 2012 - 2013 Jasper Blues +// All Rights Reserved. +// +// NOTICE: Jasper Blues permits you to use, modify, and distribute this file +// in accordance with the terms of the license agreement accompanying it. +// +//////////////////////////////////////////////////////////////////////////////// + + +#import "TyphoonPassThroughTypeConverter.h" + + +@implementation TyphoonPassThroughTypeConverter + +/* ============================================================ Initializers ============================================================ */ +- (id)initWithIsMutable:(BOOL)isMutable +{ + self = [super init]; + if (self) + { + _isMutable = isMutable; + } + return self; +} + +/* =========================================================== Protocol Methods ========================================================= */ +- (id)convert:(NSString*)stringValue +{ + if (_isMutable) + { + return [NSMutableString stringWithString:stringValue]; + } + else + { + return [NSString stringWithString:stringValue]; + } +} + + +@end \ No newline at end of file diff --git a/Tests/Pods/Typhoon/Source/TypeConversion/TyphoonPrimitiveTypeConverter.h b/Tests/Pods/Typhoon/Source/TypeConversion/TyphoonPrimitiveTypeConverter.h new file mode 100644 index 000000000..88272f627 --- /dev/null +++ b/Tests/Pods/Typhoon/Source/TypeConversion/TyphoonPrimitiveTypeConverter.h @@ -0,0 +1,53 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// JASPER BLUES +// Copyright 2012 - 2013 Jasper Blues +// All Rights Reserved. +// +// NOTICE: Jasper Blues permits you to use, modify, and distribute this file +// in accordance with the terms of the license agreement accompanying it. +// +//////////////////////////////////////////////////////////////////////////////// + + +#import +#import "TyphoonTypeConverter.h" + + +@interface TyphoonPrimitiveTypeConverter : NSObject + + +- (int)convertToInt:(NSString*)stringValue; + +- (short)convertToShort:(NSString*)stringValue; + +- (long)convertToLong:(NSString*)stringValue; + +- (long long)convertToLongLong:(NSString*)stringValue; + +- (unsigned char)convertToUnsignedChar:(NSString*)stringValue; + +- (unsigned int)convertToUnsignedInt:(NSString*)stringValue; + +- (unsigned short)convertToUnsignedShort:(NSString*)stringValue; + +- (unsigned long)convertToUnsignedLong:(NSString*)stringValue; + +- (unsigned long long)convertToUnsignedLongLong:(NSString*)stringValue; + +- (float)convertToFloat:(NSString*)stringValue; + +- (double)convertToDouble:(NSString*)stringValue; + +- (BOOL)convertToBoolean:(NSString*)stringValue; + +- (const char*)convertToCString:(NSString*)stringValue; + +- (Class)convertToClass:(NSString*)stringValue; + +- (SEL)convertToSelector:(NSString*)stringValue; + +- (void)setPrimitiveArgumentFor:(NSInvocation*)invocation index:(NSUInteger)index textValue:(NSString*)textValue + requiredType:(TyphoonTypeDescriptor*)requiredType; + +@end \ No newline at end of file diff --git a/Tests/Pods/Typhoon/Source/TypeConversion/TyphoonPrimitiveTypeConverter.m b/Tests/Pods/Typhoon/Source/TypeConversion/TyphoonPrimitiveTypeConverter.m new file mode 100644 index 000000000..409c51b84 --- /dev/null +++ b/Tests/Pods/Typhoon/Source/TypeConversion/TyphoonPrimitiveTypeConverter.m @@ -0,0 +1,206 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// JASPER BLUES +// Copyright 2012 - 2013 Jasper Blues +// All Rights Reserved. +// +// NOTICE: Jasper Blues permits you to use, modify, and distribute this file +// in accordance with the terms of the license agreement accompanying it. +// +//////////////////////////////////////////////////////////////////////////////// + + +#import "TyphoonPrimitiveTypeConverter.h" +#import "TyphoonTypeDescriptor.h" + + +@implementation TyphoonPrimitiveTypeConverter + + +/* ========================================================== Interface Methods ========================================================= */ + +- (int)convertToInt:(NSString*)stringValue +{ + NSScanner* scanner = [[NSScanner alloc] initWithString:stringValue]; + int converted = 0; + [scanner scanInt:&converted]; + return converted; +} + +- (short)convertToShort:(NSString*)stringValue +{ + NSScanner* scanner = [[NSScanner alloc] initWithString:stringValue]; + int converted = 0; + [scanner scanInt:&converted]; + return [[NSNumber numberWithInt:converted] shortValue]; +} + +- (long)convertToLong:(NSString*)stringValue +{ + NSScanner* scanner = [[NSScanner alloc] initWithString:stringValue]; + long long converted = 0; + [scanner scanLongLong:&converted]; + return [[NSNumber numberWithLongLong:converted] longValue]; +} + +- (long long)convertToLongLong:(NSString*)stringValue +{ + NSScanner* scanner = [[NSScanner alloc] initWithString:stringValue]; + long long converted = 0; + [scanner scanLongLong:&converted]; + return converted; +} + +- (unsigned char)convertToUnsignedChar:(NSString*)stringValue +{ + NSScanner* scanner = [[NSScanner alloc] initWithString:stringValue]; + int converted = 0; + [scanner scanInt:&converted]; + return (unsigned char) converted; +} + +- (unsigned int)convertToUnsignedInt:(NSString*)stringValue +{ + NSScanner* scanner = [[NSScanner alloc] initWithString:stringValue]; + int converted = 0; + [scanner scanInt:&converted]; + return [[NSNumber numberWithInt:converted] unsignedIntValue]; +} + +- (unsigned short)convertToUnsignedShort:(NSString*)stringValue +{ + NSScanner* scanner = [[NSScanner alloc] initWithString:stringValue]; + int converted = 0; + [scanner scanInt:&converted]; + return [[NSNumber numberWithInt:converted] unsignedShortValue]; +} + +- (unsigned long)convertToUnsignedLong:(NSString*)stringValue +{ + NSScanner* scanner = [[NSScanner alloc] initWithString:stringValue]; + long long converted = 0; + [scanner scanLongLong:&converted]; + return [[NSNumber numberWithLong:converted] unsignedLongValue]; +} + +- (unsigned long long)convertToUnsignedLongLong:(NSString*)stringValue +{ + NSScanner* scanner = [[NSScanner alloc] initWithString:stringValue]; + long long converted = 0; + [scanner scanLongLong:&converted]; + return [[NSNumber numberWithLongLong:converted] unsignedLongValue]; +} + +- (float)convertToFloat:(NSString*)stringValue +{ + NSScanner* scanner = [[NSScanner alloc] initWithString:stringValue]; + float converted = 0; + [scanner scanFloat:&converted]; + return converted; +} + +- (double)convertToDouble:(NSString*)stringValue +{ + NSScanner* scanner = [[NSScanner alloc] initWithString:stringValue]; + double converted = 0; + [scanner scanDouble:&converted]; + return converted; +} + +- (BOOL)convertToBoolean:(NSString*)stringValue +{ + return [stringValue boolValue]; +} + +- (const char*)convertToCString:(NSString*)stringValue +{ + return [stringValue cStringUsingEncoding:NSUTF8StringEncoding]; +} + +- (Class)convertToClass:(NSString*)stringValue +{ + return NSClassFromString(stringValue); +} + +- (SEL)convertToSelector:(NSString*)stringValue +{ + return NSSelectorFromString(stringValue); +} + +/* ====================================================================================================================================== */ +- (void)setPrimitiveArgumentFor:(NSInvocation*)invocation index:(NSUInteger)index textValue:(NSString*)textValue + requiredType:(TyphoonTypeDescriptor*)requiredType +{ + if (requiredType.primitiveType == TyphoonPrimitiveTypeBoolean || requiredType.primitiveType == TyphoonPrimitiveTypeChar) + { + BOOL converted = [self convertToBoolean:textValue]; + [invocation setArgument:&converted atIndex:index]; + } + else if (requiredType.primitiveType == TyphoonPrimitiveTypeClass) + { + Class converted = [self convertToClass:textValue]; + [invocation setArgument:&converted atIndex:index]; + } + else if (requiredType.primitiveType == TyphoonPrimitiveTypeDouble) + { + double converted = [self convertToDouble:textValue]; + [invocation setArgument:&converted atIndex:index]; + } + else if (requiredType.primitiveType == TyphoonPrimitiveTypeFloat) + { + float converted = [self convertToFloat:textValue]; + [invocation setArgument:&converted atIndex:index]; + } + else if (requiredType.primitiveType == TyphoonPrimitiveTypeInt) + { + int converted = [self convertToInt:textValue]; + [invocation setArgument:&converted atIndex:index]; + } + else if (requiredType.primitiveType == TyphoonPrimitiveTypeLong) + { + long converted = [self convertToLong:textValue]; + [invocation setArgument:&converted atIndex:index]; + } + else if (requiredType.primitiveType == TyphoonPrimitiveTypeLongLong) + { + long long converted = [self convertToLongLong:textValue]; + [invocation setArgument:&converted atIndex:index]; + } + else if (requiredType.primitiveType == TyphoonPrimitiveTypeSelector) + { + SEL converted = [self convertToSelector:textValue]; + [invocation setArgument:&converted atIndex:index]; + } + else if (requiredType.primitiveType == TyphoonPrimitiveTypeString) + { + const char* converted = [self convertToCString:textValue]; + [invocation setArgument:&converted atIndex:index]; + } + else if (requiredType.primitiveType == TyphoonPrimitiveTypeUnsignedChar) + { + unsigned char converted = [self convertToUnsignedChar:textValue]; + [invocation setArgument:&converted atIndex:index]; + } + else if (requiredType.primitiveType == TyphoonPrimitiveTypeUnsignedInt) + { + unsigned int converted = [self convertToUnsignedInt:textValue]; + [invocation setArgument:&converted atIndex:index]; + } + else if (requiredType.primitiveType == TyphoonPrimitiveTypeUnsignedLong) + { + unsigned long converted = [self convertToUnsignedLong:textValue]; + [invocation setArgument:&converted atIndex:index]; + } + else if (requiredType.primitiveType == TyphoonPrimitiveTypeUnsignedLongLong) + { + unsigned long long converted = [self convertToUnsignedLongLong:textValue]; + [invocation setArgument:&converted atIndex:index]; + } + else + { + [NSException raise:NSInvalidArgumentException format:@"Type for %@ is not supported.", requiredType]; + } +} + + +@end \ No newline at end of file diff --git a/Tests/Pods/Typhoon/Source/TypeConversion/TyphoonTypeConverter.h b/Tests/Pods/Typhoon/Source/TypeConversion/TyphoonTypeConverter.h new file mode 100644 index 000000000..bdfdfcac6 --- /dev/null +++ b/Tests/Pods/Typhoon/Source/TypeConversion/TyphoonTypeConverter.h @@ -0,0 +1,24 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// JASPER BLUES +// Copyright 2012 - 2013 Jasper Blues +// All Rights Reserved. +// +// NOTICE: Jasper Blues permits you to use, modify, and distribute this file +// in accordance with the terms of the license agreement accompanying it. +// +//////////////////////////////////////////////////////////////////////////////// + + +#import + +@class TyphoonTypeDescriptor; + +/** +* Declares a contract for converting configuration arguments to their required runtime type. +*/ +@protocol TyphoonTypeConverter + +- (id)convert:(NSString*)stringValue; + +@end \ No newline at end of file diff --git a/Tests/Pods/Typhoon/Source/TypeConversion/TyphoonTypeConverterRegistry.h b/Tests/Pods/Typhoon/Source/TypeConversion/TyphoonTypeConverterRegistry.h new file mode 100644 index 000000000..9ee3b09fd --- /dev/null +++ b/Tests/Pods/Typhoon/Source/TypeConversion/TyphoonTypeConverterRegistry.h @@ -0,0 +1,51 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// JASPER BLUES +// Copyright 2012 - 2013 Jasper Blues +// All Rights Reserved. +// +// NOTICE: Jasper Blues permits you to use, modify, and distribute this file +// in accordance with the terms of the license agreement accompanying it. +// +//////////////////////////////////////////////////////////////////////////////// + + +#import + +@protocol TyphoonTypeConverter; +@class TyphoonTypeDescriptor; +@class TyphoonPrimitiveTypeConverter; + + +/** +* Registry of type converters, with special treatment for primitives. +*/ +@interface TyphoonTypeConverterRegistry : NSObject +{ + TyphoonPrimitiveTypeConverter* _primitiveTypeConverter; + NSMutableDictionary* _typeConverters; +} + +/** +* Returns the shard/default registry instance used by the container. +*/ ++ (TyphoonTypeConverterRegistry*)shared; + +/** +* Returns the type converter for the given type either a Class object or @protocol(SomeType). +*/ +- (id )converterFor:(TyphoonTypeDescriptor*)typeDescriptor; + +/** +* Returns the type converter for primitives - BOOLS, ints, floats, etc. +*/ +- (TyphoonPrimitiveTypeConverter*)primitiveTypeConverter; + +/** +* Registers a converter for the given type (either a Class object or @protocol. If a converter exists for the type, +* raises an exception. +*/ +- (void)register:(id )converter forClassOrProtocol:(id)classOrProtocol; + + +@end \ No newline at end of file diff --git a/Tests/Pods/Typhoon/Source/TypeConversion/TyphoonTypeConverterRegistry.m b/Tests/Pods/Typhoon/Source/TypeConversion/TyphoonTypeConverterRegistry.m new file mode 100644 index 000000000..eb2ab32c3 --- /dev/null +++ b/Tests/Pods/Typhoon/Source/TypeConversion/TyphoonTypeConverterRegistry.m @@ -0,0 +1,90 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// JASPER BLUES +// Copyright 2012 - 2013 Jasper Blues +// All Rights Reserved. +// +// NOTICE: Jasper Blues permits you to use, modify, and distribute this file +// in accordance with the terms of the license agreement accompanying it. +// +//////////////////////////////////////////////////////////////////////////////// + + +#import +#import "TyphoonTypeConverterRegistry.h" +#import "TyphoonTypeConverter.h" +#import "TyphoonTypeDescriptor.h" +#import "TyphoonPrimitiveTypeConverter.h" +#import "TyphoonPassThroughTypeConverter.h" +#import "TyphoonNSURLTypeConverter.h" + + +@implementation TyphoonTypeConverterRegistry + +/* =========================================================== Class Methods ============================================================ */ ++ (TyphoonTypeConverterRegistry*)shared +{ + static dispatch_once_t onceToken; + static TyphoonTypeConverterRegistry* instance; + + dispatch_once(&onceToken, ^ + { + instance = [[[self class] alloc] init]; + }); + return instance; +} + +/* ============================================================ Initializers ============================================================ */ +- (id)init +{ + self = [super init]; + if (self) + { + _typeConverters = [[NSMutableDictionary alloc] init]; + _primitiveTypeConverter = [[TyphoonPrimitiveTypeConverter alloc] init]; + + [self register:[[TyphoonPassThroughTypeConverter alloc] initWithIsMutable:NO] forClassOrProtocol:[NSString class]]; + [self register:[[TyphoonPassThroughTypeConverter alloc] initWithIsMutable:YES] forClassOrProtocol:[NSMutableString class]]; + [self register:[[TyphoonNSURLTypeConverter alloc] init] forClassOrProtocol:[NSURL class]]; + } + return self; +} + + +/* ========================================================== Interface Methods ========================================================= */ +- (id )converterFor:(TyphoonTypeDescriptor*)typeDescriptor +{ + + id converter = [_typeConverters objectForKey:[typeDescriptor classOrProtocol]]; + if (!converter) + { + [NSException raise:NSInvalidArgumentException format:@"No type converter registered for type: '%@'.", + [typeDescriptor classOrProtocol]]; + + } + return converter; +} + +- (TyphoonPrimitiveTypeConverter*)primitiveTypeConverter +{ + return _primitiveTypeConverter; +} + +- (void)register:(id )converter forClassOrProtocol:(id)classOrProtocol; +{ + if (!([_typeConverters objectForKey:classOrProtocol])) + { + [_typeConverters setObject:converter forKey:(id ) classOrProtocol]; + } + else + { + BOOL isClass = class_isMetaClass(object_getClass(classOrProtocol)); + NSString* name = isClass ? NSStringFromClass(classOrProtocol) : NSStringFromProtocol(classOrProtocol); + [NSException raise:NSInvalidArgumentException format:@"Converter for '%@' already registered.", name]; + } +} + + + + +@end \ No newline at end of file diff --git a/Tests/Pods/Typhoon/Source/TypeConversion/TyphoonTypeDescriptor.h b/Tests/Pods/Typhoon/Source/TypeConversion/TyphoonTypeDescriptor.h new file mode 100644 index 000000000..9db11dc7e --- /dev/null +++ b/Tests/Pods/Typhoon/Source/TypeConversion/TyphoonTypeDescriptor.h @@ -0,0 +1,95 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// JASPER BLUES +// Copyright 2012 - 2013 Jasper Blues +// All Rights Reserved. +// +// NOTICE: Jasper Blues permits you to use, modify, and distribute this file +// in accordance with the terms of the license agreement accompanying it. +// +//////////////////////////////////////////////////////////////////////////////// + + +#import + +typedef enum +{ + TyphoonPrimitiveTypeUnknown, + TyphoonPrimitiveTypeChar, + TyphoonPrimitiveTypeInt, + TyphoonPrimitiveTypeShort, + TyphoonPrimitiveTypeLong, + TyphoonPrimitiveTypeLongLong, + TyphoonPrimitiveTypeUnsignedChar, + TyphoonPrimitiveTypeUnsignedInt, + TyphoonPrimitiveTypeUnsignedShort, + TyphoonPrimitiveTypeUnsignedLong, + TyphoonPrimitiveTypeUnsignedLongLong, + TyphoonPrimitiveTypeFloat, + TyphoonPrimitiveTypeDouble, + TyphoonPrimitiveTypeBoolean, + TyphoonPrimitiveTypeVoid, + TyphoonPrimitiveTypeString, + TyphoonPrimitiveTypeClass, + TyphoonPrimitiveTypeSelector, + TyphoonPrimitiveTypeBitField, +} TyphoonPrimitiveType; + + +@interface TyphoonTypeDescriptor : NSObject + +/** +* Indicates if the type being described is a primitive. +*/ +@property(nonatomic, readonly) BOOL isPrimitive; + +/** +* The primitive type being described (if the type being described is a primitive). +*/ +@property(nonatomic, readonly) TyphoonPrimitiveType primitiveType; + +/** +* The type being described, or nil if the type is a primitive or protocol. +*/ +@property(nonatomic, readonly) Class typeBeingDescribed; + +/** +* The protocol being described. +*/ +@property(nonatomic, readonly) Protocol* protocol; + +/** +* Indicates a primitive type is an array. +*/ +@property(nonatomic, readonly) BOOL isArray; + +/** +* Array length for primitive type. +*/ +@property(nonatomic, readonly) int arrayLength; + +/** +* Indicates a primitive type is a pointer. +*/ +@property(nonatomic, readonly) BOOL isPointer; + +/** +* Indicates a primitive type is a structure. +*/ +@property(nonatomic, readonly) BOOL isStructure; + +@property(nonatomic, strong, readonly) NSString* structureTypeName; + ++ (TyphoonTypeDescriptor*)descriptorWithTypeCode:(NSString*)typeCode; + ++ (TyphoonTypeDescriptor*)descriptorWithClassOrProtocol:(id)classOrProtocol; + +- (id)initWithTypeCode:(NSString*)typeCode; + +/** +* Returns the class or protocol. If the type descriptor is for a primitive, returns nil. +*/ +- (id)classOrProtocol; + + +@end \ No newline at end of file diff --git a/Tests/Pods/Typhoon/Source/TypeConversion/TyphoonTypeDescriptor.m b/Tests/Pods/Typhoon/Source/TypeConversion/TyphoonTypeDescriptor.m new file mode 100644 index 000000000..bfc85581e --- /dev/null +++ b/Tests/Pods/Typhoon/Source/TypeConversion/TyphoonTypeDescriptor.m @@ -0,0 +1,180 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// JASPER BLUES +// Copyright 2012 - 2013 Jasper Blues +// All Rights Reserved. +// +// NOTICE: Jasper Blues permits you to use, modify, and distribute this file +// in accordance with the terms of the license agreement accompanying it. +// +//////////////////////////////////////////////////////////////////////////////// + + + +#import +#import "TyphoonTypeDescriptor.h" + +@implementation NSDictionary (DeucePrimitiveType) + ++ (NSDictionary*)dictionaryWithDeucePrimitiveTypesAsStrings +{ + static dispatch_once_t onceToken; + static NSDictionary* _deucePrimitiveTypesAsStrings; + + dispatch_once(&onceToken, ^ +{ + _deucePrimitiveTypesAsStrings = + [[NSDictionary alloc] initWithObjectsAndKeys:@(TyphoonPrimitiveTypeChar), @"c", @(TyphoonPrimitiveTypeInt), @"i", + @(TyphoonPrimitiveTypeShort), @"s", @(TyphoonPrimitiveTypeLong), @"l", + @(TyphoonPrimitiveTypeLongLong), @"q", @(TyphoonPrimitiveTypeUnsignedChar), @"C", + @(TyphoonPrimitiveTypeUnsignedInt), @"I", @(TyphoonPrimitiveTypeUnsignedShort), @"S", + @(TyphoonPrimitiveTypeUnsignedLong), @"L", + @(TyphoonPrimitiveTypeUnsignedLongLong), @"Q", @(TyphoonPrimitiveTypeFloat), @"f", + @(TyphoonPrimitiveTypeDouble), @"d", @(TyphoonPrimitiveTypeBoolean), @"B", + @(TyphoonPrimitiveTypeVoid), @"v", @(TyphoonPrimitiveTypeString), @"*", + @(TyphoonPrimitiveTypeClass), @"#", @(TyphoonPrimitiveTypeSelector), @":", + @(TyphoonPrimitiveTypeUnknown), @"?", nil]; +}); + return _deucePrimitiveTypesAsStrings; +} + +@end + +@implementation TyphoonTypeDescriptor + +/* =========================================================== Class Methods ============================================================ */ ++ (TyphoonTypeDescriptor*)descriptorWithTypeCode:(NSString*)typeCode +{ + return [[[self class] alloc] initWithTypeCode:typeCode]; +} + ++ (TyphoonTypeDescriptor*)descriptorWithClassOrProtocol:(id)classOrProtocol; +{ + if (class_isMetaClass(object_getClass(classOrProtocol))) + { + return [self descriptorWithTypeCode:[NSString stringWithFormat:@"T@%@", NSStringFromClass(classOrProtocol)]]; + } + return [self descriptorWithTypeCode:[NSString stringWithFormat:@"T@<%@>", NSStringFromProtocol(classOrProtocol)]]; +} + +/* ============================================================ Initializers ============================================================ */ +- (id)initWithTypeCode:(NSString*)typeCode +{ + self = [super init]; + if (self) + { + if ([typeCode hasPrefix:@"T@"]) + { + _isPrimitive = NO; + typeCode = [typeCode stringByReplacingOccurrencesOfString:@"T@" withString:@""]; + typeCode = [typeCode stringByReplacingOccurrencesOfString:@"\"" withString:@""]; + if ([typeCode hasPrefix:@"<"] && [typeCode hasSuffix:@">"]) + { + typeCode = [typeCode stringByReplacingOccurrencesOfString:@"<" withString:@""]; + typeCode = [typeCode stringByReplacingOccurrencesOfString:@">" withString:@""]; + _protocol = NSProtocolFromString(typeCode); + } + else + { + _typeBeingDescribed = NSClassFromString(typeCode); + } + } + else + { + _isPrimitive = YES; + typeCode = [typeCode stringByReplacingOccurrencesOfString:@"T" withString:@""]; + [self parsePrimitiveType:typeCode]; + } + } + return self; +} + +/* ========================================================== Interface Methods ========================================================= */ +- (id)classOrProtocol +{ + if (_typeBeingDescribed) + { + return _typeBeingDescribed; + } + else + { + return _protocol; + } +} + +/* ============================================================ Utility Methods ========================================================= */ +- (NSString*)description +{ + if (_isPrimitive) + { + return [NSString stringWithFormat:@"Type descriptor for primitive: %i", _primitiveType]; + } + else + { + Protocol* protocol = [self protocol]; + if (protocol) + { + return [NSString stringWithFormat:@"Type descriptor: id<%@>", NSStringFromProtocol(protocol)]; + } + else + { + return [NSString stringWithFormat:@"Type descriptor: %@", [self classOrProtocol]]; + } + + } +} + +/* ============================================================ Private Methods ========================================================= */ +- (void)parsePrimitiveType:(NSString*)typeCode +{ + NSLog(@"Parsing typeCode: %@", typeCode); + typeCode = [self extractArrayInformation:typeCode]; + typeCode = [self extractPointerInformation:typeCode]; + typeCode = [self extractStructureInformation:typeCode]; + _primitiveType = [self typeFromTypeCode:typeCode]; + + +} + +- (NSString*)extractArrayInformation:(NSString*)typeCode +{ + if ([typeCode hasPrefix:@"["] && [typeCode hasSuffix:@"]"]) + { + _isArray = YES; + typeCode = [[typeCode stringByReplacingOccurrencesOfString:@"[" withString:@""] + stringByReplacingOccurrencesOfString:@"]" withString:@""]; + NSScanner* scanner = [[NSScanner alloc] initWithString:typeCode]; + [scanner scanInt:&_arrayLength]; + typeCode = [typeCode stringByTrimmingCharactersInSet:[NSCharacterSet decimalDigitCharacterSet]]; + } + return typeCode; +} + +- (NSString*)extractPointerInformation:(NSString*)typeCode +{ + if ([typeCode hasPrefix:@"^"]) + { + _isPointer = YES; + typeCode = [typeCode stringByReplacingOccurrencesOfString:@"^" withString:@""]; + } + return typeCode; +} + +- (NSString*)extractStructureInformation:(NSString*)typeCode +{ + if ([typeCode hasPrefix:@"{"] && [typeCode hasSuffix:@"}"]) + { + _isStructure = YES; + typeCode = [[typeCode stringByReplacingOccurrencesOfString:@"{" withString:@""] + stringByReplacingOccurrencesOfString:@"}" withString:@""]; + _structureTypeName = [typeCode copy]; + } + return typeCode; +} + +- (TyphoonPrimitiveType)typeFromTypeCode:(NSString*)typeCode +{ + return (TyphoonPrimitiveType) [[[NSDictionary dictionaryWithDeucePrimitiveTypesAsStrings] objectForKey:typeCode] intValue]; +} + +@end \ No newline at end of file diff --git a/Tests/Pods/Typhoon/Source/Typhoon.h b/Tests/Pods/Typhoon/Source/Typhoon.h new file mode 100644 index 000000000..a424d1740 --- /dev/null +++ b/Tests/Pods/Typhoon/Source/Typhoon.h @@ -0,0 +1,37 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// JASPER BLUES +// Copyright 2013 Jasper Blues +// All Rights Reserved. +// +// NOTICE: Jasper Blues permits you to use, modify, and distribute this file +// in accordance with the terms of the license agreement accompanying it. +// +//////////////////////////////////////////////////////////////////////////////// + +#import "TyphoonDefinition.h" +#import "TyphoonInitializer.h" +#import "TyphoonPropertyPlaceholderConfigurer.h" +#import "TyphoonResource.h" +#import "TyphoonBundleResource.h" +#import "TyphoonComponentFactory.h" +#import "TyphoonComponentFactory+InstanceBuilder.h" +#import "TyphoonXmlComponentFactory.h" +#import "TyphoonComponentFactoryMutator.h" +#import "TyphoonRXMLElement+XmlComponentFactory.h" +#import "TyphoonRXMLElement.h" +#import "TyphoonTestUtils.h" +#import "TyphoonIntrospectionUtils.h" +#import "TyphoonAssembly.h" + +//TODO: Possibly move this to make explicit +#import "TyphoonBlockComponentFactory.h" + +#import "TyphoonAutowire.h" +#import "TyphoonShorthand.h" + + +//TODO: Add debug and info level logs + +#define Typhoon_LogDealloc() NSLog(@"******* %@ in dealloc ****", NSStringFromClass([self class])); + diff --git a/Tests/Pods/Typhoon/Source/TyphoonAutowire.h b/Tests/Pods/Typhoon/Source/TyphoonAutowire.h new file mode 100644 index 000000000..5857cbd00 --- /dev/null +++ b/Tests/Pods/Typhoon/Source/TyphoonAutowire.h @@ -0,0 +1,22 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// JASPER BLUES +// Copyright 2013 Jasper Blues +// All Rights Reserved. +// +// NOTICE: Jasper Blues permits you to use, modify, and distribute this file +// in accordance with the terms of the license agreement accompanying it. +// +//////////////////////////////////////////////////////////////////////////////// + +#define typhoon_autoWire(args...) \ + + (NSSet *)typhoonAutoInjectedProperties { \ + NSMutableSet* autoInjectProperties = [NSMutableSet set]; \ + SEL the_selectors[] = {args}; \ + int argCount = (sizeof((SEL[]){args})/sizeof(SEL)); \ + for (int i = 0; i < argCount; i++) { \ + SEL selector = the_selectors[i]; \ + [autoInjectProperties addObject:NSStringFromSelector(selector)]; \ + } \ + return TyphoonAutoWiredProperties(self, autoInjectProperties); \ + } diff --git a/Tests/Pods/Typhoon/Source/TyphoonShorthand.h b/Tests/Pods/Typhoon/Source/TyphoonShorthand.h new file mode 100644 index 000000000..6eabb058a --- /dev/null +++ b/Tests/Pods/Typhoon/Source/TyphoonShorthand.h @@ -0,0 +1,21 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// JASPER BLUES +// Copyright 2013 Jasper Blues +// All Rights Reserved. +// +// NOTICE: Jasper Blues permits you to use, modify, and distribute this file +// in accordance with the terms of the license agreement accompanying it. +// +//////////////////////////////////////////////////////////////////////////////// + +#ifdef typhoon_shorthand + +#define autoWire typhoon_autoWire + +#define Singleton TyphoonComponentLifecycleSingleton + +#define Prototype TyphoonComponentLifecyclePrototype + +#endif + diff --git a/Tests/Pods/Typhoon/Source/Utils/NSObject+TyphoonIntrospectionUtils.h b/Tests/Pods/Typhoon/Source/Utils/NSObject+TyphoonIntrospectionUtils.h new file mode 100644 index 000000000..ebb88f532 --- /dev/null +++ b/Tests/Pods/Typhoon/Source/Utils/NSObject+TyphoonIntrospectionUtils.h @@ -0,0 +1,40 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// JASPER BLUES +// Copyright 2012 - 2013 Jasper Blues +// All Rights Reserved. +// +// NOTICE: Jasper Blues permits you to use, modify, and distribute this file +// in accordance with the terms of the license agreement accompanying it. +// +//////////////////////////////////////////////////////////////////////////////// + + + + +#import +#import "TyphoonIntrospectiveNSObject.h" + +@class TyphoonTypeDescriptor; + +@interface NSObject (TyphoonIntrospectionUtils) + +@property(nonatomic, strong, readonly) NSMutableDictionary* circularDependentProperties; + +/** +* Returns a Class object or `TyphoonTypeDescriptor` in the case of a primitive type. +*/ +- (TyphoonTypeDescriptor*)typeForPropertyWithName:(NSString*)propertyName; + +- (SEL)setterForPropertyWithName:(NSString*)propertyName; + +- (NSArray*)parameterNamesForSelector:(SEL)selector; + +- (NSArray*)typeCodesForSelector:(SEL)selector; + +- (NSArray*)typeCodesForSelector:(SEL)selector onClass:(Class)class; + + + + +@end \ No newline at end of file diff --git a/Tests/Pods/Typhoon/Source/Utils/NSObject+TyphoonIntrospectionUtils.m b/Tests/Pods/Typhoon/Source/Utils/NSObject+TyphoonIntrospectionUtils.m new file mode 100644 index 000000000..44666057e --- /dev/null +++ b/Tests/Pods/Typhoon/Source/Utils/NSObject+TyphoonIntrospectionUtils.m @@ -0,0 +1,89 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// JASPER BLUES +// Copyright 2012 - 2013 Jasper Blues +// All Rights Reserved. +// +// NOTICE: Jasper Blues permits you to use, modify, and distribute this file +// in accordance with the terms of the license agreement accompanying it. +// +//////////////////////////////////////////////////////////////////////////////// + + + + +#import +#import "TyphoonTypeDescriptor.h" +#import "TyphoonIntrospectionUtils.h" + + +static char const* const CIRCULAR_DEPENDENCIES_KEY = "typhoon.injectLater"; + +@implementation NSObject (TyphoonIntrospectionUtils) + +- (TyphoonTypeDescriptor*)typeForPropertyWithName:(NSString*)propertyName; +{ + return [TyphoonIntrospectionUtils typeForPropertyWithName:propertyName inClass:[self class]]; +} + +- (SEL)setterForPropertyWithName:(NSString*)propertyName +{ + + NSString* firstLetterUppercase = [[propertyName substringToIndex:1] uppercaseString]; + NSString* propertyPart = [propertyName stringByReplacingCharactersInRange:NSMakeRange(0, 1) withString:firstLetterUppercase]; + NSString* selectorName = [NSString stringWithFormat:@"set%@:", propertyPart]; + SEL selector = NSSelectorFromString(selectorName); //It's crashing here, not the next line. + if (![self respondsToSelector:selector]) + { + if ([self respondsToSelector:NSSelectorFromString(propertyName)]) + { + [NSException raise:NSInvalidArgumentException format:@"Property '%@' of class '%@' is readonly.", propertyName, [self class]]; + } + else + { + [NSException raise:NSInvalidArgumentException format:@"No setter named '%@' on class '%@'.", selectorName, [self class]]; + } + } + return selector; +} + +- (NSArray*)parameterNamesForSelector:(SEL)selector +{ + NSMutableArray* parameterNames = [[NSMutableArray alloc] init]; + NSArray* parameters = [NSStringFromSelector(selector) componentsSeparatedByString:@":"]; + for (int i = 0; i < [parameters count]; i++) + { + NSString* parameterName = [parameters objectAtIndex:i]; + if (i == 0) + { + parameterName = [[parameterName componentsSeparatedByString:@"With"] lastObject]; + } + if ([parameterName length] > 0) + { + parameterName = [parameterName stringByReplacingCharactersInRange:NSMakeRange(0, 1) + withString:[[parameterName substringToIndex:1] lowercaseString]]; + [parameterNames addObject:parameterName]; + } + } + return [parameterNames copy]; +} + +- (NSArray*)typeCodesForSelector:(SEL)selector +{ + return [TyphoonIntrospectionUtils typeCodesForSelector:selector ofClass:[self class] isClassMethod:NO]; +} + +- (NSMutableDictionary*)circularDependentProperties +{ + NSMutableDictionary* circularDependentProperties = objc_getAssociatedObject(self, &CIRCULAR_DEPENDENCIES_KEY); + if (circularDependentProperties == nil) + { + circularDependentProperties = [[NSMutableDictionary alloc] init]; + objc_setAssociatedObject(self, &CIRCULAR_DEPENDENCIES_KEY, circularDependentProperties, OBJC_ASSOCIATION_RETAIN_NONATOMIC); + } + return circularDependentProperties; +} + + + +@end \ No newline at end of file diff --git a/Tests/Pods/Typhoon/Source/Utils/Resource/TyphoonBundleResource.h b/Tests/Pods/Typhoon/Source/Utils/Resource/TyphoonBundleResource.h new file mode 100644 index 000000000..158734e99 --- /dev/null +++ b/Tests/Pods/Typhoon/Source/Utils/Resource/TyphoonBundleResource.h @@ -0,0 +1,30 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// JASPER BLUES +// Copyright 2012 - 2013 Jasper Blues +// All Rights Reserved. +// +// NOTICE: Jasper Blues permits you to use, modify, and distribute this file +// in accordance with the terms of the license agreement accompanying it. +// +//////////////////////////////////////////////////////////////////////////////// + + + +#import +#import "TyphoonResource.h" + +/** +* Represents a resource within the application bundle. +*/ +@interface TyphoonBundleResource : NSObject +{ + NSData* _data; +} + + + ++ (id)withName:(NSString*)name; + + +@end diff --git a/Tests/Pods/Typhoon/Source/Utils/Resource/TyphoonBundleResource.m b/Tests/Pods/Typhoon/Source/Utils/Resource/TyphoonBundleResource.m new file mode 100644 index 000000000..2bab8bd77 --- /dev/null +++ b/Tests/Pods/Typhoon/Source/Utils/Resource/TyphoonBundleResource.m @@ -0,0 +1,68 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// JASPER BLUES +// Copyright 2012 - 2013 Jasper Blues +// All Rights Reserved. +// +// NOTICE: Jasper Blues permits you to use, modify, and distribute this file +// in accordance with the terms of the license agreement accompanying it. +// +//////////////////////////////////////////////////////////////////////////////// + + +#import "TyphoonBundleResource.h" + + +@implementation TyphoonBundleResource + +/* =========================================================== Class Methods ============================================================ */ ++ (id )withName:(NSString*)name +{ + NSString* filePath; + NSRange lastDot = [name rangeOfString:@"." options:NSBackwardsSearch]; + if (lastDot.location != NSNotFound) + { + NSString* resource = [name substringToIndex:lastDot.location]; + NSString* type = [name substringFromIndex:lastDot.location + 1]; + NSLog(@"Resource: %@.%@", resource, type); + filePath = [[NSBundle bundleForClass:[self class]] pathForResource:resource ofType:type]; + } + else + { + filePath = [[NSBundle bundleForClass:[self class]] pathForResource:name ofType:nil]; + } + if (filePath == nil) + { + [NSException raise:NSInvalidArgumentException format:@"Resource named '%@' not in bundle.", name]; + } + return [[[self class] alloc] initWithData:[NSData dataWithContentsOfFile:filePath]]; +} + +/* ============================================================ Initializers ============================================================ */ +- (id)initWithData:(NSData*)data +{ + self = [super init]; + if (self) + { + _data = data; + } + return self; +} + +- (NSString*)asString +{ + return [self asStringWithEncoding:NSUTF8StringEncoding]; +} + +- (NSString*)asStringWithEncoding:(NSStringEncoding)encoding +{ + return [[NSString alloc] initWithData:_data encoding:encoding]; +} + +- (NSData*)data +{ + return _data; +} + + +@end \ No newline at end of file diff --git a/Tests/Pods/Typhoon/Source/Utils/Resource/TyphoonResource.h b/Tests/Pods/Typhoon/Source/Utils/Resource/TyphoonResource.h new file mode 100644 index 000000000..7756df2a3 --- /dev/null +++ b/Tests/Pods/Typhoon/Source/Utils/Resource/TyphoonResource.h @@ -0,0 +1,29 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// AppsQuick.ly +// Copyright 2012 AppsQuick.ly +// All Rights Reserved. +// +// NOTICE: AppsQuick.ly permits you to use, modify, and distribute this file +// in accordance with the terms of the license agreement accompanying it. +// +//////////////////////////////////////////////////////////////////////////////// + + + +#import + +@protocol TyphoonResource + +/** +* Returns the resource with the given name, as an NSString. +*/ + +- (NSString*)asString; + +- (NSString*)asStringWithEncoding:(NSStringEncoding)encoding; + +- (NSData*)data; + + +@end \ No newline at end of file diff --git a/Tests/Pods/Typhoon/Source/Utils/Swizzle/TyphoonJRSwizzle.h b/Tests/Pods/Typhoon/Source/Utils/Swizzle/TyphoonJRSwizzle.h new file mode 100644 index 000000000..65b992aa6 --- /dev/null +++ b/Tests/Pods/Typhoon/Source/Utils/Swizzle/TyphoonJRSwizzle.h @@ -0,0 +1,13 @@ +// JRSwizzle.h semver:1.0 +// Copyright (c) 2007-2011 Jonathan 'Wolf' Rentzsch: http://rentzsch.com +// Some rights reserved: http://opensource.org/licenses/MIT +// https://github.com/rentzsch/jrswizzle + +#import + +@interface NSObject (TyphoonJRSwizzle) + ++ (BOOL)typhoon_swizzleMethod:(SEL)origSel_ withMethod:(SEL)altSel_ error:(NSError**)error_; ++ (BOOL)typhoon_swizzleClassMethod:(SEL)origSel_ withClassMethod:(SEL)altSel_ error:(NSError**)error_; + +@end diff --git a/Tests/Pods/Typhoon/Source/Utils/Swizzle/TyphoonJRSwizzle.m b/Tests/Pods/Typhoon/Source/Utils/Swizzle/TyphoonJRSwizzle.m new file mode 100644 index 000000000..34e7502c7 --- /dev/null +++ b/Tests/Pods/Typhoon/Source/Utils/Swizzle/TyphoonJRSwizzle.m @@ -0,0 +1,134 @@ +// JRSwizzle.m semver:1.0 +// Copyright (c) 2007-2011 Jonathan 'Wolf' Rentzsch: http://rentzsch.com +// Some rights reserved: http://opensource.org/licenses/MIT +// https://github.com/rentzsch/jrswizzle + +#import "TyphoonJRSwizzle.h" + +#if TARGET_OS_IPHONE + #import + #import +#else + #import +#endif + +#define SetNSErrorFor(FUNC, ERROR_VAR, FORMAT,...) \ + if (ERROR_VAR) { \ + NSString *errStr = [NSString stringWithFormat:@"%s: " FORMAT,FUNC,##__VA_ARGS__]; \ + *ERROR_VAR = [NSError errorWithDomain:@"NSCocoaErrorDomain" \ + code:-1 \ + userInfo:[NSDictionary dictionaryWithObject:errStr forKey:NSLocalizedDescriptionKey]]; \ + } +#define SetNSError(ERROR_VAR, FORMAT,...) SetNSErrorFor(__func__, ERROR_VAR, FORMAT, ##__VA_ARGS__) + +#if OBJC_API_VERSION >= 2 +#define GetClass(obj) object_getClass(obj) +#else +#define GetClass(obj) (obj ? obj->isa : Nil) +#endif + +@implementation NSObject (TyphoonJRSwizzle) + ++ (BOOL)typhoon_swizzleMethod:(SEL)origSel_ withMethod:(SEL)altSel_ error:(NSError**)error_ { +#if OBJC_API_VERSION >= 2 + Method origMethod = class_getInstanceMethod(self, origSel_); + if (!origMethod) { +#if TARGET_OS_IPHONE + SetNSError(error_, @"original method %@ not found for class %@", NSStringFromSelector(origSel_), [self class]); +#else + SetNSError(error_, @"original method %@ not found for class %@", NSStringFromSelector(origSel_), [self className]); +#endif + return NO; + } + + Method altMethod = class_getInstanceMethod(self, altSel_); + if (!altMethod) { +#if TARGET_OS_IPHONE + SetNSError(error_, @"alternate method %@ not found for class %@", NSStringFromSelector(altSel_), [self class]); +#else + SetNSError(error_, @"alternate method %@ not found for class %@", NSStringFromSelector(altSel_), [self className]); +#endif + return NO; + } + + class_addMethod(self, + origSel_, + class_getMethodImplementation(self, origSel_), + method_getTypeEncoding(origMethod)); + class_addMethod(self, + altSel_, + class_getMethodImplementation(self, altSel_), + method_getTypeEncoding(altMethod)); + + method_exchangeImplementations(class_getInstanceMethod(self, origSel_), class_getInstanceMethod(self, altSel_)); + return YES; +#else + // Scan for non-inherited methods. + Method directOriginalMethod = NULL, directAlternateMethod = NULL; + + void *iterator = NULL; + struct objc_method_list *mlist = class_nextMethodList(self, &iterator); + while (mlist) { + int method_index = 0; + for (; method_index < mlist->method_count; method_index++) { + if (mlist->method_list[method_index].method_name == origSel_) { + assert(!directOriginalMethod); + directOriginalMethod = &mlist->method_list[method_index]; + } + if (mlist->method_list[method_index].method_name == altSel_) { + assert(!directAlternateMethod); + directAlternateMethod = &mlist->method_list[method_index]; + } + } + mlist = class_nextMethodList(self, &iterator); + } + + // If either method is inherited, copy it up to the target class to make it non-inherited. + if (!directOriginalMethod || !directAlternateMethod) { + Method inheritedOriginalMethod = NULL, inheritedAlternateMethod = NULL; + if (!directOriginalMethod) { + inheritedOriginalMethod = class_getInstanceMethod(self, origSel_); + if (!inheritedOriginalMethod) { + SetNSError(error_, @"original method %@ not found for class %@", NSStringFromSelector(origSel_), [self className]); + return NO; + } + } + if (!directAlternateMethod) { + inheritedAlternateMethod = class_getInstanceMethod(self, altSel_); + if (!inheritedAlternateMethod) { + SetNSError(error_, @"alternate method %@ not found for class %@", NSStringFromSelector(altSel_), [self className]); + return NO; + } + } + + int hoisted_method_count = !directOriginalMethod && !directAlternateMethod ? 2 : 1; + struct objc_method_list *hoisted_method_list = malloc(sizeof(struct objc_method_list) + (sizeof(struct objc_method)*(hoisted_method_count-1))); + hoisted_method_list->obsolete = NULL; // soothe valgrind - apparently ObjC runtime accesses this value and it shows as uninitialized in valgrind + hoisted_method_list->method_count = hoisted_method_count; + Method hoisted_method = hoisted_method_list->method_list; + + if (!directOriginalMethod) { + bcopy(inheritedOriginalMethod, hoisted_method, sizeof(struct objc_method)); + directOriginalMethod = hoisted_method++; + } + if (!directAlternateMethod) { + bcopy(inheritedAlternateMethod, hoisted_method, sizeof(struct objc_method)); + directAlternateMethod = hoisted_method; + } + class_addMethods(self, hoisted_method_list); + } + + // Swizzle. + IMP temp = directOriginalMethod->method_imp; + directOriginalMethod->method_imp = directAlternateMethod->method_imp; + directAlternateMethod->method_imp = temp; + + return YES; +#endif +} + ++ (BOOL)typhoon_swizzleClassMethod:(SEL)origSel_ withClassMethod:(SEL)altSel_ error:(NSError**)error_ { + return [GetClass((id) self) typhoon_swizzleMethod:origSel_ withMethod:altSel_ error:error_]; +} + +@end diff --git a/Tests/Pods/Typhoon/Source/Utils/TyphoonIntrospectionUtils.h b/Tests/Pods/Typhoon/Source/Utils/TyphoonIntrospectionUtils.h new file mode 100644 index 000000000..f46eacd0f --- /dev/null +++ b/Tests/Pods/Typhoon/Source/Utils/TyphoonIntrospectionUtils.h @@ -0,0 +1,31 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// JASPER BLUES +// Copyright 2012 - 2013 Jasper Blues +// All Rights Reserved. +// +// NOTICE: Jasper Blues permits you to use, modify, and distribute this file +// in accordance with the terms of the license agreement accompanying it. +// +//////////////////////////////////////////////////////////////////////////////// + + + + +#import +#import + +@class TyphoonTypeDescriptor; + +NSSet* TyphoonAutoWiredProperties(Class clazz, NSSet* properties); + +NSString* TyphoonTypeStringFor(id classOrProtocol); + + +@interface TyphoonIntrospectionUtils : NSObject + ++ (NSArray*)typeCodesForSelector:(SEL)selector ofClass:(Class)clazz isClassMethod:(BOOL)isClassMethod; + ++ (TyphoonTypeDescriptor*)typeForPropertyWithName:(NSString*)propertyName inClass:(Class)clazz; + +@end \ No newline at end of file diff --git a/Tests/Pods/Typhoon/Source/Utils/TyphoonIntrospectionUtils.m b/Tests/Pods/Typhoon/Source/Utils/TyphoonIntrospectionUtils.m new file mode 100644 index 000000000..4e4c0a4b3 --- /dev/null +++ b/Tests/Pods/Typhoon/Source/Utils/TyphoonIntrospectionUtils.m @@ -0,0 +1,100 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// JASPER BLUES +// Copyright 2012 - 2013 Jasper Blues +// All Rights Reserved. +// +// NOTICE: Jasper Blues permits you to use, modify, and distribute this file +// in accordance with the terms of the license agreement accompanying it. +// +//////////////////////////////////////////////////////////////////////////////// + + + + +#import +#import "TyphoonIntrospectionUtils.h" +#import "TyphoonTypeDescriptor.h" + + +@implementation TyphoonIntrospectionUtils + ++ (TyphoonTypeDescriptor*)typeForPropertyWithName:(NSString*)propertyName inClass:(Class)clazz +{ + TyphoonTypeDescriptor* typeDescriptor = nil; + objc_property_t propertyReflection = class_getProperty(clazz, [propertyName UTF8String]); + if (propertyReflection) + { + const char* attrs = property_getAttributes(propertyReflection); + if (attrs == NULL) + { + return (NULL); + } + + static char buffer[256]; + const char* e = strchr(attrs, ','); + if (e == NULL) + { + return (NULL); + } + + int len = (int) (e - attrs); + memcpy( buffer, attrs, len ); + buffer[len] = '\0'; + + typeDescriptor = [TyphoonTypeDescriptor descriptorWithTypeCode:[NSString stringWithCString:buffer encoding:NSUTF8StringEncoding]]; + } + return typeDescriptor; +} + + ++ (NSArray*)typeCodesForSelector:(SEL)selector ofClass:(Class)clazz isClassMethod:(BOOL)isClassMethod +{ + NSMutableArray* typeCodes = [[NSMutableArray alloc] init]; + + Method method; + if (isClassMethod) + { + method = class_getClassMethod(clazz, selector); + } + else + { + method = class_getInstanceMethod(clazz, selector); + } + unsigned int argumentCount = method_getNumberOfArguments(method); + + for (int i = 2; i < argumentCount; i++) + { + char typeInfo[100]; + method_getArgumentType(method, i, typeInfo, 100); + [typeCodes addObject:[NSString stringWithUTF8String:typeInfo]]; + } + return [typeCodes copy]; +} + +@end + +NSSet* TyphoonAutoWiredProperties(Class clazz, NSSet* properties) +{ + Class superClass = class_getSuperclass([clazz class]); + if ([superClass respondsToSelector:@selector(typhoonAutoInjectedProperties)]) + { + NSMutableSet* superAutoWired = [[superClass performSelector:@selector(typhoonAutoInjectedProperties)] mutableCopy]; + [superAutoWired unionSet:properties]; + return superAutoWired; + } + return properties; +} + + +NSString* TyphoonTypeStringFor(id classOrProtocol) +{ + if (class_isMetaClass(object_getClass(classOrProtocol))) + { + return NSStringFromClass(classOrProtocol); + } + else + { + return [NSString stringWithFormat:@"id<%@>", NSStringFromProtocol(classOrProtocol)]; + } +} diff --git a/Tests/Pods/Typhoon/Source/Utils/TyphoonIntrospectiveNSObject.h b/Tests/Pods/Typhoon/Source/Utils/TyphoonIntrospectiveNSObject.h new file mode 100644 index 000000000..6cea68736 --- /dev/null +++ b/Tests/Pods/Typhoon/Source/Utils/TyphoonIntrospectiveNSObject.h @@ -0,0 +1,25 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// JASPER BLUES +// Copyright 2012 - 2013 Jasper Blues +// All Rights Reserved. +// +// NOTICE: Jasper Blues permits you to use, modify, and distribute this file +// in accordance with the terms of the license agreement accompanying it. +// +//////////////////////////////////////////////////////////////////////////////// + + +#import + +@class TyphoonTypeDescriptor; + +@protocol TyphoonIntrospectiveNSObject + +@property(nonatomic, strong, readonly) NSMutableDictionary* circularDependentProperties; + +- (TyphoonTypeDescriptor*)typeForPropertyWithName:(NSString*)propertyName; + +- (SEL)setterForPropertyWithName:(NSString*)propertyName; + +@end \ No newline at end of file diff --git a/Tests/Pods/Typhoon/Source/Utils/TyphoonTestUtils.h b/Tests/Pods/Typhoon/Source/Utils/TyphoonTestUtils.h new file mode 100644 index 000000000..1c1719baa --- /dev/null +++ b/Tests/Pods/Typhoon/Source/Utils/TyphoonTestUtils.h @@ -0,0 +1,26 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// JASPER BLUES +// Copyright 2013 Jasper Blues +// All Rights Reserved. +// +// NOTICE: Jasper Blues permits you to use, modify, and distribute this file +// in accordance with the terms of the license agreement accompanying it. +// +//////////////////////////////////////////////////////////////////////////////// + + +#import + +#define typhoon_asynch_condition(expression) return expression; + +@interface TyphoonTestUtils : NSObject + ++ (void)waitForCondition:(BOOL (^)())condition; + ++ (void)waitForCondition:(BOOL (^)())condition andPerformTests:(void (^)())assertions; + ++ (void)wait:(NSTimeInterval)seconds secondsForCondition:(BOOL (^)())condition andPerformTests:(void (^)())assertions; + + +@end \ No newline at end of file diff --git a/Tests/Pods/Typhoon/Source/Utils/TyphoonTestUtils.m b/Tests/Pods/Typhoon/Source/Utils/TyphoonTestUtils.m new file mode 100644 index 000000000..23a8daf7c --- /dev/null +++ b/Tests/Pods/Typhoon/Source/Utils/TyphoonTestUtils.m @@ -0,0 +1,60 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// JASPER BLUES +// Copyright 2013 Jasper Blues +// All Rights Reserved. +// +// NOTICE: Jasper Blues permits you to use, modify, and distribute this file +// in accordance with the terms of the license agreement accompanying it. +// +//////////////////////////////////////////////////////////////////////////////// + + +#import "TyphoonTestUtils.h" + + +@implementation TyphoonTestUtils + ++ (void)waitForCondition:(BOOL (^)())condition +{ + [self waitForCondition:condition andPerformTests:^ + { + //No assertions - wait for condition only. + }]; +} + ++ (void)waitForCondition:(BOOL (^)())condition andPerformTests:(void (^)())assertions +{ + [self wait:7 secondsForCondition:condition andPerformTests:assertions]; +} + ++ (void)wait:(NSTimeInterval)seconds secondsForCondition:(BOOL (^)())condition andPerformTests:(void (^)())assertions +{ + __block BOOL conditionMet = NO; + for (int i = 0; i < seconds; i++) + { + conditionMet = condition(); + if (conditionMet) + { + break; + } + else + { + [[NSRunLoop currentRunLoop] runUntilDate:[NSDate dateWithTimeIntervalSinceNow:1]]; + } + } + if (conditionMet) + { + if (assertions) + { + assertions(); + } + } + else + { + [NSException raise:NSGenericException format:@"Condition didn't happen before timeout: %f", seconds]; + } +} + + +@end \ No newline at end of file diff --git a/Tests/Tests-Prefix.pch b/Tests/Tests-Prefix.pch index 825a6fb34..150173402 100644 --- a/Tests/Tests-Prefix.pch +++ b/Tests/Tests-Prefix.pch @@ -3,7 +3,13 @@ // #ifdef __OBJC__ - #import + #import + + #if __IPHONE_OS_VERSION_MIN_REQUIRED + + #else + #import + #endif #endif diff --git a/Tests/Tests.xcodeproj/project.pbxproj b/Tests/Tests.xcodeproj/project.pbxproj new file mode 100644 index 000000000..e2bab1fd7 --- /dev/null +++ b/Tests/Tests.xcodeproj/project.pbxproj @@ -0,0 +1,903 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 4B841470179B0E3900916BF5 /* SenTestingKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4B84146F179B0E3900916BF5 /* SenTestingKit.framework */; }; + 4B841472179B0E3900916BF5 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4B841471179B0E3900916BF5 /* UIKit.framework */; }; + 4B841474179B0E3900916BF5 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4B841473179B0E3900916BF5 /* Foundation.framework */; }; + 4B841488179B0E5200916BF5 /* SenTestingKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4B84146F179B0E3900916BF5 /* SenTestingKit.framework */; }; + 4B84148A179B0E5200916BF5 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4B841489179B0E5200916BF5 /* Cocoa.framework */; }; + 4B8414E9179B0EA600916BF5 /* ClassWithCollectionProperties.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B84149F179B0EA600916BF5 /* ClassWithCollectionProperties.m */; }; + 4B8414EA179B0EA600916BF5 /* ClassWithCollectionProperties.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B84149F179B0EA600916BF5 /* ClassWithCollectionProperties.m */; }; + 4B8414EB179B0EA600916BF5 /* TyphoonPropertyInjectedAsCollectionTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B8414A1179B0EA600916BF5 /* TyphoonPropertyInjectedAsCollectionTests.m */; }; + 4B8414EC179B0EA600916BF5 /* TyphoonPropertyInjectedAsCollectionTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B8414A1179B0EA600916BF5 /* TyphoonPropertyInjectedAsCollectionTests.m */; }; + 4B8414ED179B0EA600916BF5 /* TyphoonDefinitionTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B8414A2179B0EA600916BF5 /* TyphoonDefinitionTests.m */; }; + 4B8414EE179B0EA600916BF5 /* TyphoonDefinitionTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B8414A2179B0EA600916BF5 /* TyphoonDefinitionTests.m */; }; + 4B8414EF179B0EA600916BF5 /* CircularDependenciesAssembly.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B8414A6179B0EA600916BF5 /* CircularDependenciesAssembly.m */; }; + 4B8414F0179B0EA600916BF5 /* CircularDependenciesAssembly.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B8414A6179B0EA600916BF5 /* CircularDependenciesAssembly.m */; }; + 4B8414F1179B0EA600916BF5 /* ExceptionTestAssembly.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B8414A8179B0EA600916BF5 /* ExceptionTestAssembly.m */; }; + 4B8414F2179B0EA600916BF5 /* ExceptionTestAssembly.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B8414A8179B0EA600916BF5 /* ExceptionTestAssembly.m */; }; + 4B8414F3179B0EA600916BF5 /* MiddleAgesAssembly.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B8414AA179B0EA600916BF5 /* MiddleAgesAssembly.m */; }; + 4B8414F4179B0EA600916BF5 /* MiddleAgesAssembly.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B8414AA179B0EA600916BF5 /* MiddleAgesAssembly.m */; }; + 4B8414F5179B0EA600916BF5 /* TyphoonBlockComponentFactoryTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B8414AB179B0EA600916BF5 /* TyphoonBlockComponentFactoryTests.m */; }; + 4B8414F6179B0EA600916BF5 /* TyphoonBlockComponentFactoryTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B8414AB179B0EA600916BF5 /* TyphoonBlockComponentFactoryTests.m */; }; + 4B8414F7179B0EA600916BF5 /* TyphoonPropertyPlaceholderConfigurerTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B8414AE179B0EA600916BF5 /* TyphoonPropertyPlaceholderConfigurerTests.m */; }; + 4B8414F8179B0EA600916BF5 /* TyphoonPropertyPlaceholderConfigurerTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B8414AE179B0EA600916BF5 /* TyphoonPropertyPlaceholderConfigurerTests.m */; }; + 4B8414F9179B0EA600916BF5 /* TyphoonSharedComponentFactoryTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B8414B1179B0EA600916BF5 /* TyphoonSharedComponentFactoryTests.m */; }; + 4B8414FA179B0EA600916BF5 /* TyphoonSharedComponentFactoryTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B8414B1179B0EA600916BF5 /* TyphoonSharedComponentFactoryTests.m */; }; + 4B8414FB179B0EA600916BF5 /* TyphoonComponentFactory+InstanceBuilderTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B8414B2179B0EA600916BF5 /* TyphoonComponentFactory+InstanceBuilderTests.m */; }; + 4B8414FC179B0EA600916BF5 /* TyphoonComponentFactory+InstanceBuilderTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B8414B2179B0EA600916BF5 /* TyphoonComponentFactory+InstanceBuilderTests.m */; }; + 4B8414FD179B0EA600916BF5 /* TyphoonComponentFactoryTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B8414B3179B0EA600916BF5 /* TyphoonComponentFactoryTests.m */; }; + 4B8414FE179B0EA600916BF5 /* TyphoonComponentFactoryTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B8414B3179B0EA600916BF5 /* TyphoonComponentFactoryTests.m */; }; + 4B8414FF179B0EA600916BF5 /* RXMLElement+XmlComponentFactoryTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B8414B5179B0EA600916BF5 /* RXMLElement+XmlComponentFactoryTests.m */; }; + 4B841500179B0EA600916BF5 /* RXMLElement+XmlComponentFactoryTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B8414B5179B0EA600916BF5 /* RXMLElement+XmlComponentFactoryTests.m */; }; + 4B841501179B0EA600916BF5 /* TyphoonXmlComponentFactoryTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B8414B6179B0EA600916BF5 /* TyphoonXmlComponentFactoryTests.m */; }; + 4B841502179B0EA600916BF5 /* TyphoonXmlComponentFactoryTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B8414B6179B0EA600916BF5 /* TyphoonXmlComponentFactoryTests.m */; }; + 4B841503179B0EA600916BF5 /* AutoWiringKnight.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B8414BB179B0EA600916BF5 /* AutoWiringKnight.m */; }; + 4B841504179B0EA600916BF5 /* AutoWiringKnight.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B8414BB179B0EA600916BF5 /* AutoWiringKnight.m */; }; + 4B841505179B0EA600916BF5 /* AutoWiringSubClassedKnight.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B8414BD179B0EA600916BF5 /* AutoWiringSubClassedKnight.m */; }; + 4B841506179B0EA600916BF5 /* AutoWiringSubClassedKnight.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B8414BD179B0EA600916BF5 /* AutoWiringSubClassedKnight.m */; }; + 4B841507179B0EA600916BF5 /* CampaignQuest.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B8414BF179B0EA600916BF5 /* CampaignQuest.m */; }; + 4B841508179B0EA600916BF5 /* CampaignQuest.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B8414BF179B0EA600916BF5 /* CampaignQuest.m */; }; + 4B841509179B0EA600916BF5 /* CavalryMan.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B8414C1179B0EA600916BF5 /* CavalryMan.m */; }; + 4B84150A179B0EA600916BF5 /* CavalryMan.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B8414C1179B0EA600916BF5 /* CavalryMan.m */; }; + 4B84150B179B0EA600916BF5 /* Champion.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B8414C3179B0EA600916BF5 /* Champion.m */; }; + 4B84150C179B0EA600916BF5 /* Champion.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B8414C3179B0EA600916BF5 /* Champion.m */; }; + 4B84150D179B0EA600916BF5 /* ClassADependsOnB.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B8414C6179B0EA600916BF5 /* ClassADependsOnB.m */; }; + 4B84150E179B0EA600916BF5 /* ClassADependsOnB.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B8414C6179B0EA600916BF5 /* ClassADependsOnB.m */; }; + 4B84150F179B0EA600916BF5 /* ClassBDependsOnA.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B8414C8179B0EA600916BF5 /* ClassBDependsOnA.m */; }; + 4B841510179B0EA600916BF5 /* ClassBDependsOnA.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B8414C8179B0EA600916BF5 /* ClassBDependsOnA.m */; }; + 4B841511179B0EA600916BF5 /* ClassCDependsOnDAndE.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B8414CA179B0EA600916BF5 /* ClassCDependsOnDAndE.m */; }; + 4B841512179B0EA600916BF5 /* ClassCDependsOnDAndE.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B8414CA179B0EA600916BF5 /* ClassCDependsOnDAndE.m */; }; + 4B841513179B0EA600916BF5 /* ClassDDependsOnC.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B8414CC179B0EA600916BF5 /* ClassDDependsOnC.m */; }; + 4B841514179B0EA600916BF5 /* ClassDDependsOnC.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B8414CC179B0EA600916BF5 /* ClassDDependsOnC.m */; }; + 4B841515179B0EA600916BF5 /* ClassEDependsOnC.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B8414CE179B0EA600916BF5 /* ClassEDependsOnC.m */; }; + 4B841516179B0EA600916BF5 /* ClassEDependsOnC.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B8414CE179B0EA600916BF5 /* ClassEDependsOnC.m */; }; + 4B841517179B0EA600916BF5 /* Sword.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B8414D1179B0EA600916BF5 /* Sword.m */; }; + 4B841518179B0EA600916BF5 /* Sword.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B8414D1179B0EA600916BF5 /* Sword.m */; }; + 4B841519179B0EA600916BF5 /* SwordFactory.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B8414D3179B0EA600916BF5 /* SwordFactory.m */; }; + 4B84151A179B0EA600916BF5 /* SwordFactory.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B8414D3179B0EA600916BF5 /* SwordFactory.m */; }; + 4B84151B179B0EA600916BF5 /* Knight.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B8414D5179B0EA600916BF5 /* Knight.m */; }; + 4B84151C179B0EA600916BF5 /* Knight.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B8414D5179B0EA600916BF5 /* Knight.m */; }; + 4B84151D179B0EA600916BF5 /* AssemblyWithInvalidClassName.xml in Resources */ = {isa = PBXBuildFile; fileRef = 4B8414D8179B0EA600916BF5 /* AssemblyWithInvalidClassName.xml */; }; + 4B84151E179B0EA600916BF5 /* AssemblyWithInvalidClassName.xml in Resources */ = {isa = PBXBuildFile; fileRef = 4B8414D8179B0EA600916BF5 /* AssemblyWithInvalidClassName.xml */; }; + 4B84151F179B0EA600916BF5 /* CircularDependenciesAssembly.xml in Resources */ = {isa = PBXBuildFile; fileRef = 4B8414D9179B0EA600916BF5 /* CircularDependenciesAssembly.xml */; }; + 4B841520179B0EA600916BF5 /* CircularDependenciesAssembly.xml in Resources */ = {isa = PBXBuildFile; fileRef = 4B8414D9179B0EA600916BF5 /* CircularDependenciesAssembly.xml */; }; + 4B841521179B0EA600916BF5 /* ExceptionTestAssembly.xml in Resources */ = {isa = PBXBuildFile; fileRef = 4B8414DA179B0EA600916BF5 /* ExceptionTestAssembly.xml */; }; + 4B841522179B0EA600916BF5 /* ExceptionTestAssembly.xml in Resources */ = {isa = PBXBuildFile; fileRef = 4B8414DA179B0EA600916BF5 /* ExceptionTestAssembly.xml */; }; + 4B841523179B0EA600916BF5 /* LazyInitCasesAssembly.xml in Resources */ = {isa = PBXBuildFile; fileRef = 4B8414DB179B0EA600916BF5 /* LazyInitCasesAssembly.xml */; }; + 4B841524179B0EA600916BF5 /* LazyInitCasesAssembly.xml in Resources */ = {isa = PBXBuildFile; fileRef = 4B8414DB179B0EA600916BF5 /* LazyInitCasesAssembly.xml */; }; + 4B841525179B0EA600916BF5 /* MiddleAgesAssembly.xml in Resources */ = {isa = PBXBuildFile; fileRef = 4B8414DC179B0EA600916BF5 /* MiddleAgesAssembly.xml */; }; + 4B841526179B0EA600916BF5 /* MiddleAgesAssembly.xml in Resources */ = {isa = PBXBuildFile; fileRef = 4B8414DC179B0EA600916BF5 /* MiddleAgesAssembly.xml */; }; + 4B841527179B0EA600916BF5 /* PropertyPlaceholderAssembly.xml in Resources */ = {isa = PBXBuildFile; fileRef = 4B8414DD179B0EA600916BF5 /* PropertyPlaceholderAssembly.xml */; }; + 4B841528179B0EA600916BF5 /* PropertyPlaceholderAssembly.xml in Resources */ = {isa = PBXBuildFile; fileRef = 4B8414DD179B0EA600916BF5 /* PropertyPlaceholderAssembly.xml */; }; + 4B841529179B0EA600916BF5 /* SomeProperties.properties in Resources */ = {isa = PBXBuildFile; fileRef = 4B8414DE179B0EA600916BF5 /* SomeProperties.properties */; }; + 4B84152A179B0EA600916BF5 /* SomeProperties.properties in Resources */ = {isa = PBXBuildFile; fileRef = 4B8414DE179B0EA600916BF5 /* SomeProperties.properties */; }; + 4B84152B179B0EA600916BF5 /* Tests-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 4B8414DF179B0EA600916BF5 /* Tests-Info.plist */; }; + 4B84152C179B0EA600916BF5 /* Tests-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 4B8414DF179B0EA600916BF5 /* Tests-Info.plist */; }; + 4B84152D179B0EA600916BF5 /* TyphoonPassthroughTypeConverterTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B8414E2179B0EA600916BF5 /* TyphoonPassthroughTypeConverterTests.m */; }; + 4B84152E179B0EA600916BF5 /* TyphoonPassthroughTypeConverterTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B8414E2179B0EA600916BF5 /* TyphoonPassthroughTypeConverterTests.m */; }; + 4B84152F179B0EA600916BF5 /* TyphoonPrimitiveTypeConverterTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B8414E3179B0EA600916BF5 /* TyphoonPrimitiveTypeConverterTests.m */; }; + 4B841530179B0EA600916BF5 /* TyphoonPrimitiveTypeConverterTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B8414E3179B0EA600916BF5 /* TyphoonPrimitiveTypeConverterTests.m */; }; + 4B841531179B0EA600916BF5 /* TyphoonTypeConverterRegistryTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B8414E4179B0EA600916BF5 /* TyphoonTypeConverterRegistryTests.m */; }; + 4B841532179B0EA600916BF5 /* TyphoonTypeConverterRegistryTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B8414E4179B0EA600916BF5 /* TyphoonTypeConverterRegistryTests.m */; }; + 4B841533179B0EA600916BF5 /* TyphoonTypeDescriptorTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B8414E5179B0EA600916BF5 /* TyphoonTypeDescriptorTests.m */; }; + 4B841534179B0EA600916BF5 /* TyphoonTypeDescriptorTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B8414E5179B0EA600916BF5 /* TyphoonTypeDescriptorTests.m */; }; + 4B841535179B0EA600916BF5 /* TyphoonBundleResourceTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B8414E8179B0EA600916BF5 /* TyphoonBundleResourceTests.m */; }; + 4B841536179B0EA600916BF5 /* TyphoonBundleResourceTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B8414E8179B0EA600916BF5 /* TyphoonBundleResourceTests.m */; }; + CE290681AAB34614991BB839 /* libPods-ios.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 68790B73ADB8466F90D75704 /* libPods-ios.a */; }; + E737C7222F214A85BFBA7177 /* libPods-osx.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 39F0B772284A42C09AA9681B /* libPods-osx.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 294BCE404F344D5292944E8A /* Pods-osx.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-osx.xcconfig"; path = "Pods/Pods-osx.xcconfig"; sourceTree = SOURCE_ROOT; }; + 39F0B772284A42C09AA9681B /* libPods-osx.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-osx.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 3CE1DDB3D5554F7C8E583E85 /* Pods-ios.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ios.xcconfig"; path = "Pods/Pods-ios.xcconfig"; sourceTree = SOURCE_ROOT; }; + 4B84146C179B0E3900916BF5 /* iOS Tests.octest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "iOS Tests.octest"; sourceTree = BUILT_PRODUCTS_DIR; }; + 4B84146F179B0E3900916BF5 /* SenTestingKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SenTestingKit.framework; path = Library/Frameworks/SenTestingKit.framework; sourceTree = DEVELOPER_DIR; }; + 4B841471179B0E3900916BF5 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Library/Frameworks/UIKit.framework; sourceTree = DEVELOPER_DIR; }; + 4B841473179B0E3900916BF5 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; + 4B841487179B0E5200916BF5 /* OS X Tests.octest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "OS X Tests.octest"; sourceTree = BUILT_PRODUCTS_DIR; }; + 4B841489179B0E5200916BF5 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; }; + 4B84148C179B0E5200916BF5 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = System/Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; }; + 4B84148D179B0E5200916BF5 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = System/Library/Frameworks/CoreData.framework; sourceTree = SDKROOT; }; + 4B84148E179B0E5200916BF5 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + 4B84149E179B0EA600916BF5 /* ClassWithCollectionProperties.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ClassWithCollectionProperties.h; sourceTree = ""; }; + 4B84149F179B0EA600916BF5 /* ClassWithCollectionProperties.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ClassWithCollectionProperties.m; sourceTree = ""; }; + 4B8414A1179B0EA600916BF5 /* TyphoonPropertyInjectedAsCollectionTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TyphoonPropertyInjectedAsCollectionTests.m; sourceTree = ""; }; + 4B8414A2179B0EA600916BF5 /* TyphoonDefinitionTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TyphoonDefinitionTests.m; sourceTree = ""; }; + 4B8414A5179B0EA600916BF5 /* CircularDependenciesAssembly.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CircularDependenciesAssembly.h; sourceTree = ""; }; + 4B8414A6179B0EA600916BF5 /* CircularDependenciesAssembly.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CircularDependenciesAssembly.m; sourceTree = ""; }; + 4B8414A7179B0EA600916BF5 /* ExceptionTestAssembly.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ExceptionTestAssembly.h; sourceTree = ""; }; + 4B8414A8179B0EA600916BF5 /* ExceptionTestAssembly.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ExceptionTestAssembly.m; sourceTree = ""; }; + 4B8414A9179B0EA600916BF5 /* MiddleAgesAssembly.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MiddleAgesAssembly.h; sourceTree = ""; }; + 4B8414AA179B0EA600916BF5 /* MiddleAgesAssembly.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MiddleAgesAssembly.m; sourceTree = ""; }; + 4B8414AB179B0EA600916BF5 /* TyphoonBlockComponentFactoryTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TyphoonBlockComponentFactoryTests.m; sourceTree = ""; }; + 4B8414AE179B0EA600916BF5 /* TyphoonPropertyPlaceholderConfigurerTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TyphoonPropertyPlaceholderConfigurerTests.m; sourceTree = ""; }; + 4B8414B0179B0EA600916BF5 /* TyphoonSharedComponentFactoryTests.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TyphoonSharedComponentFactoryTests.h; sourceTree = ""; }; + 4B8414B1179B0EA600916BF5 /* TyphoonSharedComponentFactoryTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TyphoonSharedComponentFactoryTests.m; sourceTree = ""; }; + 4B8414B2179B0EA600916BF5 /* TyphoonComponentFactory+InstanceBuilderTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "TyphoonComponentFactory+InstanceBuilderTests.m"; sourceTree = ""; }; + 4B8414B3179B0EA600916BF5 /* TyphoonComponentFactoryTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TyphoonComponentFactoryTests.m; sourceTree = ""; }; + 4B8414B5179B0EA600916BF5 /* RXMLElement+XmlComponentFactoryTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "RXMLElement+XmlComponentFactoryTests.m"; sourceTree = ""; }; + 4B8414B6179B0EA600916BF5 /* TyphoonXmlComponentFactoryTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TyphoonXmlComponentFactoryTests.m; sourceTree = ""; }; + 4B8414B7179B0EA600916BF5 /* Harlot.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Harlot.h; sourceTree = ""; }; + 4B8414BA179B0EA600916BF5 /* AutoWiringKnight.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AutoWiringKnight.h; sourceTree = ""; }; + 4B8414BB179B0EA600916BF5 /* AutoWiringKnight.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AutoWiringKnight.m; sourceTree = ""; }; + 4B8414BC179B0EA600916BF5 /* AutoWiringSubClassedKnight.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AutoWiringSubClassedKnight.h; sourceTree = ""; }; + 4B8414BD179B0EA600916BF5 /* AutoWiringSubClassedKnight.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AutoWiringSubClassedKnight.m; sourceTree = ""; }; + 4B8414BE179B0EA600916BF5 /* CampaignQuest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CampaignQuest.h; sourceTree = ""; }; + 4B8414BF179B0EA600916BF5 /* CampaignQuest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CampaignQuest.m; sourceTree = ""; }; + 4B8414C0179B0EA600916BF5 /* CavalryMan.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CavalryMan.h; sourceTree = ""; }; + 4B8414C1179B0EA600916BF5 /* CavalryMan.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CavalryMan.m; sourceTree = ""; }; + 4B8414C2179B0EA600916BF5 /* Champion.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Champion.h; sourceTree = ""; }; + 4B8414C3179B0EA600916BF5 /* Champion.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Champion.m; sourceTree = ""; }; + 4B8414C5179B0EA600916BF5 /* ClassADependsOnB.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ClassADependsOnB.h; sourceTree = ""; }; + 4B8414C6179B0EA600916BF5 /* ClassADependsOnB.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ClassADependsOnB.m; sourceTree = ""; }; + 4B8414C7179B0EA600916BF5 /* ClassBDependsOnA.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ClassBDependsOnA.h; sourceTree = ""; }; + 4B8414C8179B0EA600916BF5 /* ClassBDependsOnA.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ClassBDependsOnA.m; sourceTree = ""; }; + 4B8414C9179B0EA600916BF5 /* ClassCDependsOnDAndE.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ClassCDependsOnDAndE.h; sourceTree = ""; }; + 4B8414CA179B0EA600916BF5 /* ClassCDependsOnDAndE.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ClassCDependsOnDAndE.m; sourceTree = ""; }; + 4B8414CB179B0EA600916BF5 /* ClassDDependsOnC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ClassDDependsOnC.h; sourceTree = ""; }; + 4B8414CC179B0EA600916BF5 /* ClassDDependsOnC.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ClassDDependsOnC.m; sourceTree = ""; }; + 4B8414CD179B0EA600916BF5 /* ClassEDependsOnC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ClassEDependsOnC.h; sourceTree = ""; }; + 4B8414CE179B0EA600916BF5 /* ClassEDependsOnC.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ClassEDependsOnC.m; sourceTree = ""; }; + 4B8414D0179B0EA600916BF5 /* Sword.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Sword.h; sourceTree = ""; }; + 4B8414D1179B0EA600916BF5 /* Sword.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Sword.m; sourceTree = ""; }; + 4B8414D2179B0EA600916BF5 /* SwordFactory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SwordFactory.h; sourceTree = ""; }; + 4B8414D3179B0EA600916BF5 /* SwordFactory.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SwordFactory.m; sourceTree = ""; }; + 4B8414D4179B0EA600916BF5 /* Knight.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Knight.h; sourceTree = ""; }; + 4B8414D5179B0EA600916BF5 /* Knight.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Knight.m; sourceTree = ""; }; + 4B8414D6179B0EA600916BF5 /* Quest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Quest.h; sourceTree = ""; }; + 4B8414D8179B0EA600916BF5 /* AssemblyWithInvalidClassName.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = AssemblyWithInvalidClassName.xml; sourceTree = ""; }; + 4B8414D9179B0EA600916BF5 /* CircularDependenciesAssembly.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = CircularDependenciesAssembly.xml; sourceTree = ""; }; + 4B8414DA179B0EA600916BF5 /* ExceptionTestAssembly.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = ExceptionTestAssembly.xml; sourceTree = ""; }; + 4B8414DB179B0EA600916BF5 /* LazyInitCasesAssembly.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = LazyInitCasesAssembly.xml; sourceTree = ""; }; + 4B8414DC179B0EA600916BF5 /* MiddleAgesAssembly.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = MiddleAgesAssembly.xml; sourceTree = ""; }; + 4B8414DD179B0EA600916BF5 /* PropertyPlaceholderAssembly.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = PropertyPlaceholderAssembly.xml; sourceTree = ""; }; + 4B8414DE179B0EA600916BF5 /* SomeProperties.properties */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = SomeProperties.properties; sourceTree = ""; }; + 4B8414DF179B0EA600916BF5 /* Tests-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "Tests-Info.plist"; sourceTree = ""; }; + 4B8414E0179B0EA600916BF5 /* Tests-Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "Tests-Prefix.pch"; sourceTree = ""; }; + 4B8414E2179B0EA600916BF5 /* TyphoonPassthroughTypeConverterTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TyphoonPassthroughTypeConverterTests.m; sourceTree = ""; }; + 4B8414E3179B0EA600916BF5 /* TyphoonPrimitiveTypeConverterTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TyphoonPrimitiveTypeConverterTests.m; sourceTree = ""; }; + 4B8414E4179B0EA600916BF5 /* TyphoonTypeConverterRegistryTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TyphoonTypeConverterRegistryTests.m; sourceTree = ""; }; + 4B8414E5179B0EA600916BF5 /* TyphoonTypeDescriptorTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TyphoonTypeDescriptorTests.m; sourceTree = ""; }; + 4B8414E8179B0EA600916BF5 /* TyphoonBundleResourceTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TyphoonBundleResourceTests.m; sourceTree = ""; }; + 68790B73ADB8466F90D75704 /* libPods-ios.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-ios.a"; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 4B841468179B0E3900916BF5 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 4B841470179B0E3900916BF5 /* SenTestingKit.framework in Frameworks */, + 4B841472179B0E3900916BF5 /* UIKit.framework in Frameworks */, + 4B841474179B0E3900916BF5 /* Foundation.framework in Frameworks */, + CE290681AAB34614991BB839 /* libPods-ios.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 4B841483179B0E5200916BF5 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 4B841488179B0E5200916BF5 /* SenTestingKit.framework in Frameworks */, + 4B84148A179B0E5200916BF5 /* Cocoa.framework in Frameworks */, + E737C7222F214A85BFBA7177 /* libPods-osx.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 4B841460179B0E1B00916BF5 = { + isa = PBXGroup; + children = ( + 4B84149C179B0EA600916BF5 /* Component */, + 4B8414A3179B0EA600916BF5 /* Factory */, + 4B8414B7179B0EA600916BF5 /* Harlot.h */, + 4B8414B8179B0EA600916BF5 /* Model */, + 4B8414D7179B0EA600916BF5 /* Resources */, + 4B8414DF179B0EA600916BF5 /* Tests-Info.plist */, + 4B8414E0179B0EA600916BF5 /* Tests-Prefix.pch */, + 4B8414E1179B0EA600916BF5 /* TypeConversion */, + 4B8414E6179B0EA600916BF5 /* Utils */, + 4B84146E179B0E3900916BF5 /* Frameworks */, + 4B84146D179B0E3900916BF5 /* Products */, + 3CE1DDB3D5554F7C8E583E85 /* Pods-ios.xcconfig */, + 294BCE404F344D5292944E8A /* Pods-osx.xcconfig */, + ); + sourceTree = ""; + }; + 4B84146D179B0E3900916BF5 /* Products */ = { + isa = PBXGroup; + children = ( + 4B84146C179B0E3900916BF5 /* iOS Tests.octest */, + 4B841487179B0E5200916BF5 /* OS X Tests.octest */, + ); + name = Products; + sourceTree = ""; + }; + 4B84146E179B0E3900916BF5 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 4B84146F179B0E3900916BF5 /* SenTestingKit.framework */, + 4B841471179B0E3900916BF5 /* UIKit.framework */, + 4B841473179B0E3900916BF5 /* Foundation.framework */, + 4B841489179B0E5200916BF5 /* Cocoa.framework */, + 4B84148B179B0E5200916BF5 /* Other Frameworks */, + 68790B73ADB8466F90D75704 /* libPods-ios.a */, + 39F0B772284A42C09AA9681B /* libPods-osx.a */, + ); + name = Frameworks; + sourceTree = ""; + }; + 4B84148B179B0E5200916BF5 /* Other Frameworks */ = { + isa = PBXGroup; + children = ( + 4B84148C179B0E5200916BF5 /* AppKit.framework */, + 4B84148D179B0E5200916BF5 /* CoreData.framework */, + 4B84148E179B0E5200916BF5 /* Foundation.framework */, + ); + name = "Other Frameworks"; + sourceTree = ""; + }; + 4B84149C179B0EA600916BF5 /* Component */ = { + isa = PBXGroup; + children = ( + 4B84149D179B0EA600916BF5 /* Properties */, + 4B8414A2179B0EA600916BF5 /* TyphoonDefinitionTests.m */, + ); + path = Component; + sourceTree = ""; + }; + 4B84149D179B0EA600916BF5 /* Properties */ = { + isa = PBXGroup; + children = ( + 4B84149E179B0EA600916BF5 /* ClassWithCollectionProperties.h */, + 4B84149F179B0EA600916BF5 /* ClassWithCollectionProperties.m */, + 4B8414A0179B0EA600916BF5 /* Collection */, + ); + path = Properties; + sourceTree = ""; + }; + 4B8414A0179B0EA600916BF5 /* Collection */ = { + isa = PBXGroup; + children = ( + 4B8414A1179B0EA600916BF5 /* TyphoonPropertyInjectedAsCollectionTests.m */, + ); + path = Collection; + sourceTree = ""; + }; + 4B8414A3179B0EA600916BF5 /* Factory */ = { + isa = PBXGroup; + children = ( + 4B8414A4179B0EA600916BF5 /* Block */, + 4B8414AC179B0EA600916BF5 /* Mutator */, + 4B8414AF179B0EA600916BF5 /* Shared */, + 4B8414B2179B0EA600916BF5 /* TyphoonComponentFactory+InstanceBuilderTests.m */, + 4B8414B3179B0EA600916BF5 /* TyphoonComponentFactoryTests.m */, + 4B8414B4179B0EA600916BF5 /* Xml */, + ); + path = Factory; + sourceTree = ""; + }; + 4B8414A4179B0EA600916BF5 /* Block */ = { + isa = PBXGroup; + children = ( + 4B8414A5179B0EA600916BF5 /* CircularDependenciesAssembly.h */, + 4B8414A6179B0EA600916BF5 /* CircularDependenciesAssembly.m */, + 4B8414A7179B0EA600916BF5 /* ExceptionTestAssembly.h */, + 4B8414A8179B0EA600916BF5 /* ExceptionTestAssembly.m */, + 4B8414A9179B0EA600916BF5 /* MiddleAgesAssembly.h */, + 4B8414AA179B0EA600916BF5 /* MiddleAgesAssembly.m */, + 4B8414AB179B0EA600916BF5 /* TyphoonBlockComponentFactoryTests.m */, + ); + path = Block; + sourceTree = ""; + }; + 4B8414AC179B0EA600916BF5 /* Mutator */ = { + isa = PBXGroup; + children = ( + 4B8414AD179B0EA600916BF5 /* PropertyConfigurer */, + ); + path = Mutator; + sourceTree = ""; + }; + 4B8414AD179B0EA600916BF5 /* PropertyConfigurer */ = { + isa = PBXGroup; + children = ( + 4B8414AE179B0EA600916BF5 /* TyphoonPropertyPlaceholderConfigurerTests.m */, + ); + path = PropertyConfigurer; + sourceTree = ""; + }; + 4B8414AF179B0EA600916BF5 /* Shared */ = { + isa = PBXGroup; + children = ( + 4B8414B0179B0EA600916BF5 /* TyphoonSharedComponentFactoryTests.h */, + 4B8414B1179B0EA600916BF5 /* TyphoonSharedComponentFactoryTests.m */, + ); + path = Shared; + sourceTree = ""; + }; + 4B8414B4179B0EA600916BF5 /* Xml */ = { + isa = PBXGroup; + children = ( + 4B8414B5179B0EA600916BF5 /* RXMLElement+XmlComponentFactoryTests.m */, + 4B8414B6179B0EA600916BF5 /* TyphoonXmlComponentFactoryTests.m */, + ); + path = Xml; + sourceTree = ""; + }; + 4B8414B8179B0EA600916BF5 /* Model */ = { + isa = PBXGroup; + children = ( + 4B8414B9179B0EA600916BF5 /* AutoWiring */, + 4B8414BE179B0EA600916BF5 /* CampaignQuest.h */, + 4B8414BF179B0EA600916BF5 /* CampaignQuest.m */, + 4B8414C0179B0EA600916BF5 /* CavalryMan.h */, + 4B8414C1179B0EA600916BF5 /* CavalryMan.m */, + 4B8414C2179B0EA600916BF5 /* Champion.h */, + 4B8414C3179B0EA600916BF5 /* Champion.m */, + 4B8414C4179B0EA600916BF5 /* CircularDependencies */, + 4B8414CF179B0EA600916BF5 /* Factory */, + 4B8414D4179B0EA600916BF5 /* Knight.h */, + 4B8414D5179B0EA600916BF5 /* Knight.m */, + 4B8414D6179B0EA600916BF5 /* Quest.h */, + ); + path = Model; + sourceTree = ""; + }; + 4B8414B9179B0EA600916BF5 /* AutoWiring */ = { + isa = PBXGroup; + children = ( + 4B8414BA179B0EA600916BF5 /* AutoWiringKnight.h */, + 4B8414BB179B0EA600916BF5 /* AutoWiringKnight.m */, + 4B8414BC179B0EA600916BF5 /* AutoWiringSubClassedKnight.h */, + 4B8414BD179B0EA600916BF5 /* AutoWiringSubClassedKnight.m */, + ); + path = AutoWiring; + sourceTree = ""; + }; + 4B8414C4179B0EA600916BF5 /* CircularDependencies */ = { + isa = PBXGroup; + children = ( + 4B8414C5179B0EA600916BF5 /* ClassADependsOnB.h */, + 4B8414C6179B0EA600916BF5 /* ClassADependsOnB.m */, + 4B8414C7179B0EA600916BF5 /* ClassBDependsOnA.h */, + 4B8414C8179B0EA600916BF5 /* ClassBDependsOnA.m */, + 4B8414C9179B0EA600916BF5 /* ClassCDependsOnDAndE.h */, + 4B8414CA179B0EA600916BF5 /* ClassCDependsOnDAndE.m */, + 4B8414CB179B0EA600916BF5 /* ClassDDependsOnC.h */, + 4B8414CC179B0EA600916BF5 /* ClassDDependsOnC.m */, + 4B8414CD179B0EA600916BF5 /* ClassEDependsOnC.h */, + 4B8414CE179B0EA600916BF5 /* ClassEDependsOnC.m */, + ); + path = CircularDependencies; + sourceTree = ""; + }; + 4B8414CF179B0EA600916BF5 /* Factory */ = { + isa = PBXGroup; + children = ( + 4B8414D0179B0EA600916BF5 /* Sword.h */, + 4B8414D1179B0EA600916BF5 /* Sword.m */, + 4B8414D2179B0EA600916BF5 /* SwordFactory.h */, + 4B8414D3179B0EA600916BF5 /* SwordFactory.m */, + ); + path = Factory; + sourceTree = ""; + }; + 4B8414D7179B0EA600916BF5 /* Resources */ = { + isa = PBXGroup; + children = ( + 4B8414D8179B0EA600916BF5 /* AssemblyWithInvalidClassName.xml */, + 4B8414D9179B0EA600916BF5 /* CircularDependenciesAssembly.xml */, + 4B8414DA179B0EA600916BF5 /* ExceptionTestAssembly.xml */, + 4B8414DB179B0EA600916BF5 /* LazyInitCasesAssembly.xml */, + 4B8414DC179B0EA600916BF5 /* MiddleAgesAssembly.xml */, + 4B8414DD179B0EA600916BF5 /* PropertyPlaceholderAssembly.xml */, + 4B8414DE179B0EA600916BF5 /* SomeProperties.properties */, + ); + path = Resources; + sourceTree = ""; + }; + 4B8414E1179B0EA600916BF5 /* TypeConversion */ = { + isa = PBXGroup; + children = ( + 4B8414E2179B0EA600916BF5 /* TyphoonPassthroughTypeConverterTests.m */, + 4B8414E3179B0EA600916BF5 /* TyphoonPrimitiveTypeConverterTests.m */, + 4B8414E4179B0EA600916BF5 /* TyphoonTypeConverterRegistryTests.m */, + 4B8414E5179B0EA600916BF5 /* TyphoonTypeDescriptorTests.m */, + ); + path = TypeConversion; + sourceTree = ""; + }; + 4B8414E6179B0EA600916BF5 /* Utils */ = { + isa = PBXGroup; + children = ( + 4B8414E7179B0EA600916BF5 /* Resource */, + ); + path = Utils; + sourceTree = ""; + }; + 4B8414E7179B0EA600916BF5 /* Resource */ = { + isa = PBXGroup; + children = ( + 4B8414E8179B0EA600916BF5 /* TyphoonBundleResourceTests.m */, + ); + path = Resource; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 4B84146B179B0E3900916BF5 /* iOS Tests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 4B84147F179B0E3900916BF5 /* Build configuration list for PBXNativeTarget "iOS Tests" */; + buildPhases = ( + 1AD1AC06E2E44EF392FF7D3C /* Check Pods Manifest.lock */, + 4B841467179B0E3900916BF5 /* Sources */, + 4B841468179B0E3900916BF5 /* Frameworks */, + 4B841469179B0E3900916BF5 /* Resources */, + 4B84146A179B0E3900916BF5 /* ShellScript */, + 507E953EE20E4B3BB6580726 /* Copy Pods Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "iOS Tests"; + productName = "iOS Tests"; + productReference = 4B84146C179B0E3900916BF5 /* iOS Tests.octest */; + productType = "com.apple.product-type.bundle"; + }; + 4B841486179B0E5200916BF5 /* OS X Tests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 4B841499179B0E5200916BF5 /* Build configuration list for PBXNativeTarget "OS X Tests" */; + buildPhases = ( + 9C867ED534C64DE6A611443E /* Check Pods Manifest.lock */, + 4B841482179B0E5200916BF5 /* Sources */, + 4B841483179B0E5200916BF5 /* Frameworks */, + 4B841484179B0E5200916BF5 /* Resources */, + 4B841485179B0E5200916BF5 /* ShellScript */, + B70E614B18A1463E885266C6 /* Copy Pods Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "OS X Tests"; + productName = "OS X Tests"; + productReference = 4B841487179B0E5200916BF5 /* OS X Tests.octest */; + productType = "com.apple.product-type.bundle"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 4B841461179B0E1B00916BF5 /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 0460; + }; + buildConfigurationList = 4B841464179B0E1B00916BF5 /* Build configuration list for PBXProject "Tests" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = 4B841460179B0E1B00916BF5; + productRefGroup = 4B84146D179B0E3900916BF5 /* Products */; + projectDirPath = ""; + projectReferences = ( + ); + projectRoot = ""; + targets = ( + 4B84146B179B0E3900916BF5 /* iOS Tests */, + 4B841486179B0E5200916BF5 /* OS X Tests */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 4B841469179B0E3900916BF5 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 4B84151D179B0EA600916BF5 /* AssemblyWithInvalidClassName.xml in Resources */, + 4B84151F179B0EA600916BF5 /* CircularDependenciesAssembly.xml in Resources */, + 4B841521179B0EA600916BF5 /* ExceptionTestAssembly.xml in Resources */, + 4B841523179B0EA600916BF5 /* LazyInitCasesAssembly.xml in Resources */, + 4B841525179B0EA600916BF5 /* MiddleAgesAssembly.xml in Resources */, + 4B841527179B0EA600916BF5 /* PropertyPlaceholderAssembly.xml in Resources */, + 4B841529179B0EA600916BF5 /* SomeProperties.properties in Resources */, + 4B84152B179B0EA600916BF5 /* Tests-Info.plist in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 4B841484179B0E5200916BF5 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 4B84151E179B0EA600916BF5 /* AssemblyWithInvalidClassName.xml in Resources */, + 4B841520179B0EA600916BF5 /* CircularDependenciesAssembly.xml in Resources */, + 4B841522179B0EA600916BF5 /* ExceptionTestAssembly.xml in Resources */, + 4B841524179B0EA600916BF5 /* LazyInitCasesAssembly.xml in Resources */, + 4B841526179B0EA600916BF5 /* MiddleAgesAssembly.xml in Resources */, + 4B841528179B0EA600916BF5 /* PropertyPlaceholderAssembly.xml in Resources */, + 4B84152A179B0EA600916BF5 /* SomeProperties.properties in Resources */, + 4B84152C179B0EA600916BF5 /* Tests-Info.plist in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 1AD1AC06E2E44EF392FF7D3C /* Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Check Pods Manifest.lock"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n"; + showEnvVarsInLog = 0; + }; + 4B84146A179B0E3900916BF5 /* 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"; + }; + 4B841485179B0E5200916BF5 /* 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"; + }; + 507E953EE20E4B3BB6580726 /* Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Copy Pods Resources"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Pods-ios-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; + 9C867ED534C64DE6A611443E /* Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Check Pods Manifest.lock"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n"; + showEnvVarsInLog = 0; + }; + B70E614B18A1463E885266C6 /* Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Copy Pods Resources"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Pods-osx-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 4B841467179B0E3900916BF5 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 4B8414E9179B0EA600916BF5 /* ClassWithCollectionProperties.m in Sources */, + 4B8414EB179B0EA600916BF5 /* TyphoonPropertyInjectedAsCollectionTests.m in Sources */, + 4B8414ED179B0EA600916BF5 /* TyphoonDefinitionTests.m in Sources */, + 4B8414EF179B0EA600916BF5 /* CircularDependenciesAssembly.m in Sources */, + 4B8414F1179B0EA600916BF5 /* ExceptionTestAssembly.m in Sources */, + 4B8414F3179B0EA600916BF5 /* MiddleAgesAssembly.m in Sources */, + 4B8414F5179B0EA600916BF5 /* TyphoonBlockComponentFactoryTests.m in Sources */, + 4B8414F7179B0EA600916BF5 /* TyphoonPropertyPlaceholderConfigurerTests.m in Sources */, + 4B8414F9179B0EA600916BF5 /* TyphoonSharedComponentFactoryTests.m in Sources */, + 4B8414FB179B0EA600916BF5 /* TyphoonComponentFactory+InstanceBuilderTests.m in Sources */, + 4B8414FD179B0EA600916BF5 /* TyphoonComponentFactoryTests.m in Sources */, + 4B8414FF179B0EA600916BF5 /* RXMLElement+XmlComponentFactoryTests.m in Sources */, + 4B841501179B0EA600916BF5 /* TyphoonXmlComponentFactoryTests.m in Sources */, + 4B841503179B0EA600916BF5 /* AutoWiringKnight.m in Sources */, + 4B841505179B0EA600916BF5 /* AutoWiringSubClassedKnight.m in Sources */, + 4B841507179B0EA600916BF5 /* CampaignQuest.m in Sources */, + 4B841509179B0EA600916BF5 /* CavalryMan.m in Sources */, + 4B84150B179B0EA600916BF5 /* Champion.m in Sources */, + 4B84150D179B0EA600916BF5 /* ClassADependsOnB.m in Sources */, + 4B84150F179B0EA600916BF5 /* ClassBDependsOnA.m in Sources */, + 4B841511179B0EA600916BF5 /* ClassCDependsOnDAndE.m in Sources */, + 4B841513179B0EA600916BF5 /* ClassDDependsOnC.m in Sources */, + 4B841515179B0EA600916BF5 /* ClassEDependsOnC.m in Sources */, + 4B841517179B0EA600916BF5 /* Sword.m in Sources */, + 4B841519179B0EA600916BF5 /* SwordFactory.m in Sources */, + 4B84151B179B0EA600916BF5 /* Knight.m in Sources */, + 4B84152D179B0EA600916BF5 /* TyphoonPassthroughTypeConverterTests.m in Sources */, + 4B84152F179B0EA600916BF5 /* TyphoonPrimitiveTypeConverterTests.m in Sources */, + 4B841531179B0EA600916BF5 /* TyphoonTypeConverterRegistryTests.m in Sources */, + 4B841533179B0EA600916BF5 /* TyphoonTypeDescriptorTests.m in Sources */, + 4B841535179B0EA600916BF5 /* TyphoonBundleResourceTests.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 4B841482179B0E5200916BF5 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 4B8414EA179B0EA600916BF5 /* ClassWithCollectionProperties.m in Sources */, + 4B8414EC179B0EA600916BF5 /* TyphoonPropertyInjectedAsCollectionTests.m in Sources */, + 4B8414EE179B0EA600916BF5 /* TyphoonDefinitionTests.m in Sources */, + 4B8414F0179B0EA600916BF5 /* CircularDependenciesAssembly.m in Sources */, + 4B8414F2179B0EA600916BF5 /* ExceptionTestAssembly.m in Sources */, + 4B8414F4179B0EA600916BF5 /* MiddleAgesAssembly.m in Sources */, + 4B8414F6179B0EA600916BF5 /* TyphoonBlockComponentFactoryTests.m in Sources */, + 4B8414F8179B0EA600916BF5 /* TyphoonPropertyPlaceholderConfigurerTests.m in Sources */, + 4B8414FA179B0EA600916BF5 /* TyphoonSharedComponentFactoryTests.m in Sources */, + 4B8414FC179B0EA600916BF5 /* TyphoonComponentFactory+InstanceBuilderTests.m in Sources */, + 4B8414FE179B0EA600916BF5 /* TyphoonComponentFactoryTests.m in Sources */, + 4B841500179B0EA600916BF5 /* RXMLElement+XmlComponentFactoryTests.m in Sources */, + 4B841502179B0EA600916BF5 /* TyphoonXmlComponentFactoryTests.m in Sources */, + 4B841504179B0EA600916BF5 /* AutoWiringKnight.m in Sources */, + 4B841506179B0EA600916BF5 /* AutoWiringSubClassedKnight.m in Sources */, + 4B841508179B0EA600916BF5 /* CampaignQuest.m in Sources */, + 4B84150A179B0EA600916BF5 /* CavalryMan.m in Sources */, + 4B84150C179B0EA600916BF5 /* Champion.m in Sources */, + 4B84150E179B0EA600916BF5 /* ClassADependsOnB.m in Sources */, + 4B841510179B0EA600916BF5 /* ClassBDependsOnA.m in Sources */, + 4B841512179B0EA600916BF5 /* ClassCDependsOnDAndE.m in Sources */, + 4B841514179B0EA600916BF5 /* ClassDDependsOnC.m in Sources */, + 4B841516179B0EA600916BF5 /* ClassEDependsOnC.m in Sources */, + 4B841518179B0EA600916BF5 /* Sword.m in Sources */, + 4B84151A179B0EA600916BF5 /* SwordFactory.m in Sources */, + 4B84151C179B0EA600916BF5 /* Knight.m in Sources */, + 4B84152E179B0EA600916BF5 /* TyphoonPassthroughTypeConverterTests.m in Sources */, + 4B841530179B0EA600916BF5 /* TyphoonPrimitiveTypeConverterTests.m in Sources */, + 4B841532179B0EA600916BF5 /* TyphoonTypeConverterRegistryTests.m in Sources */, + 4B841534179B0EA600916BF5 /* TyphoonTypeDescriptorTests.m in Sources */, + 4B841536179B0EA600916BF5 /* TyphoonBundleResourceTests.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + 4B841465179B0E1B00916BF5 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + }; + name = Debug; + }; + 4B841466179B0E1B00916BF5 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + }; + name = Release; + }; + 4B841480179B0E3900916BF5 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 3CE1DDB3D5554F7C8E583E85 /* Pods-ios.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + FRAMEWORK_SEARCH_PATHS = ( + "\"$(SDKROOT)/Developer/Library/Frameworks\"", + "\"$(DEVELOPER_LIBRARY_DIR)/Frameworks\"", + ); + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "Tests-Prefix.pch"; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + INFOPLIST_FILE = "Tests-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 6.1; + ONLY_ACTIVE_ARCH = YES; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + WRAPPER_EXTENSION = octest; + }; + name = Debug; + }; + 4B841481179B0E3900916BF5 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 3CE1DDB3D5554F7C8E583E85 /* Pods-ios.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = YES; + FRAMEWORK_SEARCH_PATHS = ( + "\"$(SDKROOT)/Developer/Library/Frameworks\"", + "\"$(DEVELOPER_LIBRARY_DIR)/Frameworks\"", + ); + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "Tests-Prefix.pch"; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + INFOPLIST_FILE = "Tests-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 6.1; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + VALIDATE_PRODUCT = YES; + WRAPPER_EXTENSION = octest; + }; + name = Release; + }; + 4B84149A179B0E5200916BF5 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 294BCE404F344D5292944E8A /* Pods-osx.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COMBINE_HIDPI_IMAGES = YES; + COPY_PHASE_STRIP = NO; + FRAMEWORK_SEARCH_PATHS = "\"$(DEVELOPER_LIBRARY_DIR)/Frameworks\""; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "Tests-Prefix.pch"; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + INFOPLIST_FILE = "Tests-Info.plist"; + MACOSX_DEPLOYMENT_TARGET = 10.8; + ONLY_ACTIVE_ARCH = YES; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + WRAPPER_EXTENSION = octest; + }; + name = Debug; + }; + 4B84149B179B0E5200916BF5 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 294BCE404F344D5292944E8A /* Pods-osx.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COMBINE_HIDPI_IMAGES = YES; + COPY_PHASE_STRIP = YES; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + FRAMEWORK_SEARCH_PATHS = "\"$(DEVELOPER_LIBRARY_DIR)/Frameworks\""; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_OBJC_EXCEPTIONS = YES; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "Tests-Prefix.pch"; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + INFOPLIST_FILE = "Tests-Info.plist"; + MACOSX_DEPLOYMENT_TARGET = 10.8; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + WRAPPER_EXTENSION = octest; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 4B841464179B0E1B00916BF5 /* Build configuration list for PBXProject "Tests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 4B841465179B0E1B00916BF5 /* Debug */, + 4B841466179B0E1B00916BF5 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 4B84147F179B0E3900916BF5 /* Build configuration list for PBXNativeTarget "iOS Tests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 4B841480179B0E3900916BF5 /* Debug */, + 4B841481179B0E3900916BF5 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 4B841499179B0E5200916BF5 /* Build configuration list for PBXNativeTarget "OS X Tests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 4B84149A179B0E5200916BF5 /* Debug */, + 4B84149B179B0E5200916BF5 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 4B841461179B0E1B00916BF5 /* Project object */; +} diff --git a/Typhoon.xcodeproj/xcuserdata/jblues.xcuserdatad/xcschemes/Tests.xcscheme b/Tests/Tests.xcodeproj/xcshareddata/xcschemes/OS X Tests.xcscheme similarity index 55% rename from Typhoon.xcodeproj/xcuserdata/jblues.xcuserdatad/xcschemes/Tests.xcscheme rename to Tests/Tests.xcodeproj/xcshareddata/xcschemes/OS X Tests.xcscheme index 9a84d0130..d02e1ebea 100644 --- a/Typhoon.xcodeproj/xcuserdata/jblues.xcuserdatad/xcschemes/Tests.xcscheme +++ b/Tests/Tests.xcodeproj/xcshareddata/xcschemes/OS X Tests.xcscheme @@ -7,17 +7,14 @@ buildImplicitDependencies = "YES"> + buildForTesting = "YES"> + BlueprintIdentifier = "4B841486179B0E5200916BF5" + BuildableName = "OS X Tests.octest" + BlueprintName = "OS X Tests" + ReferencedContainer = "container:Tests.xcodeproj"> @@ -32,10 +29,10 @@ skipped = "NO"> + BlueprintIdentifier = "4B841486179B0E5200916BF5" + BuildableName = "OS X Tests.octest" + BlueprintName = "OS X Tests" + ReferencedContainer = "container:Tests.xcodeproj"> @@ -50,36 +47,6 @@ debugDocumentVersioning = "YES" allowLocationSimulation = "YES"> - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Tests/TypeConversion/TyphoonTypeDescriptorTests.m b/Tests/TypeConversion/TyphoonTypeDescriptorTests.m index 3b9ecb20d..09f071f66 100644 --- a/Tests/TypeConversion/TyphoonTypeDescriptorTests.m +++ b/Tests/TypeConversion/TyphoonTypeDescriptorTests.m @@ -101,7 +101,6 @@ - (void)test_typeForPropertyWithName_long TyphoonTypeDescriptor* descriptor = [self typeForPropertyWithName:@"longProperty"]; assertThatBool(descriptor.isPrimitive, equalToBool(YES)); assertThatBool(descriptor.isPointer, equalToBool(NO)); - assertThatInt(descriptor.primitiveType, equalToInt(TyphoonPrimitiveTypeLongLong)); } - (void)test_typeForPropertyWithName_pointerToLongLong @@ -109,7 +108,6 @@ - (void)test_typeForPropertyWithName_pointerToLongLong TyphoonTypeDescriptor* descriptor = [self typeForPropertyWithName:@"pointerToLongLongProperty"]; assertThatBool(descriptor.isPrimitive, equalToBool(YES)); assertThatBool(descriptor.isPointer, equalToBool(YES)); - assertThatInt(descriptor.primitiveType, equalToInt(TyphoonPrimitiveTypeUnsignedLongLong)); } - (void)test_typeForPropertyWithName_struct @@ -145,11 +143,10 @@ - (void)test_typeCodesForSelectorWithName NSLog(@"Here's the typeCodes: %@", typeCodes); assertThat([typeCodes objectAtIndex:0], equalTo(@"@")); - assertThat([typeCodes objectAtIndex:1], equalTo(@"Q")); + TyphoonTypeDescriptor* typeDescriptor = [TyphoonTypeDescriptor descriptorWithTypeCode:[typeCodes objectAtIndex:1]]; assertThatBool(typeDescriptor.isPrimitive, equalToBool(YES)); - assertThatInt(typeDescriptor.primitiveType, equalToInt(TyphoonPrimitiveTypeUnsignedLongLong)); } @end \ No newline at end of file diff --git a/Tests/en.lproj/InfoPlist.strings b/Tests/en.lproj/InfoPlist.strings deleted file mode 100644 index 477b28ff8..000000000 --- a/Tests/en.lproj/InfoPlist.strings +++ /dev/null @@ -1,2 +0,0 @@ -/* Localized versions of Info.plist keys */ - diff --git a/Typhoon.podspec b/Typhoon.podspec index b67f11fe5..dd0589264 100644 --- a/Typhoon.podspec +++ b/Typhoon.podspec @@ -1,11 +1,11 @@ Pod::Spec.new do |spec| spec.name = 'Typhoon' - spec.version = '1.2.2' + spec.version = '1.2.3' 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 = { :git => 'https://github.com/jasperblues/Typhoon.git', :tag => '1.2.3' } spec.source_files = 'Source/**/*.{h,m}' spec.libraries = 'z', 'xml2' spec.xcconfig = { 'HEADER_SEARCH_PATHS' => '$(SDKROOT)/usr/include/libxml2' } diff --git a/Typhoon.xcodeproj/project.xcworkspace/xcuserdata/jblues.xcuserdatad/UserInterfaceState.xcuserstate b/Typhoon.xcodeproj/project.xcworkspace/xcuserdata/jblues.xcuserdatad/UserInterfaceState.xcuserstate deleted file mode 100644 index c646fdef7..000000000 Binary files a/Typhoon.xcodeproj/project.xcworkspace/xcuserdata/jblues.xcuserdatad/UserInterfaceState.xcuserstate and /dev/null differ diff --git a/Typhoon.xcodeproj/xcuserdata/jblues.xcuserdatad/xcschemes/xcschememanagement.plist b/Typhoon.xcodeproj/xcuserdata/jblues.xcuserdatad/xcschemes/xcschememanagement.plist deleted file mode 100644 index 3dec978b2..000000000 --- a/Typhoon.xcodeproj/xcuserdata/jblues.xcuserdatad/xcschemes/xcschememanagement.plist +++ /dev/null @@ -1,37 +0,0 @@ - - - - - SchemeUserState - - Tests.xcscheme - - orderHint - 1 - - Typhoon.xcscheme - - orderHint - 0 - - - SuppressBuildableAutocreation - - 6B3F396F16ABF854001A601C - - primary - - - 6B3F399416ABF8E5001A601C - - primary - - - 6B3F39C016ABFAC3001A601C - - primary - - - - - diff --git a/Typhoon.xcworkspace/contents.xcworkspacedata b/Typhoon.xcworkspace/contents.xcworkspacedata new file mode 100644 index 000000000..a619b1be8 --- /dev/null +++ b/Typhoon.xcworkspace/contents.xcworkspacedata @@ -0,0 +1 @@ + \ No newline at end of file