@Test
public void testReleaseInbound() {

    ByteBuf in = Unpooled.buffer();
    ByteBuf out = Unpooled.buffer();
    try {
        EmbeddedChannel channel = new EmbeddedChannel();
        assertTrue(channel.writeInbound(in));
        assertEquals(1, in.refCnt());
        assertTrue(channel.writeOutbound(out));
        assertEquals(1, out.refCnt());
        assertTrue(channel.releaseInbound());
        assertEquals(0, in.refCnt());
        assertEquals(1, out.refCnt());
        assertTrue(channel.finish());
        assertNull(channel.readInbound());
        ByteBuf buffer = channel.readOutbound();
        assertSame(out, buffer);
        buffer.release();
        assertNull(channel.readOutbound());
    } finally {
        release(in, out);
    }
}