1 package net.pterodactylus.rhynodge.filters.comics
3 import net.pterodactylus.rhynodge.filters.ComicSiteFilter
4 import net.pterodactylus.rhynodge.filters.ResourceLoader
5 import net.pterodactylus.rhynodge.states.ComicState
6 import net.pterodactylus.rhynodge.states.ComicState.Comic
7 import net.pterodactylus.rhynodge.states.HtmlState
8 import org.hamcrest.MatcherAssert.assertThat
9 import org.hamcrest.Matchers.equalTo
12 abstract class ComicSiteFilterTest {
14 protected abstract val filter: ComicSiteFilter
15 protected abstract val baseUrl: String
16 protected abstract val resource: String
17 protected abstract val expectedComics: List<Comic>
19 private val htmlState: HtmlState by lazy {
21 .loadDocument(javaClass, resource, baseUrl)
22 .let { HtmlState(baseUrl, it) }
26 fun `comic is loaded correctly`() {
27 val comicState = filter.filter(htmlState) as ComicState
28 assertThat(comicState.comics(), equalTo(expectedComics))