Home / Class/ SocketAddressesTest Class — netty Architecture

SocketAddressesTest Class — netty Architecture

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

Entity Profile

Dependency Diagram

graph TD
  57041562_b94a_7eb6_b785_675ad5e0224f["SocketAddressesTest"]
  2c0609ce_2b93_6425_4498_9e1d53ca734e["SocketAddressesTest.java"]
  57041562_b94a_7eb6_b785_675ad5e0224f -->|defined in| 2c0609ce_2b93_6425_4498_9e1d53ca734e
  b9cb1de4_fb03_9b02_7a4a_215d2d9ea493["testAddresses()"]
  57041562_b94a_7eb6_b785_675ad5e0224f -->|method| b9cb1de4_fb03_9b02_7a4a_215d2d9ea493
  eadb0567_b97c_d8aa_71f0_a10c1f5071f7["testAddressesConnectWithoutLocalAddress()"]
  57041562_b94a_7eb6_b785_675ad5e0224f -->|method| eadb0567_b97c_d8aa_71f0_a10c1f5071f7
  7fee8c39_de76_48f3_49cd_b15dfa71b38c["assertAddress()"]
  57041562_b94a_7eb6_b785_675ad5e0224f -->|method| 7fee8c39_de76_48f3_49cd_b15dfa71b38c

Relationship Graph

Source Code

testsuite/src/main/java/io/netty/testsuite/transport/socket/SocketAddressesTest.java lines 34–99

public abstract class SocketAddressesTest extends AbstractSocketTest {

    @Test
    @Timeout(value = 30000, unit = TimeUnit.MILLISECONDS)
    public void testAddresses(TestInfo testInfo) throws Throwable {
        run(testInfo, new Runner<ServerBootstrap, Bootstrap>() {
            @Override
            public void run(ServerBootstrap serverBootstrap, Bootstrap bootstrap) throws Throwable {
                testAddresses(serverBootstrap, bootstrap, true);
            }
        });
    }

    @Test
    @Timeout(value = 30000, unit = TimeUnit.MILLISECONDS)
    public void testAddressesConnectWithoutLocalAddress(TestInfo testInfo) throws Throwable {
        run(testInfo, new Runner<ServerBootstrap, Bootstrap>() {
            @Override
            public void run(ServerBootstrap serverBootstrap, Bootstrap bootstrap) throws Throwable {
                testAddresses(serverBootstrap, bootstrap, false);
            }
        });
    }

    protected abstract void assertAddress(SocketAddress address);

    private void testAddresses(ServerBootstrap sb, Bootstrap cb, boolean withLocalAddress) throws Throwable {
        Channel serverChannel = null;
        Channel clientChannel = null;
        try {
            final Promise<SocketAddress> localAddressPromise = ImmediateEventExecutor.INSTANCE.newPromise();
            final Promise<SocketAddress> remoteAddressPromise = ImmediateEventExecutor.INSTANCE.newPromise();
            serverChannel = sb.childHandler(new ChannelInboundHandlerAdapter() {
                @Override
                public void channelActive(ChannelHandlerContext ctx) {
                    localAddressPromise.setSuccess(ctx.channel().localAddress());
                    remoteAddressPromise.setSuccess(ctx.channel().remoteAddress());
                }
            }).bind().syncUninterruptibly().channel();

            clientChannel = cb.handler(new ChannelInboundHandlerAdapter()).register().syncUninterruptibly().channel();

            assertNull(clientChannel.localAddress());
            assertNull(clientChannel.remoteAddress());

            if (withLocalAddress) {
                clientChannel.connect(serverChannel.localAddress(), newSocketAddress()).syncUninterruptibly().channel();
            } else {
                clientChannel.connect(serverChannel.localAddress()).syncUninterruptibly().channel();
            }

            assertAddress(clientChannel.localAddress());
            assertAddress(clientChannel.remoteAddress());

            assertAddress(localAddressPromise.get());
            assertAddress(remoteAddressPromise.get());
        } finally {
            if (clientChannel != null) {
                clientChannel.close().syncUninterruptibly();
            }
            if (serverChannel != null) {
                serverChannel.close().syncUninterruptibly();
            }
        }
    }
}

Frequently Asked Questions

What is the SocketAddressesTest class?
SocketAddressesTest is a class in the netty codebase, defined in testsuite/src/main/java/io/netty/testsuite/transport/socket/SocketAddressesTest.java.
Where is SocketAddressesTest defined?
SocketAddressesTest is defined in testsuite/src/main/java/io/netty/testsuite/transport/socket/SocketAddressesTest.java at line 34.

Analyze Your Own Codebase

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

Try Supermodel Free