From bcd4b49dda0a75bb61396ee4c4ab5521c5dc0c26 Mon Sep 17 00:00:00 2001 From: orionlee Date: Thu, 24 Oct 2019 12:00:14 -0700 Subject: feeditem sort - handle boundary conditions --- .../core/util/FeedItemPermutorsTest.java | 58 ++++++++++++++++++++++ 1 file changed, 58 insertions(+) (limited to 'core/src/test/java/de/danoeh/antennapod') diff --git a/core/src/test/java/de/danoeh/antennapod/core/util/FeedItemPermutorsTest.java b/core/src/test/java/de/danoeh/antennapod/core/util/FeedItemPermutorsTest.java index 82b3a794e..f66c77c3d 100644 --- a/core/src/test/java/de/danoeh/antennapod/core/util/FeedItemPermutorsTest.java +++ b/core/src/test/java/de/danoeh/antennapod/core/util/FeedItemPermutorsTest.java @@ -10,6 +10,7 @@ import de.danoeh.antennapod.core.feed.Feed; import de.danoeh.antennapod.core.feed.FeedItem; import de.danoeh.antennapod.core.feed.FeedMedia; +import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; /** @@ -17,6 +18,14 @@ import static org.junit.Assert.assertTrue; */ public class FeedItemPermutorsTest { + @Test + public void testEnsureNonNullPermutors() { + for(SortOrder sortOrder : SortOrder.values()) { + assertNotNull("The permutor for SortOrder " + sortOrder + " is unexpectedly null", + FeedItemPermutors.getPermutor(sortOrder)); + } + } + @Test public void testPermutorForRule_EPISODE_TITLE_ASC() { Permutor permutor = FeedItemPermutors.getPermutor(SortOrder.EPISODE_TITLE_A_Z); @@ -27,6 +36,19 @@ public class FeedItemPermutorsTest { assertTrue(checkIdOrder(itemList, 1, 2, 3)); // after sorting } + @Test + public void testPermutorForRule_EPISODE_TITLE_ASC_NullTitle() { + Permutor permutor = FeedItemPermutors.getPermutor(SortOrder.EPISODE_TITLE_A_Z); + + List itemList = getTestList(); + itemList.get(2) // itemId 2 + .setTitle(null); + assertTrue(checkIdOrder(itemList, 1, 3, 2)); // before sorting + permutor.reorder(itemList); + assertTrue(checkIdOrder(itemList, 2, 1, 3)); // after sorting + } + + @Test public void testPermutorForRule_EPISODE_TITLE_DESC() { Permutor permutor = FeedItemPermutors.getPermutor(SortOrder.EPISODE_TITLE_Z_A); @@ -47,6 +69,18 @@ public class FeedItemPermutorsTest { assertTrue(checkIdOrder(itemList, 1, 2, 3)); // after sorting } + @Test + public void testPermutorForRule_DATE_ASC_NulPubDatel() { + Permutor permutor = FeedItemPermutors.getPermutor(SortOrder.DATE_OLD_NEW); + + List itemList = getTestList(); + itemList.get(2) // itemId 2 + .setPubDate(null); + assertTrue(checkIdOrder(itemList, 1, 3, 2)); // before sorting + permutor.reorder(itemList); + assertTrue(checkIdOrder(itemList, 2, 1, 3)); // after sorting + } + @Test public void testPermutorForRule_DATE_DESC() { Permutor permutor = FeedItemPermutors.getPermutor(SortOrder.DATE_NEW_OLD); @@ -77,6 +111,18 @@ public class FeedItemPermutorsTest { assertTrue(checkIdOrder(itemList, 3, 2, 1)); // after sorting } + @Test + public void testPermutorForRule_DURATION_DESC_NullMedia() { + Permutor permutor = FeedItemPermutors.getPermutor(SortOrder.DURATION_LONG_SHORT); + + List itemList = getTestList(); + itemList.get(1) // itemId 3 + .setMedia(null); + assertTrue(checkIdOrder(itemList, 1, 3, 2)); // before sorting + permutor.reorder(itemList); + assertTrue(checkIdOrder(itemList, 2, 1, 3)); // after sorting + } + @Test public void testPermutorForRule_FEED_TITLE_ASC() { Permutor permutor = FeedItemPermutors.getPermutor(SortOrder.FEED_TITLE_A_Z); @@ -97,6 +143,18 @@ public class FeedItemPermutorsTest { assertTrue(checkIdOrder(itemList, 3, 2, 1)); // after sorting } + @Test + public void testPermutorForRule_FEED_TITLE_DESC_NullTitle() { + Permutor permutor = FeedItemPermutors.getPermutor(SortOrder.FEED_TITLE_Z_A); + + List itemList = getTestList(); + itemList.get(1) // itemId 3 + .getFeed().setTitle(null); + assertTrue(checkIdOrder(itemList, 1, 3, 2)); // before sorting + permutor.reorder(itemList); + assertTrue(checkIdOrder(itemList, 2, 1, 3)); // after sorting + } + /** * Generates a list with test data. */ -- cgit v1.2.3