Add a couple more tests around metadata.

This commit is contained in:
Mathew Polzin
2018-11-22 21:14:19 -08:00
parent f526963707
commit 3c5a356b44
3 changed files with 93 additions and 4 deletions
@@ -72,7 +72,7 @@ class DocumentTests: XCTestCase {
data: error_document_no_metadata)
}
func test_errorDocumentWithMeta() {
func test_unknownErrorDocumentWithMeta() {
let document = decoded(type: JSONAPIDocument<NoResourceBody, TestPageMetadata, NoIncludes, BasicJSONAPIError>.self,
data: error_document_with_metadata)
@@ -89,7 +89,7 @@ class DocumentTests: XCTestCase {
XCTAssertEqual(errors.meta, TestPageMetadata(total: 70, limit: 40, offset: 10))
}
func test_errorDocumentWithMeta_encode() {
func test_unknownErrorDocumentWithMeta_encode() {
test_DecodeEncodeEquality(type: JSONAPIDocument<NoResourceBody, TestPageMetadata, NoIncludes, BasicJSONAPIError>.self,
data: error_document_with_metadata)
}
@@ -117,12 +117,29 @@ class DocumentTests: XCTestCase {
XCTAssertNotNil(document.body.data)
XCTAssertEqual(document.body.data?.0.value?.id.rawValue, "1")
XCTAssertEqual(document.body.data?.included.count, 0)
XCTAssertEqual(document.body.data?.meta, NoMetadata())
}
func test_singleDocumentNoIncludes_encode() {
test_DecodeEncodeEquality(type: JSONAPIDocument<SingleResourceBody<Article>, NoMetadata, NoIncludes, BasicJSONAPIError>.self,
data: single_document_no_includes)
}
func test_singleDocumentNoIncludesWithMetadata() {
let document = decoded(type: JSONAPIDocument<SingleResourceBody<Article>, TestPageMetadata, NoIncludes, BasicJSONAPIError>.self,
data: single_document_no_includes_with_metadata)
XCTAssertFalse(document.body.isError)
XCTAssertNotNil(document.body.data)
XCTAssertEqual(document.body.data?.0.value?.id.rawValue, "1")
XCTAssertEqual(document.body.data?.included.count, 0)
XCTAssertEqual(document.body.data?.meta, TestPageMetadata(total: 70, limit: 40, offset: 10))
}
func test_singleDocumentNoIncludesWithMetadata_encode() {
test_DecodeEncodeEquality(type: JSONAPIDocument<SingleResourceBody<Article>, TestPageMetadata, NoIncludes, BasicJSONAPIError>.self,
data: single_document_no_includes_with_metadata)
}
func test_singleDocumentSomeIncludes() {
let document = decoded(type: JSONAPIDocument<SingleResourceBody<Article>, NoMetadata, Include1<Author>, BasicJSONAPIError>.self,
@@ -140,6 +157,24 @@ class DocumentTests: XCTestCase {
test_DecodeEncodeEquality(type: JSONAPIDocument<SingleResourceBody<Article>, NoMetadata, Include1<Author>, BasicJSONAPIError>.self,
data: single_document_some_includes)
}
func test_singleDocumentSomeIncludesWithMetadata() {
let document = decoded(type: JSONAPIDocument<SingleResourceBody<Article>, TestPageMetadata, Include1<Author>, BasicJSONAPIError>.self,
data: single_document_some_includes_with_metadata)
XCTAssertFalse(document.body.isError)
XCTAssertNotNil(document.body.data)
XCTAssertEqual(document.body.data?.0.value?.id.rawValue, "1")
XCTAssertEqual(document.body.data?.included.count, 1)
XCTAssertEqual(document.body.data?.included[Author.self].count, 1)
XCTAssertEqual(document.body.data?.included[Author.self][0].id.rawValue, "33")
XCTAssertEqual(document.body.data?.meta, TestPageMetadata(total: 70, limit: 40, offset: 10))
}
func test_singleDocumentSomeIncludesWithMetadata_encode() {
test_DecodeEncodeEquality(type: JSONAPIDocument<SingleResourceBody<Article>, TestPageMetadata, Include1<Author>, BasicJSONAPIError>.self,
data: single_document_some_includes_with_metadata)
}
func test_manyDocumentNoIncludes() {
let document = decoded(type: JSONAPIDocument<ManyResourceBody<Article>, NoMetadata, NoIncludes, BasicJSONAPIError>.self,
@@ -28,6 +28,28 @@ let single_document_no_includes = """
}
""".data(using: .utf8)!
let single_document_no_includes_with_metadata = """
{
"data": {
"id": "1",
"type": "articles",
"relationships": {
"author": {
"data": {
"type": "authors",
"id": "33"
}
}
}
},
"meta": {
"total": 70,
"limit": 40,
"offset": 10
}
}
""".data(using: .utf8)!
let single_document_some_includes = """
{
"data": {
@@ -51,6 +73,34 @@ let single_document_some_includes = """
}
""".data(using: .utf8)!
let single_document_some_includes_with_metadata = """
{
"data": {
"id": "1",
"type": "articles",
"relationships": {
"author": {
"data": {
"type": "authors",
"id": "33"
}
}
}
},
"included": [
{
"id": "33",
"type": "authors"
}
],
"meta": {
"total": 70,
"limit": 40,
"offset": 10
}
}
""".data(using: .utf8)!
let many_document_no_includes = """
{
"data": [
+6 -2
View File
@@ -4,8 +4,6 @@ extension DocumentTests {
static let __allTests = [
("test_errorDocumentNoMeta", test_errorDocumentNoMeta),
("test_errorDocumentNoMeta_encode", test_errorDocumentNoMeta_encode),
("test_errorDocumentWithMeta", test_errorDocumentWithMeta),
("test_errorDocumentWithMeta_encode", test_errorDocumentWithMeta_encode),
("test_manyDocumentNoIncludes", test_manyDocumentNoIncludes),
("test_manyDocumentNoIncludes_encode", test_manyDocumentNoIncludes_encode),
("test_manyDocumentSomeIncludes", test_manyDocumentSomeIncludes),
@@ -14,12 +12,18 @@ extension DocumentTests {
("test_metaDataDocument_encode", test_metaDataDocument_encode),
("test_singleDocumentNoIncludes", test_singleDocumentNoIncludes),
("test_singleDocumentNoIncludes_encode", test_singleDocumentNoIncludes_encode),
("test_singleDocumentNoIncludesWithMetadata", test_singleDocumentNoIncludesWithMetadata),
("test_singleDocumentNoIncludesWithMetadata_encode", test_singleDocumentNoIncludesWithMetadata_encode),
("test_singleDocumentNull", test_singleDocumentNull),
("test_singleDocumentNull_encode", test_singleDocumentNull_encode),
("test_singleDocumentSomeIncludes", test_singleDocumentSomeIncludes),
("test_singleDocumentSomeIncludes_encode", test_singleDocumentSomeIncludes_encode),
("test_singleDocumentSomeIncludesWithMetadata", test_singleDocumentSomeIncludesWithMetadata),
("test_singleDocumentSomeIncludesWithMetadata_encode", test_singleDocumentSomeIncludesWithMetadata_encode),
("test_unknownErrorDocumentNoMeta", test_unknownErrorDocumentNoMeta),
("test_unknownErrorDocumentNoMeta_encode", test_unknownErrorDocumentNoMeta_encode),
("test_unknownErrorDocumentWithMeta", test_unknownErrorDocumentWithMeta),
("test_unknownErrorDocumentWithMeta_encode", test_unknownErrorDocumentWithMeta_encode),
]
}