@Override public void run() { task.getListener().connectEnd(task, blockIndex, responseCode, requestHeaderFields); } });
@Override public void run() { task.getListener() .connectTrialEnd(task, responseCode, headerFields); } });
public void doRetry(@NonNull DownloadTask task) { final int retryingTime = retriedTimes.incrementAndGet(); if (retryingTime > retryTimes) { throw new RuntimeException("retry has exceeded limit"); } task.enqueue(task.getListener()); }
@Override public void run() { for (DownloadTask task : completedTaskCollection) { task.getListener().taskEnd(task, EndCause.COMPLETED, null); } for (DownloadTask task : sameTaskConflictCollection) { task.getListener().taskEnd(task, EndCause.SAME_TASK_BUSY, null); } for (DownloadTask task : fileBusyCollection) { task.getListener().taskEnd(task, EndCause.FILE_BUSY, null); } } });
@Override public void run() { for (DownloadTask task : canceledCollection) { task.getListener().taskEnd(task, EndCause.CANCELED, null); } } });
@Override public void run() { for (DownloadTask task : errorCollection) { task.getListener().taskEnd(task, EndCause.ERROR, realCause); } } });
@Override public void run() { task.getListener().fetchProgress(task, blockIndex, increaseBytes); } });
@Override public void run() { task.getListener().fetchEnd(task, blockIndex, contentLength); } });
@Override public void run() { task.getListener().taskStart(task); } });
@Override public void run() { task.getListener().connectTrialStart(task, headerFields); } });
@Override public void run() { task.getListener().downloadFromBeginning(task, info, cause); } });
@Override public void run() { task.getListener().downloadFromBreakpoint(task, info); } });
@Override public void run() { task.getListener().connectStart(task, blockIndex, requestHeaderFields); } });
@Override public void run() { task.getListener().fetchStart(task, blockIndex, contentLength); } });
@Override public void run() { task.getListener().taskEnd(task, cause, realCause); } });
@Override public void connectTrialStart(@NonNull final DownloadTask task, @NonNull final Map<String, List<String>> headerFields) { Util.d(TAG, "-----> start trial task(" + task.getId() + ") " + headerFields); if (task.isAutoCallbackToUIThread()) { uiHandler.post(new Runnable() { @Override public void run() { task.getListener().connectTrialStart(task, headerFields); } }); } else { task.getListener().connectTrialStart(task, headerFields); } }
private DownloadTask mockTask() { final DownloadTask mockTask = mock(DownloadTask.class); when(mockTask.getListener()).thenReturn(mock(DownloadListener.class)); when(mockTask.getFile()).thenReturn(new File("/sdcard/abc" + mockTask.hashCode())); return mockTask; }
@Test public void replaceListener() { DownloadTask task = new DownloadTask.Builder("https://jacksgong.com", new File(parentPath, filename)).build(); final DownloadListener listener = mock(DownloadListener.class); task.enqueue(listener); assertThat(task.getListener()).isEqualTo(listener); final DownloadListener another = mock(DownloadListener.class); task.replaceListener(another); assertThat(task.getListener()).isEqualTo(another); }
@Test public void enqueue() { final DownloadTask[] tasks = new DownloadTask[2]; tasks[0] = new DownloadTask.Builder("url1", "path", "filename1").build(); tasks[1] = new DownloadTask.Builder("url2", "path", "filename1").build(); final DownloadListener listener = mock(DownloadListener.class); DownloadTask.enqueue(tasks, listener); assertThat(tasks[0].getListener()).isEqualTo(listener); assertThat(tasks[1].getListener()).isEqualTo(listener); verify(OkDownload.with().downloadDispatcher()).enqueue(eq(tasks)); }
@Test public void fetchProgress_setMinInterval() { final DownloadTask task = spy(new DownloadTask .Builder("https://jacksgong.com", "parentPath", "filename") .setMinIntervalMillisCallbackProcess(1) .build()); final DownloadListener listener = mock(DownloadListener.class); when(task.getListener()).thenReturn(listener); dispatcher.dispatch().fetchProgress(task, 1, 2); assertThat(DownloadTask.TaskHideWrapper.getLastCallbackProcessTs(task)).isNotZero(); } }