summaryrefslogtreecommitdiffstats
path: root/third_party/ocmock/NSInvocationOCMAdditionsTests.m
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/ocmock/NSInvocationOCMAdditionsTests.m')
-rw-r--r--third_party/ocmock/NSInvocationOCMAdditionsTests.m346
1 files changed, 346 insertions, 0 deletions
diff --git a/third_party/ocmock/NSInvocationOCMAdditionsTests.m b/third_party/ocmock/NSInvocationOCMAdditionsTests.m
new file mode 100644
index 0000000..3b549c4
--- /dev/null
+++ b/third_party/ocmock/NSInvocationOCMAdditionsTests.m
@@ -0,0 +1,346 @@
+//---------------------------------------------------------------------------------------
+// $Id: NSInvocationOCMAdditionsTests.m 26 2008-05-08 17:06:47Z erik $
+// Copyright (c) 2006-2008 by Mulle Kybernetik. See License file for details.
+//---------------------------------------------------------------------------------------
+
+#import "NSInvocationOCMAdditionsTests.h"
+#import "NSInvocation+OCMAdditions.h"
+
+#define TestString @"foo"
+#define TestInt 1
+
+@implementation NSInvocationOCMAdditionsTests
+
+- (void)testInvocationDescriptionWithNoArguments
+{
+ SEL selector = @selector(lowercaseString);
+ NSMethodSignature *signature = [[NSString string] methodSignatureForSelector:selector];
+ NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:signature];
+ [invocation setSelector:selector];
+
+ STAssertEqualObjects(@"lowercaseString", [invocation invocationDescription], @"");
+}
+
+- (void)testInvocationDescriptionWithObjectArgument
+{
+ SEL selector = @selector(isEqualToNumber:);
+ NSMethodSignature *signature = [[NSNumber alloc] methodSignatureForSelector:selector];
+ NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:signature];
+ [invocation setSelector:selector];
+ // Give it one argument (starts at index 2)
+ NSNumber *argument = [NSNumber numberWithInt:TestInt];
+ [invocation setArgument:&argument atIndex:2];
+
+ NSString *expected = [NSString stringWithFormat:@"isEqualToNumber:%d", TestInt];
+ STAssertEqualObjects(expected, [invocation invocationDescription], @"");
+}
+
+- (void)testInvocationDescriptionWithNSStringArgument
+{
+ SEL selector = @selector(isEqualToString:);
+ NSMethodSignature *signature = [[NSString string] methodSignatureForSelector:selector];
+ NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:signature];
+ [invocation setSelector:selector];
+ // Give it one argument (starts at index 2)
+ NSString *argument = [NSString stringWithString:TestString];
+ [invocation setArgument:&argument atIndex:2];
+
+ NSString *expected = [NSString stringWithFormat:@"isEqualToString:@\"%@\"", TestString];
+ STAssertEqualObjects(expected, [invocation invocationDescription], @"");
+}
+
+- (void)testInvocationDescriptionWithObjectArguments
+{
+ SEL selector = @selector(setValue:forKey:);
+ NSMethodSignature *signature = [[NSArray array] methodSignatureForSelector:selector];
+ NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:signature];
+ [invocation setSelector:selector];
+ // Give it two arguments
+ NSNumber *argumentOne = [NSNumber numberWithInt:TestInt];
+ NSString *argumentTwo = [NSString stringWithString:TestString];
+ [invocation setArgument:&argumentOne atIndex:2];
+ [invocation setArgument:&argumentTwo atIndex:3];
+
+ NSString *expected = [NSString stringWithFormat:@"setValue:%d forKey:@\"%@\"", TestInt, TestString];
+ STAssertEqualObjects(expected, [invocation invocationDescription], @"");
+}
+
+- (void)testInvocationDescriptionWithArrayArgument
+{
+ SEL selector = @selector(addObjectsFromArray:);
+ NSMethodSignature *signature = [[NSArray array] methodSignatureForSelector:selector];
+ NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:signature];
+ [invocation setSelector:selector];
+ // Give it one argument (starts at index 2)
+ NSArray *argument = [NSArray arrayWithObject:TestString];
+ [invocation setArgument:&argument atIndex:2];
+
+ NSString *expected = [NSString stringWithFormat:@"addObjectsFromArray:%@", [argument description]];
+ STAssertEqualObjects(expected, [invocation invocationDescription], @"");
+}
+
+- (void)testInvocationDescriptionWithIntArgument
+{
+ SEL selector = @selector(initWithInt:);
+ NSMethodSignature *signature = [[NSNumber alloc] methodSignatureForSelector:selector];
+ NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:signature];
+ [invocation setSelector:selector];
+ // Give it an argument
+ int argumentOne = TestInt;
+ [invocation setArgument:&argumentOne atIndex:2];
+
+ NSString *expected = [NSString stringWithFormat:@"initWithInt:%d", TestInt];
+ STAssertEqualObjects(expected, [invocation invocationDescription], @"");
+}
+
+- (void)testInvocationDescriptionWithUnsignedIntArgument
+{
+ SEL selector = @selector(initWithUnsignedInt:);
+ NSMethodSignature *signature = [[NSNumber alloc] methodSignatureForSelector:selector];
+ NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:signature];
+ [invocation setSelector:selector];
+ // Give it an argument
+ unsigned int argumentOne = TestInt;
+ [invocation setArgument:&argumentOne atIndex:2];
+
+ NSString *expected = [NSString stringWithFormat:@"initWithUnsignedInt:%d", TestInt];
+ STAssertEqualObjects(expected, [invocation invocationDescription], @"");
+}
+
+- (void)testInvocationDescriptionWithBoolArgument
+{
+ SEL selector = @selector(initWithBool:);
+ NSMethodSignature *signature = [[NSNumber alloc] methodSignatureForSelector:selector];
+ NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:signature];
+ [invocation setSelector:selector];
+ // Give it an argument
+ BOOL argumentOne = TRUE;
+ [invocation setArgument:&argumentOne atIndex:2];
+
+ NSString *expected = [NSString stringWithFormat:@"initWithBool:YES"];
+ STAssertEqualObjects(expected, [invocation invocationDescription], @"");
+}
+
+- (void)testInvocationDescriptionWithCharArgument
+{
+ SEL selector = @selector(initWithChar:);
+ NSMethodSignature *signature = [[NSNumber alloc] methodSignatureForSelector:selector];
+ NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:signature];
+ [invocation setSelector:selector];
+ // Give it an argument
+ char argumentOne = 'd';
+ [invocation setArgument:&argumentOne atIndex:2];
+
+ NSString *expected = [NSString stringWithFormat:@"initWithChar:'%c'", argumentOne];
+ STAssertEqualObjects(expected, [invocation invocationDescription], @"");
+}
+
+- (void)testInvocationDescriptionWithUnsignedCharArgument
+{
+ NSNumber *dummyNumber = [NSNumber alloc];
+
+ SEL selector = @selector(initWithUnsignedChar:);
+ NSMethodSignature *signature = [dummyNumber methodSignatureForSelector:selector];
+ NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:signature];
+ [invocation setSelector:selector];
+ // Give it an argument
+ unsigned char argumentOne = 'd';
+ [invocation setArgument:&argumentOne atIndex:2];
+
+ NSString *expected = [NSString stringWithFormat:@"initWithUnsignedChar:'%c'", argumentOne];
+ STAssertEqualObjects(expected, [invocation invocationDescription], @"");
+}
+
+- (void)testInvocationDescriptionWithDoubleArgument
+{
+ SEL selector = @selector(initWithDouble:);
+ NSMethodSignature *signature = [[NSNumber alloc] methodSignatureForSelector:selector];
+ NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:signature];
+ [invocation setSelector:selector];
+ // Give it an argument
+ double argumentOne = 1;
+ [invocation setArgument:&argumentOne atIndex:2];
+
+ NSString *expected = [NSString stringWithFormat:@"initWithDouble:%f", argumentOne];
+ STAssertEqualObjects(expected, [invocation invocationDescription], @"");
+}
+
+- (void)testInvocationDescriptionWithFloatArgument
+{
+ SEL selector = @selector(initWithFloat:);
+ NSMethodSignature *signature = [[NSNumber alloc] methodSignatureForSelector:selector];
+ NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:signature];
+ [invocation setSelector:selector];
+ // Give it an argument
+ float argumentOne = 1;
+ [invocation setArgument:&argumentOne atIndex:2];
+
+ NSString *expected = [NSString stringWithFormat:@"initWithFloat:%f", argumentOne];
+ STAssertEqualObjects(expected, [invocation invocationDescription], @"");
+}
+
+- (void)testInvocationDescriptionWithLongArgument
+{
+ SEL selector = @selector(initWithLong:);
+ NSMethodSignature *signature = [[NSNumber alloc] methodSignatureForSelector:selector];
+ NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:signature];
+ [invocation setSelector:selector];
+ // Give it an argument
+ long argumentOne = 1;
+ [invocation setArgument:&argumentOne atIndex:2];
+
+ NSString *expected = [NSString stringWithFormat:@"initWithLong:%d", argumentOne];
+ STAssertEqualObjects(expected, [invocation invocationDescription], @"");
+}
+
+- (void)testInvocationDescriptionWithUnsignedLongArgument
+{
+ SEL selector = @selector(initWithUnsignedLong:);
+ NSMethodSignature *signature = [[NSNumber alloc] methodSignatureForSelector:selector];
+ NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:signature];
+ [invocation setSelector:selector];
+ // Give it an argument
+ unsigned long argumentOne = 1;
+ [invocation setArgument:&argumentOne atIndex:2];
+
+ NSString *expected = [NSString stringWithFormat:@"initWithUnsignedLong:%u", argumentOne];
+ STAssertEqualObjects(expected, [invocation invocationDescription], @"");
+}
+
+- (void)testInvocationDescriptionWithLongLongArgument
+{
+ SEL selector = @selector(initWithLongLong:);
+ NSMethodSignature *signature = [[NSNumber alloc] methodSignatureForSelector:selector];
+ NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:signature];
+ [invocation setSelector:selector];
+ // Give it an argument
+ long long argumentOne = 1;
+ [invocation setArgument:&argumentOne atIndex:2];
+
+ NSString *expected = [NSString stringWithFormat:@"initWithLongLong:%qi", argumentOne];
+ STAssertEqualObjects(expected, [invocation invocationDescription], @"");
+}
+
+- (void)testInvocationDescriptionWithUnsignedLongLongArgument
+{
+ SEL selector = @selector(initWithUnsignedLongLong:);
+ NSMethodSignature *signature = [[NSNumber alloc] methodSignatureForSelector:selector];
+ NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:signature];
+ [invocation setSelector:selector];
+ // Give it an argument
+ unsigned long long argumentOne = 1;
+ [invocation setArgument:&argumentOne atIndex:2];
+
+ NSString *expected = [NSString stringWithFormat:@"initWithUnsignedLongLong:%qu", argumentOne];
+ STAssertEqualObjects(expected, [invocation invocationDescription], @"");
+}
+
+- (void)testInvocationDescriptionWithShortArgument
+{
+ SEL selector = @selector(initWithShort:);
+ NSMethodSignature *signature = [[NSNumber alloc] methodSignatureForSelector:selector];
+ NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:signature];
+ [invocation setSelector:selector];
+ // Give it an argument
+ short argumentOne = 1;
+ [invocation setArgument:&argumentOne atIndex:2];
+
+ NSString *expected = [NSString stringWithFormat:@"initWithShort:%hi", argumentOne];
+ STAssertEqualObjects(expected, [invocation invocationDescription], @"");
+}
+
+- (void)testInvocationDescriptionWithUnsignedShortArgument
+{
+ SEL selector = @selector(initWithUnsignedShort:);
+ NSMethodSignature *signature = [[NSNumber alloc] methodSignatureForSelector:selector];
+ NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:signature];
+ [invocation setSelector:selector];
+ // Give it an argument
+ unsigned short argumentOne = 1;
+ [invocation setArgument:&argumentOne atIndex:2];
+
+ NSString *expected = [NSString stringWithFormat:@"initWithUnsignedShort:%hu", argumentOne];
+ STAssertEqualObjects(expected, [invocation invocationDescription], @"");
+}
+/*
+- (void)testInvocationDescriptionWithStructArgument
+{
+ SEL selector = @selector(setFrameSize:);
+ NSMethodSignature *signature = [[[NSView alloc] init] methodSignatureForSelector:selector];
+ NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:signature];
+ [invocation setSelector:selector];
+ // Give it an argument
+ NSSize size;
+ size.width = 1;
+ size.height = 1;
+ [invocation setArgument:&size atIndex:2];
+
+ NSString *expected = [NSString stringWithFormat:@"setFrameSize:(struct)"];
+ STAssertTrue(expected, [[invocation invocationDescription] rangeOfString:description].length > 0, @"");
+}
+*/
+/*
+- (void)testInvocationDescriptionWithCStringArgument
+{
+ SEL selector = @selector(initWithUTF8String:);
+ NSMethodSignature *signature = [[NSString alloc] methodSignatureForSelector:selector];
+ NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:signature];
+ [invocation setSelector:selector];
+ // Give it an argument
+ NSString *string = [NSString stringWithString:@"foo"];
+ const char *cString = [string UTF8String];
+ [invocation setArgument:&cString atIndex:2];
+
+ NSString *expected = @"initWithUTF8String:\"foo\"";
+ STAssertEqualObjects(expected, [invocation invocationDescription], @"");
+}
+*/
+- (void)testInvocationDescriptionWithSelectorArgument
+{
+ SEL selector = @selector(respondsToSelector:);
+ NSMethodSignature *signature = [[NSString alloc] methodSignatureForSelector:selector];
+ NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:signature];
+ [invocation setSelector:selector];
+ // Give it an argument
+ SEL selectorValue = @selector(foo);
+ [invocation setArgument:&selectorValue atIndex:2];
+
+ NSString *expected = [NSString stringWithFormat:@"respondsToSelector:@selector(%@)", NSStringFromSelector(selectorValue)];
+ STAssertEqualObjects(expected, [invocation invocationDescription], @"");
+}
+
+- (void)testInvocationDescriptionWithPointerArgument
+{
+ SEL selector = @selector(initWithBytes:length:);
+ NSMethodSignature *signature = [[NSData alloc] methodSignatureForSelector:selector];
+ NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:signature];
+ [invocation setSelector:selector];
+ // Give it an argument
+ NSData *data = [@"foo" dataUsingEncoding:NSUTF8StringEncoding];
+ const void *bytes = [[@"foo" dataUsingEncoding:NSUTF8StringEncoding] bytes];
+ NSUInteger length = [data length];
+ [invocation setArgument:&bytes atIndex:2];
+ [invocation setArgument:&length atIndex:3];
+
+ NSString *expected1 = [NSString stringWithFormat:@"initWithBytes:"];
+ NSString *expected2 = [NSString stringWithFormat:@"length:%d", length];
+ NSString *invocationDescription = [invocation invocationDescription];
+ STAssertTrue([invocationDescription rangeOfString:expected1].length > 0, @"");
+ STAssertTrue([invocationDescription rangeOfString:expected2].length > 0, @"");
+}
+
+- (void)testInvocationDescriptionWithNilArgument
+{
+ SEL selector = @selector(initWithString:);
+ NSMethodSignature *signature = [[NSString alloc] methodSignatureForSelector:selector];
+ NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:signature];
+ [invocation setSelector:selector];
+ // Give it an argument
+ NSString *argString = nil;
+ [invocation setArgument:&argString atIndex:2];
+
+ NSString *expected = [NSString stringWithFormat:@"initWithString:nil"];
+ STAssertEqualObjects(expected, [invocation invocationDescription], @"");
+}
+
+@end