Home / Class/ ResolveAddressHandlerTest Class — netty Architecture

ResolveAddressHandlerTest Class — netty Architecture

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

Entity Profile

Dependency Diagram

graph TD
  7fdd24de_3acd_a289_07d2_827773dc55b2["ResolveAddressHandlerTest"]
  76a4119e_b4e2_d44a_042f_9f08e4dd5b81["ResolveAddressHandlerTest.java"]
  7fdd24de_3acd_a289_07d2_827773dc55b2 -->|defined in| 76a4119e_b4e2_d44a_042f_9f08e4dd5b81
  9b9172e5_486c_4f71_5020_67c80c337269["createEventLoop()"]
  7fdd24de_3acd_a289_07d2_827773dc55b2 -->|method| 9b9172e5_486c_4f71_5020_67c80c337269
  b4a7f7f9_582c_9edb_ec32_ed53271e99d9["destroyEventLoop()"]
  7fdd24de_3acd_a289_07d2_827773dc55b2 -->|method| b4a7f7f9_582c_9edb_ec32_ed53271e99d9
  c6cde13e_fca2_e8f8_9a3a_05d0802d04db["testResolveSuccessful()"]
  7fdd24de_3acd_a289_07d2_827773dc55b2 -->|method| c6cde13e_fca2_e8f8_9a3a_05d0802d04db
  ee724e3e_2f8b_d0dc_126c_43710db82aeb["testResolveFails()"]
  7fdd24de_3acd_a289_07d2_827773dc55b2 -->|method| ee724e3e_2f8b_d0dc_126c_43710db82aeb
  dbaba18a_b7a6_dfc9_285a_5717f4fcbb71["testResolve()"]
  7fdd24de_3acd_a289_07d2_827773dc55b2 -->|method| dbaba18a_b7a6_dfc9_285a_5717f4fcbb71

Relationship Graph

Source Code

handler/src/test/java/io/netty/handler/address/ResolveAddressHandlerTest.java lines 49–143

public class ResolveAddressHandlerTest {

    private static final LocalAddress UNRESOLVED = new LocalAddress("unresolved-" + UUID.randomUUID());
    private static final LocalAddress RESOLVED = new LocalAddress("resolved-" + UUID.randomUUID());
    private static final Exception ERROR = new UnknownHostException();

    private static EventLoopGroup group;

    @BeforeAll
    public static void createEventLoop() {
        group = new MultiThreadIoEventLoopGroup(LocalIoHandler.newFactory());
    }

    @AfterAll
    public static void destroyEventLoop() {
        if (group != null) {
            group.shutdownGracefully();
        }
    }

    @Test
    public void testResolveSuccessful() {
        testResolve(false);
    }

    @Test
    public void testResolveFails() {
        testResolve(true);
    }

    private static void testResolve(boolean fail) {
        AddressResolverGroup<SocketAddress> resolverGroup = new TestResolverGroup(fail);
        Bootstrap cb = new Bootstrap();
        cb.group(group).channel(LocalChannel.class).handler(new ResolveAddressHandler(resolverGroup));

        ServerBootstrap sb = new ServerBootstrap();
        sb.group(group)
                .channel(LocalServerChannel.class)
                .childHandler(new ChannelInboundHandlerAdapter() {
                    @Override
                    public void channelActive(ChannelHandlerContext ctx) {
                        ctx.close();
                    }
                });

        // Start server
        Channel sc = sb.bind(RESOLVED).syncUninterruptibly().channel();
        ChannelFuture future = cb.connect(UNRESOLVED).awaitUninterruptibly();
        try {
            if (fail) {
                assertSame(ERROR, future.cause());
            } else {
                assertTrue(future.isSuccess());
            }
            future.channel().close().syncUninterruptibly();
        } finally {
            future.channel().close().syncUninterruptibly();
            sc.close().syncUninterruptibly();
            resolverGroup.close();
        }
    }

    private static final class TestResolverGroup extends AddressResolverGroup<SocketAddress> {
        private final boolean fail;

        TestResolverGroup(boolean fail) {
            this.fail = fail;
        }

        @Override
        protected AddressResolver<SocketAddress> newResolver(EventExecutor executor) {
            return new AbstractAddressResolver<SocketAddress>(executor) {
                @Override
                protected boolean doIsResolved(SocketAddress address) {
                    return address == RESOLVED;
                }

                @Override
                protected void doResolve(SocketAddress unresolvedAddress, Promise<SocketAddress> promise) {
                    assertSame(UNRESOLVED, unresolvedAddress);
                    if (fail) {

Frequently Asked Questions

What is the ResolveAddressHandlerTest class?
ResolveAddressHandlerTest is a class in the netty codebase, defined in handler/src/test/java/io/netty/handler/address/ResolveAddressHandlerTest.java.
Where is ResolveAddressHandlerTest defined?
ResolveAddressHandlerTest is defined in handler/src/test/java/io/netty/handler/address/ResolveAddressHandlerTest.java at line 49.

Analyze Your Own Codebase

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

Try Supermodel Free