### Question:
StatusUtil { public static boolean isCompleted(@NonNull DownloadTask task) { return isCompletedOrUnknown(task) == Status.COMPLETED; }  static boolean isSameTaskPendingOrRunning(@NonNull DownloadTask task); static Status getStatus(@NonNull DownloadTask task); static Status getStatus(@NonNull String url, @NonNull String parentPath,
                                   @Nullable String filename); static boolean isCompleted(@NonNull DownloadTask task); static Status isCompletedOrUnknown(@NonNull DownloadTask task); static boolean isCompleted(@NonNull String url, @NonNull String parentPath,
                                      @Nullable String filename); @Nullable static BreakpointInfo getCurrentInfo(@NonNull String url,
                                                          @NonNull String parentPath,
                                                          @Nullable String filename); @Nullable static BreakpointInfo getCurrentInfo(@NonNull DownloadTask task);  }### Answer:
@Test public void isCompleted() throws IOException { assertThat(file.exists()).isFalse(); boolean isCompleted = StatusUtil .isCompleted(url, file.getParentFile().getPath(), file.getName()); assertThat(isCompleted).isFalse(); file.getParentFile().mkdirs(); file.createNewFile(); isCompleted = StatusUtil .isCompleted(url, file.getParentFile().getPath(), file.getName()); assertThat(isCompleted).isTrue(); final BreakpointStore store = OkDownload.with().breakpointStore(); doReturn(mock(BreakpointInfo.class)).when(store).get(anyInt()); isCompleted = StatusUtil .isCompleted(url, file.getParentFile().getPath(), file.getName()); assertThat(isCompleted).isFalse(); }