🎨 Replace Sinfest filter test with Kotlin version
[rhynodge.git] / src / test / kotlin / net / pterodactylus / rhynodge / filters / comics / SinfestComicFilterTest.kt
1 package net.pterodactylus.rhynodge.filters.comics
2
3 import net.pterodactylus.rhynodge.Filter
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.ComicState.Strip
8 import net.pterodactylus.rhynodge.states.HtmlState
9 import org.hamcrest.MatcherAssert.assertThat
10 import org.hamcrest.Matchers.contains
11 import org.hamcrest.Matchers.instanceOf
12 import org.junit.Test
13
14 /**
15  * Unit test for [SinfestComicFilter].
16  */
17 class SinfestComicFilterTest {
18
19         private val sinfestFilter: Filter = SinfestComicFilter()
20         private val htmlState = ResourceLoader
21                 .loadDocument(SinfestComicFilter::class.java, "sinfest.html", "https://sinfest.xyz/")
22                 .let { HtmlState("https://sinfest.xyz/", it) }
23
24         @Test
25         fun canParseComicsFromHtml() {
26                 val state = sinfestFilter.filter(htmlState)
27                 assertThat(state, instanceOf(ComicState::class.java))
28         }
29
30         @Test
31         fun imageUrlsAreParsedCorrectly() {
32                 val comicState = sinfestFilter.filter(htmlState) as ComicState
33                 assertThat(comicState.comics(), contains(
34                         Comic("October 24, 2021: Unperson 33").add(Strip("https://sinfest.xyz/btphp/comics/2021-10-24.jpg", ""))
35                 ))
36         }
37
38 }