### Question:
CopySession implements Session { void sendNextRpc() { this.lock.lock(); try { this.timer = null; final long offset = this.requestBuilder.getOffset() + this.requestBuilder.getCount(); final long maxCount = this.destBuf == null ? this.raftOptions.getMaxByteCountPerRpc() : Integer.MAX_VALUE; this.requestBuilder.setOffset(offset).setCount(maxCount).setReadPartly(true); if (this.finished) { return; } long newMaxCount = maxCount; if (this.snapshotThrottle != null) { newMaxCount = this.snapshotThrottle.throttledByThroughput(maxCount); if (newMaxCount == 0) { this.requestBuilder.setCount(0); this.timer = this.timerManager.schedule(this::onTimer, this.copyOptions.getRetryIntervalMs(), TimeUnit.MILLISECONDS); return; } } this.requestBuilder.setCount(newMaxCount); final RpcRequests.GetFileRequest request = this.requestBuilder.build(); LOG.debug("Send get file request {} to peer {}", request, this.endpoint); this.rpcCall = this.rpcService.getFile(this.endpoint, request, this.copyOptions.getTimeoutMs(), this.done); } finally { this.lock.unlock(); } } CopySession(final RaftClientService rpcService, final Scheduler timerManager,
                       final SnapshotThrottle snapshotThrottle, final RaftOptions raftOptions,
                       final GetFileRequest.Builder rb, final Endpoint ep); void setDestPath(final String destPath); @Override void close(); void setDestBuf(final ByteBufferCollector bufRef); void setCopyOptions(final CopyOptions copyOptions); void setOutputStream(final OutputStream out); @Override void cancel(); @Override void join(); @Override Status status();  }### Answer:
@Test public void testSendNextRpc() { final int maxCount = this.raftOpts.getMaxByteCountPerRpc(); sendNextRpc(maxCount); }