package org.jgroups.protocols.dns; import java.util.Arrays; import java.util.List; import org.jgroups.Address; import org.jgroups.stack.IpAddress; import org.testng.Assert; import org.testng.annotations.Test; public class DefaultDNSResolverTest { @Test public void test_parsing_a_entries() throws Exception { //given MockDirContext mockDirContext = MockDirContext.newDefault() .addEntry("test", "192.168.0.1", DNSResolver.DNSRecordType.A) .addEntry("test", "192.168.0.2", DNSResolver.DNSRecordType.A); DefaultDNSResolver resolver = new DefaultDNSResolver(mockDirContext); //when List<Address> addresses = resolver.resolveIps("test", DNSResolver.DNSRecordType.A); //then List<Address> expectedResults = Arrays.asList(new IpAddress("192.168.0.1"), new IpAddress("192.168.0.2")); Assert.assertEquals(addresses, expectedResults); } @Test public void test_parsing_empty_response() throws Exception { //given MockDirContext mockDirContext = MockDirContext.newDefault(); DefaultDNSResolver resolver = new DefaultDNSResolver(mockDirContext); //when List<Address> addresses = resolver.resolveIps("test", DNSResolver.DNSRecordType.A); //then Assert.assertTrue(addresses.isEmpty()); } @Test public void test_parsing_srv_entries() throws Exception { //given MockDirContext mockDirContext = MockDirContext.newDefault() // This one is a bit weird - it seems that default DNS resolver implementation leaves the dot at the end. // Since we are tied to the implementation, we need to do the same (even though it's silly). .addEntry("test", "10 100 8888 9089f34a.jgroups-dns-ping.local.", DNSResolver.DNSRecordType.SRV) .addEntry("9089f34a.jgroups-dns-ping.local", "192.168.0.1", DNSResolver.DNSRecordType.A) .addEntry("9089f34a.jgroups-dns-ping.local", "192.168.0.2", DNSResolver.DNSRecordType.A); DefaultDNSResolver resolver = new DefaultDNSResolver(mockDirContext); //when List<Address> addresses = resolver.resolveIps("test", DNSResolver.DNSRecordType.SRV); //then List<Address> expectedResults = Arrays.asList(new IpAddress("192.168.0.1"), new IpAddress("192.168.0.2")); Assert.assertEquals(addresses, expectedResults); } }