Skip to content

Instantly share code, notes, and snippets.

@maplesteve
Last active December 28, 2015 00:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save maplesteve/7415806 to your computer and use it in GitHub Desktop.
Save maplesteve/7415806 to your computer and use it in GitHub Desktop.
Testcase for possible OClint false positive. Fails in test cases #5 and #7.
//
// UnnecessaryNilTest.m
//
#import <XCTest/XCTest.h>
@interface MySender : NSObject
- (BOOL)returnNO;
- (BOOL)returnYES;
@end
@implementation MySender
-(BOOL)returnNO {
return NO;
}
-(BOOL)returnYES {
return YES;
}
@end
@interface UnnecessaryNilTest : XCTestCase
@end
@implementation UnnecessaryNilTest
- (void)setUp {
[super setUp];
}
- (void)tearDown {
[super tearDown];
}
- (void)testValidWithObjectCheck {
MySender *sender = [[MySender alloc] init];
if (sender && [sender returnYES]) {
//
} else {
XCTFail(@"Case 1: Should not be reached.");
}
if (sender && [sender returnNO]) {
XCTFail(@"Case 2: Should not be reached.");
}
}
- (void)testValidWithoutObjectCheck {
MySender *sender = [[MySender alloc] init];
if ([sender returnYES]) {
//
} else {
XCTFail(@"Case 3: Should not be reached.");
}
if ([sender returnNO]) {
XCTFail(@"Case 4: Should not be reached.");
}
}
- (void)testNilWithObjectCheck {
MySender *sender = nil;
if (sender && [sender returnYES]) {
//
} else {
XCTFail(@"Case 5: Should not be reached.");
}
if (sender && [sender returnNO]) {
XCTFail(@"Case 6: Should not be reached.");
}
}
- (void)testNilWithoutObjectCheck {
MySender *sender = nil;
if ([sender returnYES]) {
//
} else {
XCTFail(@"Case 7: Should not be reached.");
}
if ([sender returnNO]) {
XCTFail(@"Case 8: Should not be reached.");
}
}
@end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment