| Index: third_party/ocmock/OCMock/OCMArg.m
|
| diff --git a/third_party/ocmock/OCMock/OCMArg.m b/third_party/ocmock/OCMock/OCMArg.m
|
| old mode 100644
|
| new mode 100755
|
| index a73e3dfaf4d7df6bd37847c6045bf45e0386fe9a..4fcbd8f1d2f181db3b9028955da0582a5b0ae2b0
|
| --- a/third_party/ocmock/OCMock/OCMArg.m
|
| +++ b/third_party/ocmock/OCMock/OCMArg.m
|
| @@ -1,13 +1,24 @@
|
| -//---------------------------------------------------------------------------------------
|
| -// $Id$
|
| -// Copyright (c) 2009-2010 by Mulle Kybernetik. See License file for details.
|
| -//---------------------------------------------------------------------------------------
|
| +/*
|
| + * Copyright (c) 2009-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 <objc/runtime.h>
|
| #import <OCMock/OCMArg.h>
|
| #import <OCMock/OCMConstraint.h>
|
| #import "OCMPassByRefSetter.h"
|
| -#import "OCMConstraint.h"
|
| +#import "OCMBlockArgCaller.h"
|
|
|
| @implementation OCMArg
|
|
|
| @@ -21,6 +32,16 @@
|
| return (void *)0x01234567;
|
| }
|
|
|
| ++ (id __autoreleasing *)anyObjectRef
|
| +{
|
| + return (id *)0x01234567;
|
| +}
|
| +
|
| ++ (SEL)anySelector
|
| +{
|
| + return NSSelectorFromString(@"aSelectorThatMatchesAnySelector");
|
| +}
|
| +
|
| + (id)isNil
|
| {
|
| return [OCMIsNilConstraint constraint];
|
| @@ -31,6 +52,11 @@
|
| return [OCMIsNotNilConstraint constraint];
|
| }
|
|
|
| ++ (id)isEqual:(id)value
|
| +{
|
| + return value;
|
| +}
|
| +
|
| + (id)isNotEqual:(id)value
|
| {
|
| OCMIsNotEqualConstraint *constraint = [OCMIsNotEqualConstraint constraint];
|
| @@ -38,25 +64,38 @@
|
| return constraint;
|
| }
|
|
|
| ++ (id)isKindOfClass:(Class)cls
|
| +{
|
| + return [[[OCMBlockConstraint alloc] initWithConstraintBlock:^BOOL(id obj) {
|
| + return [obj isKindOfClass:cls];
|
| + }] autorelease];
|
| +}
|
| +
|
| + (id)checkWithSelector:(SEL)selector onObject:(id)anObject
|
| {
|
| return [OCMConstraint constraintWithSelector:selector onObject:anObject];
|
| }
|
|
|
| -#if NS_BLOCKS_AVAILABLE
|
| -
|
| -+ (id)checkWithBlock:(BOOL (^)(id))block
|
| ++ (id)checkWithBlock:(BOOL (^)(id))block
|
| {
|
| return [[[OCMBlockConstraint alloc] initWithConstraintBlock:block] autorelease];
|
| }
|
|
|
| -#endif
|
| -
|
| + (id *)setTo:(id)value
|
| {
|
| return (id *)[[[OCMPassByRefSetter alloc] initWithValue:value] autorelease];
|
| }
|
|
|
| ++ (void *)setToValue:(NSValue *)value
|
| +{
|
| + return (id *)[[[OCMPassByRefSetter alloc] initWithValue:value] autorelease];
|
| +}
|
| +
|
| ++ (id)invokeBlock
|
| +{
|
| + return [[[OCMBlockArgCaller alloc] init] autorelease];
|
| +}
|
| +
|
| + (id)resolveSpecialValues:(NSValue *)value
|
| {
|
| const char *type = [value objCType];
|
| @@ -68,6 +107,13 @@
|
| if((pointer != NULL) && (object_getClass((id)pointer) == [OCMPassByRefSetter class]))
|
| return (id)pointer;
|
| }
|
| + else if(type[0] == ':')
|
| + {
|
| + SEL selector;
|
| + [value getValue:&selector];
|
| + if(selector == NSSelectorFromString(@"aSelectorThatMatchesAnySelector"))
|
| + return [OCMArg any];
|
| + }
|
| return value;
|
| }
|
|
|
|
|