diff options
author | IanHowell <ian.howell@att.com> | 2018-04-17 08:17:47 -0500 |
---|---|---|
committer | IanHowell <ian.howell@att.com> | 2018-04-17 08:18:42 -0500 |
commit | 0b8d6377d7d67800f5059d56352c017f712ccbc2 (patch) | |
tree | 6fae08448529453c067e502763587da36d2f0fad /cadi/client/src | |
parent | 3726a143ad0cd0416e0aa8e1b1a3dc654e733dc7 (diff) |
Improve coverage of Cadi
Improved coverage of tests in cadi-core, cadi-aaf, and cadi-client
Issue-ID: AAF-128
Change-Id: Ie7df52ede1586d127098937f8d42cc6314e7eaa7
Signed-off-by: IanHowell <ian.howell@att.com>
Diffstat (limited to 'cadi/client/src')
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(); - } - -} |