Home / Class/ Http2EmptyDataFrameListenerTest Class — netty Architecture

Http2EmptyDataFrameListenerTest Class — netty Architecture

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

Entity Profile

Dependency Diagram

graph TD
  446e4d2f_e8e9_469c_cbb8_17210c5d5706["Http2EmptyDataFrameListenerTest"]
  f8696704_8ef1_20c1_8cdc_790013086ddb["Http2EmptyDataFrameListenerTest.java"]
  446e4d2f_e8e9_469c_cbb8_17210c5d5706 -->|defined in| f8696704_8ef1_20c1_8cdc_790013086ddb
  7fdfc535_c34b_1dce_1885_86288fa459b2["setUp()"]
  446e4d2f_e8e9_469c_cbb8_17210c5d5706 -->|method| 7fdfc535_c34b_1dce_1885_86288fa459b2
  a4bc33cd_9432_46ef_c51c_f0e9f5a3bdb0["testEmptyDataFrames()"]
  446e4d2f_e8e9_469c_cbb8_17210c5d5706 -->|method| a4bc33cd_9432_46ef_c51c_f0e9f5a3bdb0
  7c9af32e_6976_ed3c_4ff4_0d4122a17945["testEmptyDataFramesWithNonEmptyInBetween()"]
  446e4d2f_e8e9_469c_cbb8_17210c5d5706 -->|method| 7c9af32e_6976_ed3c_4ff4_0d4122a17945
  5094c4ef_9cc8_08aa_f438_6c77773e8192["testEmptyDataFramesWithEndOfStreamInBetween()"]
  446e4d2f_e8e9_469c_cbb8_17210c5d5706 -->|method| 5094c4ef_9cc8_08aa_f438_6c77773e8192
  c66ad444_7552_3a2a_67aa_b4da2f200733["testEmptyDataFramesWithHeaderFrameInBetween()"]
  446e4d2f_e8e9_469c_cbb8_17210c5d5706 -->|method| c66ad444_7552_3a2a_67aa_b4da2f200733
  01977ed5_b152_99ca_f453_afb28cbdeb93["testEmptyDataFramesWithHeaderFrameInBetween2()"]
  446e4d2f_e8e9_469c_cbb8_17210c5d5706 -->|method| 01977ed5_b152_99ca_f453_afb28cbdeb93

Relationship Graph

Source Code

codec-http2/src/test/java/io/netty/handler/codec/http2/Http2EmptyDataFrameListenerTest.java lines 33–144

public class Http2EmptyDataFrameListenerTest {

    @Mock
    private Http2FrameListener frameListener;
    @Mock
    private ChannelHandlerContext ctx;

    @Mock
    private ByteBuf nonEmpty;

    private Http2EmptyDataFrameListener listener;

    @BeforeEach
    public void setUp() {
        initMocks(this);
        when(nonEmpty.isReadable()).thenReturn(true);
        listener = new Http2EmptyDataFrameListener(frameListener, 2);
    }

    @Test
    public void testEmptyDataFrames() throws Http2Exception {
        listener.onDataRead(ctx, 1, Unpooled.EMPTY_BUFFER, 0, false);
        listener.onDataRead(ctx, 1, Unpooled.EMPTY_BUFFER, 0, false);

        assertThrows(Http2Exception.class, new Executable() {
            @Override
            public void execute() throws Throwable {
                listener.onDataRead(ctx, 1, Unpooled.EMPTY_BUFFER, 0, false);
            }
        });
        verify(frameListener, times(2)).onDataRead(eq(ctx), eq(1), any(ByteBuf.class), eq(0), eq(false));
    }

    @Test
    public void testEmptyDataFramesWithNonEmptyInBetween() throws Http2Exception {
        final Http2EmptyDataFrameListener listener = new Http2EmptyDataFrameListener(frameListener, 2);
        listener.onDataRead(ctx, 1, Unpooled.EMPTY_BUFFER, 0, false);
        listener.onDataRead(ctx, 1, nonEmpty, 0, false);

        listener.onDataRead(ctx, 1, Unpooled.EMPTY_BUFFER, 0, false);
        listener.onDataRead(ctx, 1, Unpooled.EMPTY_BUFFER, 0, false);

        assertThrows(Http2Exception.class, new Executable() {
            @Override
            public void execute() throws Throwable {
                listener.onDataRead(ctx, 1, Unpooled.EMPTY_BUFFER, 0, false);
            }
        });
        verify(frameListener, times(4)).onDataRead(eq(ctx), eq(1), any(ByteBuf.class), eq(0), eq(false));
    }

    @Test
    public void testEmptyDataFramesWithEndOfStreamInBetween() throws Http2Exception {
        final Http2EmptyDataFrameListener listener = new Http2EmptyDataFrameListener(frameListener, 2);
        listener.onDataRead(ctx, 1, Unpooled.EMPTY_BUFFER, 0, false);
        listener.onDataRead(ctx, 1, Unpooled.EMPTY_BUFFER, 0, true);

        listener.onDataRead(ctx, 1, Unpooled.EMPTY_BUFFER, 0, false);
        listener.onDataRead(ctx, 1, Unpooled.EMPTY_BUFFER, 0, false);

        assertThrows(Http2Exception.class, new Executable() {
            @Override
            public void execute() throws Throwable {
                listener.onDataRead(ctx, 1, Unpooled.EMPTY_BUFFER, 0, false);
            }
        });

        verify(frameListener, times(1)).onDataRead(eq(ctx), eq(1), any(ByteBuf.class), eq(0), eq(true));
        verify(frameListener, times(3)).onDataRead(eq(ctx), eq(1), any(ByteBuf.class), eq(0), eq(false));
    }

    @Test
    public void testEmptyDataFramesWithHeaderFrameInBetween() throws Http2Exception {
        final Http2EmptyDataFrameListener listener = new Http2EmptyDataFrameListener(frameListener, 2);
        listener.onDataRead(ctx, 1, Unpooled.EMPTY_BUFFER, 0, false);
        listener.onHeadersRead(ctx, 1, EmptyHttp2Headers.INSTANCE, 0, true);

        listener.onDataRead(ctx, 1, Unpooled.EMPTY_BUFFER, 0, false);
        listener.onDataRead(ctx, 1, Unpooled.EMPTY_BUFFER, 0, false);

        assertThrows(Http2Exception.class, new Executable() {

Frequently Asked Questions

What is the Http2EmptyDataFrameListenerTest class?
Http2EmptyDataFrameListenerTest is a class in the netty codebase, defined in codec-http2/src/test/java/io/netty/handler/codec/http2/Http2EmptyDataFrameListenerTest.java.
Where is Http2EmptyDataFrameListenerTest defined?
Http2EmptyDataFrameListenerTest is defined in codec-http2/src/test/java/io/netty/handler/codec/http2/Http2EmptyDataFrameListenerTest.java at line 33.

Analyze Your Own Codebase

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

Try Supermodel Free