From 420d14fc37a18269a9d7232519e3f9a21c6302a2 Mon Sep 17 00:00:00 2001 From: Mitchell Syer Date: Sun, 7 Nov 2021 18:38:22 -0500 Subject: [PATCH] Fix Manga Meta, add Manga Meta test (#245) * Fix Manga Meta, add Manga Meta test * Tweak assertion strings --- .../suwayomi/tachidesk/manga/impl/Manga.kt | 2 +- .../tachidesk/manga/impl/MangaTest.kt | 61 +++++++++++++++++++ 2 files changed, 62 insertions(+), 1 deletion(-) create mode 100644 server/src/test/kotlin/suwayomi/tachidesk/manga/impl/MangaTest.kt diff --git a/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/Manga.kt b/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/Manga.kt index 3ab4c664..1ec9d7f0 100644 --- a/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/Manga.kt +++ b/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/Manga.kt @@ -144,7 +144,7 @@ object Manga { fun modifyMangaMeta(mangaId: Int, key: String, value: String) { transaction { - val manga = MangaMetaTable.select { (MangaTable.id eq mangaId) } + val manga = MangaTable.select { MangaTable.id eq mangaId } .first()[MangaTable.id] val meta = transaction { MangaMetaTable.select { (MangaMetaTable.ref eq manga) and (MangaMetaTable.key eq key) } }.firstOrNull() diff --git a/server/src/test/kotlin/suwayomi/tachidesk/manga/impl/MangaTest.kt b/server/src/test/kotlin/suwayomi/tachidesk/manga/impl/MangaTest.kt new file mode 100644 index 00000000..698f0be0 --- /dev/null +++ b/server/src/test/kotlin/suwayomi/tachidesk/manga/impl/MangaTest.kt @@ -0,0 +1,61 @@ +package suwayomi.tachidesk.manga.impl + +/* + * Copyright (C) Contributors to the Suwayomi project + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ + +import org.junit.jupiter.api.AfterEach +import org.junit.jupiter.api.Assertions.assertEquals +import org.junit.jupiter.api.Test +import org.junit.jupiter.api.TestInstance +import suwayomi.tachidesk.manga.model.table.MangaMetaTable +import suwayomi.tachidesk.manga.model.table.MangaTable +import suwayomi.tachidesk.test.ApplicationTest +import suwayomi.tachidesk.test.clearTables +import suwayomi.tachidesk.test.createLibraryManga + +@TestInstance(TestInstance.Lifecycle.PER_CLASS) +class MangaTest : ApplicationTest() { + @Test + fun getMangaMeta() { + val metaManga = createLibraryManga("META_TEST") + val emptyMeta = Manga.getMangaMetaMap(metaManga).size + assertEquals(0, emptyMeta, "Default Manga meta should be empty at start") + + Manga.modifyMangaMeta(metaManga, "test", "value") + assertEquals(1, Manga.getMangaMetaMap(metaManga).size, "Manga meta should have one member") + assertEquals("value", Manga.getMangaMetaMap(metaManga)["test"], "Manga meta use the value 'value' for key 'test'") + + Manga.modifyMangaMeta(metaManga, "test", "newValue") + assertEquals( + 1, + Manga.getMangaMetaMap(metaManga).size, + "Manga meta should still only have one pair" + ) + assertEquals( + "newValue", Manga.getMangaMetaMap(metaManga)["test"], + "Manga meta with key 'test' should use the value `newValue`" + ) + + Manga.modifyMangaMeta(metaManga, "test2", "value2") + assertEquals( + 2, Manga.getMangaMetaMap(metaManga).size, + "Manga Meta should have an additional pair" + ) + assertEquals( + "value2", Manga.getMangaMetaMap(metaManga)["test2"], + "Manga Meta for key 'test2' should be 'value2'" + ) + } + + @AfterEach + internal fun tearDown() { + clearTables( + MangaMetaTable, + MangaTable + ) + } +}