@Test public void testAsyncResolutionSuccess() throws Exception { final Bootstrap bootstrapA = new Bootstrap(); bootstrapA.group(groupA); bootstrapA.channel(LocalChannel.class); bootstrapA.resolver(new TestAddressResolverGroup(true)); bootstrapA.handler(dummyHandler); final ServerBootstrap bootstrapB = new ServerBootstrap(); bootstrapB.group(groupB); bootstrapB.channel(LocalServerChannel.class); bootstrapB.childHandler(dummyHandler); SocketAddress localAddress = bootstrapB.bind(LocalAddress.ANY).sync().channel().localAddress(); // Connect to the server using the asynchronous resolver. bootstrapA.connect(localAddress).sync(); }
@Test public void testAsyncResolutionFailure() throws Exception { final Bootstrap bootstrapA = new Bootstrap(); bootstrapA.group(groupA); bootstrapA.channel(LocalChannel.class); bootstrapA.resolver(new TestAddressResolverGroup(false)); bootstrapA.handler(dummyHandler); final ServerBootstrap bootstrapB = new ServerBootstrap(); bootstrapB.group(groupB); bootstrapB.channel(LocalServerChannel.class); bootstrapB.childHandler(dummyHandler); SocketAddress localAddress = bootstrapB.bind(LocalAddress.ANY).sync().channel().localAddress(); // Connect to the server using the asynchronous resolver. ChannelFuture connectFuture = bootstrapA.connect(localAddress); // Should fail with the UnknownHostException. assertThat(connectFuture.await(10000), is(true)); assertThat(connectFuture.cause(), is(instanceOf(UnknownHostException.class))); assertThat(connectFuture.channel().isOpen(), is(false)); }