From 435dd0a1615ab60fbe9d305966be7815b613be4e Mon Sep 17 00:00:00 2001 From: John McClung Date: Mon, 9 Apr 2018 10:25:27 -0400 Subject: [PATCH] Add junit coverage to UnmodifiableProperties class Introduce junit-tests for EncryptionTool class Change-Id: Ia6a727ae5b224c152d2615a32f1b91aaeeb2eb60 Issue-ID: APPC-836 Signed-off-by: John McClung --- .../onap/appc/util/UnmodifiablePropertiesTest.java | 178 ++++++++++++++++++++- 1 file changed, 173 insertions(+), 5 deletions(-) diff --git a/appc-common/src/test/java/org/onap/appc/util/UnmodifiablePropertiesTest.java b/appc-common/src/test/java/org/onap/appc/util/UnmodifiablePropertiesTest.java index d238dc352..87646d9c7 100644 --- a/appc-common/src/test/java/org/onap/appc/util/UnmodifiablePropertiesTest.java +++ b/appc-common/src/test/java/org/onap/appc/util/UnmodifiablePropertiesTest.java @@ -23,7 +23,17 @@ package org.onap.appc.util; import org.junit.Assert; import org.junit.Before; import org.junit.Test; - +import org.mockito.Mockito; +import org.hamcrest.CoreMatchers; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.PrintWriter; +import java.io.StringWriter; +import java.io.InputStream; +import java.io.OutputStream; +import java.io.PrintStream; +import java.io.StringReader; +import java.util.Enumeration; import java.util.Properties; public class UnmodifiablePropertiesTest { @@ -34,6 +44,7 @@ public class UnmodifiablePropertiesTest { private static final String propValue2 = "testValue2"; private static final String noKey = "unusedKey"; private static final String noValue = "unusedValue"; + private static final String propHeader = "test header"; private Properties properties = new Properties(); private UnmodifiableProperties unmodifiableProperties = new UnmodifiableProperties(properties); @@ -83,11 +94,18 @@ public class UnmodifiablePropertiesTest { Assert.assertFalse(unmodifiableProperties.containsValue(noValue)); } + @Test + public final void testElements() { + Enumeration propValues = unmodifiableProperties.elements(); + Assert.assertEquals(propValue2, propValues.nextElement()); + Assert.assertEquals(propValue1, propValues.nextElement()); + } + @Test public final void testEntrySet() { - // Should match my properties K/V entries in setUp. // Expect entrySet=[testKey2=testValue2, testKey1=testValue1]. - Assert.assertEquals(properties.entrySet(), unmodifiableProperties.entrySet()); + Assert.assertEquals("Should match my properties K/V entries in setUp", properties.entrySet(), + unmodifiableProperties.entrySet()); } @Test @@ -111,11 +129,92 @@ public class UnmodifiablePropertiesTest { Assert.assertEquals(propValue2, unmodifiableProperties.getProperty(noKey, propValue2)); } + @Test + public final void testHashCode() { + Assert.assertEquals("Should match my properties.hashcode() int.", properties.hashCode(), + unmodifiableProperties.hashCode()); + } + @Test public final void testIsEmpty() { Assert.assertFalse(unmodifiableProperties.isEmpty()); } + @Test + public final void testKeys() { + Enumeration propKeys = unmodifiableProperties.keys(); + Assert.assertEquals(propKey2, propKeys.nextElement()); + Assert.assertEquals(propKey1, propKeys.nextElement()); + } + + @Test + public final void testKeySet() { + // Expect keySet=[testKey2, testKey1]. + Assert.assertEquals("Should match my properties key entries in SetUp", properties.keySet(), + unmodifiableProperties.keySet()); + } + + @Test + public final void testListPrintStream() { + ByteArrayOutputStream propByteArray = new ByteArrayOutputStream(); + PrintStream listOut = new PrintStream(propByteArray); + unmodifiableProperties.list(listOut); + String propList = new String(propByteArray.toByteArray()); + Assert.assertThat(propList, CoreMatchers.containsString("testKey2=testValue2")); + Assert.assertThat(propList, CoreMatchers.containsString("testKey1=testValue1")); + } + + @Test + public final void testListPrintWriter() { + StringWriter listOut = new StringWriter(); + PrintWriter writer = new PrintWriter(listOut); + unmodifiableProperties.list(writer); + String propList = listOut.toString(); + Assert.assertThat(propList, CoreMatchers.containsString("testKey2=testValue2")); + Assert.assertThat(propList, CoreMatchers.containsString("testKey1=testValue1")); + } + + @Test + public final void testLoadInputStream() throws IOException { + InputStream mockInStream = Mockito.mock(InputStream.class); + try { + unmodifiableProperties.load(mockInStream); + } catch (IOException ex) { + } catch (UnsupportedOperationException exceptionMessage) { + Assert.assertEquals(desiredMessage, exceptionMessage.getMessage()); + } + } + + @Test(expected = UnsupportedOperationException.class) + public final void testLoadReader() throws IOException { + String dummyPair = "key3=testKey3\nvalue3=testValue3"; + StringReader reader = new StringReader(dummyPair); + try { + unmodifiableProperties.load(reader); + } catch (UnsupportedOperationException exceptionMessage) { + Assert.assertEquals(desiredMessage, exceptionMessage.getMessage()); + throw exceptionMessage; + } + } + + @Test + public final void testLoadFromXMLInputStream() throws IOException { + InputStream mockInStream = Mockito.mock(InputStream.class); + try { + unmodifiableProperties.loadFromXML(mockInStream); + } catch (IOException ex) { + } catch (UnsupportedOperationException exceptionMessage) { + Assert.assertEquals(desiredMessage, exceptionMessage.getMessage()); + } + } + + @Test + public final void testPropertyNames() { + Enumeration propNames = unmodifiableProperties.propertyNames(); + Assert.assertEquals(propKey2, propNames.nextElement()); + Assert.assertEquals(propKey1, propNames.nextElement()); + } + @Test(expected = UnsupportedOperationException.class) public final void testPutObjectObject() { try { @@ -126,6 +225,16 @@ public class UnmodifiablePropertiesTest { } } + @Test(expected = UnsupportedOperationException.class) + public final void testPutAllMapOfQextendsObjectQextendsObject() { + try { + unmodifiableProperties.putAll(properties); + } catch (UnsupportedOperationException exceptionMessage) { + Assert.assertEquals(desiredMessage, exceptionMessage.getMessage()); + throw exceptionMessage; + } + } + @Test(expected = UnsupportedOperationException.class) public final void testRehash() { try { @@ -146,6 +255,16 @@ public class UnmodifiablePropertiesTest { } } + @Test + public final void testSaveOutputStreamString() { + // Appl method is deprecated, but I still added this test since it is reachable. + OutputStream propByteArray = new ByteArrayOutputStream(); + unmodifiableProperties.save(propByteArray, propHeader); + Assert.assertThat(propByteArray.toString(), CoreMatchers.startsWith("#test header")); + Assert.assertThat(propByteArray.toString(), CoreMatchers.containsString("testKey2=testValue2")); + Assert.assertThat(propByteArray.toString(), CoreMatchers.containsString("testKey1=testValue1")); + } + @Test(expected = UnsupportedOperationException.class) public final void testSetPropertyStringString() { try { @@ -161,14 +280,63 @@ public class UnmodifiablePropertiesTest { Assert.assertEquals(2, unmodifiableProperties.size()); } + @Test + public final void testStoreOutputStreamString() throws IOException { + OutputStream propByteArray = new ByteArrayOutputStream(); + unmodifiableProperties.store(propByteArray, propHeader); + // adds comment header and streams/appends properties file into propByteArray + // expected = "#test header\n#\ntestKey2=testValue2\ntestKey1=testValue1" + Assert.assertThat(propByteArray.toString(), CoreMatchers.startsWith("#test header")); + Assert.assertThat(propByteArray.toString(), CoreMatchers.containsString("testKey2=testValue2")); + Assert.assertThat(propByteArray.toString(), CoreMatchers.containsString("testKey1=testValue1")); + } + + @Test + public final void testStoreWriterString() throws IOException { + StringWriter writer = new StringWriter(); + unmodifiableProperties.store(writer, propHeader); + Assert.assertThat(writer.toString(), CoreMatchers.startsWith("#test header")); + Assert.assertThat(writer.toString(), CoreMatchers.containsString("testKey2=testValue2")); + Assert.assertThat(writer.toString(), CoreMatchers.containsString("testKey1=testValue1")); + } + + @Test + public final void testStoreToXMLOutputStreamString() throws IOException { + OutputStream propByteArray = new ByteArrayOutputStream(); + unmodifiableProperties.storeToXML(propByteArray, propHeader); + // adds XML comment header and streams/appends XML properties file into propByteArray + Assert.assertThat(propByteArray.toString(), CoreMatchers.containsString("test header")); + Assert.assertThat(propByteArray.toString(), + CoreMatchers.containsString("testValue2")); + Assert.assertThat(propByteArray.toString(), + CoreMatchers.containsString("testValue1")); + } + + @Test + public final void testStoreToXMLOutputStreamStringString() throws IOException { + OutputStream propByteArray = new ByteArrayOutputStream(); + unmodifiableProperties.storeToXML(propByteArray, propHeader, "UTF-8"); + // adds XML comment header and streams/appends XML properties file into propByteArray + Assert.assertThat(propByteArray.toString(), CoreMatchers.containsString("test header")); + Assert.assertThat(propByteArray.toString(), + CoreMatchers.containsString("testValue2")); + Assert.assertThat(propByteArray.toString(), + CoreMatchers.containsString("testValue1")); + } + @Test public final void testStringPropertyNames() { - Assert.assertEquals(properties.stringPropertyNames(),unmodifiableProperties.stringPropertyNames()); + Assert.assertEquals(properties.stringPropertyNames(), unmodifiableProperties.stringPropertyNames()); } @Test public final void testToString() { // toString=[{testKey2=testValue2, testKey1=testValue1}] - Assert.assertEquals(properties.toString(),unmodifiableProperties.toString()); + Assert.assertEquals(properties.toString(), unmodifiableProperties.toString()); + } + + @Test + public final void testValues() { + Assert.assertEquals(properties.values().toString(), unmodifiableProperties.values().toString()); } } -- 2.16.6