Home / Class/ DefaultChannelPipelineTest Class — netty Architecture

DefaultChannelPipelineTest Class — netty Architecture

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

Entity Profile

Dependency Diagram

graph TD
  666d912b_4166_a807_ed10_ba12f328a7b2["DefaultChannelPipelineTest"]
  ded22145_bbcf_15a1_69b7_30cac8d4be02["DefaultChannelPipelineTest.java"]
  666d912b_4166_a807_ed10_ba12f328a7b2 -->|defined in| ded22145_bbcf_15a1_69b7_30cac8d4be02
  06655860_6345_cf58_2b97_fcee7aa61dbf["beforeClass()"]
  666d912b_4166_a807_ed10_ba12f328a7b2 -->|method| 06655860_6345_cf58_2b97_fcee7aa61dbf
  56708d38_36b4_a395_0bc8_9a23fd2a6cfc["afterClass()"]
  666d912b_4166_a807_ed10_ba12f328a7b2 -->|method| 56708d38_36b4_a395_0bc8_9a23fd2a6cfc
  1d577730_98cf_e645_a0bd_8e177a3273f3["setUp()"]
  666d912b_4166_a807_ed10_ba12f328a7b2 -->|method| 1d577730_98cf_e645_a0bd_8e177a3273f3
  e3d0397a_c512_8300_661b_5e641ff5bc13["tearDown()"]
  666d912b_4166_a807_ed10_ba12f328a7b2 -->|method| e3d0397a_c512_8300_661b_5e641ff5bc13
  08e8fcf4_2ac6_067a_5b74_1b1417fab029["testFreeCalled()"]
  666d912b_4166_a807_ed10_ba12f328a7b2 -->|method| 08e8fcf4_2ac6_067a_5b74_1b1417fab029
  9112dc96_9124_3875_f460_a348cd9d96ff["testRemoveChannelHandler()"]
  666d912b_4166_a807_ed10_ba12f328a7b2 -->|method| 9112dc96_9124_3875_f460_a348cd9d96ff
  a07544b4_e756_9c78_4f94_9e5e4b00e816["testRemoveIfExists()"]
  666d912b_4166_a807_ed10_ba12f328a7b2 -->|method| a07544b4_e756_9c78_4f94_9e5e4b00e816
  41051469_aa63_66f5_9615_120713db700f["testRemoveIfExistsDoesNotThrowException()"]
  666d912b_4166_a807_ed10_ba12f328a7b2 -->|method| 41051469_aa63_66f5_9615_120713db700f
  b7601ae4_7ec7_6c51_6daa_aaad2afcc307["testRemoveThrowNoSuchElementException()"]
  666d912b_4166_a807_ed10_ba12f328a7b2 -->|method| b7601ae4_7ec7_6c51_6daa_aaad2afcc307
  546dafe1_0509_af99_b137_e00b721fbbd8["testReplaceChannelHandler()"]
  666d912b_4166_a807_ed10_ba12f328a7b2 -->|method| 546dafe1_0509_af99_b137_e00b721fbbd8
  d6a83eab_45ec_1d12_337d_f721d0c8e324["testReplaceHandlerChecksDuplicateNames()"]
  666d912b_4166_a807_ed10_ba12f328a7b2 -->|method| d6a83eab_45ec_1d12_337d_f721d0c8e324
  eafa2e0b_8697_334f_4614_1b585b838a64["testReplaceNameWithGenerated()"]
  666d912b_4166_a807_ed10_ba12f328a7b2 -->|method| eafa2e0b_8697_334f_4614_1b585b838a64
  43bbf649_da21_0de7_b3de_4e13349eb748["testRenameChannelHandler()"]
  666d912b_4166_a807_ed10_ba12f328a7b2 -->|method| 43bbf649_da21_0de7_b3de_4e13349eb748

Relationship Graph

Source Code

transport/src/test/java/io/netty/channel/DefaultChannelPipelineTest.java lines 84–2589

public class DefaultChannelPipelineTest {

    private static EventLoopGroup group;

    private Channel self;
    private Channel peer;

    @BeforeAll
    public static void beforeClass() throws Exception {
        group = new MultiThreadIoEventLoopGroup(1, LocalIoHandler.newFactory());
    }

    @AfterAll
    public static void afterClass() throws Exception {
        group.shutdownGracefully().sync();
    }

    private void setUp(final ChannelHandler... handlers) throws Exception {
        final AtomicReference<Channel> peerRef = new AtomicReference<Channel>();
        ServerBootstrap sb = new ServerBootstrap();
        sb.group(group).channel(LocalServerChannel.class);
        sb.childHandler(new ChannelInboundHandlerAdapter() {
            @Override
            public void channelRegistered(ChannelHandlerContext ctx) {
                peerRef.set(ctx.channel());
            }

            @Override
            public void channelRead(ChannelHandlerContext ctx, Object msg) {
                ReferenceCountUtil.release(msg);
            }
        });

        ChannelFuture bindFuture = sb.bind(LocalAddress.ANY).sync();

        Bootstrap b = new Bootstrap();
        b.group(group).channel(LocalChannel.class);
        b.handler(new ChannelInitializer<LocalChannel>() {
            @Override
            protected void initChannel(LocalChannel ch) {
                ch.pipeline().addLast(handlers);
            }
        });

        self = b.connect(bindFuture.channel().localAddress()).sync().channel();
        peer = peerRef.get();

        bindFuture.channel().close().sync();
    }

    @AfterEach
    public void tearDown() throws Exception {
        if (peer != null) {
            peer.close();
            peer = null;
        }
        if (self != null) {
            self = null;
        }
    }

    @Test
    public void testFreeCalled() throws Exception {
        final CountDownLatch free = new CountDownLatch(1);

        final ReferenceCounted holder = new AbstractReferenceCounted() {
            @Override
            protected void deallocate() {
                free.countDown();
            }

            @Override
            public ReferenceCounted touch(Object hint) {
                return this;
            }
        };

        StringInboundHandler handler = new StringInboundHandler();
        setUp(handler);

        peer.writeAndFlush(holder).sync();

Frequently Asked Questions

What is the DefaultChannelPipelineTest class?
DefaultChannelPipelineTest is a class in the netty codebase, defined in transport/src/test/java/io/netty/channel/DefaultChannelPipelineTest.java.
Where is DefaultChannelPipelineTest defined?
DefaultChannelPipelineTest is defined in transport/src/test/java/io/netty/channel/DefaultChannelPipelineTest.java at line 84.

Analyze Your Own Codebase

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

Try Supermodel Free