@@ -10,68 +10,91 @@ import JSONAPI
1010
1111class DocumentTests : XCTestCase {
1212
13+ func test_singleDocumentNull( ) {
14+ let document = decoded ( type: JSONAPIDocument < SingleResourceBody < Article > , Include0 , BasicJSONAPIError > . self,
15+ data: single_document_null)
16+
17+ XCTAssertFalse ( document. body. isError)
18+ XCTAssertNotNil ( document. body. data)
19+ XCTAssertNil ( document. body. data? . primary. value)
20+ XCTAssertEqual ( document. body. data? . included. count, 0 )
21+ }
22+
23+ func test_singleDocumentNull_encode( ) {
24+ test_DecodeEncodeEquality ( type: JSONAPIDocument < SingleResourceBody < Article > , Include0 , BasicJSONAPIError > . self,
25+ data: single_document_null)
26+ }
27+
1328 func test_singleDocumentNoIncludes( ) {
14- let document = try ? JSONDecoder ( ) . decode ( JSONAPIDocument < SingleResourceBody < Article > , Include0 , BasicJSONAPIError > . self, from: single_document_no_includes)
29+ let document = decoded ( type: JSONAPIDocument < SingleResourceBody < Article > , Include0 , BasicJSONAPIError > . self,
30+ data: single_document_no_includes)
1531
16- XCTAssertNotNil ( document)
32+ XCTAssertFalse ( document. body. isError)
33+ XCTAssertNotNil ( document. body. data)
34+ XCTAssertEqual ( document. body. data? . 0 . value? . id. rawValue, " 1 " )
35+ XCTAssertEqual ( document. body. data? . included. count, 0 )
36+ }
1737
18- guard let d = document else { return }
19-
20- XCTAssertFalse ( d. body. isError)
21- XCTAssertNotNil ( d. body. data)
22- XCTAssertEqual ( d. body. data? . 0 . value? . id. rawValue, " 1 " )
23- XCTAssertEqual ( d. body. data? . included. count, 0 )
38+ func test_singleDocumentNoIncludes_encode( ) {
39+ test_DecodeEncodeEquality ( type: JSONAPIDocument < SingleResourceBody < Article > , Include0 , BasicJSONAPIError > . self,
40+ data: single_document_no_includes)
2441 }
2542
2643 func test_singleDocumentSomeIncludes( ) {
27- let document = try ? JSONDecoder ( ) . decode ( JSONAPIDocument < SingleResourceBody < Article > , Include1 < Author > , BasicJSONAPIError > . self, from: single_document_some_includes)
28-
29- XCTAssertNotNil ( document)
44+ let document = decoded ( type: JSONAPIDocument < SingleResourceBody < Article > , Include1 < Author > , BasicJSONAPIError > . self,
45+ data: single_document_some_includes)
3046
31- guard let d = document else { return }
47+ XCTAssertFalse ( document. body. isError)
48+ XCTAssertNotNil ( document. body. data)
49+ XCTAssertEqual ( document. body. data? . 0 . value? . id. rawValue, " 1 " )
50+ XCTAssertEqual ( document. body. data? . included. count, 1 )
51+ XCTAssertEqual ( document. body. data? . included [ Author . self] . count, 1 )
52+ XCTAssertEqual ( document. body. data? . included [ Author . self] [ 0 ] . id. rawValue, " 33 " )
53+ }
3254
33- XCTAssertFalse ( d. body. isError)
34- XCTAssertNotNil ( d. body. data)
35- XCTAssertEqual ( d. body. data? . 0 . value? . id. rawValue, " 1 " )
36- XCTAssertEqual ( d. body. data? . included. count, 1 )
37- XCTAssertEqual ( d. body. data? . included [ Author . self] . count, 1 )
38- XCTAssertEqual ( d. body. data? . included [ Author . self] [ 0 ] . id. rawValue, " 33 " )
55+ func test_singleDocumentSomeIncludes_encode( ) {
56+ test_DecodeEncodeEquality ( type: JSONAPIDocument < SingleResourceBody < Article > , Include1 < Author > , BasicJSONAPIError > . self,
57+ data: single_document_some_includes)
3958 }
4059
4160 func test_manyDocumentNoIncludes( ) {
42- let document = try ? JSONDecoder ( ) . decode ( JSONAPIDocument < ManyResourceBody < Article > , Include0 , BasicJSONAPIError > . self, from: many_document_no_includes)
43-
44- XCTAssertNotNil ( document)
61+ let document = decoded ( type: JSONAPIDocument < ManyResourceBody < Article > , Include0 , BasicJSONAPIError > . self,
62+ data: many_document_no_includes)
4563
46- guard let d = document else { return }
47-
48- XCTAssertFalse ( d. body. isError)
49- XCTAssertNotNil ( d. body. data)
50- XCTAssertEqual ( d. body. data? . 0 . values. count, 3 )
51- XCTAssertEqual ( d. body. data? . 0 . values [ 0 ] . id. rawValue, " 1 " )
52- XCTAssertEqual ( d. body. data? . 0 . values [ 1 ] . id. rawValue, " 2 " )
53- XCTAssertEqual ( d. body. data? . 0 . values [ 2 ] . id. rawValue, " 3 " )
54- XCTAssertEqual ( d. body. data? . included. count, 0 )
64+ XCTAssertFalse ( document. body. isError)
65+ XCTAssertNotNil ( document. body. data)
66+ XCTAssertEqual ( document. body. data? . 0 . values. count, 3 )
67+ XCTAssertEqual ( document. body. data? . 0 . values [ 0 ] . id. rawValue, " 1 " )
68+ XCTAssertEqual ( document. body. data? . 0 . values [ 1 ] . id. rawValue, " 2 " )
69+ XCTAssertEqual ( document. body. data? . 0 . values [ 2 ] . id. rawValue, " 3 " )
70+ XCTAssertEqual ( document. body. data? . included. count, 0 )
71+ }
72+
73+ func test_manyDocumentNoIncludes_encode( ) {
74+ test_DecodeEncodeEquality ( type: JSONAPIDocument < ManyResourceBody < Article > , Include0 , BasicJSONAPIError > . self,
75+ data: many_document_no_includes)
5576 }
5677
5778 func test_manyDocumentSomeIncludes( ) {
58- let document = try ? JSONDecoder ( ) . decode ( JSONAPIDocument < ManyResourceBody < Article > , Include1 < Author > , BasicJSONAPIError > . self, from: many_document_some_includes)
59-
60- XCTAssertNotNil ( document)
61-
62- guard let d = document else { return }
63-
64- XCTAssertFalse ( d. body. isError)
65- XCTAssertNotNil ( d. body. data)
66- XCTAssertEqual ( d. body. data? . 0 . values. count, 3 )
67- XCTAssertEqual ( d. body. data? . 0 . values [ 0 ] . id. rawValue, " 1 " )
68- XCTAssertEqual ( d. body. data? . 0 . values [ 1 ] . id. rawValue, " 2 " )
69- XCTAssertEqual ( d. body. data? . 0 . values [ 2 ] . id. rawValue, " 3 " )
70- XCTAssertEqual ( d. body. data? . included. count, 3 )
71- XCTAssertEqual ( d. body. data? . included [ Author . self] . count, 3 )
72- XCTAssertEqual ( d. body. data? . included [ Author . self] [ 0 ] . id. rawValue, " 33 " )
73- XCTAssertEqual ( d. body. data? . included [ Author . self] [ 1 ] . id. rawValue, " 22 " )
74- XCTAssertEqual ( d. body. data? . included [ Author . self] [ 2 ] . id. rawValue, " 11 " )
79+ let document = decoded ( type: JSONAPIDocument < ManyResourceBody < Article > , Include1 < Author > , BasicJSONAPIError > . self,
80+ data: many_document_some_includes)
81+
82+ XCTAssertFalse ( document. body. isError)
83+ XCTAssertNotNil ( document. body. data)
84+ XCTAssertEqual ( document. body. data? . 0 . values. count, 3 )
85+ XCTAssertEqual ( document. body. data? . 0 . values [ 0 ] . id. rawValue, " 1 " )
86+ XCTAssertEqual ( document. body. data? . 0 . values [ 1 ] . id. rawValue, " 2 " )
87+ XCTAssertEqual ( document. body. data? . 0 . values [ 2 ] . id. rawValue, " 3 " )
88+ XCTAssertEqual ( document. body. data? . included. count, 3 )
89+ XCTAssertEqual ( document. body. data? . included [ Author . self] . count, 3 )
90+ XCTAssertEqual ( document. body. data? . included [ Author . self] [ 0 ] . id. rawValue, " 33 " )
91+ XCTAssertEqual ( document. body. data? . included [ Author . self] [ 1 ] . id. rawValue, " 22 " )
92+ XCTAssertEqual ( document. body. data? . included [ Author . self] [ 2 ] . id. rawValue, " 11 " )
93+ }
94+
95+ func test_manyDocumentSomeIncludes_encode( ) {
96+ test_DecodeEncodeEquality ( type: JSONAPIDocument < ManyResourceBody < Article > , Include1 < Author > , BasicJSONAPIError > . self,
97+ data: many_document_some_includes)
7598 }
7699
77100 enum AuthorType : EntityDescription {
0 commit comments