@Override
  protected ByteBuf newBuffer(int length) {
    buffers = new ArrayList<ByteBuf>();
    for (int i = 0; i < length + 45; i += 45) {
      buffers.add(EMPTY_BUFFER);
      buffers.add(wrappedBuffer(new byte[1]));
      buffers.add(EMPTY_BUFFER);
      buffers.add(wrappedBuffer(new byte[2]));
      buffers.add(EMPTY_BUFFER);
      buffers.add(wrappedBuffer(new byte[3]));
      buffers.add(EMPTY_BUFFER);
      buffers.add(wrappedBuffer(new byte[4]));
      buffers.add(EMPTY_BUFFER);
      buffers.add(wrappedBuffer(new byte[5]));
      buffers.add(EMPTY_BUFFER);
      buffers.add(wrappedBuffer(new byte[6]));
      buffers.add(EMPTY_BUFFER);
      buffers.add(wrappedBuffer(new byte[7]));
      buffers.add(EMPTY_BUFFER);
      buffers.add(wrappedBuffer(new byte[8]));
      buffers.add(EMPTY_BUFFER);
      buffers.add(wrappedBuffer(new byte[9]));
      buffers.add(EMPTY_BUFFER);
    }

    buffer =
        Unpooled.wrappedBuffer(Integer.MAX_VALUE, buffers.toArray(new ByteBuf[buffers.size()]))
            .order(order);

    // Truncate to the requested capacity.
    buffer.capacity(length);

    assertEquals(length, buffer.capacity());
    assertEquals(length, buffer.readableBytes());
    assertFalse(buffer.isWritable());
    buffer.writerIndex(0);
    return buffer;
  }
  /** Tests the "getBufferFor" method */
  @Test
  public void testComponentAtOffset() {
    CompositeByteBuf buf =
        (CompositeByteBuf)
            wrappedBuffer(new byte[] {1, 2, 3, 4, 5}, new byte[] {4, 5, 6, 7, 8, 9, 26});

    // Ensure that a random place will be fine
    assertEquals(5, buf.componentAtOffset(2).capacity());

    // Loop through each byte

    byte index = 0;

    while (index < buf.capacity()) {
      ByteBuf _buf = buf.componentAtOffset(index++);
      assertNotNull(_buf);
      assertTrue(_buf.capacity() > 0);
      assertNotNull(_buf.getByte(0));
      assertNotNull(_buf.getByte(_buf.readableBytes() - 1));
    }
  }