Home / Class/ SearchDomainTest Class — netty Architecture

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);
    }

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