private List<ByteBuffer> splitContent(byte[] in, int numParts) {
    assertTrue("This function works only when length of input is exactly divisible by number of parts required",
        in.length % numParts == 0);
    List<ByteBuffer> contents = new ArrayList<>();
    int individualPartSize = in.length / numParts;
    for (int addedContentCount = 0; addedContentCount < numParts; addedContentCount++) {
      contents.add(ByteBuffer.wrap(in, addedContentCount * individualPartSize, individualPartSize));
    }
    return contents;
  }
Splits {@code in} into {@code numParts} {@link ByteBuffer} instances. The ByteBuffer instances wrap {@code in}.
Assumption is that the length of in is perfectly divisible by {@code numParts}.
@param in the byte array to split.
@param numParts the number of parts to split {@code in} into.
@return a list of {@link ByteBuffer} instances of size {@code numParts} that share the content of {@code in} (in
order).
ambry-commons/src/test/java/com/github/ambry/commons/ReadableStreamChannelInputStreamTest.java