Fix DNSLocator JUnit
[aaf/authz.git] / cadi / client / src / test / java / org / onap / aaf / cadi / locator / test / JU_DNSLocator.java
index 9b5bbaf..77213e6 100644 (file)
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- * 
+ *
  *      http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 
 package org.onap.aaf.cadi.locator.test;
 
-import static org.junit.Assert.*;
-import static org.hamcrest.CoreMatchers.*;
-import org.junit.*;
+import static org.hamcrest.CoreMatchers.is;
+import static org.junit.Assert.assertThat;
+import static org.junit.Assert.fail;
 
 import java.io.ByteArrayOutputStream;
 import java.io.PrintStream;
+import java.net.InetAddress;
 import java.net.URI;
+import java.net.UnknownHostException;
 
+import org.junit.Before;
+import org.junit.Test;
+import org.onap.aaf.cadi.Access.Level;
+import org.onap.aaf.cadi.Locator.Item;
 import org.onap.aaf.cadi.LocatorException;
 import org.onap.aaf.cadi.PropAccess;
-import org.onap.aaf.cadi.Locator.Item;
 import org.onap.aaf.cadi.locator.DNSLocator;
 
 public class JU_DNSLocator {
-    
+
     private PropAccess access;
-    
+
     @Before
     public void setup() {
         access = new PropAccess(new PrintStream(new ByteArrayOutputStream()), new String[0]);
@@ -50,12 +55,12 @@ public class JU_DNSLocator {
         URI uri;
 
         dl = new DNSLocator(access, "https", "localhost", "8100-8101");
-        
+
         item = dl.best();
         uri = dl.get(item);
-        assertThat(uri.toString(), is("https://127.0.0.1:8100"));
+        assertThat(uri.toString(), is("https://localhost:8100"));
         item = dl.best();
-        assertThat(uri.toString(), is("https://127.0.0.1:8100"));
+        assertThat(uri.toString(), is("https://localhost:8100"));
 
         assertThat(dl.hasItems(), is(true));
         for (item = dl.first(); item != null; item = dl.next(item)) {
@@ -63,30 +68,47 @@ public class JU_DNSLocator {
         }
         assertThat(dl.hasItems(), is(false));
 
-        // This doesn't actually do anything besides increase coverage 
+        // This doesn't actually do anything besides increase coverage
         dl.destroy();
     }
-    
+
     @Test
     public void constructorTest() throws LocatorException {
         // For coverage
         new DNSLocator(access, "https", "localhost", "8100");
         new DNSLocator(access, "https", "localhost", "8100-8101");
 
-        new DNSLocator(access, "http:localhost");
-        new DNSLocator(access, "https:localhost");
-        new DNSLocator(access, "https:localhost:8100");
-        new DNSLocator(access, "https:localhost:[8100]");
-        new DNSLocator(access, "https:localhost:[8100-8101]");
-        new DNSLocator(access, "https:localhost:8000/");
+        new DNSLocator(access, "http://localhost");
+        new DNSLocator(access, "https://localhost");
+        new DNSLocator(access, "https://localhost:8100");
+        new DNSLocator(access, "https://localhost:[8100]");
+        new DNSLocator(access, "https://localhost:[8100-8101]");
+        new DNSLocator(access, "https://localhost:8000/");
+        new DNSLocator(access, "https://aaf-locatexx.onapxxx:8095/locate");
+        try {
+            new DNSLocator(access, "https:localhost:8000");
+            fail("Invalid URL should not pass");
+        } catch (LocatorException e) {
+            access.log(Level.DEBUG, "Valid Exception");
+
+        }
     }
-    
+
     @Test
     public void refreshTest() throws LocatorException {
-        DNSLocator dl = new DNSLocator(access, "https", "bogushost", "8100-8101");
-        assertThat(dl.refresh(), is(false));
+        DNSLocator dl = new DNSLocator(access, "https", "bogushost", "8100-8101",
+               // Note: Lambda would be nice but need JDK 1.7 still
+               // PowerMock couldn't do InetAddress
+               new DNSLocator.DNSLookup() {
+                               @Override
+                               public InetAddress[] getAllByName(String host) throws UnknownHostException {
+                                       return new InetAddress[0];
+                               }
+               }
+        );
+        assertThat(dl.refresh(), is(true));
     }
-    
+
     @Test(expected = LocatorException.class)
     public void throws1Test() throws LocatorException {
         new DNSLocator(access, null);