### Question:
DownloadSerialQueue extends DownloadListener2 implements Runnable { public int getWorkingTaskId() { return runningTask != null ? runningTask.getId() : ID_INVALID; } DownloadSerialQueue();   DownloadSerialQueue(DownloadListener listener, ArrayList<DownloadTask> taskList);  DownloadSerialQueue(DownloadListener listener); void setListener(DownloadListener listener); synchronized void enqueue(DownloadTask task); synchronized void pause(); synchronized void resume(); int getWorkingTaskId(); int getWaitingTaskCount(); synchronized DownloadTask[] shutdown(); @Override void run(); @Override void taskStart(@NonNull DownloadTask task); @Override synchronized void taskEnd(@NonNull DownloadTask task, @NonNull EndCause cause,
                                     @Nullable Exception realCause);  }### Answer:
@Test public void getWorkingTaskId() { assertThat(serialQueue.getWorkingTaskId()).isEqualTo(DownloadSerialQueue.ID_INVALID); when(task1.getId()).thenReturn(1); serialQueue.runningTask = task1; assertThat(serialQueue.getWorkingTaskId()).isEqualTo(1); }