From a2dfe4d171bc4e13c8998ab2ae14b1e33169edfb Mon Sep 17 00:00:00 2001 From: =?utf8?q?David=20=E2=80=98Bombe=E2=80=99=20Roden?= Date: Thu, 20 Jan 2022 21:35:16 +0100 Subject: [PATCH] =?utf8?q?=E2=9C=85=20Add=20base=20class=20for=20comic=20t?= =?utf8?q?ests?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../rhynodge/filters/comics/ComicSiteFilterTest.kt | 31 ++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 src/test/kotlin/net/pterodactylus/rhynodge/filters/comics/ComicSiteFilterTest.kt diff --git a/src/test/kotlin/net/pterodactylus/rhynodge/filters/comics/ComicSiteFilterTest.kt b/src/test/kotlin/net/pterodactylus/rhynodge/filters/comics/ComicSiteFilterTest.kt new file mode 100644 index 0000000..ce1a8e2 --- /dev/null +++ b/src/test/kotlin/net/pterodactylus/rhynodge/filters/comics/ComicSiteFilterTest.kt @@ -0,0 +1,31 @@ +package net.pterodactylus.rhynodge.filters.comics + +import net.pterodactylus.rhynodge.filters.ComicSiteFilter +import net.pterodactylus.rhynodge.filters.ResourceLoader +import net.pterodactylus.rhynodge.states.ComicState +import net.pterodactylus.rhynodge.states.ComicState.Comic +import net.pterodactylus.rhynodge.states.HtmlState +import org.hamcrest.MatcherAssert.assertThat +import org.hamcrest.Matchers.equalTo +import org.junit.Test + +abstract class ComicSiteFilterTest { + + protected abstract val filter: ComicSiteFilter + protected abstract val baseUrl: String + protected abstract val resource: String + protected abstract val expectedComics: List + + private val htmlState: HtmlState by lazy { + ResourceLoader + .loadDocument(javaClass, resource, baseUrl) + .let { HtmlState(baseUrl, it) } + } + + @Test + fun `comic is loaded correctly`() { + val comicState = filter.filter(htmlState) as ComicState + assertThat(comicState.comics(), equalTo(expectedComics)) + } + +} -- 2.7.4