| Index: third_party/ocmock/OCMock/OCMArg.m
|
| diff --git a/third_party/ocmock/OCMock/OCMArg.m b/third_party/ocmock/OCMock/OCMArg.m
|
| index a73e3dfaf4d7df6bd37847c6045bf45e0386fe9a..66d765ad371be6f821fa6ab39086e83396a73b7d 100644
|
| --- a/third_party/ocmock/OCMock/OCMArg.m
|
| +++ b/third_party/ocmock/OCMock/OCMArg.m
|
| @@ -1,13 +1,23 @@
|
| -//---------------------------------------------------------------------------------------
|
| -// $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"
|
|
|
| @implementation OCMArg
|
|
|
| @@ -21,6 +31,14 @@
|
| return (void *)0x01234567;
|
| }
|
|
|
| ++ (id __autoreleasing*)anyObjectRef {
|
| + return (id*)0x01234567;
|
| +}
|
| +
|
| ++ (SEL)anySelector {
|
| + return NSSelectorFromString(@"aSelectorThatMatchesAnySelector");
|
| +}
|
| +
|
| + (id)isNil
|
| {
|
| return [OCMIsNilConstraint constraint];
|
| @@ -31,6 +49,10 @@
|
| return [OCMIsNotNilConstraint constraint];
|
| }
|
|
|
| ++ (id)isEqual:(id)value {
|
| + return value;
|
| +}
|
| +
|
| + (id)isNotEqual:(id)value
|
| {
|
| OCMIsNotEqualConstraint *constraint = [OCMIsNotEqualConstraint constraint];
|
| @@ -38,25 +60,31 @@
|
| 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
|
| -{
|
| - return [[[OCMBlockConstraint alloc] initWithConstraintBlock:block] autorelease];
|
| ++ (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)resolveSpecialValues:(NSValue *)value
|
| {
|
| const char *type = [value objCType];
|
| @@ -67,8 +95,14 @@
|
| return [OCMArg any];
|
| if((pointer != NULL) && (object_getClass((id)pointer) == [OCMPassByRefSetter class]))
|
| return (id)pointer;
|
| - }
|
| - return value;
|
| + } else if (type[0] == ':') {
|
| + SEL selector;
|
| + [value getValue:&selector];
|
| + if (selector ==
|
| + NSSelectorFromString(@"aSelectorThatMatchesAnySelector"))
|
| + return [OCMArg any];
|
| + }
|
| + return value;
|
| }
|
|
|
| @end
|
|
|