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();
}
}
}
}
Source
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