diff options
author | Instrumental <jonathan.gathman@att.com> | 2019-12-12 08:37:56 -0600 |
---|---|---|
committer | Instrumental <jonathan.gathman@att.com> | 2019-12-12 08:38:06 -0600 |
commit | 3ca1b28f07f5a46fbeca439677a98245e50b69ea (patch) | |
tree | b42339d5ce04c9f48966fa1e8e5958fab0da4403 /cadi/client/src/main/java | |
parent | deb396a3d53a84b2eb5a46d40122b4902d72c601 (diff) |
Fix DNSLocator JUnit
Issue-ID: AAF-1060
Signed-off-by: Instrumental <jonathan.gathman@att.com>
Change-Id: I24318cc0d5b698b7719afb20c411895fda001bff
Diffstat (limited to 'cadi/client/src/main/java')
-rw-r--r-- | cadi/client/src/main/java/org/onap/aaf/cadi/locator/DNSLocator.java | 36 |
1 files changed, 34 insertions, 2 deletions
diff --git a/cadi/client/src/main/java/org/onap/aaf/cadi/locator/DNSLocator.java b/cadi/client/src/main/java/org/onap/aaf/cadi/locator/DNSLocator.java index c0b9f375..53782b34 100644 --- a/cadi/client/src/main/java/org/onap/aaf/cadi/locator/DNSLocator.java +++ b/cadi/client/src/main/java/org/onap/aaf/cadi/locator/DNSLocator.java @@ -23,8 +23,10 @@ package org.onap.aaf.cadi.locator; import java.io.IOException; import java.net.InetAddress; +//import java.net.InetAddress; import java.net.URI; import java.net.URISyntaxException; +import java.net.UnknownHostException; import org.onap.aaf.cadi.Access; import org.onap.aaf.cadi.Access.Level; @@ -39,13 +41,21 @@ public class DNSLocator implements SizedLocator<URI> { private Host[] hosts; private int startPort, endPort; private String suffix; + // Added for JUnit Purposes. Force correct responses in odd situations on tests + private final DNSLookup dnsLookup; private int size = 1; // initial, until refreshed. public DNSLocator(Access access, String protocol, String host, String range) { + this(access, protocol, host, range, DNSLookup.dflt); + } + + public DNSLocator(Access access, String protocol, String host, String range, DNSLookup dnsLookup) { this.host = host; this.protocol = protocol; this.access = access; + this.dnsLookup = dnsLookup; + int dash = range.indexOf('-'); if (dash<0) { startPort = endPort = Integer.parseInt(range); @@ -57,7 +67,12 @@ public class DNSLocator implements SizedLocator<URI> { } public DNSLocator(Access access, String aaf_locate) throws LocatorException { + this(access, aaf_locate, DNSLookup.dflt); + } + + public DNSLocator(Access access, String aaf_locate, DNSLookup dnsLookup) throws LocatorException { this.access = access; + this.dnsLookup = dnsLookup; if (aaf_locate==null) { throw new LocatorException("Null passed into DNSLocator constructor"); } @@ -148,7 +163,7 @@ public class DNSLocator implements SizedLocator<URI> { @Override public boolean refresh() { try { - InetAddress[] ias = InetAddress.getAllByName(host); + InetAddress[] ias = dnsLookup.getAllByName(host); Host[] temp = new Host[ias.length * (1 + endPort - startPort)]; int cnt = -1; for (int j=startPort; j<=endPort; ++j) { @@ -214,7 +229,24 @@ public class DNSLocator implements SizedLocator<URI> { return host; } - + + /** + * + * Some ISPs return InetEntries for bogus entries, making JUnit Testing difficult. + * We add this interface to force validly empty responses. + * We don't use Lambda at this point, so we can continue to support JKD 1.7 + * a while longer. + * + */ + public interface DNSLookup { + InetAddress[] getAllByName(String host) throws UnknownHostException; + public static final DNSLookup dflt = new DNSLookup() { + public InetAddress[] getAllByName(String host) throws UnknownHostException { + return InetAddress.getAllByName(host); + } + }; + } + private class Host { private URI uri; private InetAddress ia; |