AppDownloadManager implements AppDownloader { @Override public void startAppDownload() { subscribe = Observable.from(app.getDownloadFiles()) .flatMap(downloadAppFile -> startFileDownload(downloadAppFile, app.getAttributionId())) .subscribe(__ -> { }, Throwable::printStackTrace); } AppDownloadManager(RetryFileDownloaderProvider fileDownloaderProvider, DownloadApp app,
      HashMap<String, RetryFileDownloader> fileDownloaderPersistence,
      DownloadAnalytics downloadAnalytics); @Override void startAppDownload(); @Override Completable pauseAppDownload(); @Override Completable removeAppDownload(); @Override Observable<AppDownloadStatus> observeDownloadProgress(); void stop(); @VisibleForTesting Observable<RetryFileDownloader> getFileDownloader(String mainDownloadPath);  }
@Test public void startAppDownloadWithNoFiles() throws Exception { appDownloadManagerWithNoFiles.startAppDownload(); verifyZeroInteractions(fileDownloaderApk); verifyZeroInteractions(fileDownloaderMainObb); verifyZeroInteractions(fileDownloaderPatchObb); }