Home / Class/ AbtractHttp3ConnectionHandlerTest Class — netty Architecture

AbtractHttp3ConnectionHandlerTest Class — netty Architecture

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

Entity Profile

Dependency Diagram

graph TD
  51f4cb69_fb8b_eaa4_1baf_a1ec8d8f48e9["AbtractHttp3ConnectionHandlerTest"]
  70914cf5_2413_8255_35ae_d6ddd0dfdd87["AbtractHttp3ConnectionHandlerTest.java"]
  51f4cb69_fb8b_eaa4_1baf_a1ec8d8f48e9 -->|defined in| 70914cf5_2413_8255_35ae_d6ddd0dfdd87
  f2880707_e4ad_c179_ec5b_40119332af21["Http3ConnectionHandler()"]
  51f4cb69_fb8b_eaa4_1baf_a1ec8d8f48e9 -->|method| f2880707_e4ad_c179_ec5b_40119332af21
  7713add0_ed41_63b5_630f_17df78e94904["assertBidirectionalStreamHandled()"]
  51f4cb69_fb8b_eaa4_1baf_a1ec8d8f48e9 -->|method| 7713add0_ed41_63b5_630f_17df78e94904
  c83cbd9e_cdb2_f008_50d8_2f958b6a4dbb["AbtractHttp3ConnectionHandlerTest()"]
  51f4cb69_fb8b_eaa4_1baf_a1ec8d8f48e9 -->|method| c83cbd9e_cdb2_f008_50d8_2f958b6a4dbb
  9cf381b6_9651_d297_8052_dc22fb57ef49["testOpenLocalControlStream()"]
  51f4cb69_fb8b_eaa4_1baf_a1ec8d8f48e9 -->|method| 9cf381b6_9651_d297_8052_dc22fb57ef49
  2020fbf0_2f34_16b3_4fbb_fea0d24fee00["testBidirectionalStream()"]
  51f4cb69_fb8b_eaa4_1baf_a1ec8d8f48e9 -->|method| 2020fbf0_2f34_16b3_4fbb_fea0d24fee00
  f159b57a_a83f_6808_b666_bbb34c6de066["testUnidirectionalStream()"]
  51f4cb69_fb8b_eaa4_1baf_a1ec8d8f48e9 -->|method| f159b57a_a83f_6808_b666_bbb34c6de066

Relationship Graph

Source Code

codec-http3/src/test/java/io/netty/handler/codec/http3/AbtractHttp3ConnectionHandlerTest.java lines 27–113

public abstract class AbtractHttp3ConnectionHandlerTest {

    private final boolean server;

    protected abstract Http3ConnectionHandler newConnectionHandler();

    protected abstract void assertBidirectionalStreamHandled(EmbeddedQuicChannel channel,
                                                             QuicStreamChannel streamChannel);

    public AbtractHttp3ConnectionHandlerTest(boolean server) {
        this.server = server;
    }

    @Test
    public void testOpenLocalControlStream() throws Exception {
        EmbeddedQuicChannel quicChannel = new EmbeddedQuicChannel(server, new ChannelDuplexHandler());
        ChannelHandlerContext ctx = quicChannel.pipeline().firstContext();

        Http3ConnectionHandler handler = newConnectionHandler();
        handler.handlerAdded(ctx);
        handler.channelRegistered(ctx);
        handler.channelActive(ctx);

        final EmbeddedQuicStreamChannel localControlStream = quicChannel.localControlStream();
        assertNotNull(localControlStream);

        assertNotNull(Http3.getLocalControlStream(quicChannel));

        handler.channelInactive(ctx);
        handler.channelUnregistered(ctx);
        handler.handlerRemoved(ctx);

        assertTrue(localControlStream.finishAndReleaseAll());
    }

    @Test
    public void testBidirectionalStream() throws Exception {
        EmbeddedQuicChannel quicChannel = new EmbeddedQuicChannel(server, new ChannelDuplexHandler());
        final EmbeddedQuicStreamChannel bidirectionalStream =
                (EmbeddedQuicStreamChannel) quicChannel.createStream(QuicStreamType.BIDIRECTIONAL,
                        new ChannelDuplexHandler()).get();
        ChannelHandlerContext ctx = quicChannel.pipeline().firstContext();

        Http3ConnectionHandler handler = newConnectionHandler();
        handler.handlerAdded(ctx);
        handler.channelRegistered(ctx);
        handler.channelActive(ctx);

        final EmbeddedQuicStreamChannel localControlStream = quicChannel.localControlStream();
        assertNotNull(localControlStream);

        handler.channelRead(ctx, bidirectionalStream);

        assertBidirectionalStreamHandled(quicChannel, bidirectionalStream);
        handler.channelInactive(ctx);
        handler.channelUnregistered(ctx);
        handler.handlerRemoved(ctx);

        assertTrue(localControlStream.finishAndReleaseAll());
    }

    @Test
    public void testUnidirectionalStream() throws Exception {
        EmbeddedQuicChannel quicChannel = new EmbeddedQuicChannel(server, new ChannelDuplexHandler());
        final QuicStreamChannel unidirectionalStream =
                quicChannel.createStream(QuicStreamType.UNIDIRECTIONAL, new ChannelDuplexHandler()).get();
        ChannelHandlerContext ctx = quicChannel.pipeline().firstContext();

        Http3ConnectionHandler handler = newConnectionHandler();
        handler.handlerAdded(ctx);
        handler.channelRegistered(ctx);
        handler.channelActive(ctx);

        final EmbeddedQuicStreamChannel localControlStream = quicChannel.localControlStream();
        assertNotNull(localControlStream);

        handler.channelRead(ctx, unidirectionalStream);

        assertNotNull(unidirectionalStream.pipeline().get(Http3UnidirectionalStreamInboundHandler.class));

        handler.channelInactive(ctx);

Frequently Asked Questions

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

Analyze Your Own Codebase

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

Try Supermodel Free