-/*-\r
- * ============LICENSE_START=======================================================\r
- * ONAP : APPC\r
- * ================================================================================\r
- * Copyright (C) 2018 AT&T Intellectual Property. All rights reserved.\r
- * =============================================================================\r
- * Licensed under the Apache License, Version 2.0 (the "License");\r
- * you may not use this file except in compliance with the License.\r
- * You may obtain a copy of the License at\r
- *\r
- * http://www.apache.org/licenses/LICENSE-2.0\r
- *\r
- * Unless required by applicable law or agreed to in writing, software\r
- * distributed under the License is distributed on an "AS IS" BASIS,\r
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
- * See the License for the specific language governing permissions and\r
- * limitations under the License.\r
- * ============LICENSE_END=========================================================\r
- */\r
-\r
-package org.onap.appc.util;\r
-\r
-import org.junit.Assert;\r
-import org.junit.Before;\r
-import org.junit.Test;\r
-import org.mockito.Mockito;\r
-import org.hamcrest.CoreMatchers;\r
-import java.io.ByteArrayOutputStream;\r
-import java.io.IOException;\r
-import java.io.PrintWriter;\r
-import java.io.StringWriter;\r
-import java.io.InputStream;\r
-import java.io.OutputStream;\r
-import java.io.PrintStream;\r
-import java.io.StringReader;\r
-import java.util.Enumeration;\r
-import java.util.Properties;\r
-\r
-public class UnmodifiablePropertiesTest {\r
-\r
- private static final String propKey1 = "testKey1";\r
- private static final String propKey2 = "testKey2";\r
- private static final String propValue1 = "testValue1";\r
- private static final String propValue2 = "testValue2";\r
- private static final String noKey = "unusedKey";\r
- private static final String noValue = "unusedValue";\r
- private static final String propHeader = "test header";\r
- private Properties properties = new Properties();\r
-\r
- private UnmodifiableProperties unmodifiableProperties = new UnmodifiableProperties(properties);\r
- private String desiredMessage = "Property cannot be modified!";\r
-\r
- @Before\r
- public void setUp() throws Exception {\r
- properties.setProperty(propKey1, propValue1);\r
- properties.setProperty(propKey2, propValue2);\r
- }\r
-\r
- @Test(expected = UnsupportedOperationException.class)\r
- public void testClear() {\r
- try {\r
- unmodifiableProperties.clear();\r
- } catch (UnsupportedOperationException exceptionMessage) {\r
- Assert.assertEquals(desiredMessage, exceptionMessage.getMessage());\r
- throw exceptionMessage;\r
- }\r
- }\r
-\r
- @Test(expected = UnsupportedOperationException.class)\r
- public void testClone() {\r
- try {\r
- unmodifiableProperties.clone();\r
- } catch (UnsupportedOperationException exceptionMessage) {\r
- Assert.assertEquals(desiredMessage, exceptionMessage.getMessage());\r
- throw exceptionMessage;\r
- }\r
- }\r
-\r
- @Test\r
- public final void testContainsObject() {\r
- Assert.assertTrue(unmodifiableProperties.contains(propValue2));\r
- Assert.assertFalse(unmodifiableProperties.contains(noValue));\r
- }\r
-\r
- @Test\r
- public final void testContainsKeyObject() {\r
- Assert.assertTrue(unmodifiableProperties.containsKey(propKey1));\r
- Assert.assertFalse(unmodifiableProperties.containsKey(noKey));\r
- }\r
-\r
- @Test\r
- public final void testContainsValueObject() {\r
- Assert.assertTrue(unmodifiableProperties.containsValue(propValue1));\r
- Assert.assertFalse(unmodifiableProperties.containsValue(noValue));\r
- }\r
-\r
- @Test\r
- public final void testElements() {\r
- Enumeration<Object> propValues = unmodifiableProperties.elements();\r
- Assert.assertEquals(propValue2, propValues.nextElement());\r
- Assert.assertEquals(propValue1, propValues.nextElement());\r
- }\r
-\r
- @Test\r
- public final void testEntrySet() {\r
- // Expect entrySet=[testKey2=testValue2, testKey1=testValue1].\r
- Assert.assertEquals("Should match my properties K/V entries in setUp", properties.entrySet(),\r
- unmodifiableProperties.entrySet());\r
- }\r
-\r
- @Test\r
- public final void testEqualsObject() {\r
- Assert.assertTrue(unmodifiableProperties.equals(properties));\r
- }\r
-\r
- @Test\r
- public final void testGetObject() {\r
- Assert.assertEquals(propValue2, unmodifiableProperties.get(propKey2));\r
- }\r
-\r
- @Test\r
- public final void testGetPropertyString() {\r
- Assert.assertEquals(propValue1, unmodifiableProperties.getProperty("testKey1"));\r
- }\r
-\r
- @Test\r
- public final void testGetPropertyStringString() {\r
- Assert.assertEquals(propValue2, unmodifiableProperties.getProperty(propKey2, noValue));\r
- Assert.assertEquals(propValue2, unmodifiableProperties.getProperty(noKey, propValue2));\r
- }\r
-\r
- @Test\r
- public final void testHashCode() {\r
- Assert.assertEquals("Should match my properties.hashcode() int.", properties.hashCode(),\r
- unmodifiableProperties.hashCode());\r
- }\r
-\r
- @Test\r
- public final void testIsEmpty() {\r
- Assert.assertFalse(unmodifiableProperties.isEmpty());\r
- }\r
-\r
- @Test\r
- public final void testKeys() {\r
- Enumeration<Object> propKeys = unmodifiableProperties.keys();\r
- Assert.assertEquals(propKey2, propKeys.nextElement());\r
- Assert.assertEquals(propKey1, propKeys.nextElement());\r
- }\r
-\r
- @Test\r
- public final void testKeySet() {\r
- // Expect keySet=[testKey2, testKey1].\r
- Assert.assertEquals("Should match my properties key entries in SetUp", properties.keySet(),\r
- unmodifiableProperties.keySet());\r
- }\r
-\r
- @Test\r
- public final void testListPrintStream() {\r
- ByteArrayOutputStream propByteArray = new ByteArrayOutputStream();\r
- PrintStream listOut = new PrintStream(propByteArray);\r
- unmodifiableProperties.list(listOut);\r
- String propList = new String(propByteArray.toByteArray());\r
- Assert.assertThat(propList, CoreMatchers.containsString("testKey2=testValue2"));\r
- Assert.assertThat(propList, CoreMatchers.containsString("testKey1=testValue1"));\r
- }\r
-\r
- @Test\r
- public final void testListPrintWriter() {\r
- StringWriter listOut = new StringWriter();\r
- PrintWriter writer = new PrintWriter(listOut);\r
- unmodifiableProperties.list(writer);\r
- String propList = listOut.toString();\r
- Assert.assertThat(propList, CoreMatchers.containsString("testKey2=testValue2"));\r
- Assert.assertThat(propList, CoreMatchers.containsString("testKey1=testValue1"));\r
- }\r
-\r
- @Test\r
- public final void testLoadInputStream() throws IOException {\r
- InputStream mockInStream = Mockito.mock(InputStream.class);\r
- try {\r
- unmodifiableProperties.load(mockInStream);\r
- } catch (IOException ex) {\r
- } catch (UnsupportedOperationException exceptionMessage) {\r
- Assert.assertEquals(desiredMessage, exceptionMessage.getMessage());\r
- }\r
- }\r
-\r
- @Test(expected = UnsupportedOperationException.class)\r
- public final void testLoadReader() throws IOException {\r
- String dummyPair = "key3=testKey3\nvalue3=testValue3";\r
- StringReader reader = new StringReader(dummyPair);\r
- try {\r
- unmodifiableProperties.load(reader);\r
- } catch (UnsupportedOperationException exceptionMessage) {\r
- Assert.assertEquals(desiredMessage, exceptionMessage.getMessage());\r
- throw exceptionMessage;\r
- }\r
- }\r
-\r
- @Test\r
- public final void testLoadFromXMLInputStream() throws IOException {\r
- InputStream mockInStream = Mockito.mock(InputStream.class);\r
- try {\r
- unmodifiableProperties.loadFromXML(mockInStream);\r
- } catch (IOException ex) {\r
- } catch (UnsupportedOperationException exceptionMessage) {\r
- Assert.assertEquals(desiredMessage, exceptionMessage.getMessage());\r
- }\r
- }\r
-\r
- @Test\r
- public final void testPropertyNames() {\r
- Enumeration<?> propNames = unmodifiableProperties.propertyNames();\r
- Assert.assertEquals(propKey2, propNames.nextElement());\r
- Assert.assertEquals(propKey1, propNames.nextElement());\r
- }\r
-\r
- @Test(expected = UnsupportedOperationException.class)\r
- public final void testPutObjectObject() {\r
- try {\r
- unmodifiableProperties.put(propKey2, propValue1);\r
- } catch (UnsupportedOperationException exceptionMessage) {\r
- Assert.assertEquals(desiredMessage, exceptionMessage.getMessage());\r
- throw exceptionMessage;\r
- }\r
- }\r
-\r
- @Test(expected = UnsupportedOperationException.class)\r
- public final void testPutAllMapOfQextendsObjectQextendsObject() {\r
- try {\r
- unmodifiableProperties.putAll(properties);\r
- } catch (UnsupportedOperationException exceptionMessage) {\r
- Assert.assertEquals(desiredMessage, exceptionMessage.getMessage());\r
- throw exceptionMessage;\r
- }\r
- }\r
-\r
- @Test(expected = UnsupportedOperationException.class)\r
- public final void testRehash() {\r
- try {\r
- unmodifiableProperties.rehash();\r
- } catch (UnsupportedOperationException exceptionMessage) {\r
- Assert.assertEquals(desiredMessage, exceptionMessage.getMessage());\r
- throw exceptionMessage;\r
- }\r
- }\r
-\r
- @Test(expected = UnsupportedOperationException.class)\r
- public final void testRemoveObject() {\r
- try {\r
- unmodifiableProperties.remove(propKey1);\r
- } catch (UnsupportedOperationException exceptionMessage) {\r
- Assert.assertEquals(desiredMessage, exceptionMessage.getMessage());\r
- throw exceptionMessage;\r
- }\r
- }\r
-\r
- @Test\r
- public final void testSaveOutputStreamString() {\r
- // Appl method is deprecated, but I still added this test since it is reachable.\r
- OutputStream propByteArray = new ByteArrayOutputStream();\r
- unmodifiableProperties.save(propByteArray, propHeader);\r
- Assert.assertThat(propByteArray.toString(), CoreMatchers.startsWith("#test header"));\r
- Assert.assertThat(propByteArray.toString(), CoreMatchers.containsString("testKey2=testValue2"));\r
- Assert.assertThat(propByteArray.toString(), CoreMatchers.containsString("testKey1=testValue1"));\r
- }\r
-\r
- @Test(expected = UnsupportedOperationException.class)\r
- public final void testSetPropertyStringString() {\r
- try {\r
- unmodifiableProperties.setProperty(propKey1, propValue2);\r
- } catch (UnsupportedOperationException exceptionMessage) {\r
- Assert.assertEquals(desiredMessage, exceptionMessage.getMessage());\r
- throw exceptionMessage;\r
- }\r
- }\r
-\r
- @Test\r
- public final void testSize() {\r
- Assert.assertEquals(2, unmodifiableProperties.size());\r
- }\r
-\r
- @Test\r
- public final void testStoreOutputStreamString() throws IOException {\r
- OutputStream propByteArray = new ByteArrayOutputStream();\r
- unmodifiableProperties.store(propByteArray, propHeader);\r
- // adds comment header and streams/appends properties file into propByteArray\r
- // expected = "#test header\n#<Date>\ntestKey2=testValue2\ntestKey1=testValue1"\r
- Assert.assertThat(propByteArray.toString(), CoreMatchers.startsWith("#test header"));\r
- Assert.assertThat(propByteArray.toString(), CoreMatchers.containsString("testKey2=testValue2"));\r
- Assert.assertThat(propByteArray.toString(), CoreMatchers.containsString("testKey1=testValue1"));\r
- }\r
-\r
- @Test\r
- public final void testStoreWriterString() throws IOException {\r
- StringWriter writer = new StringWriter();\r
- unmodifiableProperties.store(writer, propHeader);\r
- Assert.assertThat(writer.toString(), CoreMatchers.startsWith("#test header"));\r
- Assert.assertThat(writer.toString(), CoreMatchers.containsString("testKey2=testValue2"));\r
- Assert.assertThat(writer.toString(), CoreMatchers.containsString("testKey1=testValue1"));\r
- }\r
-\r
- @Test\r
- public final void testStoreToXMLOutputStreamString() throws IOException {\r
- OutputStream propByteArray = new ByteArrayOutputStream();\r
- unmodifiableProperties.storeToXML(propByteArray, propHeader);\r
- // adds XML comment header and streams/appends XML properties file into propByteArray\r
- Assert.assertThat(propByteArray.toString(), CoreMatchers.containsString("<comment>test header</comment>"));\r
- Assert.assertThat(propByteArray.toString(),\r
- CoreMatchers.containsString("<entry key=\"testKey2\">testValue2</entry>"));\r
- Assert.assertThat(propByteArray.toString(),\r
- CoreMatchers.containsString("<entry key=\"testKey1\">testValue1</entry>"));\r
- }\r
-\r
- @Test\r
- public final void testStoreToXMLOutputStreamStringString() throws IOException {\r
- OutputStream propByteArray = new ByteArrayOutputStream();\r
- unmodifiableProperties.storeToXML(propByteArray, propHeader, "UTF-8");\r
- // adds XML comment header and streams/appends XML properties file into propByteArray\r
- Assert.assertThat(propByteArray.toString(), CoreMatchers.containsString("<comment>test header</comment>"));\r
- Assert.assertThat(propByteArray.toString(),\r
- CoreMatchers.containsString("<entry key=\"testKey2\">testValue2</entry>"));\r
- Assert.assertThat(propByteArray.toString(),\r
- CoreMatchers.containsString("<entry key=\"testKey1\">testValue1</entry>"));\r
- }\r
-\r
- @Test\r
- public final void testStringPropertyNames() {\r
- Assert.assertEquals(properties.stringPropertyNames(), unmodifiableProperties.stringPropertyNames());\r
- }\r
-\r
- @Test\r
- public final void testToString() {\r
- // toString=[{testKey2=testValue2, testKey1=testValue1}]\r
- Assert.assertEquals(properties.toString(), unmodifiableProperties.toString());\r
- }\r
-\r
- @Test\r
- public final void testValues() {\r
- Assert.assertEquals(properties.values().toString(), unmodifiableProperties.values().toString());\r
- }\r
-}\r
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP : APPC
+ * ================================================================================
+ * Copyright (C) 2018 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Modifications Copyright (C) 2019 Ericsson
+ * =============================================================================
+ * 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.appc.util;
+
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.ExpectedException;
+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 {
+
+ private static final String propKey1 = "testKey1";
+ private static final String propKey2 = "testKey2";
+ private static final String propValue1 = "testValue1";
+ 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);
+ private String desiredMessage = "Property cannot be modified!";
+
+ @Rule
+ public ExpectedException expectedEx = ExpectedException.none();
+
+ @Before
+ public void setUp() throws Exception {
+ properties.setProperty(propKey1, propValue1);
+ properties.setProperty(propKey2, propValue2);
+ }
+
+ @Test
+ public void testClear() {
+ expectedEx.expect(UnsupportedOperationException.class);
+ expectedEx.expectMessage(desiredMessage);
+ unmodifiableProperties.clear();
+ }
+
+ @Test
+ public void testClone() {
+ expectedEx.expect(UnsupportedOperationException.class);
+ expectedEx.expectMessage(desiredMessage);
+ unmodifiableProperties.clone();
+ }
+
+ @Test
+ public final void testContainsObject() {
+ Assert.assertTrue(unmodifiableProperties.contains(propValue2));
+ Assert.assertFalse(unmodifiableProperties.contains(noValue));
+ }
+
+ @Test
+ public final void testContainsKeyObject() {
+ Assert.assertTrue(unmodifiableProperties.containsKey(propKey1));
+ Assert.assertFalse(unmodifiableProperties.containsKey(noKey));
+ }
+
+ @Test
+ public final void testContainsValueObject() {
+ Assert.assertTrue(unmodifiableProperties.containsValue(propValue1));
+ Assert.assertFalse(unmodifiableProperties.containsValue(noValue));
+ }
+
+ @Test
+ public final void testElements() {
+ Enumeration<Object> propValues = unmodifiableProperties.elements();
+ Assert.assertEquals(propValue2, propValues.nextElement());
+ Assert.assertEquals(propValue1, propValues.nextElement());
+ }
+
+ @Test
+ public final void testEntrySet() {
+ // Expect entrySet=[testKey2=testValue2, testKey1=testValue1].
+ Assert.assertEquals("Should match my properties K/V entries in setUp", properties.entrySet(),
+ unmodifiableProperties.entrySet());
+ }
+
+ @Test
+ public final void testEqualsObject() {
+ Assert.assertTrue(unmodifiableProperties.equals(properties));
+ }
+
+ @Test
+ public final void testGetObject() {
+ Assert.assertEquals(propValue2, unmodifiableProperties.get(propKey2));
+ }
+
+ @Test
+ public final void testGetPropertyString() {
+ Assert.assertEquals(propValue1, unmodifiableProperties.getProperty("testKey1"));
+ }
+
+ @Test
+ public final void testGetPropertyStringString() {
+ Assert.assertEquals(propValue2, unmodifiableProperties.getProperty(propKey2, noValue));
+ 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<Object> 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);
+ expectedEx.expect(UnsupportedOperationException.class);
+ expectedEx.expectMessage(desiredMessage);
+ unmodifiableProperties.load(mockInStream);
+ }
+
+ @Test
+ public final void testLoadReader() throws IOException {
+ String dummyPair = "key3=testKey3\nvalue3=testValue3";
+ StringReader reader = new StringReader(dummyPair);
+ expectedEx.expect(UnsupportedOperationException.class);
+ expectedEx.expectMessage(desiredMessage);
+ unmodifiableProperties.load(reader);
+ }
+
+ @Test
+ public final void testLoadFromXMLInputStream() throws IOException {
+ InputStream mockInStream = Mockito.mock(InputStream.class);
+ expectedEx.expect(UnsupportedOperationException.class);
+ expectedEx.expectMessage(desiredMessage);
+ unmodifiableProperties.loadFromXML(mockInStream);
+ }
+
+ @Test
+ public final void testPropertyNames() {
+ Enumeration<?> propNames = unmodifiableProperties.propertyNames();
+ Assert.assertEquals(propKey2, propNames.nextElement());
+ Assert.assertEquals(propKey1, propNames.nextElement());
+ }
+
+ @Test
+ public final void testPutObjectObject() {
+ expectedEx.expect(UnsupportedOperationException.class);
+ expectedEx.expectMessage(desiredMessage);
+ unmodifiableProperties.put(propKey2, propValue1);
+ }
+
+ @Test
+ public final void testPutAllMapOfQextendsObjectQextendsObject() {
+ expectedEx.expect(UnsupportedOperationException.class);
+ expectedEx.expectMessage(desiredMessage);
+ unmodifiableProperties.putAll(properties);
+ }
+
+ @Test
+ public final void testRehash() {
+ expectedEx.expect(UnsupportedOperationException.class);
+ expectedEx.expectMessage(desiredMessage);
+ unmodifiableProperties.rehash();
+ }
+
+ @Test
+ public final void testRemoveObject() {
+ expectedEx.expect(UnsupportedOperationException.class);
+ expectedEx.expectMessage(desiredMessage);
+ unmodifiableProperties.remove(propKey1);
+ }
+
+ @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
+ public final void testSetPropertyStringString() {
+ expectedEx.expect(UnsupportedOperationException.class);
+ expectedEx.expectMessage(desiredMessage);
+ unmodifiableProperties.setProperty(propKey1, propValue2);
+ }
+
+ @Test
+ public final void testSize() {
+ 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#<Date>\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("<comment>test header</comment>"));
+ Assert.assertThat(propByteArray.toString(),
+ CoreMatchers.containsString("<entry key=\"testKey2\">testValue2</entry>"));
+ Assert.assertThat(propByteArray.toString(),
+ CoreMatchers.containsString("<entry key=\"testKey1\">testValue1</entry>"));
+ }
+
+ @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("<comment>test header</comment>"));
+ Assert.assertThat(propByteArray.toString(),
+ CoreMatchers.containsString("<entry key=\"testKey2\">testValue2</entry>"));
+ Assert.assertThat(propByteArray.toString(),
+ CoreMatchers.containsString("<entry key=\"testKey1\">testValue1</entry>"));
+ }
+
+ @Test
+ public final void testStringPropertyNames() {
+ Assert.assertEquals(properties.stringPropertyNames(), unmodifiableProperties.stringPropertyNames());
+ }
+
+ @Test
+ public final void testToString() {
+ // toString=[{testKey2=testValue2, testKey1=testValue1}]
+ Assert.assertEquals(properties.toString(), unmodifiableProperties.toString());
+ }
+
+ @Test
+ public final void testValues() {
+ Assert.assertEquals(properties.values().toString(), unmodifiableProperties.values().toString());
+ }
+}