summaryrefslogtreecommitdiffstats
path: root/cadi/client
diff options
context:
space:
mode:
Diffstat (limited to 'cadi/client')
-rw-r--r--cadi/client/src/main/java/org/onap/aaf/cadi/locator/PropertyLocator.java8
-rw-r--r--cadi/client/src/test/java/org/onap/aaf/cadi/locator/test/JU_DNSLocator.java2
-rw-r--r--cadi/client/src/test/java/org/onap/aaf/cadi/locator/test/JU_PropertyLocator.java134
-rw-r--r--cadi/client/src/test/java/org/onap/aaf/client/test/JU_TestAccess.java98
4 files changed, 81 insertions, 161 deletions
diff --git a/cadi/client/src/main/java/org/onap/aaf/cadi/locator/PropertyLocator.java b/cadi/client/src/main/java/org/onap/aaf/cadi/locator/PropertyLocator.java
index 9761937e..4591122c 100644
--- a/cadi/client/src/main/java/org/onap/aaf/cadi/locator/PropertyLocator.java
+++ b/cadi/client/src/main/java/org/onap/aaf/cadi/locator/PropertyLocator.java
@@ -137,7 +137,7 @@ public class PropertyLocator implements Locator<URI> {
@Override
public synchronized void invalidate(Item item) throws LocatorException {
- if(--end<=0) {
+ if(--end<0) {
refresh();
return;
}
@@ -186,7 +186,7 @@ public class PropertyLocator implements Locator<URI> {
URI o,n;
for(int j=0;j<ia.length;++j) {
o = orig[i];
- Socket socket = new Socket();
+ Socket socket = createSocket();
try {
realname=ia[j].getHostAddress().equals(ia[j].getHostName())?ia[j].getCanonicalHostName():ia[j].getHostName();
int port = o.getPort();
@@ -251,6 +251,10 @@ public class PropertyLocator implements Locator<URI> {
return false;
}
}
+
+ protected Socket createSocket() {
+ return new Socket();
+ }
private class PLItem implements Item {
public int idx,order;
diff --git a/cadi/client/src/test/java/org/onap/aaf/cadi/locator/test/JU_DNSLocator.java b/cadi/client/src/test/java/org/onap/aaf/cadi/locator/test/JU_DNSLocator.java
index 614cafbb..d9f75ff1 100644
--- a/cadi/client/src/test/java/org/onap/aaf/cadi/locator/test/JU_DNSLocator.java
+++ b/cadi/client/src/test/java/org/onap/aaf/cadi/locator/test/JU_DNSLocator.java
@@ -39,6 +39,7 @@ public class JU_DNSLocator {
@Test
public void test() {
+ // TODO: Actually test this class - Ian
DNSLocator dl = new DNSLocator(new PropAccess(), "https", "aaf.it.att.com","8150-8152");
try {
@@ -48,7 +49,6 @@ public class JU_DNSLocator {
URLConnection conn = url.openConnection();
conn.connect();
} catch (Exception e) {
- e.printStackTrace();
}
}
diff --git a/cadi/client/src/test/java/org/onap/aaf/cadi/locator/test/JU_PropertyLocator.java b/cadi/client/src/test/java/org/onap/aaf/cadi/locator/test/JU_PropertyLocator.java
index 5b13d277..b7558c02 100644
--- a/cadi/client/src/test/java/org/onap/aaf/cadi/locator/test/JU_PropertyLocator.java
+++ b/cadi/client/src/test/java/org/onap/aaf/cadi/locator/test/JU_PropertyLocator.java
@@ -21,80 +21,94 @@
package org.onap.aaf.cadi.locator.test;
+import static org.junit.Assert.*;
+import static org.hamcrest.CoreMatchers.*;
+import static org.mockito.Mockito.*;
+import org.junit.*;
+import org.mockito.*;
+
+import java.net.Socket;
import java.net.URI;
-import org.junit.AfterClass;
-import org.junit.Test;
import org.onap.aaf.cadi.Locator.Item;
+import org.onap.aaf.cadi.LocatorException;
import org.onap.aaf.cadi.locator.PropertyLocator;
-import static org.junit.Assert.*;
-
public class JU_PropertyLocator {
- @AfterClass
- public static void tearDownAfterClass() throws Exception {
+ @Mock
+ Socket socketMock;
+
+ @Before
+ public void setup() {
+ MockitoAnnotations.initMocks(this);
+
+ when(socketMock.isConnected()).thenReturn(true);
+ when(socketMock.isClosed()).thenReturn(true).thenReturn(false);
}
@Test
public void test() throws Exception {
+ String uris = "https://fred.wilma.com:26444,https://tom.jerry.com:[534-535]";
+ PropertyLocator pl = new PropertyLocator(uris, 0L, 1000*60*20L) {
+ @Override protected Socket createSocket() { return socketMock; }
+ };
+ String str = pl.toString();
+ assertThat(str.contains("https://fred.wilma.com:26444"), is(true));
+ assertThat(str.contains("https://tom.jerry.com:534"), is(true));
+ assertThat(str.contains("https://tom.jerry.com:535"), is(true));
+
+ Item item = pl.first();
+ assertThat(item.toString(), is("Item: 0 order: 0"));
+
+ URI uri = pl.get(item);
+ assertThat(uri.toString(), is("https://fred.wilma.com:26444"));
+
+ assertThat(pl.get(null), is(nullValue()));
+
+ assertThat(pl.hasItems(), is(true));
+
+ assertThat(countItems(pl), is(3));
+ pl.invalidate(pl.best());
- // TODO: Ian - Fix this test
- assertTrue(true);
+ assertThat(countItems(pl), is(2));
+ pl.invalidate(pl.best());
- // PropertyLocator pl = new PropertyLocator("https://localhost:2345,https://fred.wilma.com:26444,https://tom.jerry.com:534");
+ assertThat(countItems(pl), is(1));
+
+ pl.invalidate(pl.best());
+
+ assertThat(pl.hasItems(), is(false));
+ assertThat(countItems(pl), is(0));
+
+ pl.refresh();
+
+ assertThat(pl.hasItems(), is(true));
- // Item i;
- // int count;
- // boolean print = false;
- // for(int j=0;j<900000;++j) {
- // count = 0;
- // for(i = pl.first();i!=null;i=pl.next(i)) {
- // URI loc = pl.get(i);
- // if(print)System.out.println(loc.toString());
- // ++count;
- // }
- // assertEquals(3,count);
- // assertTrue(pl.hasItems());
- // if(print)System.out.println("---");
- // pl.invalidate(pl.best());
-
- // count = 0;
- // for(i = pl.first();i!=null;i=pl.next(i)) {
- // URI loc = pl.get(i);
- // if(print)System.out.println(loc.toString());
- // ++count;
- // }
-
- // assertEquals(2,count);
- // assertTrue(pl.hasItems());
- // if(print)System.out.println("---");
- // pl.invalidate(pl.best());
-
- // count = 0;
- // for(i = pl.first();i!=null;i=pl.next(i)) {
- // URI loc = pl.get(i);
- // if(print)System.out.println(loc.toString());
- // ++count;
- // }
-
- // assertEquals(1,count);
- // assertTrue(pl.hasItems());
- // if(print)System.out.println("---");
- // pl.invalidate(pl.best());
-
- // count = 0;
- // for(i = pl.first();i!=null;i=pl.next(i)) {
- // URI loc = pl.get(i);
- // if(print)System.out.println(loc.toString());
- // ++count;
- // }
-
- // assertEquals(0,count);
- // assertFalse(pl.hasItems());
-
- // pl.refresh();
- // }
+ assertThat(pl.next(null), is(nullValue()));
+
+ // coverage...
+ pl.invalidate(null);
+ pl.invalidate(null);
+ pl.invalidate(null);
+ pl.invalidate(null);
+
+ pl.destroy();
+
+ pl = new PropertyLocator(uris);
+ }
+
+ @Test(expected=LocatorException.class)
+ public void exceptionTest() throws LocatorException {
+ new PropertyLocator(null);
+ }
+
+ private int countItems(PropertyLocator pl) throws LocatorException {
+ int count = 0;
+ for(Item i = pl.first(); i != null; i = pl.next(i)) {
+ ++count;
+ }
+ return count;
}
}
diff --git a/cadi/client/src/test/java/org/onap/aaf/client/test/JU_TestAccess.java b/cadi/client/src/test/java/org/onap/aaf/client/test/JU_TestAccess.java
deleted file mode 100644
index 7c65fd0c..00000000
--- a/cadi/client/src/test/java/org/onap/aaf/client/test/JU_TestAccess.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*******************************************************************************
- * ============LICENSE_START====================================================
- * * org.onap.aaf
- * * ===========================================================================
- * * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
- * * ===========================================================================
- * * 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.
- * * See the License for the specific language governing permissions and
- * * limitations under the License.
- * * ============LICENSE_END====================================================
- * *
- * *
- ******************************************************************************/
-package org.onap.aaf.client.test;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Properties;
-
-import org.onap.aaf.cadi.Access;
-import org.onap.aaf.cadi.CadiException;
-import org.onap.aaf.cadi.Symm;
-
-// TODO: Ian [JUnit] JU_TestAccess isn't implementing all abstract methdods of Access
-public class JU_TestAccess implements Access {
- private Symm symm;
-
- public JU_TestAccess() throws CadiException {
- symm = Symm.obtain(this);
- }
-
- public void log(Level level, Object... elements) {
- boolean first = true;
- for(int i=0;i<elements.length;++i) {
- if(first)first = false;
- else System.out.print(' ');
- System.out.print(elements[i].toString());
- }
- System.out.println();
- }
-
- public void log(Exception e, Object... elements) {
- e.printStackTrace();
- log(Level.ERROR,elements);
- }
-
- @Override
- public void printf(Level level, String fmt, Object... elements) {
- if(willLog(level)) {
- System.out.printf(fmt, elements);
- }
- }
-
- public void setLogLevel(Level level) {
-
- }
-
- public ClassLoader classLoader() {
- return ClassLoader.getSystemClassLoader();
- }
-
- public String getProperty(String string, String def) {
- String rv = System.getProperty(string);
- return rv==null?def:rv;
- }
-
- public void load(InputStream is) throws IOException {
-
- }
-
- public String decrypt(String encrypted, boolean anytext) throws IOException {
- return (encrypted!=null && (anytext==true || encrypted.startsWith(Symm.ENC)))
- ? symm.depass(encrypted)
- : encrypted;
- }
-
- /* (non-Javadoc)
- * @see org.onap.aaf.cadi.Access#willLog(org.onap.aaf.cadi.Access.Level)
- */
- @Override
- public boolean willLog(Level level) {
- return true;
- }
-
- @Override
- public Properties getProperties() {
- return System.getProperties();
- }
-
-}