Home / Class/ QuicStreamChannelCreationTest Class — netty Architecture

QuicStreamChannelCreationTest Class — netty Architecture

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

Entity Profile

Dependency Diagram

graph TD
  c27c449e_05b7_6104_9f32_ebabb5202beb["QuicStreamChannelCreationTest"]
  4edffa6e_957b_59ff_6f0c_094dcdd3c48e["QuicStreamChannelCreationTest.java"]
  c27c449e_05b7_6104_9f32_ebabb5202beb -->|defined in| 4edffa6e_957b_59ff_6f0c_094dcdd3c48e
  23393a02_5ddb_990b_da32_b91b6964812e["testCreateStream()"]
  c27c449e_05b7_6104_9f32_ebabb5202beb -->|method| 23393a02_5ddb_990b_da32_b91b6964812e
  ef305828_94d3_348b_b022_65ae5f123fc3["testCreateStreamViaBootstrap()"]
  c27c449e_05b7_6104_9f32_ebabb5202beb -->|method| ef305828_94d3_348b_b022_65ae5f123fc3
  af7f2278_621b_79cf_a6ec_07f9a064ac11["assertQuicStreamChannel()"]
  c27c449e_05b7_6104_9f32_ebabb5202beb -->|method| af7f2278_621b_79cf_a6ec_07f9a064ac11

Relationship Graph

Source Code

codec-native-quic/src/test/java/io/netty/handler/codec/quic/QuicStreamChannelCreationTest.java lines 33–133

public class QuicStreamChannelCreationTest extends AbstractQuicTest {

    private static final AttributeKey<String> ATTRIBUTE_KEY = AttributeKey.newInstance("testKey");
    private static final String ATTRIBUTE_VALUE = "Test";

    @ParameterizedTest
    @MethodSource("newSslTaskExecutors")
    public void testCreateStream(Executor executor) throws Throwable {
        QuicChannelValidationHandler serverHandler = new QuicChannelValidationHandler();
        Channel server = QuicTestUtils.newServer(executor, serverHandler,
                new ChannelInboundHandlerAdapter());
        InetSocketAddress address = (InetSocketAddress) server.localAddress();
        Channel channel = QuicTestUtils.newClient(executor);
        QuicChannelValidationHandler clientHandler = new QuicChannelValidationHandler();

        try {
            QuicChannel quicChannel = QuicTestUtils.newQuicChannelBootstrap(channel)
                    .handler(clientHandler)
                    .streamHandler(new ChannelInboundHandlerAdapter())
                    .remoteAddress(address)
                    .connect()
                    .get();
            CountDownLatch latch = new CountDownLatch(1);
            QuicStreamChannel stream = quicChannel.createStream(QuicStreamType.UNIDIRECTIONAL,
                    new ChannelInboundHandlerAdapter() {
               @Override
               public void channelRegistered(ChannelHandlerContext ctx) {
                   assertQuicStreamChannel((QuicStreamChannel) ctx.channel(),
                           QuicStreamType.UNIDIRECTIONAL, Boolean.TRUE, null);
                   latch.countDown();
               }
            }).sync().get();
            assertQuicStreamChannel(stream, QuicStreamType.UNIDIRECTIONAL, Boolean.TRUE, null);
            latch.await();
            stream.close().sync();
            quicChannel.close().sync();

            serverHandler.assertState();
            clientHandler.assertState();
        } finally {
            server.close().sync();
            // Close the parent Datagram channel as well.
            channel.close().sync();

            shutdown(executor);
        }
    }

    @ParameterizedTest
    @MethodSource("newSslTaskExecutors")
    public void testCreateStreamViaBootstrap(Executor executor) throws Throwable {
        QuicChannelValidationHandler serverHandler = new QuicChannelValidationHandler();
        Channel server = QuicTestUtils.newServer(executor, serverHandler,
                new ChannelInboundHandlerAdapter());
        InetSocketAddress address = (InetSocketAddress) server.localAddress();
        Channel channel = QuicTestUtils.newClient(executor);
        QuicChannelValidationHandler clientHandler = new QuicChannelValidationHandler();

        try {
            QuicChannel quicChannel = QuicTestUtils.newQuicChannelBootstrap(channel)
                    .handler(clientHandler)
                    .streamHandler(new ChannelInboundHandlerAdapter())
                    .remoteAddress(address)
                    .connect()
                    .get();
            CountDownLatch latch = new CountDownLatch(1);
            QuicStreamChannel stream = quicChannel.newStreamBootstrap()
                    .type(QuicStreamType.UNIDIRECTIONAL)
                    .attr(ATTRIBUTE_KEY, ATTRIBUTE_VALUE)
                    .option(ChannelOption.AUTO_READ,  Boolean.FALSE)
                    .handler(new ChannelInboundHandlerAdapter() {
                        @Override
                        public void channelRegistered(ChannelHandlerContext ctx) {
                            assertQuicStreamChannel((QuicStreamChannel) ctx.channel(),
                                    QuicStreamType.UNIDIRECTIONAL, Boolean.FALSE, ATTRIBUTE_VALUE);
                            latch.countDown();
                        }
                    }).create().sync().get();
            assertQuicStreamChannel(stream, QuicStreamType.UNIDIRECTIONAL, Boolean.FALSE, ATTRIBUTE_VALUE);
            latch.await();
            stream.close().sync();

Frequently Asked Questions

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

Analyze Your Own Codebase

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

Try Supermodel Free