summaryrefslogtreecommitdiffstats
path: root/cadi
diff options
context:
space:
mode:
authorIanHowell <ian.howell@att.com>2018-04-17 08:17:47 -0500
committerIanHowell <ian.howell@att.com>2018-04-17 08:18:42 -0500
commit0b8d6377d7d67800f5059d56352c017f712ccbc2 (patch)
tree6fae08448529453c067e502763587da36d2f0fad /cadi
parent3726a143ad0cd0416e0aa8e1b1a3dc654e733dc7 (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')
-rw-r--r--cadi/aaf/src/test/java/org/onap/aaf/cadi/lur/aaf/test/JU_TestAccess.java127
-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
-rw-r--r--cadi/core/src/test/java/org/onap/aaf/cadi/test/JU_AES.java2
-rw-r--r--cadi/core/src/test/java/org/onap/aaf/cadi/test/JU_CmdLine.java27
-rw-r--r--cadi/core/src/test/java/org/onap/aaf/cadi/test/JU_PropAccess.java2
-rw-r--r--cadi/core/src/test/java/org/onap/aaf/cadi/test/JU_Symm.java2
-rw-r--r--cadi/core/src/test/java/org/onap/aaf/cadi/test/config/JU_UsersDump.java140
-rw-r--r--cadi/core/src/test/java/org/onap/aaf/cadi/test/wsse/JU_XReader.java2
-rw-r--r--cadi/core/src/test/resources/AESKeyFile (renamed from cadi/core/test/AESKeyFile)0
-rw-r--r--cadi/core/src/test/resources/CBUSevent.xml (renamed from cadi/core/test/CBUSevent.xml)0
-rw-r--r--cadi/core/src/test/resources/cadi.properties (renamed from cadi/core/test/cadi.properties)0
-rw-r--r--cadi/core/src/test/resources/cadi.properties.duplicate (renamed from cadi/core/test/cadi.properties.duplicate)0
-rw-r--r--cadi/core/src/test/resources/keyfile (renamed from cadi/core/test/keyfile)0
16 files changed, 227 insertions, 317 deletions
diff --git a/cadi/aaf/src/test/java/org/onap/aaf/cadi/lur/aaf/test/JU_TestAccess.java b/cadi/aaf/src/test/java/org/onap/aaf/cadi/lur/aaf/test/JU_TestAccess.java
deleted file mode 100644
index 1d19a425..00000000
--- a/cadi/aaf/src/test/java/org/onap/aaf/cadi/lur/aaf/test/JU_TestAccess.java
+++ /dev/null
@@ -1,127 +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.cadi.lur.aaf.test;
-
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.PrintStream;
-import java.util.Properties;
-
-import org.onap.aaf.cadi.Access;
-import org.onap.aaf.cadi.Symm;
-import org.onap.aaf.cadi.config.Config;
-
-public class JU_TestAccess implements Access {
- private Symm symm;
- private PrintStream out;
-
- public JU_TestAccess(PrintStream out) {
- this.out = out;
- InputStream is = ClassLoader.getSystemResourceAsStream("cadi.properties");
- try {
- System.getProperties().load(is);
- } catch (IOException e) {
- e.printStackTrace(out);
- } finally {
- try {
- is.close();
- } catch (IOException e) {
- e.printStackTrace(out);
- }
- }
-
- String keyfile = System.getProperty(Config.CADI_KEYFILE);
- if(keyfile==null) {
- System.err.println("No " + Config.CADI_KEYFILE + " in Classpath");
- } else {
- try {
- is = new FileInputStream(keyfile);
- try {
- symm = Symm.obtain(is);
- } finally {
- is.close();
- }
- } catch (IOException e) {
- e.printStackTrace(out);
- }
- }
-
-
-
- }
-
- public void log(Level level, Object... elements) {
- boolean first = true;
- for(int i=0;i<elements.length;++i) {
- if(first)first = false;
- else out.print(' ');
- out.print(elements[i].toString());
- }
- out.println();
- }
-
- public void log(Exception e, Object... elements) {
- e.printStackTrace(out);
- log(Level.ERROR,elements);
- }
-
- public void setLogLevel(Level level) {
-
- }
-
- @Override
- public boolean willLog(Level level) {
- return true;
- }
-
- public ClassLoader classLoader() {
- return ClassLoader.getSystemClassLoader();
- }
-
- public String getProperty(String string, String def) {
- String rv = System.getProperty(string);
- return rv==null?def:rv;
- }
-
- @Override
- public Properties getProperties() {
- return System.getProperties();
- }
-
- 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;
- }
-
- @Override
- public void printf(Level level, String fmt, Object... elements) {
- // TODO Auto-generated method stub
-
- }
-
-}
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();
- }
-
-}
diff --git a/cadi/core/src/test/java/org/onap/aaf/cadi/test/JU_AES.java b/cadi/core/src/test/java/org/onap/aaf/cadi/test/JU_AES.java
index f872a56b..d78706dc 100644
--- a/cadi/core/src/test/java/org/onap/aaf/cadi/test/JU_AES.java
+++ b/cadi/core/src/test/java/org/onap/aaf/cadi/test/JU_AES.java
@@ -104,7 +104,7 @@ public class JU_AES {
@Test
public void saveToFileTest() throws Exception {
- String filePath = "test/output_key";
+ String filePath = "src/test/resources/output_key";
File keyfile = new File(filePath);
aes.save(keyfile);
assertTrue(Files.isReadable(Paths.get(filePath)));
diff --git a/cadi/core/src/test/java/org/onap/aaf/cadi/test/JU_CmdLine.java b/cadi/core/src/test/java/org/onap/aaf/cadi/test/JU_CmdLine.java
index b2820db2..31e5d32c 100644
--- a/cadi/core/src/test/java/org/onap/aaf/cadi/test/JU_CmdLine.java
+++ b/cadi/core/src/test/java/org/onap/aaf/cadi/test/JU_CmdLine.java
@@ -21,18 +21,15 @@
******************************************************************************/
package org.onap.aaf.cadi.test;
-import static org.mockito.Matchers.*;
import static org.junit.Assert.*;
import static org.hamcrest.CoreMatchers.*;
import org.junit.*;
import org.mockito.*;
-import static org.mockito.Mockito.*;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
-import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintStream;
@@ -43,7 +40,6 @@ import java.util.Properties;
import org.onap.aaf.cadi.CmdLine;
import org.onap.aaf.cadi.PropAccess;
import org.onap.aaf.cadi.Symm;
-import org.onap.aaf.cadi.util.Chmod;
public class JU_CmdLine {
@@ -69,29 +65,10 @@ public class JU_CmdLine {
p.setProperty("force_exit", "false");
CmdLine.access = new PropAccess(p);
- File test = new File("test");
- if(test.exists()) {
- if(!test.isDirectory()) {
- test.delete();
- test.mkdirs();
- }
- } else {
- test.mkdirs();
- }
-
- File keyF= new File(test,"keyfile");
- if(!keyF.exists()) {
- FileOutputStream fos = new FileOutputStream(keyF);
- try {
- fos.write(Symm.keygen());
- fos.flush();
- } finally {
- fos.close();
- }
- }
- keyfile = "test/keyfile";
+ keyfile = "src/test/resources/keyfile";
password = "password";
+ File keyF = new File("src/test/resources", "keyfile");
FileInputStream fis = new FileInputStream(keyF);
try {
symm = Symm.obtain(fis);
diff --git a/cadi/core/src/test/java/org/onap/aaf/cadi/test/JU_PropAccess.java b/cadi/core/src/test/java/org/onap/aaf/cadi/test/JU_PropAccess.java
index d74648a4..7b5da6c1 100644
--- a/cadi/core/src/test/java/org/onap/aaf/cadi/test/JU_PropAccess.java
+++ b/cadi/core/src/test/java/org/onap/aaf/cadi/test/JU_PropAccess.java
@@ -72,7 +72,7 @@ public class JU_PropAccess {
Properties testSystemProps = new Properties(System.getProperties());
testSystemProps.setProperty("cadi_name", "user");
System.setProperties(testSystemProps);
- PropAccess prop = new PropAccess("cadi_keyfile=test/keyfile", "cadi_loglevel=DEBUG", "cadi_prop_files=test/cadi.properties:not_a_file");
+ PropAccess prop = new PropAccess("cadi_keyfile=src/test/resources/keyfile", "cadi_loglevel=DEBUG", "cadi_prop_files=test/cadi.properties:not_a_file");
}
@Test
diff --git a/cadi/core/src/test/java/org/onap/aaf/cadi/test/JU_Symm.java b/cadi/core/src/test/java/org/onap/aaf/cadi/test/JU_Symm.java
index 57cc2229..753451ed 100644
--- a/cadi/core/src/test/java/org/onap/aaf/cadi/test/JU_Symm.java
+++ b/cadi/core/src/test/java/org/onap/aaf/cadi/test/JU_Symm.java
@@ -190,7 +190,7 @@ public class JU_Symm {
@Test
public void AccessObtainTest() throws Exception {
- PropAccess pa = new PropAccess("cadi_keyfile=test/keyfile");
+ PropAccess pa = new PropAccess("cadi_keyfile=src/test/resources/keyfile");
Symm symm = Symm.obtain(pa);
String orig ="Another Password, please";
String encrypted = symm.enpass(orig);
diff --git a/cadi/core/src/test/java/org/onap/aaf/cadi/test/config/JU_UsersDump.java b/cadi/core/src/test/java/org/onap/aaf/cadi/test/config/JU_UsersDump.java
new file mode 100644
index 00000000..f6e366a7
--- /dev/null
+++ b/cadi/core/src/test/java/org/onap/aaf/cadi/test/config/JU_UsersDump.java
@@ -0,0 +1,140 @@
+/*******************************************************************************
+ * * 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.cadi.test.config;
+
+import static org.junit.Assert.*;
+import static org.hamcrest.CoreMatchers.*;
+import static org.mockito.Mockito.*;
+import org.junit.*;
+import org.mockito.*;
+
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.IOException;
+import java.io.PrintStream;
+
+import org.onap.aaf.cadi.AbsUserCache;
+import org.onap.aaf.cadi.PropAccess;
+import org.onap.aaf.cadi.config.UsersDump;
+import org.onap.aaf.cadi.lur.LocalLur;
+import org.onap.aaf.cadi.lur.LocalPermission;
+import org.onap.aaf.cadi.util.Split;
+
+public class JU_UsersDump {
+
+ private ByteArrayOutputStream outStream;
+ private ByteArrayOutputStream stdoutSuppressor;
+
+ private static final String expected = "<?xml version='1.0' encoding='utf-8'?>\n" +
+ "<!--\n" +
+ " Code Generated Tomcat Users and Roles from AT&T LUR on ...\n" +
+ "-->\n" +
+ "<tomcat-users>\n" +
+ " <role rolename=\"suser\"/>\n" +
+ " <role rolename=\"admin\"/>\n" +
+ " <role rolename=\"groupB\"/>\n" +
+ " <role rolename=\"groupA\"/>\n" +
+ " \n" +
+ " <user username=\"yourname@none\" roles=\"admin\"/>\n" +
+ " <user username=\"m1234@none\" roles=\"suser\"/>\n" +
+ " <user username=\"hisname@none\" roles=\"suser\"/>\n" +
+ " <user username=\"hername@none\" roles=\"suser\"/>\n" +
+ " <user username=\"myname\" roles=\"groupB,groupA\"/>\n" +
+ " <user username=\"myname@none\" roles=\"admin\"/>\n" +
+ "</tomcat-users>\n";
+
+ private final static String groups = "myname:groupA,groupB";
+ private final static String names = "admin:myname,yourname;suser:hisname,hername,m1234";
+
+ private AbsUserCache<LocalPermission> lur;
+
+ @Before
+ public void setup() throws IOException {
+ outStream = new ByteArrayOutputStream();
+ stdoutSuppressor = new ByteArrayOutputStream();
+
+ System.setOut(new PrintStream(stdoutSuppressor));
+
+ lur = new LocalLur(new PropAccess(), groups, names);
+ }
+
+ @After
+ public void tearDown() {
+ System.setOut(System.out);
+ }
+
+ @Test
+ public void writeTest() throws IOException {
+ UsersDump.write(outStream, lur);
+ String[] actualLines = Split.splitTrim('\n', outStream.toString());
+ String[] expectedLines = Split.splitTrim('\n', expected);
+
+ assertThat(actualLines.length, is(expectedLines.length));
+
+ // Check that the output starts with an XML tag
+ assertThat(actualLines[0], is(expectedLines[0]));
+ // Check that lines 2-4 are a comment
+ assertThat(actualLines[1], is(expectedLines[1]));
+ assertThat(actualLines[3], is(expectedLines[3]));
+
+ // Check that the rest of the output matches the expected output
+ for (int i = 4; i < actualLines.length; i++) {
+ assertThat(actualLines[i], is(expectedLines[i]));
+ }
+
+ // Run the test again with outStream as a PrintStream (for coverage)
+ outStream.reset();
+ UsersDump.write(new PrintStream(outStream), lur);
+ actualLines = Split.splitTrim('\n', outStream.toString());
+
+ assertThat(actualLines.length, is(expectedLines.length));
+
+ // Check that the output starts with an XML tag
+ assertThat(actualLines[0], is(expectedLines[0]));
+ // Check that lines 2-4 are a comment
+ assertThat(actualLines[1], is(expectedLines[1]));
+ assertThat(actualLines[3], is(expectedLines[3]));
+
+ // Check that the rest of the output matches the expected output
+ for (int i = 4; i < actualLines.length; i++) {
+ assertThat(actualLines[i], is(expectedLines[i]));
+ }
+ }
+
+ @Test
+ public void updateUsersTest() {
+ String output;
+ File outputFile = new File("src/test/resources/userdump.xml");
+ assertThat(outputFile.exists(), is(false));
+
+ output = UsersDump.updateUsers("src/test/resources/userdump.xml", (LocalLur) lur);
+ assertThat(output, is(nullValue()));
+ assertThat(outputFile.exists(), is(true));
+
+ output = UsersDump.updateUsers("src/test/resources/userdump.xml", (LocalLur) lur);
+ assertThat(output, is(nullValue()));
+ assertThat(outputFile.exists(), is(true));
+
+ outputFile.delete();
+ }
+
+}
diff --git a/cadi/core/src/test/java/org/onap/aaf/cadi/test/wsse/JU_XReader.java b/cadi/core/src/test/java/org/onap/aaf/cadi/test/wsse/JU_XReader.java
index b07cd296..dd90e220 100644
--- a/cadi/core/src/test/java/org/onap/aaf/cadi/test/wsse/JU_XReader.java
+++ b/cadi/core/src/test/java/org/onap/aaf/cadi/test/wsse/JU_XReader.java
@@ -39,7 +39,7 @@ import org.onap.aaf.cadi.wsse.XReader;
public class JU_XReader {
- private final static String TEST_DIR_NAME = "test";
+ private final static String TEST_DIR_NAME = "src/test/resources";
private final static String TEST_XML_NAME = "test.xml";
private static File testXML;
diff --git a/cadi/core/test/AESKeyFile b/cadi/core/src/test/resources/AESKeyFile
index 35795c34..35795c34 100644
--- a/cadi/core/test/AESKeyFile
+++ b/cadi/core/src/test/resources/AESKeyFile
diff --git a/cadi/core/test/CBUSevent.xml b/cadi/core/src/test/resources/CBUSevent.xml
index 15fc5f22..15fc5f22 100644
--- a/cadi/core/test/CBUSevent.xml
+++ b/cadi/core/src/test/resources/CBUSevent.xml
diff --git a/cadi/core/test/cadi.properties b/cadi/core/src/test/resources/cadi.properties
index b84509b2..b84509b2 100644
--- a/cadi/core/test/cadi.properties
+++ b/cadi/core/src/test/resources/cadi.properties
diff --git a/cadi/core/test/cadi.properties.duplicate b/cadi/core/src/test/resources/cadi.properties.duplicate
index 03c04d02..03c04d02 100644
--- a/cadi/core/test/cadi.properties.duplicate
+++ b/cadi/core/src/test/resources/cadi.properties.duplicate
diff --git a/cadi/core/test/keyfile b/cadi/core/src/test/resources/keyfile
index e84bd616..e84bd616 100644
--- a/cadi/core/test/keyfile
+++ b/cadi/core/src/test/resources/keyfile