### Question:
DownloadChain implements Runnable { public void flushNoCallbackIncreaseBytes() { if (noCallbackIncreaseBytes == 0) return; callbackDispatcher.dispatch().fetchProgress(task, blockIndex, noCallbackIncreaseBytes); noCallbackIncreaseBytes = 0; } private  DownloadChain(int blockIndex, @NonNull DownloadTask task, @NonNull BreakpointInfo info,
                          @NonNull DownloadCache cache, @NonNull DownloadStore store); long getResponseContentLength(); void setResponseContentLength(long responseContentLength); void cancel(); @NonNull DownloadTask getTask(); @NonNull BreakpointInfo getInfo(); int getBlockIndex(); synchronized void setConnection(@NonNull DownloadConnection connection); @NonNull DownloadCache getCache(); void setRedirectLocation(String location); MultiPointOutputStream getOutputStream(); @Nullable synchronized DownloadConnection getConnection(); @NonNull synchronized DownloadConnection getConnectionOrCreate(); void increaseCallbackBytes(long increaseBytes); void flushNoCallbackIncreaseBytes(); void resetConnectForRetry(); synchronized void releaseConnection(); DownloadConnection.Connected processConnect(); long processFetch(); long loopFetch(); @NonNull DownloadStore getDownloadStore(); @Override void run();  }### Answer:
@Test public void flushNoCallbackIncreaseBytes() { chain.increaseCallbackBytes(10L); chain.increaseCallbackBytes(6L); assertThat(chain.noCallbackIncreaseBytes).isEqualTo(16L); chain.flushNoCallbackIncreaseBytes(); verify(OkDownload.with().callbackDispatcher().dispatch()) .fetchProgress(eq(chain.getTask()), eq(0), eq(16L)); assertThat(chain.noCallbackIncreaseBytes).isZero(); }