| Index: third_party/ocmock/OCMock/OCMockRecorder.m
|
| diff --git a/third_party/ocmock/OCMock/OCMockRecorder.m b/third_party/ocmock/OCMock/OCMockRecorder.m
|
| deleted file mode 100644
|
| index 5cd63d2b4c84ae3cf84f4cc81f9687a2b680e533..0000000000000000000000000000000000000000
|
| --- a/third_party/ocmock/OCMock/OCMockRecorder.m
|
| +++ /dev/null
|
| @@ -1,187 +0,0 @@
|
| -//---------------------------------------------------------------------------------------
|
| -// $Id$
|
| -// Copyright (c) 2004-2011 by Mulle Kybernetik. See License file for details.
|
| -//---------------------------------------------------------------------------------------
|
| -
|
| -#import <objc/runtime.h>
|
| -#import <OCMock/OCMockRecorder.h>
|
| -#import <OCMock/OCMArg.h>
|
| -#import <OCMock/OCMConstraint.h>
|
| -#import "OCMPassByRefSetter.h"
|
| -#import "OCMReturnValueProvider.h"
|
| -#import "OCMBoxedReturnValueProvider.h"
|
| -#import "OCMExceptionReturnValueProvider.h"
|
| -#import "OCMIndirectReturnValueProvider.h"
|
| -#import "OCMNotificationPoster.h"
|
| -#import "OCMBlockCaller.h"
|
| -#import "NSInvocation+OCMAdditions.h"
|
| -
|
| -@interface NSObject(HCMatcherDummy)
|
| -- (BOOL)matches:(id)item;
|
| -@end
|
| -
|
| -#pragma mark -
|
| -
|
| -
|
| -@implementation OCMockRecorder
|
| -
|
| -#pragma mark Initialisers, description, accessors, etc.
|
| -
|
| -- (id)initWithSignatureResolver:(id)anObject
|
| -{
|
| - signatureResolver = anObject;
|
| - invocationHandlers = [[NSMutableArray alloc] init];
|
| - return self;
|
| -}
|
| -
|
| -- (void)dealloc
|
| -{
|
| - [recordedInvocation release];
|
| - [invocationHandlers release];
|
| - [super dealloc];
|
| -}
|
| -
|
| -- (NSString *)description
|
| -{
|
| - return [recordedInvocation invocationDescription];
|
| -}
|
| -
|
| -- (void)releaseInvocation
|
| -{
|
| - [recordedInvocation release];
|
| - recordedInvocation = nil;
|
| -}
|
| -
|
| -
|
| -#pragma mark Recording invocation handlers
|
| -
|
| -- (id)andReturn:(id)anObject
|
| -{
|
| - [invocationHandlers addObject:[[[OCMReturnValueProvider alloc] initWithValue:anObject] autorelease]];
|
| - return self;
|
| -}
|
| -
|
| -- (id)andReturnValue:(NSValue *)aValue
|
| -{
|
| - [invocationHandlers addObject:[[[OCMBoxedReturnValueProvider alloc] initWithValue:aValue] autorelease]];
|
| - return self;
|
| -}
|
| -
|
| -- (id)andThrow:(NSException *)anException
|
| -{
|
| - [invocationHandlers addObject:[[[OCMExceptionReturnValueProvider alloc] initWithValue:anException] autorelease]];
|
| - return self;
|
| -}
|
| -
|
| -- (id)andPost:(NSNotification *)aNotification
|
| -{
|
| - [invocationHandlers addObject:[[[OCMNotificationPoster alloc] initWithNotification:aNotification] autorelease]];
|
| - return self;
|
| -}
|
| -
|
| -- (id)andCall:(SEL)selector onObject:(id)anObject
|
| -{
|
| - [invocationHandlers addObject:[[[OCMIndirectReturnValueProvider alloc] initWithProvider:anObject andSelector:selector] autorelease]];
|
| - return self;
|
| -}
|
| -
|
| -#if NS_BLOCKS_AVAILABLE
|
| -
|
| -- (id)andDo:(void (^)(NSInvocation *))aBlock
|
| -{
|
| - [invocationHandlers addObject:[[[OCMBlockCaller alloc] initWithCallBlock:aBlock] autorelease]];
|
| - return self;
|
| -}
|
| -
|
| -#endif
|
| -
|
| -- (id)andForwardToRealObject
|
| -{
|
| - [NSException raise:NSInternalInconsistencyException format:@"Method %@ can only be used with partial mocks.",
|
| - NSStringFromSelector(_cmd)];
|
| - return self; // keep compiler happy
|
| -}
|
| -
|
| -
|
| -- (NSArray *)invocationHandlers
|
| -{
|
| - return invocationHandlers;
|
| -}
|
| -
|
| -
|
| -#pragma mark Recording the actual invocation
|
| -
|
| -- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
|
| -{
|
| - return [signatureResolver methodSignatureForSelector:aSelector];
|
| -}
|
| -
|
| -- (void)forwardInvocation:(NSInvocation *)anInvocation
|
| -{
|
| - if(recordedInvocation != nil)
|
| - [NSException raise:NSInternalInconsistencyException format:@"Recorder received two methods to record."];
|
| - [anInvocation setTarget:nil];
|
| - [anInvocation retainArguments];
|
| - recordedInvocation = [anInvocation retain];
|
| -}
|
| -
|
| -
|
| -
|
| -#pragma mark Checking the invocation
|
| -
|
| -- (BOOL)matchesInvocation:(NSInvocation *)anInvocation
|
| -{
|
| - id recordedArg, passedArg;
|
| - int i, n;
|
| -
|
| - if([anInvocation selector] != [recordedInvocation selector])
|
| - return NO;
|
| -
|
| - n = (int)[[recordedInvocation methodSignature] numberOfArguments];
|
| - for(i = 2; i < n; i++)
|
| - {
|
| - recordedArg = [recordedInvocation getArgumentAtIndexAsObject:i];
|
| - passedArg = [anInvocation getArgumentAtIndexAsObject:i];
|
| -
|
| - if([recordedArg isProxy])
|
| - {
|
| - if(![recordedArg isEqual:passedArg])
|
| - return NO;
|
| - continue;
|
| - }
|
| -
|
| - if([recordedArg isKindOfClass:[NSValue class]])
|
| - recordedArg = [OCMArg resolveSpecialValues:recordedArg];
|
| -
|
| - if([recordedArg isKindOfClass:[OCMConstraint class]])
|
| - {
|
| - if([recordedArg evaluate:passedArg] == NO)
|
| - return NO;
|
| - }
|
| - else if([recordedArg isKindOfClass:[OCMPassByRefSetter class]])
|
| - {
|
| - // side effect but easier to do here than in handleInvocation
|
| - *(id *)[passedArg pointerValue] = [(OCMPassByRefSetter *)recordedArg value];
|
| - }
|
| - else if([recordedArg conformsToProtocol:objc_getProtocol("HCMatcher")])
|
| - {
|
| - if([recordedArg matches:passedArg] == NO)
|
| - return NO;
|
| - }
|
| - else
|
| - {
|
| - if(([recordedArg class] == [NSNumber class]) &&
|
| - ([(NSNumber*)recordedArg compare:(NSNumber*)passedArg] != NSOrderedSame))
|
| - return NO;
|
| - if(([recordedArg isEqual:passedArg] == NO) &&
|
| - !((recordedArg == nil) && (passedArg == nil)))
|
| - return NO;
|
| - }
|
| - }
|
| - return YES;
|
| -}
|
| -
|
| -
|
| -
|
| -
|
| -@end
|
|
|