### Question:
FixedCompositeByteBuf extends AbstractReferenceCountedByteBuf { private ByteBuf buffer(int i) { ByteBuf b = buffers[i]; return b instanceof Component ? ((Component) b).buf : b; } FixedCompositeByteBuf(ByteBufAllocator allocator, ByteBuf... buffers); @Override boolean isWritable(); @Override boolean isWritable(int size); @Override ByteBuf discardReadBytes(); @Override ByteBuf setBytes(int index, ByteBuf src, int srcIndex, int length); @Override ByteBuf setBytes(int index, byte[] src, int srcIndex, int length); @Override ByteBuf setBytes(int index, ByteBuffer src); @Override ByteBuf setByte(int index, int value); @Override ByteBuf setShort(int index, int value); @Override ByteBuf setMedium(int index, int value); @Override ByteBuf setInt(int index, int value); @Override ByteBuf setLong(int index, long value); @Override int setBytes(int index, InputStream in, int length); @Override int setBytes(int index, ScatteringByteChannel in, int length); @Override int setBytes(int index, FileChannel in, long position, int length); @Override int capacity(); @Override int maxCapacity(); @Override ByteBuf capacity(int newCapacity); @Override ByteBufAllocator alloc(); @Override ByteOrder order(); @Override ByteBuf unwrap(); @Override boolean isDirect(); @Override byte getByte(int index); @Override ByteBuf getBytes(int index, byte[] dst, int dstIndex, int length); @Override ByteBuf getBytes(int index, ByteBuffer dst); @Override ByteBuf getBytes(int index, ByteBuf dst, int dstIndex, int length); @Override int getBytes(int index, GatheringByteChannel out, int length); @Override int getBytes(int index, FileChannel out, long position, int length); @Override ByteBuf getBytes(int index, OutputStream out, int length); @Override ByteBuf copy(int index, int length); @Override int nioBufferCount(); @Override ByteBuffer nioBuffer(int index, int length); @Override ByteBuffer internalNioBuffer(int index, int length); @Override ByteBuffer[] nioBuffers(int index, int length); @Override boolean hasArray(); @Override byte[] array(); @Override int arrayOffset(); @Override boolean hasMemoryAddress(); @Override long memoryAddress(); @Override String toString();  }### Answer:
@Test public void testGatheringWritesHeap() throws Exception { testGatheringWrites(buffer(), buffer()); }
@Test public void testGatheringWritesMixes() throws Exception { testGatheringWrites(buffer(), directBuffer()); }
@Test public void testGatheringWritesPartialHeap() throws Exception { testGatheringWritesPartial(buffer(), buffer()); }
@Test public void testGatheringWritesPartialMixes() throws Exception { testGatheringWritesPartial(buffer(), directBuffer()); }
@Test public void testGatheringWritesSingleHeap() throws Exception { testGatheringWritesSingleBuf(buffer()); }