private int readAndVerify(int readLengthDesired, ByteBufferAsyncWritableChannel writeChannel, ByteBuffer content)
      throws InterruptedException {
    int bytesRead = 0;
    int chunksRead = 0;
    while (bytesRead < readLengthDesired) {
      ByteBuffer recvdContent = writeChannel.getNextChunk();
      while (recvdContent.hasRemaining()) {
        assertEquals("Unexpected byte", content.get(), recvdContent.get());
        bytesRead++;
      }
      writeChannel.resolveOldestChunk(null);
      chunksRead++;
    }
    return chunksRead;
  }
Reads from the provided {@code writeChannel} and verifies that the bytes received match the original content
provided through {@code content}.
@param readLengthDesired desired length of bytes to read.
@param writeChannel the {@link ByteBufferAsyncWritableChannel} to read from.
@param content the original content that serves as the source of truth.
@return the number of chunks read.
@throws InterruptedException
ambry-rest/src/test/java/com/github/ambry/rest/NettyRequestTest.java