Home / Class/ ChannelOutboundBufferTest Class — netty Architecture

ChannelOutboundBufferTest Class — netty Architecture

Architecture documentation for the ChannelOutboundBufferTest class in ChannelOutboundBufferTest.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  06eb8f18_da0c_40bf_fb14_47e2c94a6923["ChannelOutboundBufferTest"]
  9a9e5fb9_cd30_59fd_fdbc_d1237e29a437["ChannelOutboundBufferTest.java"]
  06eb8f18_da0c_40bf_fb14_47e2c94a6923 -->|defined in| 9a9e5fb9_cd30_59fd_fdbc_d1237e29a437
  ad1ebc82_4822_8c4e_6770_92b5880bc784["testEmptyNioBuffers()"]
  06eb8f18_da0c_40bf_fb14_47e2c94a6923 -->|method| ad1ebc82_4822_8c4e_6770_92b5880bc784
  9ec9e4c1_de8e_8c05_3ca4_80d9dab213f3["testNioBuffersCancelledRemoveBytes()"]
  06eb8f18_da0c_40bf_fb14_47e2c94a6923 -->|method| 9ec9e4c1_de8e_8c05_3ca4_80d9dab213f3
  5699471c_ab8c_b3ec_0370_4785c4d0b703["testNioBuffersSingleBacked()"]
  06eb8f18_da0c_40bf_fb14_47e2c94a6923 -->|method| 5699471c_ab8c_b3ec_0370_4785c4d0b703
  5e4cd308_0493_7e2c_3914_7cde3fa79eb3["testNioBuffersExpand()"]
  06eb8f18_da0c_40bf_fb14_47e2c94a6923 -->|method| 5e4cd308_0493_7e2c_3914_7cde3fa79eb3
  41beef69_9522_098f_455b_e61cce53289e["testNioBuffersExpand2()"]
  06eb8f18_da0c_40bf_fb14_47e2c94a6923 -->|method| 41beef69_9522_098f_455b_e61cce53289e
  f9fc34b9_ba65_4613_883d_79c3f58f1920["testNioBuffersMaxCount()"]
  06eb8f18_da0c_40bf_fb14_47e2c94a6923 -->|method| f9fc34b9_ba65_4613_883d_79c3f58f1920
  4bdec6f8_3c15_b5ee_d1a3_716048f52c5a["release()"]
  06eb8f18_da0c_40bf_fb14_47e2c94a6923 -->|method| 4bdec6f8_3c15_b5ee_d1a3_716048f52c5a
  41148ba8_7483_855f_9bf5_d2264355ddc1["testWritability()"]
  06eb8f18_da0c_40bf_fb14_47e2c94a6923 -->|method| 41148ba8_7483_855f_9bf5_d2264355ddc1
  734d61ff_70b3_1069_3892_4d534531ae0a["testUserDefinedWritability()"]
  06eb8f18_da0c_40bf_fb14_47e2c94a6923 -->|method| 734d61ff_70b3_1069_3892_4d534531ae0a
  2e4cc85a_2e25_69c7_5857_a5a0ac6675a2["testUserDefinedWritability2()"]
  06eb8f18_da0c_40bf_fb14_47e2c94a6923 -->|method| 2e4cc85a_2e25_69c7_5857_a5a0ac6675a2
  40218d07_10f7_38ca_e9ed_60cc3c840d52["testMixedWritability()"]
  06eb8f18_da0c_40bf_fb14_47e2c94a6923 -->|method| 40218d07_10f7_38ca_e9ed_60cc3c840d52
  e8421144_91d1_9ad4_6af2_9edbae1ce8ae["testWriteTaskRejected()"]
  06eb8f18_da0c_40bf_fb14_47e2c94a6923 -->|method| e8421144_91d1_9ad4_6af2_9edbae1ce8ae
  00d35efd_91f9_9891_6cdb_8a43498309e6["safeClose()"]
  06eb8f18_da0c_40bf_fb14_47e2c94a6923 -->|method| 00d35efd_91f9_9891_6cdb_8a43498309e6

Relationship Graph

Source Code

transport/src/test/java/io/netty/channel/ChannelOutboundBufferTest.java lines 42–538

public class ChannelOutboundBufferTest {

    @Test
    public void testEmptyNioBuffers() {
        TestChannel channel = new TestChannel();
        ChannelOutboundBuffer buffer = new ChannelOutboundBuffer(channel);
        assertEquals(0, buffer.nioBufferCount());
        ByteBuffer[] buffers = buffer.nioBuffers();
        assertNotNull(buffers);
        for (ByteBuffer b: buffers) {
            assertNull(b);
        }
        assertEquals(0, buffer.nioBufferCount());
        release(buffer);
    }

    @Test
    public void testNioBuffersCancelledRemoveBytes() {
        TestChannel channel = new TestChannel();
        ChannelOutboundBuffer buffer = new ChannelOutboundBuffer(channel);
        ByteBuf b1 = wrappedBuffer(new byte[] { 0 });
        int r1 = b1.readableBytes();
        ChannelPromise p1 = channel.newPromise();
        buffer.addMessage(b1, r1, p1);

        ByteBuf b2 = wrappedBuffer(new byte[] { 0, 1 });
        int r2 = b2.readableBytes();
        ChannelPromise p2 = channel.newPromise();
        buffer.addMessage(b2, r2, p2);
        p2.cancel(false);

        ByteBuf b3 = wrappedBuffer(new byte[] { 0 });
        int r3 = b3.readableBytes();
        ChannelPromise p3 = channel.newPromise();
        buffer.addMessage(b3, r3, p3);
        buffer.addFlush();

        ByteBuffer[] buffers = buffer.nioBuffers();
        assertEquals(2, buffer.nioBufferCount());
        assertNotNull(buffers);
        assertEquals(r1, buffers[0].remaining());
        assertEquals(r3, buffers[1].remaining());

        buffer.removeBytes(r1 + r3);
        assertEquals(0, b1.refCnt());
        assertEquals(0, b2.refCnt());
        assertEquals(0, b3.refCnt());

        assertTrue(buffer.isEmpty());
        release(buffer);
    }

    @Test
    public void testNioBuffersSingleBacked() {
        TestChannel channel = new TestChannel();

        ChannelOutboundBuffer buffer = new ChannelOutboundBuffer(channel);
        assertEquals(0, buffer.nioBufferCount());

        ByteBuf buf = copiedBuffer("buf1", CharsetUtil.US_ASCII);
        ByteBuffer nioBuf = buf.internalNioBuffer(buf.readerIndex(), buf.readableBytes());
        buffer.addMessage(buf, buf.readableBytes(), channel.voidPromise());
        assertEquals(0, buffer.nioBufferCount(), "Should still be 0 as not flushed yet");
        buffer.addFlush();
        ByteBuffer[] buffers = buffer.nioBuffers();
        assertNotNull(buffers);
        assertEquals(1, buffer.nioBufferCount(), "Should still be 0 as not flushed yet");
        for (int i = 0;  i < buffer.nioBufferCount(); i++) {
            if (i == 0) {
                assertEquals(buffers[i], nioBuf);
            } else {
                assertNull(buffers[i]);
            }
        }
        release(buffer);
    }

    @Test
    public void testNioBuffersExpand() {
        TestChannel channel = new TestChannel();

Frequently Asked Questions

What is the ChannelOutboundBufferTest class?
ChannelOutboundBufferTest is a class in the netty codebase, defined in transport/src/test/java/io/netty/channel/ChannelOutboundBufferTest.java.
Where is ChannelOutboundBufferTest defined?
ChannelOutboundBufferTest is defined in transport/src/test/java/io/netty/channel/ChannelOutboundBufferTest.java at line 42.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free