diff options
author | orionlee <orionlee@yahoo.com> | 2018-05-18 14:47:37 -0700 |
---|---|---|
committer | orionlee <orionlee@yahoo.com> | 2019-11-05 10:54:21 -0800 |
commit | ba27ec6b31314bbcfebf55e38a913d5b10757e83 (patch) | |
tree | b9035fbe389dc62d4db74f7e8d1d084e8a5d296a /core/src/test/java/de | |
parent | 363c3614f8ff80a1c48d0a59735656dde76b2da9 (diff) | |
download | AntennaPod-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/de')
-rw-r--r-- | core/src/test/java/de/danoeh/antennapod/core/feed/FeedMother.java | 2 | ||||
-rw-r--r-- | core/src/test/java/de/danoeh/antennapod/core/storage/DBWriterTest.java | 65 |
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 |