use of io.vertx.core.dns.AddressResolverOptions in project vert.x by eclipse.
the class HostnameResolutionTest method testDefaultJsonOptions.
@Test
public void testDefaultJsonOptions() {
AddressResolverOptions options = new AddressResolverOptions(new JsonObject());
assertEquals(AddressResolverOptions.DEFAULT_OPT_RESOURCE_ENABLED, options.isOptResourceEnabled());
assertEquals(AddressResolverOptions.DEFAULT_SERVERS, options.getServers());
assertEquals(AddressResolverOptions.DEFAULT_CACHE_MIN_TIME_TO_LIVE, options.getCacheMinTimeToLive());
assertEquals(AddressResolverOptions.DEFAULT_CACHE_MAX_TIME_TO_LIVE, options.getCacheMaxTimeToLive());
assertEquals(AddressResolverOptions.DEFAULT_CACHE_NEGATIVE_TIME_TO_LIVE, options.getCacheNegativeTimeToLive());
assertEquals(AddressResolverOptions.DEFAULT_QUERY_TIMEOUT, options.getQueryTimeout());
assertEquals(AddressResolverOptions.DEFAULT_MAX_QUERIES, options.getMaxQueries());
assertEquals(AddressResolverOptions.DEFAULT_RD_FLAG, options.getRdFlag());
assertEquals(AddressResolverOptions.DEFAULT_SEACH_DOMAINS, options.getSearchDomains());
assertEquals(AddressResolverOptions.DEFAULT_NDOTS, options.getNdots());
}
use of io.vertx.core.dns.AddressResolverOptions in project vert.x by eclipse.
the class HostnameResolutionTest method testResolveFromFile.
@Test
public void testResolveFromFile() {
File f = new File(new File(new File(new File("src"), "test"), "resources"), "hosts_config.txt");
VertxInternal vertx = (VertxInternal) vertx(new VertxOptions().setAddressResolverOptions(new AddressResolverOptions().setHostsPath(f.getAbsolutePath())));
vertx.resolveAddress("server.net", onSuccess(addr -> {
assertEquals("192.168.0.15", addr.getHostAddress());
assertEquals("server.net", addr.getHostName());
testComplete();
}));
await();
}
use of io.vertx.core.dns.AddressResolverOptions in project vert.x by eclipse.
the class HostnameResolutionTest method testSearchDomain.
@Test
public void testSearchDomain() throws Exception {
Map<String, String> records = new HashMap<>();
records.put("host1.foo.com", "127.0.0.1");
records.put("host1", "127.0.0.2");
records.put("host3", "127.0.0.3");
records.put("host4.sub.foo.com", "127.0.0.4");
records.put("host5.sub.foo.com", "127.0.0.5");
records.put("host5.sub", "127.0.0.6");
dnsServer.stop();
dnsServer = FakeDNSServer.testResolveA(records);
dnsServer.start();
VertxInternal vertx = (VertxInternal) vertx(new VertxOptions().setAddressResolverOptions(new AddressResolverOptions().addServer(dnsServerAddress.getAddress().getHostAddress() + ":" + dnsServerAddress.getPort()).setOptResourceEnabled(false).addSearchDomain("foo.com")));
// host1 resolves host1.foo.com with foo.com search domain
CountDownLatch latch1 = new CountDownLatch(1);
vertx.resolveAddress("host1", onSuccess(resolved -> {
assertEquals("127.0.0.1", resolved.getHostAddress());
latch1.countDown();
}));
awaitLatch(latch1);
// "host1." absolute query
CountDownLatch latch2 = new CountDownLatch(1);
vertx.resolveAddress("host1.", onSuccess(resolved -> {
assertEquals("127.0.0.2", resolved.getHostAddress());
latch2.countDown();
}));
awaitLatch(latch2);
// "host2" not resolved
CountDownLatch latch3 = new CountDownLatch(1);
vertx.resolveAddress("host2", onFailure(cause -> {
assertTrue(cause instanceof UnknownHostException);
latch3.countDown();
}));
awaitLatch(latch3);
// "host3" does not contain a dot or is not absolute
CountDownLatch latch4 = new CountDownLatch(1);
vertx.resolveAddress("host3", onFailure(cause -> {
assertTrue(cause instanceof UnknownHostException);
latch4.countDown();
}));
awaitLatch(latch4);
// "host3." does not contain a dot but is absolute
CountDownLatch latch5 = new CountDownLatch(1);
vertx.resolveAddress("host3.", onSuccess(resolved -> {
assertEquals("127.0.0.3", resolved.getHostAddress());
latch5.countDown();
}));
awaitLatch(latch5);
// "host4.sub" contains a dot but not resolved then resolved to "host4.sub.foo.com" with "foo.com" search domain
CountDownLatch latch6 = new CountDownLatch(1);
vertx.resolveAddress("host4.sub", onSuccess(resolved -> {
assertEquals("127.0.0.4", resolved.getHostAddress());
latch6.countDown();
}));
awaitLatch(latch6);
// "host5.sub" contains a dot and is resolved
CountDownLatch latch7 = new CountDownLatch(1);
vertx.resolveAddress("host5.sub", onSuccess(resolved -> {
assertEquals("127.0.0.6", resolved.getHostAddress());
latch7.countDown();
}));
awaitLatch(latch7);
}
use of io.vertx.core.dns.AddressResolverOptions in project vert.x by eclipse.
the class HostnameResolutionTest method testInvalidHostsConfig.
@Test
public void testInvalidHostsConfig() {
try {
AddressResolverOptions options = new AddressResolverOptions().setHostsPath("whatever.txt");
vertx(new VertxOptions().setAddressResolverOptions(options));
fail();
} catch (VertxException ignore) {
}
}
use of io.vertx.core.dns.AddressResolverOptions in project vert.x by eclipse.
the class HostnameResolutionTest method testSearchDomainWithNdots2.
@Test
public void testSearchDomainWithNdots2() throws Exception {
Map<String, String> records = new HashMap<>();
records.put("host1.sub.foo.com", "127.0.0.1");
records.put("host2.sub.foo.com", "127.0.0.2");
records.put("host2.sub", "127.0.0.3");
dnsServer.stop();
dnsServer = FakeDNSServer.testResolveA(records);
dnsServer.start();
VertxInternal vertx = (VertxInternal) vertx(new VertxOptions().setAddressResolverOptions(new AddressResolverOptions().addServer(dnsServerAddress.getAddress().getHostAddress() + ":" + dnsServerAddress.getPort()).setOptResourceEnabled(false).addSearchDomain("foo.com").setNdots(2)));
CountDownLatch latch1 = new CountDownLatch(1);
vertx.resolveAddress("host1.sub", onSuccess(resolved -> {
assertEquals("127.0.0.1", resolved.getHostAddress());
latch1.countDown();
}));
awaitLatch(latch1);
// "host2.sub" is resolved with the foo.com search domain as ndots = 2
CountDownLatch latch2 = new CountDownLatch(1);
vertx.resolveAddress("host2.sub", onSuccess(resolved -> {
assertEquals("127.0.0.2", resolved.getHostAddress());
latch2.countDown();
}));
awaitLatch(latch2);
}
Aggregations