Home / Function/ testOutboundOperationsViaContext() — netty Function Reference

testOutboundOperationsViaContext() — netty Function Reference

Architecture documentation for the testOutboundOperationsViaContext() function in DefaultChannelPipelineTest.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  54679c12_1c99_aaf4_a2b3_52d78f0ceacb["testOutboundOperationsViaContext()"]
  666d912b_4166_a807_ed10_ba12f328a7b2["DefaultChannelPipelineTest"]
  54679c12_1c99_aaf4_a2b3_52d78f0ceacb -->|defined in| 666d912b_4166_a807_ed10_ba12f328a7b2
  36fce318_f10e_2b70_4def_d189ac0af1ed["execute()"]
  54679c12_1c99_aaf4_a2b3_52d78f0ceacb -->|calls| 36fce318_f10e_2b70_4def_d189ac0af1ed
  3b19c534_4fe7_8524_903c_c95948a07d36["executeOutboundOperations()"]
  54679c12_1c99_aaf4_a2b3_52d78f0ceacb -->|calls| 3b19c534_4fe7_8524_903c_c95948a07d36
  0d676d9a_fafb_b2c0_0186_5827807e29fa["bind()"]
  54679c12_1c99_aaf4_a2b3_52d78f0ceacb -->|calls| 0d676d9a_fafb_b2c0_0186_5827807e29fa
  dff9be27_10d4_45a6_bef6_49b230151fc0["connect()"]
  54679c12_1c99_aaf4_a2b3_52d78f0ceacb -->|calls| dff9be27_10d4_45a6_bef6_49b230151fc0
  76d0323d_6adb_0c4c_dee1_48f5476bd522["close()"]
  54679c12_1c99_aaf4_a2b3_52d78f0ceacb -->|calls| 76d0323d_6adb_0c4c_dee1_48f5476bd522
  52e263a1_74a4_0bf3_c249_8ce56a1b18bd["deregister()"]
  54679c12_1c99_aaf4_a2b3_52d78f0ceacb -->|calls| 52e263a1_74a4_0bf3_c249_8ce56a1b18bd
  d148cce7_a14a_5ca0_7c47_778779e3ba3a["read()"]
  54679c12_1c99_aaf4_a2b3_52d78f0ceacb -->|calls| d148cce7_a14a_5ca0_7c47_778779e3ba3a
  dd33d524_2d67_32bc_4376_f2af65f2f584["flush()"]
  54679c12_1c99_aaf4_a2b3_52d78f0ceacb -->|calls| dd33d524_2d67_32bc_4376_f2af65f2f584
  1bb1c1cc_77dd_d360_5aff_fec13914d331["write()"]
  54679c12_1c99_aaf4_a2b3_52d78f0ceacb -->|calls| 1bb1c1cc_77dd_d360_5aff_fec13914d331
  style 54679c12_1c99_aaf4_a2b3_52d78f0ceacb fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

transport/src/test/java/io/netty/channel/DefaultChannelPipelineTest.java lines 544–612

    @ParameterizedTest
    @ValueSource(booleans = {true, false})
    public void testOutboundOperationsViaContext(boolean inEventLoop) throws Exception {
        ChannelPipeline pipeline = new LocalChannel().pipeline();
        final ChannelHandler handler = new ChannelHandlerAdapter() { };
        pipeline.addLast(handler);
        group.register(pipeline.channel()).syncUninterruptibly();
        final BlockingQueue<String> events = new LinkedBlockingQueue<>();
        pipeline.addFirst(new ChannelOutboundHandlerAdapter() {
            @Override
            public void bind(ChannelHandlerContext ctx, SocketAddress localAddress, ChannelPromise promise) {
                events.add("bind");
                promise.setSuccess();
            }

            @Override
            public void connect(ChannelHandlerContext ctx, SocketAddress remoteAddress, SocketAddress localAddress,
                                ChannelPromise promise)  {
                events.add("connect");
                promise.setSuccess();
            }

            @Override
            public void close(ChannelHandlerContext ctx, ChannelPromise promise) {
                events.add("close");
                promise.setSuccess();
            }

            @Override
            public void deregister(ChannelHandlerContext ctx, ChannelPromise promise)  {
                events.add("deregister");
                promise.setSuccess();
            }

            @Override
            public void read(ChannelHandlerContext ctx)  {
                events.add("read");
            }

            @Override
            public void write(ChannelHandlerContext ctx, Object msg, ChannelPromise promise) {
                events.add("write");
                promise.setSuccess();
            }

            @Override
            public void flush(ChannelHandlerContext ctx) {
                events.add("flush");
                ctx.flush();
            }
        });
        ChannelHandlerContext ctx = pipeline.context(handler);
        if (inEventLoop) {
            pipeline.channel().eventLoop().execute(() -> executeOutboundOperations(ctx));
        } else {
            executeOutboundOperations(ctx);
        }

        assertEquals("bind", events.take());
        assertEquals("connect", events.take());
        assertEquals("close", events.take());
        assertEquals("deregister", events.take());
        assertEquals("read", events.take());
        assertEquals("write", events.take());
        assertEquals("flush", events.take());
        assertTrue(events.isEmpty());
        pipeline.removeFirst();
        pipeline.channel().close().syncUninterruptibly();
    }

Domain

Subdomains

Frequently Asked Questions

What does testOutboundOperationsViaContext() do?
testOutboundOperationsViaContext() is a function in the netty codebase, defined in transport/src/test/java/io/netty/channel/DefaultChannelPipelineTest.java.
Where is testOutboundOperationsViaContext() defined?
testOutboundOperationsViaContext() is defined in transport/src/test/java/io/netty/channel/DefaultChannelPipelineTest.java at line 544.
What does testOutboundOperationsViaContext() call?
testOutboundOperationsViaContext() calls 9 function(s): bind, close, connect, deregister, execute, executeOutboundOperations, flush, read, and 1 more.

Analyze Your Own Codebase

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

Try Supermodel Free