Skip to content

Commit

Permalink
Better tests for custom setters
Browse files Browse the repository at this point in the history
  • Loading branch information
billinghamj committed Sep 11, 2016
1 parent ce20de7 commit 2cba298
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 2 deletions.
5 changes: 5 additions & 0 deletions Examples/Tests/Models/Implementations/EnumModel.m
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,11 @@ -(void)setNestedStatusWithNSString:(NSString*)statusString
_status = [statusString isEqualToString:@"open"]?StatusOpen:StatusClosed;
}

-(void)setNestedStatusWithNSNumber:(NSNumber*)statusNumber
{
_status = statusNumber.boolValue?StatusOpen:StatusClosed;
}

-(id)JSONObjectForStatus
{
return (self.status==StatusOpen)?@"open":@"closed";
Expand Down
36 changes: 34 additions & 2 deletions Examples/Tests/PrimitiveTypesReadTests.m
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,6 @@ -(void)testBoolExport
XCTAssertTrue([exportedJSON rangeOfString:@"\"boolYES\":true"].location != NSNotFound, @"boolYES should export to 'true'");
}

#if __IPHONE_OS_VERSION_MIN_REQUIRED >= 60000
-(void)testEnumerationTypes
{
NSString* jsonContents = @"{\"nested\":{\"status\":\"open\"},\"nsStatus\":\"closed\",\"nsuStatus\":\"open\",\"statusString\":\"open\"}";
Expand All @@ -79,6 +78,39 @@ -(void)testEnumerationTypes
XCTAssertTrue([json rangeOfString:@"\"nsuStatus\":\"open\""].location!=NSNotFound, @"Exporting enum value didn't work out");
XCTAssertTrue([json rangeOfString:@"\"nsStatus\":\"closed\""].location!=NSNotFound, @"Exporting enum value didn't work out");
}
#endif

-(void)testCustomSetters
{
NSString* json1 = @"{\"nested\":{\"status\":\"open\"},\"nsStatus\":\"closed\",\"nsuStatus\":\"open\",\"statusString\":\"open\"}";
NSString* json2 = @"{\"nested\":{\"status\":true},\"nsStatus\":\"closed\",\"nsuStatus\":\"open\",\"statusString\":\"open\"}";

NSError* err;

EnumModel* p1 = [[EnumModel alloc] initWithString: json1 error:&err];
XCTAssertNil(err, "%@", [err localizedDescription]);
XCTAssertNotNil(p1, @"Could not read input json text");

EnumModel* p2 = [[EnumModel alloc] initWithString: json2 error:&err];
XCTAssertNil(err, "%@", [err localizedDescription]);
XCTAssertNotNil(p2, @"Could not read input json text");

XCTAssertTrue(p1.status==StatusOpen, @"Status is not StatusOpen");
XCTAssertTrue(p1.nsStatus==NSE_StatusClosed, @"nsStatus is not NSE_StatusClosed");
XCTAssertTrue(p1.nsuStatus==NSEU_StatusOpen, @"nsuStatus is not NSEU_StatusOpen");

XCTAssertTrue(p2.status==StatusOpen, @"Status is not StatusOpen");
XCTAssertTrue(p2.nsStatus==NSE_StatusClosed, @"nsStatus is not NSE_StatusClosed");
XCTAssertTrue(p2.nsuStatus==NSEU_StatusOpen, @"nsuStatus is not NSEU_StatusOpen");

NSString* out1 = [p1 toJSONString];
XCTAssertTrue([out1 rangeOfString:@"\"statusString\":\"open\""].location!=NSNotFound, @"Exporting enum value didn't work out");
XCTAssertTrue([out1 rangeOfString:@"\"nsuStatus\":\"open\""].location!=NSNotFound, @"Exporting enum value didn't work out");
XCTAssertTrue([out1 rangeOfString:@"\"nsStatus\":\"closed\""].location!=NSNotFound, @"Exporting enum value didn't work out");

NSString* out2 = [p2 toJSONString];
XCTAssertTrue([out2 rangeOfString:@"\"statusString\":\"open\""].location!=NSNotFound, @"Exporting enum value didn't work out");
XCTAssertTrue([out2 rangeOfString:@"\"nsuStatus\":\"open\""].location!=NSNotFound, @"Exporting enum value didn't work out");
XCTAssertTrue([out2 rangeOfString:@"\"nsStatus\":\"closed\""].location!=NSNotFound, @"Exporting enum value didn't work out");
}

@end

0 comments on commit 2cba298

Please sign in to comment.