Skip to content

Commit 0adc653

Browse files
committed
Improved rules for autostubbing.
1 parent c026ab2 commit 0adc653

File tree

4 files changed

+6
-71
lines changed

4 files changed

+6
-71
lines changed

Source/OCMock.xcodeproj/project.pbxproj

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,6 @@
3434
03618D86195B553400389166 /* OCMRecorder.m in Sources */ = {isa = PBXBuildFile; fileRef = 03618D82195B553400389166 /* OCMRecorder.m */; };
3535
037ECD5418FAD84100AF0E4C /* OCMInvocationMatcherTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 037ECD5318FAD84100AF0E4C /* OCMInvocationMatcherTests.m */; };
3636
037ECD5518FAD84100AF0E4C /* OCMInvocationMatcherTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 037ECD5318FAD84100AF0E4C /* OCMInvocationMatcherTests.m */; };
37-
03A4A4C31986D2290014927C /* NSRegularExpression+OCMAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 03A4A4C11986D2290014927C /* NSRegularExpression+OCMAdditions.h */; };
38-
03A4A4C41986D2290014927C /* NSRegularExpression+OCMAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 03A4A4C11986D2290014927C /* NSRegularExpression+OCMAdditions.h */; };
39-
03A4A4C51986D2290014927C /* NSRegularExpression+OCMAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 03A4A4C21986D2290014927C /* NSRegularExpression+OCMAdditions.m */; };
40-
03A4A4C61986D2290014927C /* NSRegularExpression+OCMAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 03A4A4C21986D2290014927C /* NSRegularExpression+OCMAdditions.m */; };
4137
03B315AF146333BF0052CD09 /* NSInvocation+OCMAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 03B31585146333BF0052CD09 /* NSInvocation+OCMAdditions.h */; };
4238
03B315B0146333BF0052CD09 /* NSInvocation+OCMAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 03B31585146333BF0052CD09 /* NSInvocation+OCMAdditions.h */; };
4339
03B315B1146333BF0052CD09 /* NSInvocation+OCMAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 03B31586146333BF0052CD09 /* NSInvocation+OCMAdditions.m */; };
@@ -218,8 +214,6 @@
218214
03618D82195B553400389166 /* OCMRecorder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OCMRecorder.m; sourceTree = "<group>"; };
219215
037ECD5318FAD84100AF0E4C /* OCMInvocationMatcherTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OCMInvocationMatcherTests.m; sourceTree = "<group>"; };
220216
039F91C516EFB493006C3D70 /* OCMockObjectClassMethodMockingTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OCMockObjectClassMethodMockingTests.m; sourceTree = "<group>"; };
221-
03A4A4C11986D2290014927C /* NSRegularExpression+OCMAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSRegularExpression+OCMAdditions.h"; sourceTree = "<group>"; };
222-
03A4A4C21986D2290014927C /* NSRegularExpression+OCMAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSRegularExpression+OCMAdditions.m"; sourceTree = "<group>"; };
223217
03AC5C1416DF9FA500D82ECD /* OCMockObjectPartialMocksTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OCMockObjectPartialMocksTests.m; sourceTree = "<group>"; };
224218
03B31585146333BF0052CD09 /* NSInvocation+OCMAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSInvocation+OCMAdditions.h"; sourceTree = "<group>"; };
225219
03B31586146333BF0052CD09 /* NSInvocation+OCMAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSInvocation+OCMAdditions.m"; sourceTree = "<group>"; };
@@ -494,8 +488,6 @@
494488
2FA28991BEFD67DEF2CCF7D2 /* NSObject+OCMAdditions.m */,
495489
2FA286EAC1682979C696D4D6 /* NSValue+OCMAdditions.h */,
496490
2FA28896E5EEFD7C2F12C2F8 /* NSValue+OCMAdditions.m */,
497-
03A4A4C11986D2290014927C /* NSRegularExpression+OCMAdditions.h */,
498-
03A4A4C21986D2290014927C /* NSRegularExpression+OCMAdditions.m */,
499491
2FA28C8717BE4B7A89119BA2 /* OCMFunctions.m */,
500492
2FA28EC49F6C59B940AE6D00 /* OCMFunctions.h */,
501493
);
@@ -613,7 +605,6 @@
613605
03B315BE146333BF0052CD09 /* OCClassMockObject.h in Headers */,
614606
03B315C8146333BF0052CD09 /* OCMBlockCaller.h in Headers */,
615607
03C7BF10195DAB5300A545DD /* OCMExpectationRecorder.h in Headers */,
616-
03A4A4C31986D2290014927C /* NSRegularExpression+OCMAdditions.h in Headers */,
617608
03B315CD146333BF0052CD09 /* OCMBoxedReturnValueProvider.h in Headers */,
618609
03B315D7146333BF0052CD09 /* OCMExceptionReturnValueProvider.h in Headers */,
619610
03B315DC146333BF0052CD09 /* OCMIndirectReturnValueProvider.h in Headers */,
@@ -653,7 +644,6 @@
653644
03B315BF146333BF0052CD09 /* OCClassMockObject.h in Headers */,
654645
03B315C9146333BF0052CD09 /* OCMBlockCaller.h in Headers */,
655646
03C7BF11195DAB5300A545DD /* OCMExpectationRecorder.h in Headers */,
656-
03A4A4C41986D2290014927C /* NSRegularExpression+OCMAdditions.h in Headers */,
657647
03B315CE146333BF0052CD09 /* OCMBoxedReturnValueProvider.h in Headers */,
658648
03B315D8146333BF0052CD09 /* OCMExceptionReturnValueProvider.h in Headers */,
659649
03B315DD146333BF0052CD09 /* OCMIndirectReturnValueProvider.h in Headers */,
@@ -850,7 +840,6 @@
850840
03B315D4146333BF0052CD09 /* OCMConstraint.m in Sources */,
851841
03B315D9146333BF0052CD09 /* OCMExceptionReturnValueProvider.m in Sources */,
852842
03B315DE146333BF0052CD09 /* OCMIndirectReturnValueProvider.m in Sources */,
853-
03A4A4C51986D2290014927C /* NSRegularExpression+OCMAdditions.m in Sources */,
854843
03B315E3146333BF0052CD09 /* OCMNotificationPoster.m in Sources */,
855844
03B315E8146333BF0052CD09 /* OCMObserverRecorder.m in Sources */,
856845
03B315ED146333C00052CD09 /* OCMockObject.m in Sources */,
@@ -889,7 +878,6 @@
889878
03DCED6D183406BC0059089E /* NSObject+OCMAdditions.m in Sources */,
890879
03B315D6146333BF0052CD09 /* OCMConstraint.m in Sources */,
891880
03B315DB146333BF0052CD09 /* OCMExceptionReturnValueProvider.m in Sources */,
892-
03A4A4C61986D2290014927C /* NSRegularExpression+OCMAdditions.m in Sources */,
893881
03B315E0146333BF0052CD09 /* OCMIndirectReturnValueProvider.m in Sources */,
894882
03B315E5146333BF0052CD09 /* OCMNotificationPoster.m in Sources */,
895883
03B315EA146333BF0052CD09 /* OCMObserverRecorder.m in Sources */,

Source/OCMock/NSRegularExpression+OCMAdditions.h

Lines changed: 0 additions & 23 deletions
This file was deleted.

Source/OCMock/NSRegularExpression+OCMAdditions.m

Lines changed: 0 additions & 28 deletions
This file was deleted.

Source/OCMock/OCClassMockObject.m

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818
#import "OCClassMockObject.h"
1919
#import "NSObject+OCMAdditions.h"
2020
#import "OCMFunctions.h"
21-
#import "NSRegularExpression+OCMAdditions.h"
2221
#import "OCMInvocationStub.h"
2322

2423
@implementation OCClassMockObject
@@ -106,20 +105,19 @@ - (void)prepareClassForClassMethodMocking
106105
IMP myDummyInitializeIMP = method_getImplementation(myDummyInitializeMethod);
107106
class_addMethod(newMetaClass, @selector(initialize), myDummyInitializeIMP, initializeTypes);
108107

109-
/* adding forwarder for all class methods (instance methods on meta class) to allow for verify after run */
110-
NSArray *blackList = @[@"class", @"forwardingTargetForSelector:", @"methodSignatureForSelector:", @"forwardInvocation:", @"isBlock",
108+
/* adding forwarder for most class methods (instance methods on meta class) to allow for verify after run */
109+
NSArray *methodBlackList = @[@"class", @"forwardingTargetForSelector:", @"methodSignatureForSelector:", @"forwardInvocation:", @"isBlock",
111110
@"instanceMethodForwarderForSelector:", @"instanceMethodSignatureForSelector:"];
112-
NSRegularExpression *classRegex = [NSRegularExpression regularExpressionWithPattern:@"^(NS|UI).*" options:0 error:NULL];
113111
[NSObject enumerateMethodsInClass:originalMetaClass usingBlock:^(Class cls, SEL sel) {
114-
if((cls == object_getClass([NSObject class])) || (cls == object_getClass([NSProxy class])))
112+
if((cls == object_getClass([NSObject class])) || (cls == [NSObject class]) || (cls == object_getClass(cls)))
115113
return;
116114
NSString *className = NSStringFromClass(cls);
117115
NSString *selName = NSStringFromSelector(sel);
118-
if([blackList containsObject:selName])
116+
if(([className hasPrefix:@"NS"] || [className hasPrefix:@"UI"]) &&
117+
([selName hasPrefix:@"_"] || [selName hasSuffix:@"_"]))
119118
return;
120-
if([classRegex matchesString:className] && ([selName rangeOfString:@"_"].location != NSNotFound))
119+
if([methodBlackList containsObject:selName])
121120
return;
122-
// NSLog(@"Setting up forwarder in %@ for +[%@ %@]", NSStringFromClass(mockedClass), className, selName);
123121
@try
124122
{
125123
[self setupForwarderForClassMethodSelector:sel];

0 commit comments

Comments
 (0)