fix: cannot parse series.json

Closes: #961
This commit is contained in:
Gauthier Roebroeck 2022-08-26 10:26:02 +08:00
parent 5e7194c166
commit 122f0c92ad
8 changed files with 58 additions and 12 deletions

View file

@ -15,7 +15,7 @@ data class MylarMetadata(
val name: String, val name: String,
@field:JsonAlias("cid") @field:JsonAlias("cid")
val comicId: String, val comicid: String,
val year: Int, val year: Int,

View file

@ -29,7 +29,7 @@ class MylarSeriesProviderTest {
publisher = "DC", publisher = "DC",
imprint = "Vertigo", imprint = "Vertigo",
name = "Sandman", name = "Sandman",
comicId = "12345", comicid = "12345",
year = 1990, year = 1990,
descriptionText = "Sandman comics", descriptionText = "Sandman comics",
descriptionFormatted = "Sandman comics formatted", descriptionFormatted = "Sandman comics formatted",
@ -69,7 +69,7 @@ class MylarSeriesProviderTest {
publisher = "DC", publisher = "DC",
imprint = "Vertigo", imprint = "Vertigo",
name = "Sandman", name = "Sandman",
comicId = "12345", comicid = "12345",
year = 1990, year = 1990,
descriptionText = "Sandman comics", descriptionText = "Sandman comics",
descriptionFormatted = null, descriptionFormatted = null,
@ -109,7 +109,7 @@ class MylarSeriesProviderTest {
publisher = "DC", publisher = "DC",
imprint = "Vertigo", imprint = "Vertigo",
name = "Sandman", name = "Sandman",
comicId = "12345", comicid = "12345",
year = 1990, year = 1990,
descriptionText = "Sandman comics", descriptionText = "Sandman comics",
descriptionFormatted = "Sandman comics formatted", descriptionFormatted = "Sandman comics formatted",
@ -140,7 +140,7 @@ class MylarSeriesProviderTest {
publisher = "DC", publisher = "DC",
imprint = "Vertigo", imprint = "Vertigo",
name = "Sandman", name = "Sandman",
comicId = "12345", comicid = "12345",
year = 1990, year = 1990,
descriptionText = "Sandman comics", descriptionText = "Sandman comics",
descriptionFormatted = "Sandman comics formatted", descriptionFormatted = "Sandman comics formatted",
@ -171,7 +171,7 @@ class MylarSeriesProviderTest {
publisher = "DC", publisher = "DC",
imprint = "Vertigo", imprint = "Vertigo",
name = "Sandman", name = "Sandman",
comicId = "12345", comicid = "12345",
year = 1990, year = 1990,
descriptionText = "Sandman comics", descriptionText = "Sandman comics",
descriptionFormatted = "Sandman comics formatted", descriptionFormatted = "Sandman comics formatted",

View file

@ -30,7 +30,7 @@ class SeriesTest(
assertThat(publisher).isEqualTo("DC Comics") assertThat(publisher).isEqualTo("DC Comics")
assertThat(imprint).isNull() assertThat(imprint).isNull()
assertThat(name).isEqualTo("American Vampire 1976") assertThat(name).isEqualTo("American Vampire 1976")
assertThat(comicId).isEqualTo("130865") assertThat(comicid).isEqualTo("130865")
assertThat(year).isEqualTo(2020) assertThat(year).isEqualTo(2020)
assertThat(descriptionText).isEqualTo("Nine issue mini-series, the closing chapter of American Vampire") assertThat(descriptionText).isEqualTo("Nine issue mini-series, the closing chapter of American Vampire")
assertThat(descriptionFormatted).isEqualTo("Nine issue mini-series, the closing chapter of American Vampire") assertThat(descriptionFormatted).isEqualTo("Nine issue mini-series, the closing chapter of American Vampire")
@ -55,7 +55,7 @@ class SeriesTest(
assertThat(publisher).isEqualTo("IDW Publishing") assertThat(publisher).isEqualTo("IDW Publishing")
assertThat(imprint).isNull() assertThat(imprint).isNull()
assertThat(name).isEqualTo("Usagi Yojimbo") assertThat(name).isEqualTo("Usagi Yojimbo")
assertThat(comicId).isEqualTo("119731") assertThat(comicid).isEqualTo("119731")
assertThat(year).isEqualTo(2019) assertThat(year).isEqualTo(2019)
assertThat(descriptionText).isNull() assertThat(descriptionText).isNull()
assertThat(descriptionFormatted).isNull() assertThat(descriptionFormatted).isNull()
@ -69,6 +69,31 @@ class SeriesTest(
} }
} }
@Test
fun `given yet another valid json file when deserializing then properties are available`() {
val file = ClassPathResource("mylar/series-gh961.json")
val seriesJson = mapper.readValue<Series>(file.url)
assertThat(seriesJson.metadata).isNotNull
with(seriesJson.metadata) {
assertThat(type).isEqualTo("comicSeries")
assertThat(publisher).isEqualTo("Kodansha Comics USA")
assertThat(imprint).isNull()
assertThat(name).isEqualTo("Vinland Saga")
assertThat(comicid).isEqualTo("69157")
assertThat(year).isEqualTo(2013)
assertThat(descriptionText).isEqualTo("English translation of Vinland Saga (ヴィンランド・サガ).Vinland Saga is the first series from Kodansha Comics USA to be released in hardcovers, each collection collects and translates two volumes of the original Japanese manga")
assertThat(descriptionFormatted).isEqualTo("English translation of Vinland Saga (ヴィンランド・サガ).Vinland Saga is the first series from Kodansha Comics USA to be released in hardcovers, each collection collects and translates two volumes of the original Japanese manga")
assertThat(volume).isNull()
assertThat(bookType).isEqualTo("Print")
assertThat(ageRating).isNull()
assertThat(comicImage).isEqualTo("https://comicvine.gamespot.com/a/uploads/scale_large/6/67663/3439178-01.jpg")
assertThat(totalIssues).isEqualTo(12)
assertThat(publicationRun).isEqualTo("November 2013 - December 2021")
assertThat(status).isEqualTo(Status.Ended)
}
}
@Test @Test
fun `given invalid json file missing year when deserializing then it fails`() { fun `given invalid json file missing year when deserializing then it fails`() {
val file = ClassPathResource("mylar/series-missing-year.json") val file = ClassPathResource("mylar/series-missing-year.json")

View file

@ -0,0 +1,21 @@
{
"version": "1.0.1",
"metadata": {
"type": "comicSeries",
"publisher": "Kodansha Comics USA",
"imprint": null,
"name": "Vinland Saga",
"comicid": 69157,
"year": 2013,
"description_text": "English translation of Vinland Saga (ヴィンランド・サガ).Vinland Saga is the first series from Kodansha Comics USA to be released in hardcovers, each collection collects and translates two volumes of the original Japanese manga",
"description_formatted": "English translation of Vinland Saga (ヴィンランド・サガ).Vinland Saga is the first series from Kodansha Comics USA to be released in hardcovers, each collection collects and translates two volumes of the original Japanese manga",
"volume": null,
"booktype": "Print",
"age_rating": null,
"collects": null,
"ComicImage": "https://comicvine.gamespot.com/a/uploads/scale_large/6/67663/3439178-01.jpg",
"total_issues": 12,
"publication_run": "November 2013 - December 2021",
"status": "Ended"
}
}

View file

@ -4,7 +4,7 @@
"type": "comicSeries", "type": "comicSeries",
"imprint": null, "imprint": null,
"name": "Usagi Yojimbo", "name": "Usagi Yojimbo",
"cid": 119731, "comicid": 119731,
"year": 2019, "year": 2019,
"description_text": null, "description_text": null,
"description_formatted": null, "description_formatted": null,

View file

@ -5,7 +5,7 @@
"publisher": "IDW Publishing", "publisher": "IDW Publishing",
"imprint": null, "imprint": null,
"name": "Usagi Yojimbo", "name": "Usagi Yojimbo",
"cid": 119731, "comicid": 119731,
"year": 2019, "year": 2019,
"description_text": null, "description_text": null,
"description_formatted": null, "description_formatted": null,

View file

@ -5,7 +5,7 @@
"publisher": "IDW Publishing", "publisher": "IDW Publishing",
"imprint": null, "imprint": null,
"name": "Usagi Yojimbo", "name": "Usagi Yojimbo",
"cid": 119731, "comicid": 119731,
"description_text": null, "description_text": null,
"description_formatted": null, "description_formatted": null,
"volume": 4, "volume": 4,

View file

@ -5,7 +5,7 @@
"publisher": "IDW Publishing", "publisher": "IDW Publishing",
"imprint": null, "imprint": null,
"name": "Usagi Yojimbo", "name": "Usagi Yojimbo",
"comicId": 119731, "comicid": 119731,
"year": 2019, "year": 2019,
"description_text": null, "description_text": null,
"description_formatted": null, "description_formatted": null,