diff --git a/Tests/Unit/SOGoTest.h b/Tests/Unit/SOGoTest.h index 04267181f..927cc27a9 100644 --- a/Tests/Unit/SOGoTest.h +++ b/Tests/Unit/SOGoTest.h @@ -25,6 +25,7 @@ #import #import +#import @class NSArray; @class NSMutableArray; @@ -66,7 +67,10 @@ #define failIf(c) test(!(c)) #define testEquals(a,b) \ - testWithMessage((((a) == (b)) || ([(a) isEqual: (b)])), \ + testWithMessage((((a) == (b)) || ([(a) isEqual: (b)]) \ + || ([(a) isKindOfClass: [NSNumber class]] \ + && [(b) isKindOfClass: [NSNumber class]] \ + && [(NSNumber *) (a) isEqualToNumber: (NSNumber *) (b)])), \ ([NSString stringWithFormat: @"objects '%@' and '%@' differs", (a), (b)])) #define testEqualsWithMessage(a,b,m) \ diff --git a/Tests/Unit/TestSBJsonParser.m b/Tests/Unit/TestSBJsonParser.m index c071b534d..e8c8c139b 100644 --- a/Tests/Unit/TestSBJsonParser.m +++ b/Tests/Unit/TestSBJsonParser.m @@ -70,7 +70,7 @@ - (void) test_parseJSONNumber { SBJsonParser *parser; - NSObject *result; + id result; parser = [SBJsonParser new]; [parser autorelease]; @@ -84,10 +84,9 @@ result = [parser objectWithString: @"[ -1 ]"]; testEquals (result, [NSArray arrayWithObject: [NSNumber numberWithInt: -1]]); - /* TODO: the 2 following fail because NSDecimalNumber does not implement - "compare:" */ result = [parser objectWithString: @"[ 12.3456 ]"]; - testEquals (result, [NSArray arrayWithObject: [NSNumber numberWithDouble: 12.3456]]); + testEquals ([result objectAtIndex: 0], + [NSDecimalNumber decimalNumberWithString: @"12.3456"]); result = [parser objectWithString: @"[ -312.3456 ]"]; testEquals (result, [NSArray arrayWithObject: [NSNumber numberWithDouble: -312.3456]]);