SearchDomainTest Class — netty Architecture
Architecture documentation for the SearchDomainTest class in SearchDomainTest.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD d5ebb464_2572_c131_f90c_00c6ead5a9ed["SearchDomainTest"] 24ee8306_b615_a27b_61bb_ee7e1824d255["SearchDomainTest.java"] d5ebb464_2572_c131_f90c_00c6ead5a9ed -->|defined in| 24ee8306_b615_a27b_61bb_ee7e1824d255 f369eccd_5840_2765_651d_34233549d72c["DnsNameResolverBuilder()"] d5ebb464_2572_c131_f90c_00c6ead5a9ed -->|method| f369eccd_5840_2765_651d_34233549d72c 06551e77_b164_c580_1953_a54e7fb37291["before()"] d5ebb464_2572_c131_f90c_00c6ead5a9ed -->|method| 06551e77_b164_c580_1953_a54e7fb37291 dd693a3a_9632_a5a3_ca55_6eb0d424a93c["destroy()"] d5ebb464_2572_c131_f90c_00c6ead5a9ed -->|method| dd693a3a_9632_a5a3_ca55_6eb0d424a93c 86131688_3662_670c_a00b_18504ad04a7a["testResolve()"] d5ebb464_2572_c131_f90c_00c6ead5a9ed -->|method| 86131688_3662_670c_a00b_18504ad04a7a 87207764_db17_d377_9b48_1ef60fc5d9c7["testResolveAll()"] d5ebb464_2572_c131_f90c_00c6ead5a9ed -->|method| 87207764_db17_d377_9b48_1ef60fc5d9c7 cd805f4c_e941_32ff_c642_a5d5ac9aa0bd["testMultipleSearchDomain()"] d5ebb464_2572_c131_f90c_00c6ead5a9ed -->|method| cd805f4c_e941_32ff_c642_a5d5ac9aa0bd 4475cb5d_ff15_11d4_480d_f5d5b9dd421a["testSearchDomainWithNdots2()"] d5ebb464_2572_c131_f90c_00c6ead5a9ed -->|method| 4475cb5d_ff15_11d4_480d_f5d5b9dd421a b7c1ce75_2e88_b065_ca94_d1828bbc6f17["testSearchDomainWithNdots0()"] d5ebb464_2572_c131_f90c_00c6ead5a9ed -->|method| b7c1ce75_2e88_b065_ca94_d1828bbc6f17 3f8fe794_028b_490d_db01_b9bba8610875["assertNotResolve()"] d5ebb464_2572_c131_f90c_00c6ead5a9ed -->|method| 3f8fe794_028b_490d_db01_b9bba8610875 34cb534f_85ee_9700_ab1a_92c901fe5bf2["assertNotResolveAll()"] d5ebb464_2572_c131_f90c_00c6ead5a9ed -->|method| 34cb534f_85ee_9700_ab1a_92c901fe5bf2 e5a58170_c5d1_f426_b1a6_08324ed35257["String()"] d5ebb464_2572_c131_f90c_00c6ead5a9ed -->|method| e5a58170_c5d1_f426_b1a6_08324ed35257 8d18d5ef_eb20_1945_f4be_91950971528b["assertResolveAll()"] d5ebb464_2572_c131_f90c_00c6ead5a9ed -->|method| 8d18d5ef_eb20_1945_f4be_91950971528b cd789627_f1c2_c87f_26ab_bd6c72c70bf6["testExceptionMsgContainsSearchDomain()"] d5ebb464_2572_c131_f90c_00c6ead5a9ed -->|method| cd789627_f1c2_c87f_26ab_bd6c72c70bf6
Relationship Graph
Source Code
resolver-dns/src/test/java/io/netty/resolver/dns/SearchDomainTest.java lines 43–312
public class SearchDomainTest {
private DnsNameResolverBuilder newResolver() {
return new DnsNameResolverBuilder(group.next())
.datagramChannelType(NioDatagramChannel.class)
.nameServerProvider(new SingletonDnsServerAddressStreamProvider(dnsServer.localAddress()))
.maxQueriesPerResolve(1)
.optResourceEnabled(false)
.ndots(1);
}
private TestDnsServer dnsServer;
private EventLoopGroup group;
private DnsNameResolver resolver;
@BeforeEach
public void before() {
group = new MultiThreadIoEventLoopGroup(1, NioIoHandler.newFactory());
}
@AfterEach
public void destroy() {
if (dnsServer != null) {
dnsServer.stop();
dnsServer = null;
}
if (resolver != null) {
resolver.close();
}
group.shutdownGracefully();
}
@Test
public void testResolve() throws Exception {
Set<String> domains = new HashSet<String>();
domains.add("host1.foo.com");
domains.add("host1");
domains.add("host3");
domains.add("host4.sub.foo.com");
domains.add("host5.sub.foo.com");
domains.add("host5.sub");
TestDnsServer.MapRecordStoreA store = new TestDnsServer.MapRecordStoreA(domains);
dnsServer = new TestDnsServer(store);
dnsServer.start();
resolver = newResolver().searchDomains(Collections.singletonList("foo.com")).ndots(2).build();
String a = "host1.foo.com";
String resolved = assertResolve(resolver, a);
assertEquals(store.getAddress("host1.foo.com"), resolved);
// host1 resolves host1.foo.com with foo.com search domain
resolved = assertResolve(resolver, "host1");
assertEquals(store.getAddress("host1.foo.com"), resolved);
// "host1." absolute query
resolved = assertResolve(resolver, "host1.");
assertEquals(store.getAddress("host1"), resolved);
// "host2" not resolved
assertNotResolve(resolver, "host2");
// "host3" does not contain a dot nor it's absolute but it should still be resolved after search list have
// been checked
resolved = assertResolve(resolver, "host3");
assertEquals(store.getAddress("host3"), resolved);
// "host3." does not contain a dot but is absolute
resolved = assertResolve(resolver, "host3.");
assertEquals(store.getAddress("host3"), resolved);
// "host4.sub" contains a dot but not resolved then resolved to "host4.sub.foo.com" with "foo.com" search domain
resolved = assertResolve(resolver, "host4.sub");
assertEquals(store.getAddress("host4.sub.foo.com"), resolved);
// "host5.sub" would have been directly resolved but since it has less than ndots the "foo.com" search domain
// is used.
resolved = assertResolve(resolver, "host5.sub");
assertEquals(store.getAddress("host5.sub.foo.com"), resolved);
}
Source
Frequently Asked Questions
What is the SearchDomainTest class?
SearchDomainTest is a class in the netty codebase, defined in resolver-dns/src/test/java/io/netty/resolver/dns/SearchDomainTest.java.
Where is SearchDomainTest defined?
SearchDomainTest is defined in resolver-dns/src/test/java/io/netty/resolver/dns/SearchDomainTest.java at line 43.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free