Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(70)

Unified Diff: third_party/ocmock/OCMock/OCMStubRecorder.m

Issue 2624143003: Update OCMock to 3.1.5 (Closed)
Patch Set: Patches in more commits Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « third_party/ocmock/OCMock/OCMStubRecorder.h ('k') | third_party/ocmock/OCMock/OCMVerifier.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/ocmock/OCMock/OCMStubRecorder.m
diff --git a/third_party/ocmock/OCMock/OCMStubRecorder.m b/third_party/ocmock/OCMock/OCMStubRecorder.m
new file mode 100644
index 0000000000000000000000000000000000000000..665fa8f3106a7de936939453539e3fdf0da5e7c0
--- /dev/null
+++ b/third_party/ocmock/OCMock/OCMStubRecorder.m
@@ -0,0 +1,187 @@
+/*
+ * Copyright (c) 2004-2015 Erik Doernenburg and contributors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may
+ * not use these files 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.
+ */
+
+#import "OCMStubRecorder.h"
+#import "OCClassMockObject.h"
+#import "OCMReturnValueProvider.h"
+#import "OCMBoxedReturnValueProvider.h"
+#import "OCMExceptionReturnValueProvider.h"
+#import "OCMIndirectReturnValueProvider.h"
+#import "OCMNotificationPoster.h"
+#import "OCMBlockCaller.h"
+#import "OCMRealObjectForwarder.h"
+#import "OCMFunctions.h"
+#import "OCMInvocationStub.h"
+
+
+@implementation OCMStubRecorder
+
+#pragma mark Initialisers, description, accessors, etc.
+
+- (id)init
+{
+ self = [super init];
+ invocationMatcher = [[OCMInvocationStub alloc] init];
+ return self;
+}
+
+- (OCMInvocationStub *)stub
+{
+ return (OCMInvocationStub *)invocationMatcher;
+}
+
+
+#pragma mark Recording invocation actions
+
+- (id)andReturn:(id)anObject
+{
+ [[self stub] addInvocationAction:[[[OCMReturnValueProvider alloc] initWithValue:anObject] autorelease]];
+ return self;
+}
+
+- (id)andReturnValue:(NSValue *)aValue
+{
+ [[self stub] addInvocationAction:[[[OCMBoxedReturnValueProvider alloc] initWithValue:aValue] autorelease]];
+ return self;
+}
+
+- (id)andThrow:(NSException *)anException
+{
+ [[self stub] addInvocationAction:[[[OCMExceptionReturnValueProvider alloc] initWithValue:anException] autorelease]];
+ return self;
+}
+
+- (id)andPost:(NSNotification *)aNotification
+{
+ [[self stub] addInvocationAction:[[[OCMNotificationPoster alloc] initWithNotification:aNotification] autorelease]];
+ return self;
+}
+
+- (id)andCall:(SEL)selector onObject:(id)anObject
+{
+ [[self stub] addInvocationAction:[[[OCMIndirectReturnValueProvider alloc] initWithProvider:anObject andSelector:selector] autorelease]];
+ return self;
+}
+
+- (id)andDo:(void (^)(NSInvocation *))aBlock
+{
+ [[self stub] addInvocationAction:[[[OCMBlockCaller alloc] initWithCallBlock:aBlock] autorelease]];
+ return self;
+}
+
+- (id)andForwardToRealObject
+{
+ [[self stub] addInvocationAction:[[[OCMRealObjectForwarder alloc] init] autorelease]];
+ return self;
+}
+
+
+#pragma mark Finishing recording
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ [super forwardInvocation:anInvocation];
+ [mockObject addStub:[self stub]];
+}
+
+
+@end
+
+
+@implementation OCMStubRecorder (Properties)
+
+@dynamic _andReturn;
+
+- (OCMStubRecorder *(^)(NSValue *))_andReturn
+{
+ id (^theBlock)(id) = ^ (NSValue *aValue)
+ {
+ if(OCMIsObjectType([aValue objCType]))
+ {
+ NSValue *objValue = nil;
+ [aValue getValue:&objValue];
+ return [self andReturn:objValue];
+ }
+ else
+ {
+ return [self andReturnValue:aValue];
+ }
+ };
+ return [[theBlock copy] autorelease];
+}
+
+
+@dynamic _andThrow;
+
+- (OCMStubRecorder *(^)(NSException *))_andThrow
+{
+ id (^theBlock)(id) = ^ (NSException * anException)
+ {
+ return [self andThrow:anException];
+ };
+ return [[theBlock copy] autorelease];
+}
+
+
+@dynamic _andPost;
+
+- (OCMStubRecorder *(^)(NSNotification *))_andPost
+{
+ id (^theBlock)(id) = ^ (NSNotification * aNotification)
+ {
+ return [self andPost:aNotification];
+ };
+ return [[theBlock copy] autorelease];
+}
+
+
+@dynamic _andCall;
+
+- (OCMStubRecorder *(^)(id, SEL))_andCall
+{
+ id (^theBlock)(id, SEL) = ^ (id anObject, SEL aSelector)
+ {
+ return [self andCall:aSelector onObject:anObject];
+ };
+ return [[theBlock copy] autorelease];
+}
+
+
+@dynamic _andDo;
+
+- (OCMStubRecorder *(^)(void (^)(NSInvocation *)))_andDo
+{
+ id (^theBlock)(void (^)(NSInvocation *)) = ^ (void (^ blockToCall)(NSInvocation *))
+ {
+ return [self andDo:blockToCall];
+ };
+ return [[theBlock copy] autorelease];
+}
+
+
+@dynamic _andForwardToRealObject;
+
+- (OCMStubRecorder *(^)(void))_andForwardToRealObject
+{
+ id (^theBlock)(void) = ^ (void)
+ {
+ return [self andForwardToRealObject];
+ };
+ return [[theBlock copy] autorelease];
+}
+
+
+@end
« no previous file with comments | « third_party/ocmock/OCMock/OCMStubRecorder.h ('k') | third_party/ocmock/OCMock/OCMVerifier.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698