package org.jgroups.protocols.dns;
import org.jgroups.stack.IpAddress;
import org.testng.Assert;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import java.net.InetAddress;
import java.util.concurrent.TimeUnit;
import java.util.logging.Level;
import java.util.logging.Logger;
public class DNS_PINGTest {
private static final int PORT_START = 1234;
private static final boolean FORCE_DEBUG_LOGGING = false;
@BeforeClass
public static void beforeClass() {
if (FORCE_DEBUG_LOGGING) {
Logger rootLog = Logger.getLogger("");
rootLog.setLevel(Level.FINE);
rootLog.getHandlers()[0].setLevel(Level.FINE);
}
}
@Test
public void test_failing_on_no_dns_query() throws Exception {
//given
DNS_PING ping = new DNS_PING();
ping.dns_address = "fake.com";
//when
try {
ping.validateProperties();
Assert.fail();
} catch (IllegalArgumentException e) {
//then
}
}
@Test
public void test_failing_on_no_dns_address() throws Exception {
//given
DNS_PING ping = new DNS_PING();
ping.dns_query = "fake";
//when
try {
ping.validateProperties();
Assert.fail();
} catch (IllegalArgumentException e) {
//then
}
}
@Test
public void test_valid_dns_response() throws Exception {
//given
DNSDiscoveryTester dns_discovery_tester = new DNSDiscoveryTester(2, PORT_START, 500, TimeUnit.SECONDS)
.add("test", DNSResolver.DNSRecordType.A, new IpAddress(InetAddress.getLoopbackAddress(), PORT_START))
.add("test", DNSResolver.DNSRecordType.A, new IpAddress(InetAddress.getLoopbackAddress(), PORT_START + 1));
//when
boolean was_view_received = dns_discovery_tester.runTestAndCheckIfViewWasReceived("test", "A");
//then
Assert.assertTrue(was_view_received);
}
@Test
public void test_empty_dns_response() throws Exception {
//given
DNSDiscoveryTester dns_discovery_tester = new DNSDiscoveryTester(2, PORT_START, 1, TimeUnit.SECONDS);
//when
boolean was_view_received = dns_discovery_tester.runTestAndCheckIfViewWasReceived("test", "A");
//then
Assert.assertFalse(was_view_received);
}
@Test
public void test_not_matching_dns_response() throws Exception {
//given
DNSDiscoveryTester dns_discovery_tester = new DNSDiscoveryTester(2, PORT_START, 1, TimeUnit.SECONDS)
.add("test", DNSResolver.DNSRecordType.A, new IpAddress(InetAddress.getLoopbackAddress(), 6666));
//when
boolean was_view_received = dns_discovery_tester.runTestAndCheckIfViewWasReceived("test", "A");
//then
Assert.assertFalse(was_view_received);
}
}