summaryrefslogtreecommitdiff
path: root/core/src/test
diff options
context:
space:
mode:
Diffstat (limited to 'core/src/test')
-rw-r--r--core/src/test/java/de/danoeh/antennapod/core/storage/mapper/FeedCursorMapperTest.java100
1 files changed, 100 insertions, 0 deletions
diff --git a/core/src/test/java/de/danoeh/antennapod/core/storage/mapper/FeedCursorMapperTest.java b/core/src/test/java/de/danoeh/antennapod/core/storage/mapper/FeedCursorMapperTest.java
new file mode 100644
index 000000000..c779b6d55
--- /dev/null
+++ b/core/src/test/java/de/danoeh/antennapod/core/storage/mapper/FeedCursorMapperTest.java
@@ -0,0 +1,100 @@
+package de.danoeh.antennapod.core.storage.mapper;
+
+import android.content.ContentValues;
+import android.content.Context;
+import android.database.Cursor;
+
+import androidx.test.platform.app.InstrumentationRegistry;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
+
+import de.danoeh.antennapod.core.feed.Feed;
+import de.danoeh.antennapod.core.storage.PodDBAdapter;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+@RunWith(RobolectricTestRunner.class)
+public class FeedCursorMapperTest {
+ private PodDBAdapter adapter;
+
+ @Before
+ public void setUp() {
+ Context context = InstrumentationRegistry.getInstrumentation().getContext();
+
+ PodDBAdapter.init(context);
+ adapter = PodDBAdapter.getInstance();
+
+ writeFeedToDatabase();
+ }
+
+ @After
+ public void tearDown() {
+ PodDBAdapter.tearDownTests();
+ }
+
+ @SuppressWarnings("ConstantConditions")
+ @Test
+ public void testFromCursor() {
+ try (Cursor cursor = adapter.getAllFeedsCursor()) {
+ cursor.moveToNext();
+ Feed feed = FeedCursorMapper.convert(cursor);
+ assertTrue(feed.getId() >= 0);
+ assertEquals("feed custom title", feed.getTitle());
+ assertEquals("feed custom title", feed.getCustomTitle());
+ assertEquals("feed link", feed.getLink());
+ assertEquals("feed description", feed.getDescription());
+ assertEquals("feed payment link", feed.getPaymentLink());
+ assertEquals("feed author", feed.getAuthor());
+ assertEquals("feed language", feed.getLanguage());
+ assertEquals("feed image url", feed.getImageUrl());
+ assertEquals("feed file url", feed.getFile_url());
+ assertEquals("feed download url", feed.getDownload_url());
+ assertTrue(feed.isDownloaded());
+ assertEquals("feed last update", feed.getLastUpdate());
+ assertEquals("feed type", feed.getType());
+ assertEquals("feed identifier", feed.getFeedIdentifier());
+ assertTrue(feed.isPaged());
+ assertEquals("feed next page link", feed.getNextPageLink());
+ assertTrue(feed.getItemFilter().showUnplayed);
+ assertEquals(1, feed.getSortOrder().code);
+ assertTrue(feed.hasLastUpdateFailed());
+ }
+ }
+
+ /**
+ * Insert test data to the database.
+ * Uses raw database insert instead of adapter.setCompleteFeed() to avoid testing the Feed class
+ * against itself.
+ */
+ private void writeFeedToDatabase() {
+ ContentValues values = new ContentValues();
+ values.put(PodDBAdapter.KEY_TITLE, "feed title");
+ values.put(PodDBAdapter.KEY_CUSTOM_TITLE, "feed custom title");
+ values.put(PodDBAdapter.KEY_LINK, "feed link");
+ values.put(PodDBAdapter.KEY_DESCRIPTION, "feed description");
+ values.put(PodDBAdapter.KEY_PAYMENT_LINK, "feed payment link");
+ values.put(PodDBAdapter.KEY_AUTHOR, "feed author");
+ values.put(PodDBAdapter.KEY_LANGUAGE, "feed language");
+ values.put(PodDBAdapter.KEY_IMAGE_URL, "feed image url");
+
+ values.put(PodDBAdapter.KEY_FILE_URL, "feed file url");
+ values.put(PodDBAdapter.KEY_DOWNLOAD_URL, "feed download url");
+ values.put(PodDBAdapter.KEY_DOWNLOADED, true);
+ values.put(PodDBAdapter.KEY_LASTUPDATE, "feed last update");
+ values.put(PodDBAdapter.KEY_TYPE, "feed type");
+ values.put(PodDBAdapter.KEY_FEED_IDENTIFIER, "feed identifier");
+
+ values.put(PodDBAdapter.KEY_IS_PAGED, true);
+ values.put(PodDBAdapter.KEY_NEXT_PAGE_LINK, "feed next page link");
+ values.put(PodDBAdapter.KEY_HIDE, "unplayed");
+ values.put(PodDBAdapter.KEY_SORT_ORDER, "1");
+ values.put(PodDBAdapter.KEY_LAST_UPDATE_FAILED, true);
+
+ adapter.insertTestData(PodDBAdapter.TABLE_NAME_FEEDS, values);
+ }
+}