use of de.danoeh.antennapod.model.feed.Feed in project AntennaPod by AntennaPod.
the class DbWriterTest method queueTestSetupMultipleItems.
@SuppressWarnings("SameParameterValue")
private Feed queueTestSetupMultipleItems(final int numItems) throws Exception {
UserPreferences.setEnqueueLocation(UserPreferences.EnqueueLocation.BACK);
Feed feed = new Feed("url", null, "title");
feed.setItems(new ArrayList<>());
for (int i = 0; i < numItems; i++) {
FeedItem item = new FeedItem(0, "title " + i, "id " + i, "link " + i, new Date(), FeedItem.PLAYED, feed);
feed.getItems().add(item);
}
PodDBAdapter adapter = PodDBAdapter.getInstance();
adapter.open();
adapter.setCompleteFeed(feed);
adapter.close();
for (FeedItem item : feed.getItems()) {
assertTrue(item.getId() != 0);
}
List<Future<?>> futures = new ArrayList<>();
for (FeedItem item : feed.getItems()) {
futures.add(DBWriter.addQueueItem(context, item));
}
for (Future<?> f : futures) {
f.get(TIMEOUT, TimeUnit.SECONDS);
}
return feed;
}
use of de.danoeh.antennapod.model.feed.Feed in project AntennaPod by AntennaPod.
the class DbWriterTest method testDeleteFeedNoDownloadedFiles.
@Test
public void testDeleteFeedNoDownloadedFiles() throws Exception {
File destFolder = context.getExternalFilesDir(TEST_FOLDER);
assertNotNull(destFolder);
Feed feed = new Feed("url", null, "title");
feed.setItems(new ArrayList<>());
feed.setImageUrl("url");
// create items with downloaded media files
for (int i = 0; i < 10; i++) {
FeedItem item = new FeedItem(0, "Item " + i, "Item" + i, "url", new Date(), FeedItem.PLAYED, feed);
feed.getItems().add(item);
File enc = new File(destFolder, "file " + i);
FeedMedia media = new FeedMedia(0, item, 1, 1, 1, "mime_type", enc.getAbsolutePath(), "download_url", false, null, 0, 0);
item.setMedia(media);
}
PodDBAdapter adapter = PodDBAdapter.getInstance();
adapter.open();
adapter.setCompleteFeed(feed);
adapter.close();
assertTrue(feed.getId() != 0);
for (FeedItem item : feed.getItems()) {
assertTrue(item.getId() != 0);
assertTrue(item.getMedia().getId() != 0);
}
DBWriter.deleteFeed(context, feed.getId()).get(TIMEOUT, TimeUnit.SECONDS);
adapter = PodDBAdapter.getInstance();
adapter.open();
Cursor c = adapter.getFeedCursor(feed.getId());
assertEquals(0, c.getCount());
c.close();
for (FeedItem item : feed.getItems()) {
c = adapter.getFeedItemCursor(String.valueOf(item.getId()));
assertEquals(0, c.getCount());
c.close();
c = adapter.getSingleFeedMediaCursor(item.getMedia().getId());
assertEquals(0, c.getCount());
c.close();
}
adapter.close();
}
use of de.danoeh.antennapod.model.feed.Feed in project AntennaPod by AntennaPod.
the class DbWriterTest method testRemoveQueueItemMultipleItems.
@Test
public void testRemoveQueueItemMultipleItems() throws Exception {
final int numItems = 5;
// the last one not in queue for boundary condition
final int numInQueue = numItems - 1;
Feed feed = createTestFeed(numItems);
List<FeedItem> itemsToAdd = feed.getItems().subList(0, numInQueue);
withPodDB(adapter -> adapter.setQueue(itemsToAdd));
// Actual tests
//
// Use array rather than List to make codes more succinct
Long[] itemIds = toItemIds(feed.getItems()).toArray(new Long[0]);
DBWriter.removeQueueItem(context, false, itemIds[1], itemIds[3]).get(TIMEOUT, TimeUnit.SECONDS);
assertQueueByItemIds("Average case - 2 items removed successfully", itemIds[0], itemIds[2]);
DBWriter.removeQueueItem(context, false).get(TIMEOUT, TimeUnit.SECONDS);
assertQueueByItemIds("Boundary case - no items supplied. queue should see no change", itemIds[0], itemIds[2]);
DBWriter.removeQueueItem(context, false, itemIds[0], itemIds[4], -1L).get(TIMEOUT, TimeUnit.SECONDS);
assertQueueByItemIds("Boundary case - items not in queue ignored", itemIds[2]);
DBWriter.removeQueueItem(context, false, itemIds[2], -1L).get(TIMEOUT, TimeUnit.SECONDS);
// the queue is empty
assertQueueByItemIds("Boundary case - invalid itemIds ignored");
}
use of de.danoeh.antennapod.model.feed.Feed in project AntennaPod by AntennaPod.
the class FeedCursorMapperTest method testFromCursor.
@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.getPaymentLinks().get(0).url);
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());
}
}
use of de.danoeh.antennapod.model.feed.Feed in project AntennaPod by AntennaPod.
the class DbReaderTest method testGetFeedItemList.
@Test
public void testGetFeedItemList() {
final int numFeeds = 1;
final int numItems = 10;
Feed feed = saveFeedlist(numFeeds, numItems, false).get(0);
List<FeedItem> items = feed.getItems();
feed.setItems(null);
List<FeedItem> savedItems = DBReader.getFeedItemList(feed);
assertNotNull(savedItems);
assertEquals(items.size(), savedItems.size());
for (int i = 0; i < savedItems.size(); i++) {
assertEquals(savedItems.get(i).getId(), items.get(i).getId());
}
}
Aggregations