| Index: third_party/ocmock/OCMock/OCMStubRecorder.h
|
| diff --git a/third_party/ocmock/OCMock/OCMStubRecorder.h b/third_party/ocmock/OCMock/OCMStubRecorder.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..2ef4c44e9f92a4dbe6cb93cae7f227a909d4adb4
|
| --- /dev/null
|
| +++ b/third_party/ocmock/OCMock/OCMStubRecorder.h
|
| @@ -0,0 +1,65 @@
|
| +/*
|
| + * 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 "OCMRecorder.h"
|
| +#import <objc/runtime.h>
|
| +
|
| +@interface OCMStubRecorder : OCMRecorder
|
| +
|
| +- (id)andReturn:(id)anObject;
|
| +- (id)andReturnValue:(NSValue*)aValue;
|
| +- (id)andThrow:(NSException*)anException;
|
| +- (id)andPost:(NSNotification*)aNotification;
|
| +- (id)andCall:(SEL)selector onObject:(id)anObject;
|
| +- (id)andDo:(void (^)(NSInvocation* invocation))block;
|
| +- (id)andForwardToRealObject;
|
| +
|
| +@end
|
| +
|
| +@interface OCMStubRecorder (Properties)
|
| +
|
| +#define andReturn(aValue) \
|
| + _andReturn(({ \
|
| + __typeof__(aValue) _val = (aValue); \
|
| + NSValue* _nsval = \
|
| + [NSValue value:&_val withObjCType:@encode(__typeof__(_val))]; \
|
| + if (__builtin_types_compatible_p(__typeof__(_val), id)) { \
|
| + objc_setAssociatedObject(_nsval, "OCMAssociatedBoxedValue", \
|
| + *(__unsafe_unretained id*)(void*)&_val, \
|
| + OBJC_ASSOCIATION_RETAIN); \
|
| + } \
|
| + _nsval; \
|
| + }))
|
| +@property(nonatomic, readonly) OCMStubRecorder* (^_andReturn)(NSValue*);
|
| +
|
| +#define andThrow(anException) _andThrow(anException)
|
| +@property(nonatomic, readonly) OCMStubRecorder* (^_andThrow)(NSException*);
|
| +
|
| +#define andPost(aNotification) _andPost(aNotification)
|
| +@property(nonatomic, readonly) OCMStubRecorder* (^_andPost)(NSNotification*);
|
| +
|
| +#define andCall(anObject, aSelector) _andCall(anObject, aSelector)
|
| +@property(nonatomic, readonly) OCMStubRecorder* (^_andCall)(id, SEL);
|
| +
|
| +#define andDo(aBlock) _andDo(aBlock)
|
| +@property(nonatomic, readonly) OCMStubRecorder* (^_andDo)
|
| + (void (^)(NSInvocation*));
|
| +
|
| +#define andForwardToRealObject() _andForwardToRealObject()
|
| +@property(nonatomic, readonly) OCMStubRecorder* (^_andForwardToRealObject)(void)
|
| + ;
|
| +
|
| +@end
|
|
|