80de9b7b94b6665e431775f7ac54c5476cddc3c7
[aaf/authz.git] / misc / env / src / test / java / org / onap / aaf / misc / env / jaxb / JU_JAXBDataTest.java
1 /**\r
2  * ============LICENSE_START====================================================\r
3  * org.onap.aaf\r
4  * ===========================================================================\r
5  * Copyright (c) 2018 AT&T Intellectual Property. All rights reserved.\r
6  * ===========================================================================\r
7  * Licensed under the Apache License, Version 2.0 (the "License");\r
8  * you may not use this file except in compliance with the License.\r
9  * You may obtain a copy of the License at\r
10  * \r
11  *      http://www.apache.org/licenses/LICENSE-2.0\r
12  * \r
13  * Unless required by applicable law or agreed to in writing, software\r
14  * distributed under the License is distributed on an "AS IS" BASIS,\r
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
16  * See the License for the specific language governing permissions and\r
17  * limitations under the License.\r
18  * ============LICENSE_END====================================================\r
19  *\r
20  */\r
21 package org.onap.aaf.misc.env.jaxb;\r
22 \r
23 import static org.junit.Assert.assertEquals;\r
24 import static org.junit.Assert.assertTrue;\r
25 import static org.mockito.Mockito.mock;\r
26 import static org.mockito.Mockito.verify;\r
27 import static org.mockito.Mockito.when;\r
28 \r
29 import java.io.ByteArrayInputStream;\r
30 import java.io.IOException;\r
31 import java.io.OutputStream;\r
32 import java.io.Writer;\r
33 \r
34 import org.junit.Before;\r
35 import org.junit.Test;\r
36 import org.mockito.Mock;\r
37 import org.onap.aaf.misc.env.APIException;\r
38 import org.onap.aaf.misc.env.Env;\r
39 import org.onap.aaf.misc.env.EnvJAXB;\r
40 import org.onap.aaf.misc.env.IOStringifier;\r
41 import org.onap.aaf.misc.env.old.Objectifier;\r
42 import org.onap.aaf.misc.env.old.Stringifier;\r
43 \r
44 public class JU_JAXBDataTest {\r
45 \r
46         @Mock\r
47         private Objectifier<String> objfr;\r
48 \r
49         private String object = "Text";\r
50 \r
51         @Mock\r
52         private Stringifier<String> strfr;\r
53 \r
54         @Mock\r
55         private IOStringifier<String> ioStrfr;\r
56 \r
57         @Mock\r
58         private JAXBDF<String> df;\r
59 \r
60         @Mock\r
61         private Env env;\r
62 \r
63         @Mock\r
64         private Class<String> typeClass;\r
65 \r
66         @Mock\r
67         private OutputStream os;\r
68 \r
69         @Mock\r
70         private Writer writer;\r
71 \r
72         @Mock\r
73         private EnvJAXB env1;\r
74 \r
75         @Before\r
76         public void setUp() throws Exception {\r
77                 writer = mock(Writer.class);\r
78                 os = mock(OutputStream.class);\r
79                 strfr = mock(Stringifier.class);\r
80                 ioStrfr = mock(IOStringifier.class);\r
81                 objfr = mock(Objectifier.class);\r
82                 env1 = mock(EnvJAXB.class);\r
83         }\r
84 \r
85         @Test\r
86         public void testJAXBDataEnv() throws APIException, IOException {\r
87                 JAXBData<String> jaxb = new JAXBData<String>(env, df, strfr, objfr, object, typeClass);\r
88 \r
89                 when(objfr.objectify(env, object)).thenReturn("String1");\r
90 \r
91                 jaxb.to(os);\r
92                 jaxb.to(writer);\r
93 \r
94                 verify(writer).write(object);\r
95                 verify(os).write(object.getBytes());\r
96 \r
97                 assertEquals(jaxb.asString(), object);\r
98                 assertEquals(jaxb.asString(null), object);\r
99                 assertEquals(jaxb.toString(), object);\r
100                 assertEquals(jaxb.getTypeClass(), typeClass);\r
101                 assertEquals(jaxb.out(null), jaxb);\r
102                 assertEquals(jaxb.in(null), jaxb);\r
103                 assertTrue(jaxb.getInputStream() instanceof ByteArrayInputStream);\r
104                 assertEquals(jaxb.asObject(), "String1");\r
105                 assertEquals(jaxb.asObject(env1), "String1");\r
106                 assertEquals(jaxb.toString(), object);\r
107         }\r
108 \r
109         @Test\r
110         public void testJAXBDataEnvForObjectifier() throws APIException, IOException {\r
111                 JAXBData<String> jaxb = new JAXBData<String>(env, df, strfr, objfr, object, typeClass);\r
112 \r
113                 when(objfr.objectify(env1, object)).thenReturn("String1");\r
114 \r
115                 assertEquals(jaxb.asObject(env1), "String1");\r
116         }\r
117 \r
118         @Test\r
119         public void testJAXBDataEnvWithObject() throws APIException, IOException {\r
120                 JAXBData<String> jaxb = new JAXBData<String>(env, df, strfr, objfr, object);\r
121 \r
122                 when(strfr.stringify(env, object, new boolean[] { false, false })).thenReturn(object);\r
123 \r
124                 jaxb.to(os);\r
125 \r
126                 verify(os).write(object.getBytes());\r
127 \r
128                 assertEquals(jaxb.asString(), object);\r
129                 assertEquals(jaxb.asString(null), object);\r
130                 assertEquals(jaxb.toString(), object);\r
131         }\r
132 \r
133         @Test\r
134         public void testJAXBDataEnvForWriter() throws APIException, IOException {\r
135                 JAXBData<String> jaxb = new JAXBData<String>(env, df, strfr, objfr, object);\r
136 \r
137                 when(strfr.stringify(env, object, new boolean[] { false, false })).thenReturn(object);\r
138 \r
139                 jaxb.to(writer);\r
140 \r
141                 verify(writer).write(object);\r
142 \r
143                 assertEquals(jaxb.asString(), object);\r
144                 assertEquals(jaxb.asString(null), object);\r
145                 assertEquals(jaxb.toString(), object);\r
146                 assertEquals(jaxb.asObject(), object);\r
147                 assertEquals(jaxb.asObject(null), object);\r
148         }\r
149 \r
150         @Test\r
151         public void testAsStringWithNullString() throws APIException, IOException {\r
152                 JAXBData<String> jaxb = new JAXBData<String>(env, df, strfr, objfr, object);\r
153 \r
154                 when(strfr.stringify(env, object, new boolean[] { false, false })).thenReturn(object);\r
155 \r
156                 assertEquals(jaxb.asString(), object);\r
157         }\r
158 \r
159         @Test\r
160         public void testAsStringWithNullStringWithEnv() throws APIException, IOException {\r
161                 JAXBData<String> jaxb = new JAXBData<String>(env, df, strfr, objfr, object);\r
162 \r
163                 when(strfr.stringify(env1, object)).thenReturn(object);\r
164 \r
165                 assertEquals(jaxb.asString(env1), object);\r
166         }\r
167 \r
168         @Test\r
169         public void testToWithIOStrifier() throws APIException, IOException {\r
170                 JAXBData<String> jaxb = new JAXBData<String>(env, df, strfr, objfr, object);\r
171 \r
172                 jaxb.option(0);\r
173 \r
174                 when(strfr.stringify(env1, object)).thenReturn(object);\r
175                 when(strfr.stringify(env, object, new boolean[] { false, false })).thenReturn(object);\r
176 \r
177                 assertTrue(jaxb.getInputStream() instanceof ByteArrayInputStream);\r
178                 assertEquals(jaxb.asString(env1), object);\r
179         }\r
180 }\r