29d6bc40fb590013055e104e1ea0cf3ae9a45a54
[dmaap/messagerouter/messageservice.git] / src / test / java / com / att / nsa / dmaap / service / MMRestServiceTest.java
1 /*-\r
2  * ============LICENSE_START=======================================================\r
3  * ONAP Policy Engine\r
4  * ================================================================================\r
5  * Copyright (C) 2017 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 com.att.nsa.dmaap.service;\r
22 \r
23 import static org.junit.Assert.assertTrue;\r
24 import static org.junit.Assert.fail;\r
25 import static org.mockito.Matchers.anyString;\r
26 \r
27 import java.io.ByteArrayInputStream;\r
28 import java.io.FileInputStream;\r
29 \r
30 //import static org.mockito.Matchers.anyString;\r
31 //import static org.mockito.Mockito.when;\r
32 \r
33 import java.io.IOException;\r
34 import java.io.InputStream;\r
35 \r
36 import javax.servlet.ServletOutputStream;\r
37 import javax.servlet.http.HttpServletRequest;\r
38 import javax.servlet.http.HttpServletResponse;\r
39 \r
40 import org.apache.commons.io.IOUtils;\r
41 import org.json.JSONArray;\r
42 import org.json.JSONException;\r
43 import org.json.JSONObject;\r
44 import org.junit.After;\r
45 import org.junit.Assert;\r
46 import org.junit.Before;\r
47 import org.junit.Test;\r
48 import org.junit.runner.RunWith;\r
49 import org.mockito.InjectMocks;\r
50 import org.mockito.Mock;\r
51 import org.mockito.MockitoAnnotations;\r
52 import org.powermock.api.mockito.PowerMockito;\r
53 import org.powermock.core.classloader.annotations.PrepareForTest;\r
54 import org.powermock.modules.junit4.PowerMockRunner;\r
55 \r
56 import com.att.ajsc.beans.PropertiesMapBean;\r
57 import com.att.ajsc.filemonitor.AJSCPropertiesMap;\r
58 import org.onap.dmaap.dmf.mr.CambriaApiException;\r
59 import org.onap.dmaap.dmf.mr.beans.DMaaPContext;\r
60 import org.onap.dmaap.dmf.mr.beans.DMaaPKafkaMetaBroker;\r
61 import org.onap.dmaap.dmf.mr.constants.CambriaConstants;\r
62 import org.onap.dmaap.dmf.mr.exception.DMaaPAccessDeniedException;\r
63 import org.onap.dmaap.dmf.mr.exception.DMaaPErrorMessages;\r
64 import org.onap.dmaap.dmf.mr.metabroker.Broker.TopicExistsException;\r
65 import org.onap.dmaap.dmf.mr.metabroker.Topic;\r
66 import org.onap.dmaap.dmf.mr.security.DMaaPAAFAuthenticator;\r
67 import org.onap.dmaap.dmf.mr.security.DMaaPAAFAuthenticatorImpl;\r
68 import org.onap.dmaap.dmf.mr.security.DMaaPAuthenticator;\r
69 import org.onap.dmaap.dmf.mr.service.MMService;\r
70 import org.onap.dmaap.dmf.mr.utils.ConfigurationReader;\r
71 import com.att.nsa.configs.ConfigDbException;\r
72 import com.att.nsa.dmaap.mmagent.CreateMirrorMaker;\r
73 import com.att.nsa.dmaap.mmagent.MirrorMaker;\r
74 import com.att.nsa.dmaap.mmagent.UpdateMirrorMaker;\r
75 import com.att.nsa.security.NsaAcl;\r
76 import com.att.nsa.security.NsaApiKey;\r
77 import com.att.nsa.security.db.simple.NsaSimpleApiKey;\r
78 import com.google.gson.Gson;\r
79 \r
80 //@RunWith(MockitoJUnitRunner.class)\r
81 @RunWith(PowerMockRunner.class)\r
82 @PrepareForTest({ PropertiesMapBean.class, AJSCPropertiesMap.class })\r
83 public class MMRestServiceTest {\r
84 \r
85         @InjectMocks\r
86         MMRestService mmRestService;\r
87 \r
88         @Mock\r
89         private MMService mmservice;\r
90 \r
91         @Mock\r
92         CreateMirrorMaker cMirroMaker;\r
93 \r
94         @Mock\r
95         UpdateMirrorMaker uMirroMaker;\r
96 \r
97         private TopicRestService service = new TopicRestService();\r
98         @Mock\r
99         private DMaaPErrorMessages errorMessages;\r
100 \r
101         @Mock\r
102         DMaaPContext dmaapContext;\r
103 \r
104         @Mock\r
105         ConfigurationReader configReader;\r
106 \r
107         @Mock\r
108         ServletOutputStream oStream;\r
109 \r
110         @Mock\r
111         DMaaPAuthenticator<NsaSimpleApiKey> dmaaPAuthenticator;\r
112 \r
113         @Mock\r
114         MirrorMaker mMaker;\r
115 \r
116         @Mock\r
117         DMaaPAAFAuthenticator dmaapAAFauthenticator;\r
118 \r
119         @Mock\r
120         DMaaPAAFAuthenticatorImpl impl;\r
121 \r
122         @Mock\r
123         NsaApiKey user;\r
124 \r
125         @Mock\r
126         NsaSimpleApiKey nsaSimpleApiKey;\r
127 \r
128         @Mock\r
129         HttpServletRequest httpServReq;\r
130 \r
131         @Mock\r
132         HttpServletResponse httpServRes;\r
133 \r
134         @Mock\r
135         InputStream iStream;\r
136 \r
137         @Mock\r
138         DMaaPKafkaMetaBroker dmaapKafkaMetaBroker;\r
139 \r
140         @Mock\r
141         Topic createdTopic;\r
142 \r
143         @Mock\r
144         NsaAcl nsaAcl;\r
145 \r
146         @Mock\r
147         JSONObject jsonObj;\r
148 \r
149         @Mock\r
150         JSONArray jsonArray;\r
151 \r
152         @Before\r
153         public void setUp() throws Exception {\r
154 \r
155                 MockitoAnnotations.initMocks(this);\r
156         }\r
157 \r
158         @After\r
159         public void tearDown() throws Exception {\r
160         }\r
161 \r
162         @Test\r
163         public void testCallCreateMirrorMaker() throws Exception {\r
164                 prepareForTestCommon();\r
165 \r
166                 // String sampleJson = ""{ messageID:\"test\", createMirrorMaker: {\r
167                 // name:\"test\", consumer:\"test\", producer:\"test\",\r
168                 // whitelist:\"test\",status:\"test\" }}";\r
169                 String sampleJson = "{ messageID:\"test\", createMirrorMaker: {   name:\"test\",   consumer:\"test\",  producer:\"test\"}}";\r
170                 InputStream inputSteam = new ByteArrayInputStream(sampleJson.getBytes());\r
171                 mmRestService.callCreateMirrorMaker(inputSteam);\r
172                 assertTrue(true);\r
173 \r
174         }\r
175         @Test\r
176         public void testCallCreateMirrorMaker_error4() throws Exception {\r
177                 prepareForTestCommon();\r
178 \r
179                 // String sampleJson = ""{ messageID:\"test\", createMirrorMaker: {\r
180                 // name:\"test\", consumer:\"test\", producer:\"test\",\r
181                 // whitelist:\"test\",status:\"test\" }}";\r
182                 String sampleJson = "{ messageID:\"test\", createMirrorMaker: {   name:\"test@#\",   consumer:\"test\",  producer:\"test\"}}";\r
183                 InputStream inputSteam = new ByteArrayInputStream(sampleJson.getBytes());\r
184                 mmRestService.callCreateMirrorMaker(inputSteam);\r
185                 assertTrue(true);\r
186 \r
187         }\r
188         @Test\r
189         public void testCallCreateMirrorMaker_3() throws Exception {\r
190                 prepareForTestCommon();\r
191 \r
192                 // String sampleJson = ""{ messageID:\"test\", createMirrorMaker: {\r
193                 // name:\"test\", consumer:\"test\", producer:\"test\",\r
194                 // whitelist:\"test\",status:\"test\" }}";\r
195                 String sampleJson = "{ messageID:\"test\", createMirrorMaker: {   name:\"\",   consumer:\"test\",  producer:\"test\"}}";\r
196                 InputStream inputSteam = new ByteArrayInputStream(sampleJson.getBytes());\r
197                 mmRestService.callCreateMirrorMaker(inputSteam);\r
198                 assertTrue(true);\r
199 \r
200         }\r
201         @Test\r
202         public void testCallCreateMirrorMaker_error2() throws Exception {\r
203                 prepareForTestCommon();\r
204 \r
205                 // String sampleJson = ""{ messageID:\"test\", createMirrorMaker: {\r
206                 // name:\"test\", consumer:\"test\", producer:\"test\",\r
207                 // whitelist:\"test\",status:\"test\" }}";\r
208                 String sampleJson = "{ messageID:\"test\", createMirrorMaker: {   name:\"test\",   consumer:\"test\",  producer:\"test\",whitelist:\"test\"}}";\r
209                 InputStream inputSteam = new ByteArrayInputStream(sampleJson.getBytes());\r
210                 mmRestService.callCreateMirrorMaker(inputSteam);\r
211                 assertTrue(true);\r
212 \r
213         }\r
214         \r
215         @Test\r
216         public void testCallCreateMirrorMaker_error1() throws Exception {\r
217                 prepareForTestCommon();\r
218 \r
219                 // String sampleJson = ""{ messageID:\"test\", createMirrorMaker: {\r
220                 // name:\"test\", consumer:\"test\", producer:\"test\",\r
221                 // whitelist:\"test\",status:\"test\" }}";\r
222                 String sampleJson = "{ messageID:\"test\"}";\r
223                 InputStream inputSteam = new ByteArrayInputStream(sampleJson.getBytes());\r
224                 mmRestService.callCreateMirrorMaker(inputSteam);\r
225                 assertTrue(true);\r
226 \r
227         }\r
228 \r
229         @Test\r
230         public void testCallListAllMirrorMaker() throws Exception {\r
231                 prepareForTestCommon();\r
232 \r
233                 String sampleJson = "{ messageID:\"test\", createMirrorMaker: {   name:\"test\",   consumer:\"test\",  producer:\"test\",  whitelist:\"test\",status:\"test\" }}";\r
234                 InputStream inputSteam = new ByteArrayInputStream(sampleJson.getBytes());\r
235                 mmRestService.callListAllMirrorMaker(inputSteam);\r
236                 assertTrue(true);\r
237         }\r
238 \r
239         @Test\r
240         public void testCallUpdateMirrorMaker() throws Exception {\r
241                 prepareForTestCommon();\r
242 \r
243                 String sampleJson = "{ messageID:\"test\", updateMirrorMaker: {   name:\"test\",   consumer:\"test\",  producer:\"test\"}}";\r
244                 InputStream inputSteam = new ByteArrayInputStream(sampleJson.getBytes());\r
245                 mmRestService.callUpdateMirrorMaker(inputSteam);\r
246                 assertTrue(true);\r
247         }\r
248         \r
249         @Test\r
250         public void testCallUpdateMirrorMaker_error1() throws Exception {\r
251                 prepareForTestCommon();\r
252 \r
253                 String sampleJson = "{ messageID:\"test@1\", updateMirrorMaker: {   name:\"test\",   consumer:\"test\",  producer:\"test\"}}";\r
254                 InputStream inputSteam = new ByteArrayInputStream(sampleJson.getBytes());\r
255                 mmRestService.callUpdateMirrorMaker(inputSteam);\r
256                 assertTrue(true);\r
257         }\r
258         @Test\r
259         public void testCallUpdateMirrorMaker_error2() throws Exception {\r
260                 prepareForTestCommon();\r
261 \r
262                 String sampleJson = "{ messageID:\"test\", updateMirrorMaker: {   name:\"\",   consumer:\"test\",  producer:\"test\"}}";\r
263                 InputStream inputSteam = new ByteArrayInputStream(sampleJson.getBytes());\r
264                 mmRestService.callUpdateMirrorMaker(inputSteam);\r
265                 assertTrue(true);\r
266         }\r
267         @Test\r
268         public void testCallUpdateMirrorMaker_error3() throws Exception{\r
269                 prepareForTestCommon();\r
270 \r
271                 String sampleJson = "{ messageID:\"test\", updateMirrorMaker: {   name:\"test\",   consumer:\"test\",  producer:\"test\",  whitelist:\"test\",status:\"test\"}}";\r
272                 InputStream inputSteam = new ByteArrayInputStream(sampleJson.getBytes());\r
273                 mmRestService.callUpdateMirrorMaker(inputSteam);\r
274                 assertTrue(true);\r
275         }\r
276         @Test\r
277         public void testCallUpdateMirrorMaker_error4() throws Exception {\r
278                 prepareForTestCommon();\r
279 \r
280                 String sampleJson = "{ messageID:\"test\"}}";\r
281                 InputStream inputSteam = new ByteArrayInputStream(sampleJson.getBytes());\r
282                 mmRestService.callUpdateMirrorMaker(inputSteam);\r
283                 assertTrue(true);\r
284         }\r
285 \r
286         @Test\r
287         public void testCallDeleteMirrorMaker() throws Exception {\r
288                 prepareForTestCommon();\r
289 \r
290                 String sampleJson = "{ messageID:\"test\", deleteMirrorMaker: {   name:\"test\",   consumer:\"test\",  producer:\"test\",  whitelist:\"test\",status:\"test\" }}";\r
291                 InputStream inputSteam = new ByteArrayInputStream(sampleJson.getBytes());\r
292                 mmRestService.callDeleteMirrorMaker(inputSteam);\r
293                 assertTrue(true);\r
294         }\r
295 \r
296         @Test\r
297         public void testListWhiteList() throws Exception {\r
298                 prepareForTestCommon();\r
299 \r
300                 String sampleJson = "{ name:\"test\", namespace:\"test\"}}";\r
301                 InputStream inputSteam = new ByteArrayInputStream(sampleJson.getBytes());\r
302                 mmRestService.listWhiteList(inputSteam);\r
303                 assertTrue(true);\r
304         }\r
305 \r
306         @Test\r
307         public void testCreateWhiteList() throws Exception {\r
308                 prepareForTestCommon();\r
309                 String sampleJson = "{ name:\"test\", namespace:\"test\",   whitelistTopicName:\"test\"}}";\r
310                 InputStream inputSteam = new ByteArrayInputStream(sampleJson.getBytes());\r
311 \r
312                 mmRestService.createWhiteList(inputSteam);\r
313                 assertTrue(true);\r
314         }\r
315 \r
316         @Test\r
317         public void testDeleteWhiteList() throws Exception {\r
318                 prepareForTestCommon();\r
319 \r
320                 String sampleJson = "{ name:\"test\", namespace:\"test\",   whitelistTopicName:\"test\"}}";\r
321                 InputStream inputSteam = new ByteArrayInputStream(sampleJson.getBytes());\r
322                 mmRestService.deleteWhiteList(inputSteam);\r
323                 assertTrue(true);\r
324         }\r
325 \r
326         private void prepareForTestCommon() throws Exception {\r
327                 Assert.assertNotNull(mmRestService);\r
328                 PowerMockito.when(dmaapContext.getRequest()).thenReturn(httpServReq);\r
329                 PowerMockito.when(dmaapAAFauthenticator.aafAuthentication(httpServReq, "admin")).thenReturn(true);\r
330                 PowerMockito.when(httpServReq.isUserInRole("admin")).thenReturn(true);\r
331 \r
332                 PowerMockito.mockStatic(AJSCPropertiesMap.class);\r
333 \r
334                 assertTrue(true);\r
335 \r
336                 PowerMockito.when(AJSCPropertiesMap.getProperty(CambriaConstants.msgRtr_prop, "msgRtr.mirrormakeradmin.aaf"))\r
337                                 .thenReturn("admin");\r
338                 PowerMockito\r
339                                 .when(AJSCPropertiesMap.getProperty(CambriaConstants.msgRtr_prop, "msgRtr.mirrormakeruser.aaf.create"))\r
340                                 .thenReturn("aafcreate");\r
341 \r
342                 PowerMockito.when(AJSCPropertiesMap.getProperty(CambriaConstants.msgRtr_prop, "msgRtr.mirrormakeruser.aaf"))\r
343                                 .thenReturn("admin");\r
344 \r
345                 PowerMockito.when(AJSCPropertiesMap.getProperty(CambriaConstants.msgRtr_prop, "msgRtr.mirrormaker.timeout"))\r
346                                 .thenReturn("100");\r
347 \r
348                 PowerMockito.when(AJSCPropertiesMap.getProperty(CambriaConstants.msgRtr_prop, "msgRtr.mirrormaker.topic"))\r
349                                 .thenReturn("mirrormaker.topic");\r
350 \r
351                 PowerMockito\r
352                                 .when(AJSCPropertiesMap.getProperty(CambriaConstants.msgRtr_prop, "msgRtr.mirrormaker.consumergroup"))\r
353                                 .thenReturn("mirrormaker.consumergroup");\r
354 \r
355                 PowerMockito.when(AJSCPropertiesMap.getProperty(CambriaConstants.msgRtr_prop, "msgRtr.mirrormaker.consumerid"))\r
356                                 .thenReturn("mirrormaker.consumerid");\r
357 \r
358                 PowerMockito.when(dmaapContext.getRequest()).thenReturn(httpServReq);\r
359 \r
360                 PowerMockito.when(httpServReq.isUserInRole("admin")).thenReturn(true);\r
361 \r
362                 // PowerMockito.when(httpServReq.getHeader("Authorization")).thenReturn("Admin");\r
363                 PowerMockito.when(dmaapAAFauthenticator.aafAuthentication(httpServReq, "admin.aaf")).thenReturn(true);\r
364                 PowerMockito.when(dmaapAAFauthenticator.aafAuthentication(httpServReq, "admin")).thenReturn(true);\r
365                 PowerMockito.when(httpServReq.getHeader("Authorization")).thenReturn("Admin");\r
366                 PowerMockito.when(dmaapAAFauthenticator.aafAuthentication(httpServReq, "admin")).thenReturn(true);\r
367                 PowerMockito.when(dmaapAAFauthenticator.aafAuthentication(httpServReq, "aafcreatetest|create"))\r
368                                 .thenReturn(true);\r
369 \r
370                 PowerMockito.when(cMirroMaker.getCreateMirrorMaker()).thenReturn(mMaker);\r
371 \r
372                 PowerMockito.when(mMaker.getName()).thenReturn("mirroMakerName");\r
373                 PowerMockito.when(dmaapContext.getConfigReader()).thenReturn(configReader);\r
374                 PowerMockito.when(dmaapContext.getRequest()).thenReturn(httpServReq);\r
375                 PowerMockito.when(httpServReq.getHeader("Authorization")).thenReturn("Authorization");\r
376 \r
377                 PowerMockito.when(dmaapContext.getResponse()).thenReturn(httpServRes);\r
378                 PowerMockito.when(configReader.getfMetaBroker()).thenReturn(dmaapKafkaMetaBroker);\r
379                 PowerMockito.when(httpServReq.getMethod()).thenReturn("HEAD");\r
380 \r
381                 PowerMockito.when(dmaapKafkaMetaBroker.getTopic(anyString())).thenReturn(null);\r
382         }\r
383 \r
384 }\r