@Test
public void testWrappedBuffer() {

    ByteBuf buffer = wrappedBuffer(ByteBuffer.allocateDirect(16));
    assertEquals(16, buffer.capacity());
    buffer.release();
    assertEqualsAndRelease(
            wrappedBuffer(new byte[] { 1, 2, 3 }),
            wrappedBuffer(new byte[][] { new byte[] { 1, 2, 3 } }));
    assertEqualsAndRelease(
            wrappedBuffer(new byte[] { 1, 2, 3 }),
            wrappedBuffer(new byte[] { 1 }, new byte[] { 2 }, new byte[] { 3 }));
    assertEqualsAndRelease(wrappedBuffer(new byte[] { 1, 2, 3 }),
            wrappedBuffer(new ByteBuf[] { wrappedBuffer(new byte[] { 1, 2, 3 }) }));
    assertEqualsAndRelease(
            wrappedBuffer(new byte[] { 1, 2, 3 }),
            wrappedBuffer(wrappedBuffer(new byte[] { 1 }),
                    wrappedBuffer(new byte[] { 2 }), wrappedBuffer(new byte[] { 3 })));
    assertEqualsAndRelease(wrappedBuffer(new byte[] { 1, 2, 3 }),
            wrappedBuffer(new ByteBuffer[] { ByteBuffer.wrap(new byte[] { 1, 2, 3 }) }));
    assertEqualsAndRelease(wrappedBuffer(new byte[] { 1, 2, 3 }),
            wrappedBuffer(ByteBuffer.wrap(new byte[] { 1 }),
            ByteBuffer.wrap(new byte[] { 2 }), ByteBuffer.wrap(new byte[] { 3 })));
}