--- /dev/null
+/**\r
+ * ============LICENSE_START====================================================\r
+ * org.onap.aaf\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.aaf.misc.env.jaxb;\r
+\r
+import static org.junit.Assert.assertEquals;\r
+import static org.junit.Assert.assertTrue;\r
+import static org.mockito.Mockito.mock;\r
+import static org.mockito.Mockito.verify;\r
+import static org.mockito.Mockito.when;\r
+\r
+import java.io.ByteArrayInputStream;\r
+import java.io.IOException;\r
+import java.io.OutputStream;\r
+import java.io.Writer;\r
+\r
+import org.junit.Before;\r
+import org.junit.Test;\r
+import org.mockito.Mock;\r
+import org.onap.aaf.misc.env.APIException;\r
+import org.onap.aaf.misc.env.Env;\r
+import org.onap.aaf.misc.env.EnvJAXB;\r
+import org.onap.aaf.misc.env.IOStringifier;\r
+import org.onap.aaf.misc.env.old.Objectifier;\r
+import org.onap.aaf.misc.env.old.Stringifier;\r
+\r
+public class JU_JAXBDataTest {\r
+\r
+ @Mock\r
+ private Objectifier<String> objfr;\r
+\r
+ private String object = "Text";\r
+\r
+ @Mock\r
+ private Stringifier<String> strfr;\r
+\r
+ @Mock\r
+ private IOStringifier<String> ioStrfr;\r
+\r
+ @Mock\r
+ private JAXBDF<String> df;\r
+\r
+ @Mock\r
+ private Env env;\r
+\r
+ @Mock\r
+ private Class<String> typeClass;\r
+\r
+ @Mock\r
+ private OutputStream os;\r
+\r
+ @Mock\r
+ private Writer writer;\r
+\r
+ @Mock\r
+ private EnvJAXB env1;\r
+\r
+ @Before\r
+ public void setUp() throws Exception {\r
+ writer = mock(Writer.class);\r
+ os = mock(OutputStream.class);\r
+ strfr = mock(Stringifier.class);\r
+ ioStrfr = mock(IOStringifier.class);\r
+ objfr = mock(Objectifier.class);\r
+ env1 = mock(EnvJAXB.class);\r
+ }\r
+\r
+ @Test\r
+ public void testJAXBDataEnv() throws APIException, IOException {\r
+ JAXBData<String> jaxb = new JAXBData<String>(env, df, strfr, objfr, object, typeClass);\r
+\r
+ when(objfr.objectify(env, object)).thenReturn("String1");\r
+\r
+ jaxb.to(os);\r
+ jaxb.to(writer);\r
+\r
+ verify(writer).write(object);\r
+ verify(os).write(object.getBytes());\r
+\r
+ assertEquals(jaxb.asString(), object);\r
+ assertEquals(jaxb.asString(null), object);\r
+ assertEquals(jaxb.toString(), object);\r
+ assertEquals(jaxb.getTypeClass(), typeClass);\r
+ assertEquals(jaxb.out(null), jaxb);\r
+ assertEquals(jaxb.in(null), jaxb);\r
+ assertTrue(jaxb.getInputStream() instanceof ByteArrayInputStream);\r
+ assertEquals(jaxb.asObject(), "String1");\r
+ assertEquals(jaxb.asObject(env1), "String1");\r
+ assertEquals(jaxb.toString(), object);\r
+ }\r
+\r
+ @Test\r
+ public void testJAXBDataEnvForObjectifier() throws APIException, IOException {\r
+ JAXBData<String> jaxb = new JAXBData<String>(env, df, strfr, objfr, object, typeClass);\r
+\r
+ when(objfr.objectify(env1, object)).thenReturn("String1");\r
+\r
+ assertEquals(jaxb.asObject(env1), "String1");\r
+ }\r
+\r
+ @Test\r
+ public void testJAXBDataEnvWithObject() throws APIException, IOException {\r
+ JAXBData<String> jaxb = new JAXBData<String>(env, df, strfr, objfr, object);\r
+\r
+ when(strfr.stringify(env, object, new boolean[] { false, false })).thenReturn(object);\r
+\r
+ jaxb.to(os);\r
+\r
+ verify(os).write(object.getBytes());\r
+\r
+ assertEquals(jaxb.asString(), object);\r
+ assertEquals(jaxb.asString(null), object);\r
+ assertEquals(jaxb.toString(), object);\r
+ }\r
+\r
+ @Test\r
+ public void testJAXBDataEnvForWriter() throws APIException, IOException {\r
+ JAXBData<String> jaxb = new JAXBData<String>(env, df, strfr, objfr, object);\r
+\r
+ when(strfr.stringify(env, object, new boolean[] { false, false })).thenReturn(object);\r
+\r
+ jaxb.to(writer);\r
+\r
+ verify(writer).write(object);\r
+\r
+ assertEquals(jaxb.asString(), object);\r
+ assertEquals(jaxb.asString(null), object);\r
+ assertEquals(jaxb.toString(), object);\r
+ assertEquals(jaxb.asObject(), object);\r
+ assertEquals(jaxb.asObject(null), object);\r
+ }\r
+\r
+ @Test\r
+ public void testAsStringWithNullString() throws APIException, IOException {\r
+ JAXBData<String> jaxb = new JAXBData<String>(env, df, strfr, objfr, object);\r
+\r
+ when(strfr.stringify(env, object, new boolean[] { false, false })).thenReturn(object);\r
+\r
+ assertEquals(jaxb.asString(), object);\r
+ }\r
+\r
+ @Test\r
+ public void testAsStringWithNullStringWithEnv() throws APIException, IOException {\r
+ JAXBData<String> jaxb = new JAXBData<String>(env, df, strfr, objfr, object);\r
+\r
+ when(strfr.stringify(env1, object)).thenReturn(object);\r
+\r
+ assertEquals(jaxb.asString(env1), object);\r
+ }\r
+\r
+ @Test\r
+ public void testToWithIOStrifier() throws APIException, IOException {\r
+ JAXBData<String> jaxb = new JAXBData<String>(env, df, strfr, objfr, object);\r
+\r
+ jaxb.option(0);\r
+\r
+ when(strfr.stringify(env1, object)).thenReturn(object);\r
+ when(strfr.stringify(env, object, new boolean[] { false, false })).thenReturn(object);\r
+\r
+ assertTrue(jaxb.getInputStream() instanceof ByteArrayInputStream);\r
+ assertEquals(jaxb.asString(env1), object);\r
+ }\r
+}\r