summaryrefslogtreecommitdiff
path: root/core/src/test/java
diff options
context:
space:
mode:
authororionlee <orionlee@yahoo.com>2018-05-18 14:47:37 -0700
committerorionlee <orionlee@yahoo.com>2019-11-05 10:54:21 -0800
commitba27ec6b31314bbcfebf55e38a913d5b10757e83 (patch)
treeb9035fbe389dc62d4db74f7e8d1d084e8a5d296a /core/src/test/java
parent363c3614f8ff80a1c48d0a59735656dde76b2da9 (diff)
downloadAntennaPod-ba27ec6b31314bbcfebf55e38a913d5b10757e83.zip
refactor - DBWriter.addQueueItem() : refactor enqueue position calculation
to be a unit-testable component (static inner class)
Diffstat (limited to 'core/src/test/java')
-rw-r--r--core/src/test/java/de/danoeh/antennapod/core/feed/FeedMother.java2
-rw-r--r--core/src/test/java/de/danoeh/antennapod/core/storage/DBWriterTest.java65
2 files changed, 66 insertions, 1 deletions
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
index f46797d28..991495a3f 100644
--- a/core/src/test/java/de/danoeh/antennapod/core/feed/FeedMother.java
+++ b/core/src/test/java/de/danoeh/antennapod/core/feed/FeedMother.java
@@ -1,6 +1,6 @@
package de.danoeh.antennapod.core.feed;
-class FeedMother {
+public class FeedMother {
public static final String IMAGE_URL = "http://example.com/image";
public static Feed anyFeed() {
diff --git a/core/src/test/java/de/danoeh/antennapod/core/storage/DBWriterTest.java b/core/src/test/java/de/danoeh/antennapod/core/storage/DBWriterTest.java
new file mode 100644
index 000000000..0d494534c
--- /dev/null
+++ b/core/src/test/java/de/danoeh/antennapod/core/storage/DBWriterTest.java
@@ -0,0 +1,65 @@
+package de.danoeh.antennapod.core.storage;
+
+import org.junit.Test;
+
+import java.util.Arrays;
+import java.util.Date;
+import java.util.List;
+
+import de.danoeh.antennapod.core.feed.FeedItem;
+import de.danoeh.antennapod.core.feed.FeedMother;
+import de.danoeh.antennapod.core.storage.DBWriter.ItemEnqueuePositionCalculator;
+import de.danoeh.antennapod.core.storage.DBWriter.ItemEnqueuePositionCalculator.Options;
+
+import static org.junit.Assert.assertEquals;
+
+public class DBWriterTest {
+
+ public static class ItemEnqueuePositionCalculatorTest {
+
+ @Test
+ public void testEnqueueDefault() {
+
+ ItemEnqueuePositionCalculator calculator =
+ new ItemEnqueuePositionCalculator(new Options());
+
+ List<FeedItem> curQueue = tQueue();
+
+ int posActual1 = calculator.calcPosition(0, tFI(101), curQueue);
+ assertEquals("case default, i.e., add to the end", curQueue.size(), posActual1);
+
+ int posActual2 = calculator.calcPosition(1, tFI(102), curQueue);
+ assertEquals("case default (2nd item)", curQueue.size(), posActual2);
+
+ }
+
+ @Test
+ public void testEnqueueAtFront() {
+
+ ItemEnqueuePositionCalculator calculator =
+ new ItemEnqueuePositionCalculator(new Options()
+ .setEnqueueAtFront(true));
+
+ List<FeedItem> curQueue = tQueue();
+
+ int posActual1 = calculator.calcPosition(0, tFI(101), curQueue);
+ assertEquals("case option enqueue at front", 0, posActual1);
+
+ int posActual2 = calculator.calcPosition(1, tFI(102), curQueue);
+ assertEquals("case option enqueue at front (2nd item)", 1, posActual2);
+
+ }
+
+ private static List<FeedItem> tQueue() {
+ return Arrays.asList(tFI(11), tFI(12), tFI(13), tFI(14));
+ }
+
+ private static FeedItem tFI(int id) {
+ FeedItem item = new FeedItem(0, "Item" + id, "ItemId" + id, "url",
+ new Date(), FeedItem.PLAYED, FeedMother.anyFeed());
+ return item;
+ }
+
+ }
+
+} \ No newline at end of file