✅ Fix Heldentage filter test
[rhynodge.git] / src / test / java / net / pterodactylus / rhynodge / filters / comics / HeldentageFilterTest.java
index 47a6e98..1779a63 100644 (file)
@@ -1,18 +1,17 @@
 package net.pterodactylus.rhynodge.filters.comics;
 
-import static com.google.common.base.Optional.absent;
-import static java.util.Arrays.asList;
-import static org.hamcrest.MatcherAssert.assertThat;
-import static org.hamcrest.Matchers.is;
-import static org.jsoup.Jsoup.parse;
-
 import java.io.IOException;
-import java.io.InputStream;
-import java.util.Collections;
+
+import net.pterodactylus.rhynodge.filters.ResourceLoader;
+import net.pterodactylus.rhynodge.states.ComicState;
+import net.pterodactylus.rhynodge.states.HtmlState;
 
 import org.jsoup.nodes.Document;
 import org.junit.Test;
 
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.contains;
+
 /**
  * Unit test for {@link HeldentageFilter}.
  *
@@ -21,31 +20,21 @@ import org.junit.Test;
 public class HeldentageFilterTest {
 
        private final HeldentageFilter heldentageFilter = new HeldentageFilter();
-       private final Document document;
+       private final HtmlState htmlState;
 
        public HeldentageFilterTest() throws IOException {
-               document = loadDocument("/comics/heldentage.html", "http://www.der-flix.de/");
-       }
-
-       private Document loadDocument(String resourceName, String baseUri) throws IOException {
-               InputStream inputStream = getClass().getResourceAsStream(resourceName);
-               Document document = parse(inputStream, "UTF-8", baseUri);
-               return document;
-       }
-
-       @Test
-       public void comicDoesNotHaveATitle() {
-               assertThat(heldentageFilter.extractTitle(document), is(absent()));
-       }
-
-       @Test
-       public void comicUrlCanBeFound() {
-               assertThat(heldentageFilter.extractImageUrls(document), is(asList("/images/heldentage/Tag_908.jpg")));
+               Document document = ResourceLoader.loadDocument(HeldentageFilter.class, "heldentage.html", "http://www.der-flix.de/");
+               htmlState = new HtmlState("http://www.der-flix.de/", document);
        }
 
        @Test
-       public void comicDoesNotHaveImageComments() {
-               assertThat(heldentageFilter.extractImageComments(document), is(Collections.<String>emptyList()));
+       public void comicIsParsedCorrectly() {
+               ComicState comicState = (ComicState) heldentageFilter.filter(htmlState);
+               assertThat(comicState.comics(), contains(
+                               ComicMatchers.isComic("", contains(
+                                               ComicMatchers.isStrip("http://www.der-flix.de/images/heldentage/Tag_916.jpg", "")
+                               ))
+               ));
        }
 
 }