summaryrefslogtreecommitdiff
path: root/core/src/test/java/de
diff options
context:
space:
mode:
authorH. Lehmann <ByteHamster@users.noreply.github.com>2018-05-27 19:05:10 +0200
committerGitHub <noreply@github.com>2018-05-27 19:05:10 +0200
commitfe92c98661e3b0817aed2c26dee258b0a572dd5e (patch)
tree6a551f3268d71db68a8c3b5f561fd7908b1de446 /core/src/test/java/de
parentcd0d23d2606c35d783457f2a945f539382018285 (diff)
parent1f14d8482e7e99b157a2a398c557387c06b48946 (diff)
downloadAntennaPod-fe92c98661e3b0817aed2c26dee258b0a572dd5e.zip
Merge pull request #2700 from orionlee/fix_core_test_coverage_etc
Fix core tests: default coverage, consistent convention, etc.
Diffstat (limited to 'core/src/test/java/de')
-rw-r--r--core/src/test/java/de/danoeh/antennapod/core/feed/FeedImageMother.java9
-rw-r--r--core/src/test/java/de/danoeh/antennapod/core/feed/FeedItemMother.java16
-rw-r--r--core/src/test/java/de/danoeh/antennapod/core/feed/FeedItemTest.java71
-rw-r--r--core/src/test/java/de/danoeh/antennapod/core/feed/FeedMother.java14
-rw-r--r--core/src/test/java/de/danoeh/antennapod/core/feed/FeedTest.java102
-rw-r--r--core/src/test/java/de/danoeh/antennapod/core/service/download/DownloadServiceTest.java38
-rw-r--r--core/src/test/java/de/danoeh/antennapod/core/util/LongLongMapTest.java65
7 files changed, 315 insertions, 0 deletions
diff --git a/core/src/test/java/de/danoeh/antennapod/core/feed/FeedImageMother.java b/core/src/test/java/de/danoeh/antennapod/core/feed/FeedImageMother.java
new file mode 100644
index 000000000..0fb4992ba
--- /dev/null
+++ b/core/src/test/java/de/danoeh/antennapod/core/feed/FeedImageMother.java
@@ -0,0 +1,9 @@
+package de.danoeh.antennapod.core.feed;
+
+class FeedImageMother {
+
+ public static FeedImage anyFeedImage() {
+ return new FeedImage(0, "image", null, "http://example.com/picture", false);
+ }
+
+}
diff --git a/core/src/test/java/de/danoeh/antennapod/core/feed/FeedItemMother.java b/core/src/test/java/de/danoeh/antennapod/core/feed/FeedItemMother.java
new file mode 100644
index 000000000..3d7c4fe5f
--- /dev/null
+++ b/core/src/test/java/de/danoeh/antennapod/core/feed/FeedItemMother.java
@@ -0,0 +1,16 @@
+package de.danoeh.antennapod.core.feed;
+
+import java.util.Date;
+
+import static de.danoeh.antennapod.core.feed.FeedImageMother.anyFeedImage;
+import static de.danoeh.antennapod.core.feed.FeedMother.anyFeed;
+
+class FeedItemMother {
+
+ static FeedItem anyFeedItemWithImage() {
+ FeedItem item = new FeedItem(0, "Item", "Item", "url", new Date(), FeedItem.PLAYED, anyFeed());
+ item.setImage(anyFeedImage());
+ return item;
+ }
+
+}
diff --git a/core/src/test/java/de/danoeh/antennapod/core/feed/FeedItemTest.java b/core/src/test/java/de/danoeh/antennapod/core/feed/FeedItemTest.java
new file mode 100644
index 000000000..92aacd9d7
--- /dev/null
+++ b/core/src/test/java/de/danoeh/antennapod/core/feed/FeedItemTest.java
@@ -0,0 +1,71 @@
+package de.danoeh.antennapod.core.feed;
+
+import org.junit.Before;
+import org.junit.Test;
+
+import static de.danoeh.antennapod.core.feed.FeedItemMother.anyFeedItemWithImage;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+public class FeedItemTest {
+
+ private FeedItem original;
+ private FeedImage originalImage;
+ private FeedItem changedFeedItem;
+
+ @Before
+ public void setUp() {
+ original = anyFeedItemWithImage();
+ originalImage = original.getImage();
+ changedFeedItem = anyFeedItemWithImage();
+ }
+
+ @Test
+ public void testUpdateFromOther_feedItemImageDownloadUrlChanged() throws Exception {
+ setNewFeedItemImageDownloadUrl();
+
+ original.updateFromOther(changedFeedItem);
+
+ feedItemImageWasUpdated();
+ }
+
+ @Test
+ public void testUpdateFromOther_feedItemImageRemoved() throws Exception {
+ feedItemImageRemoved();
+
+ original.updateFromOther(changedFeedItem);
+
+ feedItemImageWasNotUpdated();
+ }
+
+ @Test
+ public void testUpdateFromOther_feedItemImageAdded() throws Exception {
+ feedItemHadNoImage();
+ setNewFeedItemImageDownloadUrl();
+
+ original.updateFromOther(changedFeedItem);
+
+ feedItemImageWasUpdated();
+ }
+
+ private void feedItemHadNoImage() {
+ original.setImage(null);
+ }
+
+ private void setNewFeedItemImageDownloadUrl() {
+ changedFeedItem.getImage().setDownload_url("http://example.com/new_picture");
+ }
+
+ private void feedItemImageRemoved() {
+ changedFeedItem.setImage(null);
+ }
+
+ private void feedItemImageWasUpdated() {
+ assertEquals(original.getImage().getDownload_url(), changedFeedItem.getImage().getDownload_url());
+ }
+
+ private void feedItemImageWasNotUpdated() {
+ assertTrue(originalImage == original.getImage());
+ }
+
+} \ No newline at end of file
diff --git a/core/src/test/java/de/danoeh/antennapod/core/feed/FeedMother.java b/core/src/test/java/de/danoeh/antennapod/core/feed/FeedMother.java
new file mode 100644
index 000000000..fecc8e377
--- /dev/null
+++ b/core/src/test/java/de/danoeh/antennapod/core/feed/FeedMother.java
@@ -0,0 +1,14 @@
+package de.danoeh.antennapod.core.feed;
+
+import static de.danoeh.antennapod.core.feed.FeedImageMother.anyFeedImage;
+
+class FeedMother {
+
+ public static Feed anyFeed() {
+ FeedImage image = anyFeedImage();
+ return new Feed(0, null, "title", "http://example.com", "This is the description",
+ "http://example.com/payment", "Daniel", "en", null, "http://example.com/feed", image,
+ null, "http://example.com/feed", true);
+ }
+
+}
diff --git a/core/src/test/java/de/danoeh/antennapod/core/feed/FeedTest.java b/core/src/test/java/de/danoeh/antennapod/core/feed/FeedTest.java
new file mode 100644
index 000000000..55f3bdafe
--- /dev/null
+++ b/core/src/test/java/de/danoeh/antennapod/core/feed/FeedTest.java
@@ -0,0 +1,102 @@
+package de.danoeh.antennapod.core.feed;
+
+import org.junit.Before;
+import org.junit.Test;
+
+import static de.danoeh.antennapod.core.feed.FeedImageMother.anyFeedImage;
+import static de.danoeh.antennapod.core.feed.FeedMother.anyFeed;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+public class FeedTest {
+
+ private Feed original;
+ private FeedImage originalImage;
+ private Feed changedFeed;
+
+ @Before
+ public void setUp() {
+ original = anyFeed();
+ originalImage = original.getImage();
+ changedFeed = anyFeed();
+ }
+
+ @Test
+ public void testCompareWithOther_feedImageDownloadUrlChanged() throws Exception {
+ setNewFeedImageDownloadUrl();
+
+ feedHasChanged();
+ }
+
+ @Test
+ public void testCompareWithOther_sameFeedImage() throws Exception {
+ changedFeed.setImage(anyFeedImage());
+
+ feedHasNotChanged();
+ }
+
+ @Test
+ public void testCompareWithOther_feedImageRemoved() throws Exception {
+ feedImageRemoved();
+
+ feedHasNotChanged();
+ }
+
+ @Test
+ public void testUpdateFromOther_feedImageDownloadUrlChanged() throws Exception {
+ setNewFeedImageDownloadUrl();
+
+ original.updateFromOther(changedFeed);
+
+ feedImageWasUpdated();
+ }
+
+ @Test
+ public void testUpdateFromOther_feedImageRemoved() throws Exception {
+ feedImageRemoved();
+
+ original.updateFromOther(changedFeed);
+
+ feedImageWasNotUpdated();
+ }
+
+ @Test
+ public void testUpdateFromOther_feedImageAdded() throws Exception {
+ feedHadNoImage();
+ setNewFeedImageDownloadUrl();
+
+ original.updateFromOther(changedFeed);
+
+ feedImageWasUpdated();
+ }
+
+ private void feedHasNotChanged() {
+ assertFalse(original.compareWithOther(changedFeed));
+ }
+
+ private void feedHadNoImage() {
+ original.setImage(null);
+ }
+
+ private void setNewFeedImageDownloadUrl() {
+ changedFeed.getImage().setDownload_url("http://example.com/new_picture");
+ }
+
+ private void feedHasChanged() {
+ assertTrue(original.compareWithOther(changedFeed));
+ }
+
+ private void feedImageRemoved() {
+ changedFeed.setImage(null);
+ }
+
+ private void feedImageWasUpdated() {
+ assertEquals(original.getImage().getDownload_url(), changedFeed.getImage().getDownload_url());
+ }
+
+ private void feedImageWasNotUpdated() {
+ assertTrue(originalImage == original.getImage());
+ }
+
+} \ No newline at end of file
diff --git a/core/src/test/java/de/danoeh/antennapod/core/service/download/DownloadServiceTest.java b/core/src/test/java/de/danoeh/antennapod/core/service/download/DownloadServiceTest.java
new file mode 100644
index 000000000..e40de2064
--- /dev/null
+++ b/core/src/test/java/de/danoeh/antennapod/core/service/download/DownloadServiceTest.java
@@ -0,0 +1,38 @@
+package de.danoeh.antennapod.core.service.download;
+
+
+import org.junit.Test;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import de.danoeh.antennapod.core.feed.Feed;
+import de.danoeh.antennapod.core.feed.FeedImage;
+import de.danoeh.antennapod.core.feed.FeedItem;
+
+import static org.junit.Assert.assertEquals;
+
+public class DownloadServiceTest {
+
+ @Test
+ public void testRemoveDuplicateImages() {
+ List<FeedItem> items = new ArrayList<>();
+ for (int i = 0; i < 50; i++) {
+ FeedItem item = new FeedItem();
+ String url = (i % 5 == 0) ? "dupe_url" : String.format("url_%d", i);
+ item.setImage(new FeedImage(null, url, ""));
+ items.add(item);
+ }
+ Feed feed = new Feed();
+ feed.setItems(items);
+
+ DownloadService.removeDuplicateImages(feed);
+
+ assertEquals(50, items.size());
+ for (int i = 0; i < items.size(); i++) {
+ FeedItem item = items.get(i);
+ String want = (i == 0) ? "dupe_url" : (i % 5 == 0) ? null : String.format("url_%d", i);
+ assertEquals(want, item.getImageLocation());
+ }
+ }
+}
diff --git a/core/src/test/java/de/danoeh/antennapod/core/util/LongLongMapTest.java b/core/src/test/java/de/danoeh/antennapod/core/util/LongLongMapTest.java
new file mode 100644
index 000000000..0ed77eb9f
--- /dev/null
+++ b/core/src/test/java/de/danoeh/antennapod/core/util/LongLongMapTest.java
@@ -0,0 +1,65 @@
+package de.danoeh.antennapod.core.util;
+
+import org.junit.Test;
+
+import static org.junit.Assert.assertEquals;
+
+public class LongLongMapTest {
+
+ @Test
+ public void testEmptyMap() {
+ LongIntMap map = new LongIntMap();
+ assertEquals(0, map.size());
+ assertEquals("LongLongMap{}", map.toString());
+ assertEquals(0, map.get(42));
+ assertEquals(-1, map.get(42, -1));
+ assertEquals(false, map.delete(42));
+ assertEquals(-1, map.indexOfKey(42));
+ assertEquals(-1, map.indexOfValue(42));
+ assertEquals(1, map.hashCode());
+ }
+
+ @Test
+ public void testSingleElement() {
+ LongIntMap map = new LongIntMap();
+ map.put(17, 42);
+ assertEquals(1, map.size());
+ assertEquals("LongLongMap{17=42}", map.toString());
+ assertEquals(42, map.get(17));
+ assertEquals(42, map.get(17, -1));
+ assertEquals(0, map.indexOfKey(17));
+ assertEquals(0, map.indexOfValue(42));
+ assertEquals(true, map.delete(17));
+ }
+
+ @Test
+ public void testAddAndDelete() {
+ LongIntMap map = new LongIntMap();
+ for(int i=0; i < 100; i++) {
+ map.put(i * 17, i * 42);
+ }
+ assertEquals(100, map.size());
+ assertEquals(0, map.get(0));
+ assertEquals(42, map.get(17));
+ assertEquals(42, map.get(17, -1));
+ assertEquals(1, map.indexOfKey(17));
+ assertEquals(1, map.indexOfValue(42));
+ for(int i=0; i < 100; i++) {
+ assertEquals(true, map.delete(i * 17));
+ }
+ }
+
+ @Test
+ public void testOverwrite() {
+ LongIntMap map = new LongIntMap();
+ map.put(17, 42);
+ assertEquals(1, map.size());
+ assertEquals("LongLongMap{17=42}", map.toString());
+ assertEquals(42, map.get(17));
+ map.put(17, 23);
+ assertEquals(1, map.size());
+ assertEquals("LongLongMap{17=23}", map.toString());
+ assertEquals(23, map.get(17));
+ }
+
+}