Home / Class/ Http3UnidirectionalStreamInboundHandlerTest Class — netty Architecture

Http3UnidirectionalStreamInboundHandlerTest Class — netty Architecture

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

Entity Profile

Dependency Diagram

graph TD
  25ca3b24_17b0_d7c2_ddbd_1036d0071d78["Http3UnidirectionalStreamInboundHandlerTest"]
  d4bd49c1_04e8_f306_7eb8_462c9f165a30["Http3UnidirectionalStreamInboundHandlerTest.java"]
  25ca3b24_17b0_d7c2_ddbd_1036d0071d78 -->|defined in| d4bd49c1_04e8_f306_7eb8_462c9f165a30
  56d89f3f_d102_9002_53c9_94064eade84d["setup()"]
  25ca3b24_17b0_d7c2_ddbd_1036d0071d78 -->|method| 56d89f3f_d102_9002_53c9_94064eade84d
  0ad0ad07_343a_2b1a_5d46_f539abbc3caf["tearDown()"]
  25ca3b24_17b0_d7c2_ddbd_1036d0071d78 -->|method| 0ad0ad07_343a_2b1a_5d46_f539abbc3caf
  23f62246_ed98_eee2_7f91_05faca509f04["testUnkownStream()"]
  25ca3b24_17b0_d7c2_ddbd_1036d0071d78 -->|method| 23f62246_ed98_eee2_7f91_05faca509f04
  bd49b894_53c0_806b_e8b9_e186d70615c9["testUnknownStreamWithCustomHandler()"]
  25ca3b24_17b0_d7c2_ddbd_1036d0071d78 -->|method| bd49b894_53c0_806b_e8b9_e186d70615c9
  0b8b1912_5637_ceae_7341_bcee2775d1dd["testPushStream()"]
  25ca3b24_17b0_d7c2_ddbd_1036d0071d78 -->|method| 0b8b1912_5637_ceae_7341_bcee2775d1dd
  87cb4ed9_1527_5527_6f8f_cc1a36ab73e8["testPushStreamNoMaxPushIdFrameSent()"]
  25ca3b24_17b0_d7c2_ddbd_1036d0071d78 -->|method| 87cb4ed9_1527_5527_6f8f_cc1a36ab73e8
  6272574f_606a_0075_7214_dd955f20ac1d["testPushStreamMaxPushIdFrameSentWithSmallerId()"]
  25ca3b24_17b0_d7c2_ddbd_1036d0071d78 -->|method| 6272574f_606a_0075_7214_dd955f20ac1d
  aa16368c_db81_9514_0dc1_f7151525e610["testPushStreamMaxPushIdFrameSentWithSameId()"]
  25ca3b24_17b0_d7c2_ddbd_1036d0071d78 -->|method| aa16368c_db81_9514_0dc1_f7151525e610
  91996be4_48d6_837c_e776_be28e2388c80["testControlStream()"]
  25ca3b24_17b0_d7c2_ddbd_1036d0071d78 -->|method| 91996be4_48d6_837c_e776_be28e2388c80
  37882d9f_249f_3be4_894d_de1361a472a1["testQpackEncoderStream()"]
  25ca3b24_17b0_d7c2_ddbd_1036d0071d78 -->|method| 37882d9f_249f_3be4_894d_de1361a472a1
  09bd5794_4144_fe2f_2745_0023378c05ba["testQpackDecoderStream()"]
  25ca3b24_17b0_d7c2_ddbd_1036d0071d78 -->|method| 09bd5794_4144_fe2f_2745_0023378c05ba
  9bb3a719_0678_c8b6_ba9d_662698a1170f["testStreamSetup()"]
  25ca3b24_17b0_d7c2_ddbd_1036d0071d78 -->|method| 9bb3a719_0678_c8b6_ba9d_662698a1170f
  025a8430_c4df_b9ca_7c08_4c2566f638fb["EmbeddedChannel()"]
  25ca3b24_17b0_d7c2_ddbd_1036d0071d78 -->|method| 025a8430_c4df_b9ca_7c08_4c2566f638fb

Relationship Graph

Source Code

codec-http3/src/test/java/io/netty/handler/codec/http3/Http3UnidirectionalStreamInboundHandlerTest.java lines 45–287

public class Http3UnidirectionalStreamInboundHandlerTest {

    private EmbeddedQuicChannel parent;
    private Http3ControlStreamOutboundHandler remoteControlStreamHandler;
    private Http3ControlStreamInboundHandler localControlStreamHandler;
    private QpackEncoder qpackEncoder;
    private QpackDecoder qpackDecoder;

    private void setup(boolean server) {
        parent = new EmbeddedQuicChannel(server);
        qpackEncoder = new QpackEncoder();
        qpackDecoder = new QpackDecoder(0, 0);
        localControlStreamHandler = new Http3ControlStreamInboundHandler(server, null, qpackEncoder,
                remoteControlStreamHandler);
        remoteControlStreamHandler = new Http3ControlStreamOutboundHandler(server, new DefaultHttp3SettingsFrame(),
                new CodecHandler());
    }

    @AfterEach
    public void tearDown() {
        assertFalse(parent.finish());
    }

    @ParameterizedTest(name = "{index}: server = {0}")
    @ValueSource(booleans = {false, true})
    public void testUnkownStream(boolean server) throws Exception {
        setup(server);
        EmbeddedChannel channel = newChannel(server);
        ByteBuf buffer = Unpooled.buffer(8);
        Http3CodecUtils.writeVariableLengthInteger(buffer, 0x06);
        assertFalse(channel.writeInbound(buffer));
        assertEquals(0, buffer.refCnt());
        assertNull(channel.pipeline().context(Http3UnidirectionalStreamInboundHandler.class));
        assertTrue(channel.isActive());

        // Write some buffer to the stream. This should be just released.
        ByteBuf someBuffer = Unpooled.buffer();
        assertFalse(channel.writeInbound(someBuffer));
        assertEquals(0, someBuffer.refCnt());
        assertFalse(channel.finish());
    }

    @ParameterizedTest(name = "{index}: server = {0}")
    @ValueSource(booleans = {false, true})
    public void testUnknownStreamWithCustomHandler(boolean server) throws Exception {
        setup(server);
        long streamType = 0x06;
        EmbeddedChannel channel = newChannel(server, v -> {
            assertEquals(streamType, v);
            // Add an handler that will just forward the received bytes.
            return new ChannelInboundHandlerAdapter();
        });
        ByteBuf buffer = Unpooled.buffer(8);
        Http3CodecUtils.writeVariableLengthInteger(buffer, streamType);
        assertFalse(channel.writeInbound(buffer));
        assertEquals(0, buffer.refCnt());
        assertNull(channel.pipeline().context(Http3UnidirectionalStreamInboundHandler.class));
        assertTrue(channel.isActive());

        // Write some buffer to the stream. This should be just released.
        ByteBuf someBuffer = Unpooled.buffer().writeLong(9);
        assertTrue(channel.writeInbound(someBuffer.retainedDuplicate()));
        assertTrue(channel.finish());

        Http3TestUtils.assertBufferEquals(someBuffer, channel.readInbound());
        assertNull(channel.readInbound());
    }

    @ParameterizedTest(name = "{index}: server = {0}")
    @ValueSource(booleans = {false, true})
    public void testPushStream(boolean server) throws Exception {
        setup(server);
        EmbeddedChannel channel = newChannel(server);
        ByteBuf buffer = Unpooled.buffer(8);
        Http3CodecUtils.writeVariableLengthInteger(buffer, HTTP3_PUSH_STREAM_TYPE);
        Http3CodecUtils.writeVariableLengthInteger(buffer, 2);
        assertFalse(channel.writeInbound(buffer));
        assertEquals(0, buffer.refCnt());
        if (server) {
            Http3TestUtils.verifyClose(Http3ErrorCode.H3_STREAM_CREATION_ERROR, (EmbeddedQuicChannel) channel.parent());
        } else {

Frequently Asked Questions

What is the Http3UnidirectionalStreamInboundHandlerTest class?
Http3UnidirectionalStreamInboundHandlerTest is a class in the netty codebase, defined in codec-http3/src/test/java/io/netty/handler/codec/http3/Http3UnidirectionalStreamInboundHandlerTest.java.
Where is Http3UnidirectionalStreamInboundHandlerTest defined?
Http3UnidirectionalStreamInboundHandlerTest is defined in codec-http3/src/test/java/io/netty/handler/codec/http3/Http3UnidirectionalStreamInboundHandlerTest.java at line 45.

Analyze Your Own Codebase

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

Try Supermodel Free