From 0d3b5974ea8d2a7acae98826d550fbc5b4ef4b8f Mon Sep 17 00:00:00 2001 From: =?utf8?q?David=20=E2=80=98Bombe=E2=80=99=20Roden?= Date: Sun, 24 Oct 2021 14:49:31 +0200 Subject: [PATCH 1/1] =?utf8?q?=F0=9F=8E=A8=20Replace=20Sinfest=20filter=20?= =?utf8?q?test=20with=20Kotlin=20version?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../filters/comics/SinfestComicFilterTest.java | 82 ---------------------- .../filters/comics/SinfestComicFilterTest.kt | 38 ++++++++++ 2 files changed, 38 insertions(+), 82 deletions(-) delete mode 100644 src/test/java/net/pterodactylus/rhynodge/filters/comics/SinfestComicFilterTest.java create mode 100644 src/test/kotlin/net/pterodactylus/rhynodge/filters/comics/SinfestComicFilterTest.kt diff --git a/src/test/java/net/pterodactylus/rhynodge/filters/comics/SinfestComicFilterTest.java b/src/test/java/net/pterodactylus/rhynodge/filters/comics/SinfestComicFilterTest.java deleted file mode 100644 index aee1142..0000000 --- a/src/test/java/net/pterodactylus/rhynodge/filters/comics/SinfestComicFilterTest.java +++ /dev/null @@ -1,82 +0,0 @@ -package net.pterodactylus.rhynodge.filters.comics; - -import java.io.IOException; - -import net.pterodactylus.rhynodge.Filter; -import net.pterodactylus.rhynodge.State; -import net.pterodactylus.rhynodge.filters.ResourceLoader; -import net.pterodactylus.rhynodge.states.ComicState; -import net.pterodactylus.rhynodge.states.ComicState.Comic; -import net.pterodactylus.rhynodge.states.ComicState.Strip; -import net.pterodactylus.rhynodge.states.HtmlState; - -import org.hamcrest.Description; -import org.hamcrest.Matcher; -import org.hamcrest.MatcherAssert; -import org.hamcrest.Matchers; -import org.hamcrest.TypeSafeDiagnosingMatcher; -import org.jsoup.nodes.Document; -import org.junit.Test; - - -/** - * Unit test for {@link SinfestComicFilter}. - * - * @author David ‘Bombe’ Roden - */ -public class SinfestComicFilterTest { - - private final Filter sinfestFilter = new SinfestComicFilter(); - private final HtmlState htmlState; - - public SinfestComicFilterTest() throws IOException { - Document document = ResourceLoader.loadDocument(SinfestComicFilter.class, "sinfest.html", "https://sinfest.xyz/"); - htmlState = new HtmlState("https://sinfest.xyz/", document); - } - - @Test - public void canParseComicsFromHtml() { - State state = sinfestFilter.filter(htmlState); - MatcherAssert.assertThat(state, Matchers.instanceOf(ComicState.class)); - } - - @Test - public void imageUrlsAreParsedCorrectly() { - ComicState comicState = (ComicState) sinfestFilter.filter(htmlState); - MatcherAssert.assertThat(comicState.comics(), Matchers.contains(matchesComic("October 24, 2021: Unperson 33", "https://sinfest.xyz/btphp/comics/2021-10-24.jpg", ""))); - } - - private Matcher matchesComic(String title, String url, String comment) { - return new TypeSafeDiagnosingMatcher() { - @Override - protected boolean matchesSafely(Comic comic, Description mismatchDescription) { - if (!comic.title().equals(title)) { - mismatchDescription.appendText("comic is named ").appendValue(comic.title()); - return false; - } - if (comic.strips().size() != 1) { - mismatchDescription.appendText("comic has ").appendValue(comic.strips().size()).appendText(" strips"); - return false; - } - Strip strip = comic.strips().get(0); - if (!strip.imageUrl().equals(url)) { - mismatchDescription.appendText("image url is ").appendValue(strip.imageUrl()); - return false; - } - if (!strip.comment().equals(comment)) { - mismatchDescription.appendText("comment is ").appendValue(strip.comment()); - return false; - } - return true; - } - - @Override - public void describeTo(Description description) { - description.appendText("comic named ").appendValue(title); - description.appendText(" at ").appendValue(url); - description.appendText(" with comment ").appendValue(comment); - } - }; - } - -} diff --git a/src/test/kotlin/net/pterodactylus/rhynodge/filters/comics/SinfestComicFilterTest.kt b/src/test/kotlin/net/pterodactylus/rhynodge/filters/comics/SinfestComicFilterTest.kt new file mode 100644 index 0000000..92049ba --- /dev/null +++ b/src/test/kotlin/net/pterodactylus/rhynodge/filters/comics/SinfestComicFilterTest.kt @@ -0,0 +1,38 @@ +package net.pterodactylus.rhynodge.filters.comics + +import net.pterodactylus.rhynodge.Filter +import net.pterodactylus.rhynodge.filters.ResourceLoader +import net.pterodactylus.rhynodge.states.ComicState +import net.pterodactylus.rhynodge.states.ComicState.Comic +import net.pterodactylus.rhynodge.states.ComicState.Strip +import net.pterodactylus.rhynodge.states.HtmlState +import org.hamcrest.MatcherAssert.assertThat +import org.hamcrest.Matchers.contains +import org.hamcrest.Matchers.instanceOf +import org.junit.Test + +/** + * Unit test for [SinfestComicFilter]. + */ +class SinfestComicFilterTest { + + private val sinfestFilter: Filter = SinfestComicFilter() + private val htmlState = ResourceLoader + .loadDocument(SinfestComicFilter::class.java, "sinfest.html", "https://sinfest.xyz/") + .let { HtmlState("https://sinfest.xyz/", it) } + + @Test + fun canParseComicsFromHtml() { + val state = sinfestFilter.filter(htmlState) + assertThat(state, instanceOf(ComicState::class.java)) + } + + @Test + fun imageUrlsAreParsedCorrectly() { + val comicState = sinfestFilter.filter(htmlState) as ComicState + assertThat(comicState.comics(), contains( + Comic("October 24, 2021: Unperson 33").add(Strip("https://sinfest.xyz/btphp/comics/2021-10-24.jpg", "")) + )) + } + +} -- 2.7.4