mirror of
https://github.com/encounter/JSONAPI.git
synced 2026-03-30 11:18:38 -07:00
Add a couple more tests around metadata.
This commit is contained in:
@@ -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": [
|
||||
|
||||
@@ -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),
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user