summaryrefslogtreecommitdiffstats
path: root/third_party/ocmock/OCMock/OCMArg.m
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/ocmock/OCMock/OCMArg.m')
-rw-r--r--third_party/ocmock/OCMock/OCMArg.m63
1 files changed, 63 insertions, 0 deletions
diff --git a/third_party/ocmock/OCMock/OCMArg.m b/third_party/ocmock/OCMock/OCMArg.m
new file mode 100644
index 0000000..f8778bf
--- /dev/null
+++ b/third_party/ocmock/OCMock/OCMArg.m
@@ -0,0 +1,63 @@
+//---------------------------------------------------------------------------------------
+// $Id: $
+// Copyright (c) 2009 by Mulle Kybernetik. See License file for details.
+//---------------------------------------------------------------------------------------
+
+#import <OCMock/OCMArg.h>
+#import <OCMock/OCMConstraint.h>
+#import "OCMPassByRefSetter.h"
+
+@implementation OCMArg
+
++ (id)any
+{
+ return [OCMAnyConstraint constraint];
+}
+
++ (void *)anyPointer
+{
+ return (void *)0x01234567;
+}
+
++ (id)isNil
+{
+ return [OCMIsNilConstraint constraint];
+}
+
++ (id)isNotNil
+{
+ return [OCMIsNotNilConstraint constraint];
+}
+
++ (id)isNotEqual:(id)value
+{
+ OCMIsNotEqualConstraint *constraint = [OCMIsNotEqualConstraint constraint];
+ constraint->testValue = value;
+ return constraint;
+}
+
++ (id)checkWithSelector:(SEL)selector onObject:(id)anObject
+{
+ return [OCMConstraint constraintWithSelector:selector onObject:anObject];
+}
+
++ (id *)setTo:(id)value;
+{
+ return (id *)[[OCMPassByRefSetter alloc] initWithValue:value];
+}
+
++ (id)resolveSpecialValues:(NSValue *)value
+{
+ const char *type = [value objCType];
+ if(type[0] == '^')
+ {
+ void *pointer = [value pointerValue];
+ if(pointer == (void *)0x01234567)
+ return [OCMArg any];
+ if((pointer != NULL) && (((id)pointer)->isa == [OCMPassByRefSetter class]))
+ return (id)pointer;
+ }
+ return value;
+}
+
+@end