Skip to content

Commit

Permalink
Fetch configuration can now accept a fetch database manager
Browse files Browse the repository at this point in the history
  • Loading branch information
tonyofrancis committed Feb 23, 2019
1 parent a5b68da commit 729884e
Show file tree
Hide file tree
Showing 15 changed files with 405 additions and 258 deletions.

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@
import android.support.test.InstrumentationRegistry;
import android.support.test.runner.AndroidJUnit4;

import com.tonyodev.fetch2.database.DatabaseManager;
import com.tonyodev.fetch2.database.DatabaseManagerImpl;
import com.tonyodev.fetch2.database.FetchDatabaseManager;
import com.tonyodev.fetch2.database.FetchDatabaseManagerImpl;
import com.tonyodev.fetch2.database.DownloadDatabase;
import com.tonyodev.fetch2.database.DownloadInfo;
import com.tonyodev.fetch2.database.migration.Migration;
Expand Down Expand Up @@ -44,7 +44,7 @@
public class DownloadManagerInstrumentedTest {

private DownloadManager downloadManager;
private DatabaseManager databaseManager;
private FetchDatabaseManager fetchDatabaseManager;
private Context appContext;

@Before
Expand All @@ -57,18 +57,18 @@ public void useAppContext() throws Exception {
FetchLogger fetchLogger = new FetchLogger(true, namespace);
final LiveSettings liveSettings = new LiveSettings(namespace);
DefaultStorageResolver defaultStorageResolver = new DefaultStorageResolver(appContext, FetchCoreUtils.getFileTempDir(appContext));
databaseManager = new DatabaseManagerImpl(appContext, namespace, migrations, liveSettings, false, defaultStorageResolver);
fetchDatabaseManager = new FetchDatabaseManagerImpl(appContext, namespace, migrations, liveSettings, false, defaultStorageResolver);
final Downloader client = FetchDefaults.getDefaultDownloader();
final FileServerDownloader serverDownloader = FetchDefaults.getDefaultFileServerDownloader();
final long progessInterval = FetchCoreDefaults.DEFAULT_PROGRESS_REPORTING_INTERVAL_IN_MILLISECONDS;
final int concurrentLimit = FetchDefaults.DEFAULT_CONCURRENT_LIMIT;
final NetworkInfoProvider networkInfoProvider = new NetworkInfoProvider(appContext);
final boolean retryOnNetworkGain = false;
final Handler uiHandler = new Handler(Looper.getMainLooper());
final DownloadInfoUpdater downloadInfoUpdater = new DownloadInfoUpdater(databaseManager);
final DownloadInfoUpdater downloadInfoUpdater = new DownloadInfoUpdater(fetchDatabaseManager);
final String tempDir = FetchCoreUtils.getFileTempDir(appContext);
final DownloadManagerCoordinator downloadManagerCoordinator = new DownloadManagerCoordinator(namespace);
final DownloadProvider downloadProvider = new DownloadProvider(databaseManager);
final DownloadProvider downloadProvider = new DownloadProvider(fetchDatabaseManager);
final GroupInfoProvider groupInfoProvider = new GroupInfoProvider(namespace, downloadProvider);
final ListenerCoordinator listenerCoordinator = new ListenerCoordinator(namespace, groupInfoProvider, uiHandler);
final DefaultStorageResolver storageResolver = new DefaultStorageResolver(appContext, tempDir);
Expand All @@ -83,8 +83,8 @@ public void useAppContext() throws Exception {
public void cleanUp() throws Exception {
downloadManager.close();
assertTrue(downloadManager.isClosed());
databaseManager.close();
assertTrue(databaseManager.isClosed());
fetchDatabaseManager.close();
assertTrue(fetchDatabaseManager.isClosed());
}

@Test
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@
import android.support.test.InstrumentationRegistry;
import android.support.test.runner.AndroidJUnit4;

import com.tonyodev.fetch2.database.DatabaseManager;
import com.tonyodev.fetch2.database.DatabaseManagerImpl;
import com.tonyodev.fetch2.database.FetchDatabaseManager;
import com.tonyodev.fetch2.database.FetchDatabaseManagerImpl;
import com.tonyodev.fetch2.database.DownloadDatabase;
import com.tonyodev.fetch2.database.migration.Migration;
import com.tonyodev.fetch2.downloader.DownloadManager;
Expand Down Expand Up @@ -54,7 +54,7 @@ public void useAppContext() throws Exception {
final Migration[] migrations = DownloadDatabase.getMigrations();
final LiveSettings liveSettings = new LiveSettings(namespace);
DefaultStorageResolver defaultStorageResolver = new DefaultStorageResolver(appContext, FetchCoreUtils.getFileTempDir(appContext));
final DatabaseManager databaseManager = new DatabaseManagerImpl(appContext, namespace, migrations, liveSettings,
final FetchDatabaseManager fetchDatabaseManager = new FetchDatabaseManagerImpl(appContext, namespace, migrations, liveSettings,
false, defaultStorageResolver);
final Downloader client = FetchDefaults.getDefaultDownloader();
final FileServerDownloader serverDownloader = FetchDefaults.getDefaultFileServerDownloader();
Expand All @@ -63,10 +63,10 @@ public void useAppContext() throws Exception {
final NetworkInfoProvider networkInfoProvider = new NetworkInfoProvider(appContext);
final boolean retryOnNetworkGain = false;
final Handler uiHandler = new Handler(Looper.getMainLooper());
final DownloadInfoUpdater downloadInfoUpdater = new DownloadInfoUpdater(databaseManager);
final DownloadInfoUpdater downloadInfoUpdater = new DownloadInfoUpdater(fetchDatabaseManager);
final String tempDir = FetchCoreUtils.getFileTempDir(appContext);
final DownloadManagerCoordinator downloadManagerCoordinator = new DownloadManagerCoordinator(namespace);
final DownloadProvider downloadProvider = new DownloadProvider(databaseManager);
final DownloadProvider downloadProvider = new DownloadProvider(fetchDatabaseManager);
final GroupInfoProvider groupInfoProvider = new GroupInfoProvider(namespace, downloadProvider);
final ListenerCoordinator listenerCoordinator = new ListenerCoordinator(namespace, groupInfoProvider, uiHandler);
final DefaultStorageResolver storageResolver = new DefaultStorageResolver(appContext, tempDir);
Expand All @@ -76,7 +76,7 @@ public void useAppContext() throws Exception {
listenerCoordinator, serverDownloader, false, storageResolver, appContext, namespace, groupInfoProvider);
priorityListProcessorImpl = new PriorityListProcessorImpl(
new HandlerWrapper(namespace),
new DownloadProvider(databaseManager),
new DownloadProvider(fetchDatabaseManager),
downloadManager,
new NetworkInfoProvider(appContext),
fetchLogger,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
import android.support.test.InstrumentationRegistry;
import android.support.test.runner.AndroidJUnit4;

import com.tonyodev.fetch2.database.DatabaseManager;
import com.tonyodev.fetch2.database.DatabaseManagerImpl;
import com.tonyodev.fetch2.database.FetchDatabaseManager;
import com.tonyodev.fetch2.database.FetchDatabaseManagerImpl;
import com.tonyodev.fetch2.database.DownloadDatabase;
import com.tonyodev.fetch2.database.DownloadInfo;
import com.tonyodev.fetch2.database.migration.Migration;
Expand All @@ -32,7 +32,7 @@
@RunWith(AndroidJUnit4.class)
public class DownloadProviderInstrumentedTest {

private DatabaseManager databaseManager;
private FetchDatabaseManager fetchDatabaseManager;
private Context appContext;
private DownloadProvider downloadProvider;

Expand All @@ -46,20 +46,20 @@ public void useAppContext() throws Exception {
FetchLogger fetchLogger = new FetchLogger(true, namespace);
final LiveSettings liveSettings = new LiveSettings(namespace);
DefaultStorageResolver defaultStorageResolver = new DefaultStorageResolver(appContext, FetchCoreUtils.getFileTempDir(appContext));
databaseManager = new DatabaseManagerImpl(appContext, namespace, migrations, liveSettings,
fetchDatabaseManager = new FetchDatabaseManagerImpl(appContext, namespace, migrations, liveSettings,
false, defaultStorageResolver);
downloadProvider = new DownloadProvider(databaseManager);
downloadProvider = new DownloadProvider(fetchDatabaseManager);
}

@After
public void cleanup() throws Exception {
databaseManager.deleteAll();
databaseManager.close();
fetchDatabaseManager.deleteAll();
fetchDatabaseManager.close();
}

@Test
public void get() throws Exception {
databaseManager.deleteAll();
fetchDatabaseManager.deleteAll();
final String url = "http://www.example.com/test.txt";
final String dir = appContext.getFilesDir() + "/testFolder/";
final List<Request> requestList = new ArrayList<>();
Expand All @@ -73,7 +73,7 @@ public void get() throws Exception {
final DownloadInfo downloadInfo = FetchTypeConverterExtensions.toDownloadInfo(request);
downloadInfoList.add(downloadInfo);
}
databaseManager.insert(downloadInfoList);
fetchDatabaseManager.insert(downloadInfoList);
final List<Download> queryList = downloadProvider.getDownloads();
assertNotNull(queryList);
assertEquals(downloadInfoList.size(), queryList.size());
Expand All @@ -82,18 +82,18 @@ public void get() throws Exception {

@Test
public void getId() throws Exception {
databaseManager.deleteAll();
fetchDatabaseManager.deleteAll();
final Request request = getTestRequest();
final DownloadInfo downloadInfo = FetchTypeConverterExtensions.toDownloadInfo(request);
databaseManager.insert(downloadInfo);
fetchDatabaseManager.insert(downloadInfo);
final Download query = downloadProvider.getDownload(downloadInfo.getId());
assertNotNull(query);
assertEquals(downloadInfo.getId(), query.getId());
}

@Test
public void getIds() throws Exception {
databaseManager.deleteAll();
fetchDatabaseManager.deleteAll();
final String url = "http://www.example.com/test.txt";
final String dir = appContext.getFilesDir() + "/testFolder/";
final List<Request> requestList = new ArrayList<>();
Expand All @@ -107,7 +107,7 @@ public void getIds() throws Exception {
final DownloadInfo downloadInfo = FetchTypeConverterExtensions.toDownloadInfo(request);
downloadInfoList.add(downloadInfo);
}
databaseManager.insert(downloadInfoList);
fetchDatabaseManager.insert(downloadInfoList);
final List<Integer> ids = new ArrayList<>();
for (DownloadInfo downloadInfo : downloadInfoList) {
ids.add(downloadInfo.getId());
Expand All @@ -123,7 +123,7 @@ public void getIds() throws Exception {

@Test
public void getStatus() throws Exception {
databaseManager.deleteAll();
fetchDatabaseManager.deleteAll();
final String url = "http://www.example.com/test.txt";
final String dir = appContext.getFilesDir() + "/testFolder/";
final List<Request> requestList = new ArrayList<>();
Expand All @@ -141,7 +141,7 @@ public void getStatus() throws Exception {
for (DownloadInfo downloadInfo : downloadInfoList) {
downloadInfo.setStatus(status);
}
databaseManager.insert(downloadInfoList);
fetchDatabaseManager.insert(downloadInfoList);
final List<Download> queryList = downloadProvider.getByStatus(status);
assertNotNull(queryList);
assertEquals(downloadInfoList.size(), queryList.size());
Expand All @@ -153,7 +153,7 @@ public void getStatus() throws Exception {

@Test
public void getGroup() throws Exception {
databaseManager.deleteAll();
fetchDatabaseManager.deleteAll();
final String url = "http://www.example.com/test.txt";
final String dir = appContext.getFilesDir() + "/testFolder/";
final List<Request> requestList = new ArrayList<>();
Expand All @@ -171,7 +171,7 @@ public void getGroup() throws Exception {
for (DownloadInfo downloadInfo : downloadInfoList) {
downloadInfo.setGroup(group);
}
databaseManager.insert(downloadInfoList);
fetchDatabaseManager.insert(downloadInfoList);
final List<Download> queryList = downloadProvider.getByGroup(group);
assertNotNull(queryList);
assertEquals(downloadInfoList.size(), queryList.size());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@
import android.support.test.InstrumentationRegistry;
import android.support.test.runner.AndroidJUnit4;

import com.tonyodev.fetch2.database.DatabaseManager;
import com.tonyodev.fetch2.database.DatabaseManagerImpl;
import com.tonyodev.fetch2.database.FetchDatabaseManager;
import com.tonyodev.fetch2.database.FetchDatabaseManagerImpl;
import com.tonyodev.fetch2.database.DownloadDatabase;
import com.tonyodev.fetch2.database.DownloadInfo;
import com.tonyodev.fetch2.database.migration.Migration;
Expand Down Expand Up @@ -56,7 +56,7 @@ public class FetchHandlerInstrumentedTest {

private Context appContext;
private FetchHandler fetchHandler;
private DatabaseManager databaseManager;
private FetchDatabaseManager fetchDatabaseManager;
private PriorityListProcessor<Download> priorityListProcessorImpl;

@Before
Expand All @@ -70,7 +70,7 @@ public void useAppContext() throws Exception {
final Migration[] migrations = DownloadDatabase.getMigrations();
final LiveSettings liveSettings = new LiveSettings(namespace);
DefaultStorageResolver defaultStorageResolver = new DefaultStorageResolver(appContext, FetchCoreUtils.getFileTempDir(appContext));
databaseManager = new DatabaseManagerImpl(appContext, namespace, migrations, liveSettings, false, defaultStorageResolver);
fetchDatabaseManager = new FetchDatabaseManagerImpl(appContext, namespace, migrations, liveSettings, false, defaultStorageResolver);
final int concurrentLimit = FetchDefaults.DEFAULT_CONCURRENT_LIMIT;
final HandlerWrapper handlerWrapper = new HandlerWrapper(namespace);
final Downloader client = FetchDefaults.getDefaultDownloader();
Expand All @@ -80,10 +80,10 @@ public void useAppContext() throws Exception {
final NetworkInfoProvider networkInfoProvider = new NetworkInfoProvider(appContext);
final boolean retryOnNetworkGain = false;
final Handler uiHandler = new Handler(Looper.getMainLooper());
final DownloadInfoUpdater downloadInfoUpdater = new DownloadInfoUpdater(databaseManager);
final DownloadInfoUpdater downloadInfoUpdater = new DownloadInfoUpdater(fetchDatabaseManager);
final String tempDir = FetchCoreUtils.getFileTempDir(appContext);
final DownloadManagerCoordinator downloadManagerCoordinator = new DownloadManagerCoordinator(namespace);
final DownloadProvider downloadProvider = new DownloadProvider(databaseManager);
final DownloadProvider downloadProvider = new DownloadProvider(fetchDatabaseManager);
final GroupInfoProvider groupInfoProvider = new GroupInfoProvider(namespace, downloadProvider);
final ListenerCoordinator listenerCoordinator = new ListenerCoordinator(namespace, groupInfoProvider, uiHandler);
final DefaultStorageResolver storageResolver = new DefaultStorageResolver(appContext, tempDir);
Expand All @@ -93,15 +93,15 @@ public void useAppContext() throws Exception {
listenerCoordinator, serverDownloader, false, storageResolver, appContext, namespace, groupInfoProvider);
priorityListProcessorImpl = new PriorityListProcessorImpl(
handlerWrapper,
new DownloadProvider(databaseManager),
new DownloadProvider(fetchDatabaseManager),
downloadManager,
new NetworkInfoProvider(appContext),
fetchLogger,
listenerCoordinator,
concurrentLimit,
appContext,
namespace);
fetchHandler = new FetchHandlerImpl(namespace, databaseManager, downloadManager,
fetchHandler = new FetchHandlerImpl(namespace, fetchDatabaseManager, downloadManager,
priorityListProcessorImpl, fetchLogger, autoStart,
client, serverClient, listenerCoordinator, uiHandler, storageResolver, null);
}
Expand Down Expand Up @@ -232,7 +232,7 @@ public void removeWithId() throws Exception {
final Download removedDownload = downloads.get(0);
assertNotNull(removedDownload);
assertEquals(Status.REMOVED, removedDownload.getStatus());
final Download download1 = databaseManager.get(download.getFirst().getId());
final Download download1 = fetchDatabaseManager.get(download.getFirst().getId());
assertNull(download1);
}

Expand Down Expand Up @@ -261,7 +261,7 @@ public void removeGroup() throws Exception {
final List<Integer> idList = new ArrayList<>();
idList.add(request.getId());
idList.add(request2.getId());
final List<DownloadInfo> downloads1 = databaseManager.get(idList);
final List<DownloadInfo> downloads1 = fetchDatabaseManager.get(idList);
assertNotNull(downloads1);
for (DownloadInfo downloadInfo : downloads1) {
assertNull(downloadInfo);
Expand All @@ -283,7 +283,7 @@ public void removeAll() throws Exception {
assertEquals(Status.REMOVED, download.getStatus());
}

final List<DownloadInfo> downloads1 = databaseManager.get();
final List<DownloadInfo> downloads1 = fetchDatabaseManager.get();
assertNotNull(downloads1);
for (DownloadInfo downloadInfo : downloads1) {
assertNull(downloadInfo);
Expand All @@ -301,7 +301,7 @@ public void deleteWithId() throws Exception {
final Download deletedDownload = downloads.get(0);
assertNotNull(deletedDownload);
assertEquals(Status.DELETED, deletedDownload.getStatus());
final Download download1 = databaseManager.get(download.getFirst().getId());
final Download download1 = fetchDatabaseManager.get(download.getFirst().getId());
assertNull(download1);
}

Expand Down Expand Up @@ -330,7 +330,7 @@ public void deleteGroup() throws Exception {
final List<Integer> idList = new ArrayList<>();
idList.add(request.getId());
idList.add(request2.getId());
final List<DownloadInfo> downloads1 = databaseManager.get(idList);
final List<DownloadInfo> downloads1 = fetchDatabaseManager.get(idList);
assertNotNull(downloads1);
for (DownloadInfo downloadInfo : downloads1) {
assertNull(downloadInfo);
Expand All @@ -352,7 +352,7 @@ public void deleteAll() throws Exception {
assertEquals(Status.DELETED, download.getStatus());
}

final List<DownloadInfo> downloads1 = databaseManager.get();
final List<DownloadInfo> downloads1 = fetchDatabaseManager.get();
assertNotNull(downloads1);
for (DownloadInfo downloadInfo : downloads1) {
assertNull(downloadInfo);
Expand Down Expand Up @@ -421,7 +421,7 @@ public void retry() throws Exception {
assertEquals(request.getId(), download.getFirst().getId());
final DownloadInfo downloadInfo = FetchTypeConverterExtensions.toDownloadInfo(download.getFirst());
downloadInfo.setStatus(Status.FAILED);
databaseManager.update(downloadInfo);
fetchDatabaseManager.update(downloadInfo);
final List<Download> queuedDownloads = fetchHandler.retry(getIdList(request.getId()));
assertNotNull(queuedDownloads);
assertEquals(1, queuedDownloads.size());
Expand Down Expand Up @@ -519,7 +519,7 @@ public void getIds() throws Exception {

@After
public void cleanUp() throws Exception {
databaseManager.deleteAll();
fetchDatabaseManager.deleteAll();
fetchHandler.close();
}

Expand Down
Loading

0 comments on commit 729884e

Please sign in to comment.