forked from jsonmodel/jsonmodel
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathNestedModelsTests.m
More file actions
53 lines (41 loc) · 1.99 KB
/
NestedModelsTests.m
File metadata and controls
53 lines (41 loc) · 1.99 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
//
// NestedModelsTests.m
// JSONModelDemo
//
// Created by Marin Todorov on 02/12/2012.
// Copyright (c) 2012 Underplot ltd. All rights reserved.
//
#import "NestedModelsTests.h"
#import "NestedModel.h"
#import "ImageModel.h"
#import "CopyrightModel.h"
@implementation NestedModelsTests
{
NestedModel* n;
}
-(void)setUp
{
[super setUp];
NSString* filePath = [[NSBundle bundleForClass:[JSONModel class]].resourcePath stringByAppendingPathComponent:@"nestedData.json"];
NSString* jsonContents = [NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:nil];
XCTAssertNotNil(jsonContents, @"Can't fetch test data file contents.");
NSError* err;
n = [[NestedModel alloc] initWithString: jsonContents error:&err];
XCTAssertNil(err, "%@", [err localizedDescription]);
XCTAssertNotNil(n, @"Could not load the test data file.");
}
-(void)testNestedStructures
{
XCTAssertTrue([n.singleImage isKindOfClass:[ImageModel class]], @"singleImage is not an ImageModel instance");
XCTAssertTrue([n.singleImage.name isEqualToString:@"lake.jpg"], @"singleImage.name is not 'lake.jpg'");
XCTAssertTrue([n.images isKindOfClass:[NSArray class]], @"images is not an NSArray");
XCTAssertTrue([n.images[0] isKindOfClass:[ImageModel class]], @"images[0] is not an ImageModel instance");
XCTAssertTrue([[n.images[0] name] isEqualToString:@"house.jpg"], @"images[0].name is not 'house.jpg'");
CopyrightModel* copy = [n.images[0] copyright];
XCTAssertTrue([copy.author isEqualToString:@"Marin Todorov"], @"images[0].name.copyright is not 'Marin Todorov'");
XCTAssertTrue([n.imagesObject isKindOfClass:[NSDictionary class]], @"imagesObject is not an NSDictionary");
ImageModel* img = n.imagesObject[@"image2"];
XCTAssertTrue([img isKindOfClass:[ImageModel class]], @"images[image2] is not an ImageModel instance");
XCTAssertTrue([img.name isEqualToString:@"lake.jpg"], @"imagesObject[image2].name is not 'lake.jpg'");
}
@end