@Test public void testResolveAAAA() throws Exception { dnsServer.testResolveAAAA("::1"); DnsClient dns = prepareDns(); dns.resolveAAAA("vertx.io", onSuccess(result -> { assertFalse(result.isEmpty()); assertEquals(1, result.size()); assertEquals("0:0:0:0:0:0:0:1", result.get(0)); testComplete(); })); await(); }
@Test public void testResolveSRV() throws Exception { final int priority = 10; final int weight = 1; final int port = 80; final String target = "vertx.io"; dnsServer.testResolveSRV(priority, weight, port, target); DnsClient dns = prepareDns(); dns.resolveSRV("vertx.io", ar -> { List<SrvRecord> result = ar.result(); assertNotNull(result); assertFalse(result.isEmpty()); assertEquals(1, result.size()); SrvRecord record = result.get(0); assertEquals(priority, record.priority()); assertEquals(weight, record.weight()); assertEquals(port, record.port()); assertEquals(target, record.target()); testComplete(); }); await(); }
@Test public void testUnresolvedDnsServer() throws Exception { final String ip = "10.0.0.1"; try { DnsClient dns = vertx.createDnsClient(new DnsClientOptions().setHost("iamanunresolvablednsserver.com").setPort(53)); fail(); } catch (Exception e) { assertTrue(e instanceof IllegalArgumentException); assertEquals("Cannot resolve the host to a valid ip address", e.getMessage()); } }
private TestLoggerFactory testLogging(DnsClientOptions options) { final String ip = "10.0.0.1"; dnsServer.testResolveA(ip); return TestUtils.testLogging(() -> { try { prepareDns(options) .resolveA(ip, fut -> { testComplete(); }); await(); } catch (Exception e) { fail(e); } }); }
@Test public void testTimeout() throws Exception { DnsClient dns = vertx.createDnsClient(new DnsClientOptions().setHost("localhost").setPort(10000).setQueryTimeout(5000)); dns.lookup("vertx.io", onFailure(result -> { assertEquals(VertxException.class, result.getClass()); assertEquals("DNS query timeout for vertx.io", result.getMessage()); ((DnsClientImpl) dns).inProgressQueries(num -> { assertEquals(0, (int)num); testComplete(); }); })); await(); }
@Test public void testDoNotLogActivity() throws Exception { TestLoggerFactory factory = testLogging(new DnsClientOptions().setLogActivity(false)); assertFalse(factory.hasName("io.netty.handler.logging.LoggingHandler")); }
@Test public void testLogActivity() throws Exception { TestLoggerFactory factory = testLogging(new DnsClientOptions().setLogActivity(true)); assertTrue(factory.hasName("io.netty.handler.logging.LoggingHandler")); }
private DnsClient prepareDns() throws Exception { return prepareDns(new DnsClientOptions().setQueryTimeout(15000)); }
@Test public void testUseInMultithreadedWorker() throws Exception { class MyVerticle extends AbstractVerticle { @Override public void start() { assertIllegalStateException(() -> vertx.createDnsClient(1234, "localhost")); testComplete(); } } MyVerticle verticle = new MyVerticle(); vertx.deployVerticle(verticle, new DeploymentOptions().setWorker(true).setMultiThreaded(true)); await(); }
@Test public void testTimeout() throws Exception { DnsClient dns = vertx.createDnsClient(new DnsClientOptions().setHost("localhost").setPort(10000).setQueryTimeout(5000)); dns.lookup("vertx.io", onFailure(result -> { assertEquals(VertxException.class, result.getClass()); assertEquals("DNS query timeout for vertx.io", result.getMessage()); ((DnsClientImpl) dns).inProgressQueries(num -> { assertEquals(0, (int)num); testComplete(); }); })); await(); }
private TestLoggerFactory testLogging(DnsClientOptions options) { final String ip = "10.0.0.1"; dnsServer.testResolveA(ip); return TestUtils.testLogging(() -> { try { prepareDns(options) .resolveA(ip, fut -> { testComplete(); }); await(); } catch (Exception e) { fail(e); } }); }
@Test public void testDoNotLogActivity() throws Exception { TestLoggerFactory factory = testLogging(new DnsClientOptions().setLogActivity(false)); assertFalse(factory.hasName("io.netty.handler.logging.LoggingHandler")); }
@Test public void testLogActivity() throws Exception { TestLoggerFactory factory = testLogging(new DnsClientOptions().setLogActivity(true)); assertTrue(factory.hasName("io.netty.handler.logging.LoggingHandler")); }
@Test public void testIllegalArguments() throws Exception { dnsServer.testResolveAAAA("::1"); DnsClient dns = prepareDns(); assertNullPointerException(() -> dns.lookup(null, ar -> {})); assertNullPointerException(() -> dns.lookup4(null, ar -> {})); assertNullPointerException(() -> dns.lookup6(null, ar -> {})); assertNullPointerException(() -> dns.resolveA(null, ar -> {})); assertNullPointerException(() -> dns.resolveAAAA(null, ar -> {})); assertNullPointerException(() -> dns.resolveCNAME(null, ar -> {})); assertNullPointerException(() -> dns.resolveMX(null, ar -> {})); assertNullPointerException(() -> dns.resolveTXT(null, ar -> {})); assertNullPointerException(() -> dns.resolvePTR(null, ar -> {})); assertNullPointerException(() -> dns.resolveNS(null, ar -> {})); assertNullPointerException(() -> dns.resolveSRV(null, ar -> {})); }
@Test public void testLookup4CNAME() throws Exception { final String cname = "cname.vertx.io"; final String ip = "10.0.0.1"; dnsServer.testLookup4CNAME(cname, ip); DnsClient dns = prepareDns(); dns.lookup4("vertx.io", onSuccess(result -> { assertEquals(ip, result); testComplete(); })); await(); }
@Test public void testResolveSRV() throws Exception { final int priority = 10; final int weight = 1; final int port = 80; final String target = "vertx.io"; dnsServer.testResolveSRV(priority, weight, port, target); DnsClient dns = prepareDns(); dns.resolveSRV("vertx.io", ar -> { List<SrvRecord> result = ar.result(); assertNotNull(result); assertFalse(result.isEmpty()); assertEquals(1, result.size()); SrvRecord record = result.get(0); assertEquals(priority, record.priority()); assertEquals(weight, record.weight()); assertEquals(port, record.port()); assertEquals(target, record.target()); testComplete(); }); await(); }
@Test public void testUnresolvedDnsServer() throws Exception { final String ip = "10.0.0.1"; try { DnsClient dns = vertx.createDnsClient(new DnsClientOptions().setHost("iamanunresolvablednsserver.com").setPort(53)); fail(); } catch (Exception e) { assertTrue(e instanceof IllegalArgumentException); assertEquals("Cannot resolve the host to a valid ip address", e.getMessage()); } }
private DnsClient prepareDns() throws Exception { return prepareDns(new DnsClientOptions().setQueryTimeout(15000)); }
@Test public void testResolveNS() throws Exception { final String ns = "ns.vertx.io"; dnsServer.testResolveNS(ns); DnsClient dns = prepareDns(); dns.resolveNS("vertx.io", onSuccess(result -> { assertFalse(result.isEmpty()); assertEquals(1, result.size()); assertEquals(ns, result.get(0)); testComplete(); })); await(); }
@Test public void testIllegalArguments() throws Exception { dnsServer.testResolveAAAA("::1"); DnsClient dns = prepareDns(); assertNullPointerException(() -> dns.lookup(null, ar -> {})); assertNullPointerException(() -> dns.lookup4(null, ar -> {})); assertNullPointerException(() -> dns.lookup6(null, ar -> {})); assertNullPointerException(() -> dns.resolveA(null, ar -> {})); assertNullPointerException(() -> dns.resolveAAAA(null, ar -> {})); assertNullPointerException(() -> dns.resolveCNAME(null, ar -> {})); assertNullPointerException(() -> dns.resolveMX(null, ar -> {})); assertNullPointerException(() -> dns.resolveTXT(null, ar -> {})); assertNullPointerException(() -> dns.resolvePTR(null, ar -> {})); assertNullPointerException(() -> dns.resolveNS(null, ar -> {})); assertNullPointerException(() -> dns.resolveSRV(null, ar -> {})); }