Fix compile errors
[pithos-ios] / JSONTests.m
1 //
2 //  ImageTests.m
3 //  OpenStack
4 //
5 //  Created by Mike Mayo on 10/4/10.
6 //  The OpenStack project is provided under the Apache 2.0 license.
7 //
8
9 #import "JSONTests.h"
10 #import "JSON.h"
11 #import "Image.h"
12 #import "Server.h"
13
14
15 @implementation JSONTests
16
17 - (void)testImageParsing {
18
19     NSString *jsonTest = @"{\"images\":[{\"id\":29,\"status\":\"ACTIVE\",\"updated\":\"2010-01-26T12:07:32-06:00\",\"name\":\"Windows Server 2003 R2 SP2 x86\"},{\"id\":41,\"status\":\"ACTIVE\",\"updated\":\"2010-09-20T09:08:35-05:00\",\"name\":\"Oracle EL JeOS Release 5 Update 3\"},{\"id\":62,\"status\":\"ACTIVE\",\"updated\":\"2010-09-27T10:58:11-05:00\",\"name\":\"Red Hat Enterprise Linux 5.5\"},{\"id\":53,\"status\":\"ACTIVE\",\"updated\":\"2010-06-27T20:13:08-05:00\",\"name\":\"Fedora 13 (Goddard)\"},{\"id\":187811,\"status\":\"ACTIVE\",\"updated\":\"2009-12-16T01:02:17-06:00\",\"name\":\"CentOS 5.4\"},{\"id\":4,\"status\":\"ACTIVE\",\"updated\":\"2009-08-26T14:59:52-05:00\",\"name\":\"Debian 5.0 (lenny)\"},{\"id\":10,\"status\":\"ACTIVE\",\"updated\":\"2009-08-26T14:59:54-05:00\",\"name\":\"Ubuntu 8.04.2 LTS (hardy)\"},{\"id\":17,\"status\":\"ACTIVE\",\"updated\":\"2009-12-15T15:43:59-06:00\",\"name\":\"Fedora 12 (Constantine)\"},{\"id\":23,\"status\":\"ACTIVE\",\"updated\":\"2010-01-26T12:05:53-06:00\",\"name\":\"Windows Server 2003 R2 SP2 x64\"},{\"id\":24,\"status\":\"ACTIVE\",\"updated\":\"2010-01-26T12:07:04-06:00\",\"name\":\"Windows Server 2008 SP2 x64\"},{\"id\":49,\"status\":\"ACTIVE\",\"updated\":\"2010-05-04T08:58:18-05:00\",\"name\":\"Ubuntu 10.04 LTS (lucid)\"},{\"id\":14362,\"status\":\"ACTIVE\",\"updated\":\"2009-11-06T05:09:40-06:00\",\"name\":\"Ubuntu 9.10 (karmic)\"},{\"id\":8,\"status\":\"ACTIVE\",\"updated\":\"2009-12-07T16:22:14-06:00\",\"name\":\"Ubuntu 9.04 (jaunty)\"},{\"id\":31,\"status\":\"ACTIVE\",\"updated\":\"2010-01-26T12:07:44-06:00\",\"name\":\"Windows Server 2008 SP2 x86\"},{\"id\":51,\"status\":\"ACTIVE\",\"updated\":\"2010-05-21T00:01:43-05:00\",\"name\":\"CentOS 5.5\"},{\"id\":14,\"status\":\"ACTIVE\",\"updated\":\"2009-12-15T15:37:22-06:00\",\"name\":\"Red Hat Enterprise Linux 5.4\"},{\"id\":19,\"status\":\"ACTIVE\",\"updated\":\"2009-12-15T15:43:39-06:00\",\"name\":\"Gentoo 10.1\"},{\"id\":28,\"status\":\"ACTIVE\",\"updated\":\"2010-01-26T12:07:17-06:00\",\"name\":\"Windows Server 2008 R2 x64\"},{\"id\":55,\"status\":\"ACTIVE\",\"updated\":\"2010-06-29T05:21:55-05:00\",\"name\":\"Arch 2010.05\"},{\"id\":40,\"status\":\"ACTIVE\",\"updated\":\"2010-09-19T21:07:45-05:00\",\"name\":\"Oracle EL Server Release 5 Update 4\"},{\"progress\":100,\"id\":3231266,\"status\":\"ACTIVE\",\"created\":\"2010-04-24T21:48:58-05:00\",\"updated\":\"2010-04-24T21:54:39-05:00\",\"name\":\"fedora12-image\",\"serverId\":193115}]}";
20     
21     SBJSON *parser = [[SBJSON alloc] init];
22     NSArray *jsonObjects = [[parser objectWithString:jsonTest] objectForKey:@"images"];
23     NSMutableArray *objects = [NSMutableArray arrayWithCapacity:[jsonObjects count]];
24     
25     for (int i = 0; i < [jsonObjects count]; i++) {
26         NSDictionary *dict = [jsonObjects objectAtIndex:i];
27         Image *image = [Image fromJSON:dict];
28         [objects addObject:image];
29         
30     }
31     [parser release];
32     STAssertTrue([objects count] == 21, @"There should be 21 images parsed.  Got %i instead.", [objects count]);
33     
34     Image *image = [objects objectAtIndex:0];
35     STAssertTrue(image.identifier == 29, @"Image ID should be 29.  Got %i instead.", image.identifier);
36     STAssertTrue([image.status isEqualToString:@"ACTIVE"], @"Image status should be ACTIVE.  Got %@", image.status);
37     STAssertNotNil(image.updated, @"Image updated date should not be nil.");
38     STAssertTrue([image.name isEqualToString:@"Windows Server 2003 R2 SP2 x86"], @"Image name should be 'Windows Server 2003 R2 SP2 x86'.  Got '%@'.", image.name);
39     
40 }
41
42 - (void)testServerParsing {
43 }
44
45 @end