Statistics
| Branch: | Revision:

root / json-framework-3.2.0 / Tests / WriterTest.m @ 3ebe9884

History | View | Annotate | Download (3.6 kB)

1 3ebe9884 Miltiadis Vasilakis
/*
2 3ebe9884 Miltiadis Vasilakis
 Copyright (C) 2010 Stig Brautaset. All rights reserved.
3 3ebe9884 Miltiadis Vasilakis
 
4 3ebe9884 Miltiadis Vasilakis
 Redistribution and use in source and binary forms, with or without
5 3ebe9884 Miltiadis Vasilakis
 modification, are permitted provided that the following conditions are met:
6 3ebe9884 Miltiadis Vasilakis
 
7 3ebe9884 Miltiadis Vasilakis
 * Redistributions of source code must retain the above copyright notice, this
8 3ebe9884 Miltiadis Vasilakis
 list of conditions and the following disclaimer.
9 3ebe9884 Miltiadis Vasilakis
 
10 3ebe9884 Miltiadis Vasilakis
 * Redistributions in binary form must reproduce the above copyright notice,
11 3ebe9884 Miltiadis Vasilakis
 this list of conditions and the following disclaimer in the documentation
12 3ebe9884 Miltiadis Vasilakis
 and/or other materials provided with the distribution.
13 3ebe9884 Miltiadis Vasilakis
 
14 3ebe9884 Miltiadis Vasilakis
 * Neither the name of the author nor the names of its contributors may be used
15 3ebe9884 Miltiadis Vasilakis
 to endorse or promote products derived from this software without specific
16 3ebe9884 Miltiadis Vasilakis
 prior written permission.
17 3ebe9884 Miltiadis Vasilakis
 
18 3ebe9884 Miltiadis Vasilakis
 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
19 3ebe9884 Miltiadis Vasilakis
 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20 3ebe9884 Miltiadis Vasilakis
 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
21 3ebe9884 Miltiadis Vasilakis
 DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
22 3ebe9884 Miltiadis Vasilakis
 FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23 3ebe9884 Miltiadis Vasilakis
 DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
24 3ebe9884 Miltiadis Vasilakis
 SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
25 3ebe9884 Miltiadis Vasilakis
 CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
26 3ebe9884 Miltiadis Vasilakis
 OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
27 3ebe9884 Miltiadis Vasilakis
 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28 3ebe9884 Miltiadis Vasilakis
 */
29 3ebe9884 Miltiadis Vasilakis
30 3ebe9884 Miltiadis Vasilakis
31 3ebe9884 Miltiadis Vasilakis
#import <SenTestingKit/SenTestingKit.h>
32 3ebe9884 Miltiadis Vasilakis
#import <SBJson/SBJson.h>
33 3ebe9884 Miltiadis Vasilakis
34 3ebe9884 Miltiadis Vasilakis
@interface WriterTest : SenTestCase {
35 3ebe9884 Miltiadis Vasilakis
	SBJsonWriter * writer;
36 3ebe9884 Miltiadis Vasilakis
}
37 3ebe9884 Miltiadis Vasilakis
@end
38 3ebe9884 Miltiadis Vasilakis
39 3ebe9884 Miltiadis Vasilakis
@implementation WriterTest
40 3ebe9884 Miltiadis Vasilakis
41 3ebe9884 Miltiadis Vasilakis
- (void)setUp {
42 3ebe9884 Miltiadis Vasilakis
    writer = [SBJsonWriter new];
43 3ebe9884 Miltiadis Vasilakis
}
44 3ebe9884 Miltiadis Vasilakis
45 3ebe9884 Miltiadis Vasilakis
- (void)testInfinity {
46 3ebe9884 Miltiadis Vasilakis
    STAssertEqualObjects(@"[0]", [writer stringWithObject:[NSArray arrayWithObject:[NSNumber numberWithDouble:0.0]]], nil);
47 3ebe9884 Miltiadis Vasilakis
    STAssertEqualObjects(@"[-0]", [writer stringWithObject:[NSArray arrayWithObject:[NSNumber numberWithDouble:-0.0]]], nil);
48 3ebe9884 Miltiadis Vasilakis
    
49 3ebe9884 Miltiadis Vasilakis
    STAssertEqualObjects(@"[0]", [writer stringWithObject:[NSArray arrayWithObject:[NSNumber numberWithFloat:(float)0.0]]], nil);
50 3ebe9884 Miltiadis Vasilakis
    STAssertEqualObjects(@"[-0]", [writer stringWithObject:[NSArray arrayWithObject:[NSNumber numberWithFloat:(float)-0.0]]], nil);
51 3ebe9884 Miltiadis Vasilakis
    
52 3ebe9884 Miltiadis Vasilakis
    STAssertEqualObjects(@"[0]", [writer stringWithObject:[NSArray arrayWithObject:[NSNumber numberWithInt:0]]], nil);
53 3ebe9884 Miltiadis Vasilakis
    STAssertEqualObjects(@"[0]", [writer stringWithObject:[NSArray arrayWithObject:[NSNumber numberWithInt:-0]]], nil);
54 3ebe9884 Miltiadis Vasilakis
			 
55 3ebe9884 Miltiadis Vasilakis
    STAssertEqualObjects(@"[0]", [writer stringWithObject:[NSArray arrayWithObject:[NSDecimalNumber numberWithDouble:0]]], nil);
56 3ebe9884 Miltiadis Vasilakis
    STAssertEqualObjects(@"[0]", [writer stringWithObject:[NSArray arrayWithObject:[NSDecimalNumber numberWithDouble:-0]]], nil);
57 3ebe9884 Miltiadis Vasilakis
	
58 3ebe9884 Miltiadis Vasilakis
    STAssertEqualObjects(@"[0]", [writer stringWithObject:[NSArray arrayWithObject:[NSDecimalNumber numberWithFloat:0]]], nil);
59 3ebe9884 Miltiadis Vasilakis
    STAssertEqualObjects(@"[0]", [writer stringWithObject:[NSArray arrayWithObject:[NSDecimalNumber numberWithFloat:-0]]], nil);    
60 3ebe9884 Miltiadis Vasilakis
}
61 3ebe9884 Miltiadis Vasilakis
62 3ebe9884 Miltiadis Vasilakis
- (void)testTimeInterval {
63 3ebe9884 Miltiadis Vasilakis
	NSTimeInterval interval = 319670801.45073098; // seconds since epoc
64 3ebe9884 Miltiadis Vasilakis
	NSNumber *number = [NSNumber numberWithDouble:interval];
65 3ebe9884 Miltiadis Vasilakis
	NSArray *array = [NSArray arrayWithObject:number];
66 3ebe9884 Miltiadis Vasilakis
67 3ebe9884 Miltiadis Vasilakis
	STAssertEqualObjects(@"[319670801.45073098]", [writer stringWithObject:array], nil);
68 3ebe9884 Miltiadis Vasilakis
}
69 3ebe9884 Miltiadis Vasilakis
70 3ebe9884 Miltiadis Vasilakis
71 3ebe9884 Miltiadis Vasilakis
- (void)testWriteToStream {
72 3ebe9884 Miltiadis Vasilakis
	SBJsonStreamWriter *streamWriter = [[SBJsonStreamWriter alloc] init];
73 3ebe9884 Miltiadis Vasilakis
	
74 3ebe9884 Miltiadis Vasilakis
	STAssertTrue([streamWriter writeArray:[NSArray array]], nil);
75 3ebe9884 Miltiadis Vasilakis
	
76 3ebe9884 Miltiadis Vasilakis
	STAssertFalse([streamWriter writeArray:[NSArray array]], nil);
77 3ebe9884 Miltiadis Vasilakis
	STAssertEqualObjects(streamWriter.error, @"Stream is closed", nil);
78 3ebe9884 Miltiadis Vasilakis
}
79 3ebe9884 Miltiadis Vasilakis
80 3ebe9884 Miltiadis Vasilakis
@end