use of de.danoeh.antennapod.model.feed.Feed in project AntennaPod by AntennaPod.
the class DbTasksTest method testUpdateFeedSameTitle.
/**
* Two feeds with the same title, but different download URLs should be treated as different feeds.
*/
@Test
public void testUpdateFeedSameTitle() {
Feed feed1 = new Feed("url1", null, "title");
Feed feed2 = new Feed("url2", null, "title");
feed1.setItems(new ArrayList<>());
feed2.setItems(new ArrayList<>());
Feed savedFeed1 = DBTasks.updateFeed(context, feed1, false);
Feed savedFeed2 = DBTasks.updateFeed(context, feed2, false);
assertTrue(savedFeed1.getId() != savedFeed2.getId());
}
use of de.danoeh.antennapod.model.feed.Feed in project AntennaPod by AntennaPod.
the class DbTasksTest method testUpdateFeedSetDuplicate.
@Test
public void testUpdateFeedSetDuplicate() {
final Feed feed = new Feed("url", null, "title");
feed.setItems(new ArrayList<>());
for (int i = 0; i < 10; i++) {
FeedItem item = new FeedItem(0, "item " + i, "id " + i, "link " + i, new Date(i), FeedItem.PLAYED, feed);
FeedMedia media = new FeedMedia(item, "download url " + i, 123, "media/mp3");
item.setMedia(media);
feed.getItems().add(item);
}
PodDBAdapter adapter = PodDBAdapter.getInstance();
adapter.open();
adapter.setCompleteFeed(feed);
adapter.close();
// change the guid of the first item, but leave the download url the same
FeedItem item = feed.getItemAtIndex(0);
item.setItemIdentifier("id 0-duplicate");
item.setTitle("item 0 duplicate");
Feed newFeed = DBTasks.updateFeed(context, feed, false);
// id 1-duplicate replaces because the stream url is the same
assertEquals(10, newFeed.getItems().size());
Feed feedFromDB = DBReader.getFeed(newFeed.getId());
// id1-duplicate should override id 1
assertEquals(10, feedFromDB.getItems().size());
FeedItem updatedItem = feedFromDB.getItemAtIndex(9);
assertEquals("item 0 duplicate", updatedItem.getTitle());
// Should use the new ID for sync etc
assertEquals("id 0-duplicate", updatedItem.getItemIdentifier());
}
use of de.danoeh.antennapod.model.feed.Feed in project AntennaPod by AntennaPod.
the class DbWriterTest method testAddQueueItemSingleItem.
@Test
public void testAddQueueItemSingleItem() throws Exception {
Feed feed = new Feed("url", null, "title");
feed.setItems(new ArrayList<>());
FeedItem item = new FeedItem(0, "title", "id", "link", new Date(), FeedItem.PLAYED, feed);
feed.getItems().add(item);
PodDBAdapter adapter = PodDBAdapter.getInstance();
adapter.open();
adapter.setCompleteFeed(feed);
adapter.close();
assertTrue(item.getId() != 0);
DBWriter.addQueueItem(context, item).get(TIMEOUT, TimeUnit.SECONDS);
adapter = PodDBAdapter.getInstance();
adapter.open();
Cursor cursor = adapter.getQueueIDCursor();
assertTrue(cursor.moveToFirst());
assertEquals(item.getId(), cursor.getLong(0));
cursor.close();
adapter.close();
}
use of de.danoeh.antennapod.model.feed.Feed in project AntennaPod by AntennaPod.
the class DbWriterTest method testRemoveQueueItem.
@Test
public void testRemoveQueueItem() throws Exception {
final int numItems = 10;
Feed feed = createTestFeed(numItems);
for (int removeIndex = 0; removeIndex < numItems; removeIndex++) {
final FeedItem item = feed.getItems().get(removeIndex);
PodDBAdapter adapter = PodDBAdapter.getInstance();
adapter.open();
adapter.setQueue(feed.getItems());
adapter.close();
DBWriter.removeQueueItem(context, false, item).get(TIMEOUT, TimeUnit.SECONDS);
adapter = PodDBAdapter.getInstance();
adapter.open();
Cursor queue = adapter.getQueueIDCursor();
assertEquals(numItems - 1, queue.getCount());
for (int i = 0; i < queue.getCount(); i++) {
assertTrue(queue.moveToPosition(i));
final long queueID = queue.getLong(0);
// removed item is no longer in queue
assertTrue(queueID != item.getId());
boolean idFound = false;
for (FeedItem other : feed.getItems()) {
// items that were not removed are still in the queue
idFound = idFound | (other.getId() == queueID);
}
assertTrue(idFound);
}
queue.close();
adapter.close();
}
}
use of de.danoeh.antennapod.model.feed.Feed in project AntennaPod by AntennaPod.
the class DbWriterTest method testAddQueueItemMultipleItems.
@Test
public void testAddQueueItemMultipleItems() throws Exception {
final int numItems = 10;
Feed feed;
feed = queueTestSetupMultipleItems(numItems);
PodDBAdapter adapter = PodDBAdapter.getInstance();
adapter.open();
Cursor cursor = adapter.getQueueIDCursor();
assertTrue(cursor.moveToFirst());
assertEquals(numItems, cursor.getCount());
List<Long> expectedIds;
expectedIds = FeedItemUtil.getIdList(feed.getItems());
List<Long> actualIds = new ArrayList<>();
for (int i = 0; i < numItems; i++) {
assertTrue(cursor.moveToPosition(i));
actualIds.add(cursor.getLong(0));
}
cursor.close();
adapter.close();
assertEquals("Bulk add to queue: result order should be the same as the order given", expectedIds, actualIds);
}
Aggregations