package de.test.antennapod.storage; import android.test.FlakyTest; import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.Date; import java.util.List; import de.danoeh.antennapod.core.feed.Feed; import de.danoeh.antennapod.core.feed.FeedItem; import de.danoeh.antennapod.core.preferences.UserPreferences; import de.danoeh.antennapod.core.storage.DBTasks; /** * Tests that the APQueueCleanupAlgorithm is working correctly. */ public class DBQueueCleanupAlgorithmTest extends DBCleanupTests { private static final String TAG = "DBQueueCleanupAlgorithmTest"; public DBQueueCleanupAlgorithmTest() { super(UserPreferences.EPISODE_CLEANUP_QUEUE); } /** * For APQueueCleanupAlgorithm we expect even unplayed episodes to be deleted if needed * if they aren't in the queue */ @FlakyTest(tolerance = 3) public void testPerformAutoCleanupHandleUnplayed() throws IOException { final int NUM_ITEMS = EPISODE_CACHE_SIZE * 2; Feed feed = new Feed("url", null, "title"); List<FeedItem> items = new ArrayList<>(); feed.setItems(items); List<File> files = new ArrayList<>(); populateItems(NUM_ITEMS, feed, items, files, FeedItem.UNPLAYED, false, false); DBTasks.performAutoCleanup(context); for (int i = 0; i < files.size(); i++) { if (i < EPISODE_CACHE_SIZE) { assertTrue(files.get(i).exists()); } else { assertFalse(files.get(i).exists()); } } } }