Home / Class/ AbstractChannelPoolMapTest Class — netty Architecture

AbstractChannelPoolMapTest Class — netty Architecture

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

Entity Profile

Dependency Diagram

graph TD
  a8999ca8_1527_5b77_88b4_2e7aa504b5f4["AbstractChannelPoolMapTest"]
  8190cf66_d425_6ac0_18bf_a2f517283edb["AbstractChannelPoolMapTest.java"]
  a8999ca8_1527_5b77_88b4_2e7aa504b5f4 -->|defined in| 8190cf66_d425_6ac0_18bf_a2f517283edb
  e54e4551_d02a_92b8_dbdb_49ad06e0d485["testMap()"]
  a8999ca8_1527_5b77_88b4_2e7aa504b5f4 -->|method| e54e4551_d02a_92b8_dbdb_49ad06e0d485
  fdbfdf6a_55bd_5be9_ee52_bcaafe5ff92a["testRemoveClosesChannelPool()"]
  a8999ca8_1527_5b77_88b4_2e7aa504b5f4 -->|method| fdbfdf6a_55bd_5be9_ee52_bcaafe5ff92a
  9470e904_c9cb_4373_e292_db4177c439a2["testCloseClosesPoolsImmediately()"]
  a8999ca8_1527_5b77_88b4_2e7aa504b5f4 -->|method| 9470e904_c9cb_4373_e292_db4177c439a2

Relationship Graph

Source Code

transport/src/test/java/io/netty/channel/pool/AbstractChannelPoolMapTest.java lines 43–170

public class AbstractChannelPoolMapTest {
    @Test
    public void testMap() throws Exception {
        EventLoopGroup group = new MultiThreadIoEventLoopGroup(LocalIoHandler.newFactory());
        LocalAddress addr = new LocalAddress(getLocalAddrId());
        final Bootstrap cb = new Bootstrap();
        cb.remoteAddress(addr);
        cb.group(group)
          .channel(LocalChannel.class);

        AbstractChannelPoolMap<EventLoop, SimpleChannelPool> poolMap =
                new AbstractChannelPoolMap<EventLoop, SimpleChannelPool>() {
            @Override
            protected SimpleChannelPool newPool(EventLoop key) {
                return new SimpleChannelPool(cb.clone(key), new TestChannelPoolHandler());
            }
        };

        EventLoop loop = group.next();

        assertFalse(poolMap.iterator().hasNext());
        assertEquals(0, poolMap.size());

        final SimpleChannelPool pool = poolMap.get(loop);
        assertEquals(1, poolMap.size());
        assertTrue(poolMap.iterator().hasNext());

        assertSame(pool, poolMap.get(loop));
        assertTrue(poolMap.remove(loop));
        assertFalse(poolMap.remove(loop));

        assertFalse(poolMap.iterator().hasNext());
        assertEquals(0, poolMap.size());

        assertThrows(ConnectException.class, new Executable() {
            @Override
            public void execute() throws Throwable {
                pool.acquire().syncUninterruptibly();
            }
        });
        poolMap.close();
    }

    @Test
    public void testRemoveClosesChannelPool() {
        EventLoopGroup group = new MultiThreadIoEventLoopGroup(LocalIoHandler.newFactory());
        LocalAddress addr = new LocalAddress(getLocalAddrId());
        final Bootstrap cb = new Bootstrap();
        cb.remoteAddress(addr);
        cb.group(group)
          .channel(LocalChannel.class);

        AbstractChannelPoolMap<EventLoop, TestPool> poolMap =
                new AbstractChannelPoolMap<EventLoop, TestPool>() {
                    @Override
                    protected TestPool newPool(EventLoop key) {
                        return new TestPool(cb.clone(key), new TestChannelPoolHandler());
                    }
                };

        EventLoop loop = group.next();

        TestPool pool = poolMap.get(loop);
        assertTrue(poolMap.remove(loop));

        // the pool should be closed eventually after remove
        pool.closeFuture.awaitUninterruptibly(1, TimeUnit.SECONDS);
        assertTrue(pool.closeFuture.isDone());
        poolMap.close();
    }

    @Test
    public void testCloseClosesPoolsImmediately() {
        EventLoopGroup group = new MultiThreadIoEventLoopGroup(LocalIoHandler.newFactory());
        LocalAddress addr = new LocalAddress(getLocalAddrId());
        final Bootstrap cb = new Bootstrap();
        cb.remoteAddress(addr);
        cb.group(group)
          .channel(LocalChannel.class);

        AbstractChannelPoolMap<EventLoop, TestPool> poolMap =

Frequently Asked Questions

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

Analyze Your Own Codebase

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

Try Supermodel Free