2 * ============LICENSE_START==========================================
4 * ===================================================================
5 * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6 * ===================================================================
8 * Unless otherwise specified, all software contained herein is licensed
9 * under the Apache License, Version 2.0 (the "License");
10 * you may not use this software except in compliance with the License.
11 * You may obtain a copy of the License at
13 * http://www.apache.org/licenses/LICENSE-2.0
15 * Unless required by applicable law or agreed to in writing, software
16 * distributed under the License is distributed on an "AS IS" BASIS,
17 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18 * See the License for the specific language governing permissions and
19 * limitations under the License.
21 * Unless otherwise specified, all documentation contained herein is licensed
22 * under the Creative Commons License, Attribution 4.0 Intl. (the "License");
23 * you may not use this documentation except in compliance with the License.
24 * You may obtain a copy of the License at
26 * https://creativecommons.org/licenses/by/4.0/
28 * Unless required by applicable law or agreed to in writing, documentation
29 * distributed under the License is distributed on an "AS IS" BASIS,
30 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
31 * See the License for the specific language governing permissions and
32 * limitations under the License.
34 * ============LICENSE_END============================================
38 package org.onap.portalapp.portal.controller;
40 import static org.junit.Assert.assertEquals;
42 import java.util.ArrayList;
43 import java.util.HashMap;
44 import java.util.List;
47 import javax.servlet.http.HttpServletRequest;
48 import javax.servlet.http.HttpServletResponse;
50 import org.junit.Before;
51 import org.junit.Test;
52 import org.mockito.InjectMocks;
53 import org.mockito.Mock;
54 import org.mockito.Mockito;
55 import org.mockito.MockitoAnnotations;
56 import org.onap.portalapp.portal.controller.DashboardSearchResultController;
57 import org.onap.portalapp.portal.core.MockEPUser;
58 import org.onap.portalapp.portal.domain.EPUser;
59 import org.onap.portalapp.portal.ecomp.model.PortalRestResponse;
60 import org.onap.portalapp.portal.ecomp.model.PortalRestStatusEnum;
61 import org.onap.portalapp.portal.ecomp.model.SearchResultItem;
62 import org.onap.portalapp.portal.framework.MockitoTestSuite;
63 import org.onap.portalapp.portal.service.DashboardSearchService;
64 import org.onap.portalapp.portal.service.DashboardSearchServiceImpl;
65 import org.onap.portalapp.portal.transport.CommonWidget;
66 import org.onap.portalapp.portal.transport.CommonWidgetMeta;
67 import org.onap.portalapp.util.EPUserUtils;
69 public class DashboardSearchResultControllerTest {
72 DashboardSearchService searchService = new DashboardSearchServiceImpl();
75 DashboardSearchResultController dashboardSearchResultController = new DashboardSearchResultController();
79 MockitoAnnotations.initMocks(this);
82 MockitoTestSuite mockitoTestSuite = new MockitoTestSuite();
84 HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest();
85 HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse();
86 NullPointerException nullPointerException = new NullPointerException();
89 EPUserUtils ePUserUtils = new EPUserUtils();
91 MockEPUser mockUser = new MockEPUser();
94 public void getWidgetDataTest() {
95 String resourceType = "test";
96 PortalRestResponse<CommonWidgetMeta> ecpectedPortalRestResponse = new PortalRestResponse<>();
97 ecpectedPortalRestResponse.setMessage("success");
98 ecpectedPortalRestResponse.setResponse(null);
99 ecpectedPortalRestResponse.setStatus(PortalRestStatusEnum.OK);
100 Mockito.when(searchService.getWidgetData(resourceType)).thenReturn(null);
101 PortalRestResponse<CommonWidgetMeta> acutualPoratlRestResponse = dashboardSearchResultController
102 .getWidgetData(mockedRequest, resourceType);
103 assertEquals(acutualPoratlRestResponse, ecpectedPortalRestResponse);
108 public void getWidgetDataXSSTest() {
109 String resourceType = "\"<IMG SRC=\\\"jav\\tascript:alert('XSS');\\\">\"";
110 PortalRestResponse expectedPortalRestResponse = new PortalRestResponse<>();
111 expectedPortalRestResponse.setMessage("resourceType: String string is not valid");
112 expectedPortalRestResponse.setResponse("");
113 expectedPortalRestResponse.setStatus(PortalRestStatusEnum.ERROR);
114 Mockito.when(searchService.getWidgetData(resourceType)).thenReturn(null);
115 PortalRestResponse acutualPoratlRestResponse = dashboardSearchResultController
116 .getWidgetData(mockedRequest, resourceType);
117 assertEquals(expectedPortalRestResponse,acutualPoratlRestResponse);
121 public void saveWidgetDataBulkTest() {
122 PortalRestResponse<String> ecpectedPortalRestResponse = new PortalRestResponse<>();
123 ecpectedPortalRestResponse.setMessage("success");
124 ecpectedPortalRestResponse.setResponse(null);
125 ecpectedPortalRestResponse.setStatus(PortalRestStatusEnum.OK);
127 CommonWidgetMeta commonWidgetMeta = new CommonWidgetMeta();
128 commonWidgetMeta.setCategory("test");
130 List<CommonWidget> commonWidgetList = new ArrayList<>();
131 CommonWidget commonWidget = new CommonWidget();
132 commonWidget.setId((long) 1);
133 commonWidget.setCategory("test");
134 commonWidget.setHref("test_href");
135 commonWidget.setTitle("test_title");
136 commonWidget.setContent("test_content");
137 commonWidget.setEventDate(null);
138 commonWidget.setSortOrder(1);
140 commonWidgetList.add(commonWidget);
142 commonWidgetMeta.setItems(commonWidgetList);
144 Mockito.when(searchService.saveWidgetDataBulk(commonWidgetMeta)).thenReturn(null);
146 PortalRestResponse<String> actualPortalRestResponse = dashboardSearchResultController
147 .saveWidgetDataBulk(commonWidgetMeta);
148 assertEquals(actualPortalRestResponse, ecpectedPortalRestResponse);
152 public void saveWidgetDataBulkXSSTest() {
153 PortalRestResponse<String> ecpectedPortalRestResponse = new PortalRestResponse<>();
154 ecpectedPortalRestResponse.setMessage("ERROR");
155 ecpectedPortalRestResponse.setResponse("Category is not valid");
156 ecpectedPortalRestResponse.setStatus(PortalRestStatusEnum.ERROR);
158 CommonWidgetMeta commonWidgetMeta = new CommonWidgetMeta();
159 commonWidgetMeta.setCategory("test");
161 List<CommonWidget> commonWidgetList = new ArrayList<>();
162 CommonWidget commonWidget = new CommonWidget();
163 commonWidget.setId((long) 1);
164 commonWidget.setCategory("test");
165 commonWidget.setHref("\"<IMG SRC=\\\"jav\\tascript:alert('XSS');\\\">\"");
166 commonWidget.setTitle("test_title");
167 commonWidget.setContent("test_content");
168 commonWidget.setEventDate(null);
169 commonWidget.setSortOrder(1);
171 commonWidgetList.add(commonWidget);
173 commonWidgetMeta.setItems(commonWidgetList);
175 Mockito.when(searchService.saveWidgetDataBulk(commonWidgetMeta)).thenReturn(null);
177 PortalRestResponse<String> actualPortalRestResponse = dashboardSearchResultController
178 .saveWidgetDataBulk(commonWidgetMeta);
179 assertEquals(ecpectedPortalRestResponse, actualPortalRestResponse);
183 public void saveWidgetDataBulkIfCategoryNullTest() {
184 PortalRestResponse<String> ecpectedPortalRestResponse = new PortalRestResponse<>();
185 ecpectedPortalRestResponse.setMessage("java.text.ParseException: Unparseable date: \"1\"");
186 ecpectedPortalRestResponse.setResponse(null);
187 ecpectedPortalRestResponse.setStatus(PortalRestStatusEnum.ERROR);
189 CommonWidgetMeta commonWidgetMeta = new CommonWidgetMeta();
190 commonWidgetMeta.setCategory("test");
192 List<CommonWidget> commonWidgetList = new ArrayList<>();
193 CommonWidget commonWidget = new CommonWidget();
194 commonWidget.setId(null);
195 commonWidget.setCategory(null);
196 commonWidget.setHref(null);
197 commonWidget.setTitle(null);
198 commonWidget.setContent("test_content");
199 commonWidget.setEventDate("1");
200 commonWidget.setSortOrder(1);
201 commonWidgetList.add(commonWidget);
202 commonWidgetMeta.setItems(commonWidgetList);
204 Mockito.when(searchService.saveWidgetDataBulk(commonWidgetMeta)).thenReturn(null);
206 PortalRestResponse<String> actualPortalRestResponse = dashboardSearchResultController
207 .saveWidgetDataBulk(commonWidgetMeta);
208 assertEquals(actualPortalRestResponse, ecpectedPortalRestResponse);
212 public void saveWidgetDataTest() {
213 PortalRestResponse<String> ecpectedPortalRestResponse = new PortalRestResponse<>();
214 ecpectedPortalRestResponse.setMessage("success");
215 ecpectedPortalRestResponse.setResponse(null);
216 ecpectedPortalRestResponse.setStatus(PortalRestStatusEnum.OK);
217 CommonWidget commonWidget = new CommonWidget();
218 commonWidget.setId((long) 1);
219 commonWidget.setCategory("test");
220 commonWidget.setHref("test_href");
221 commonWidget.setTitle("test_title");
222 commonWidget.setContent("test_content");
223 commonWidget.setEventDate(null);
224 commonWidget.setSortOrder(1);
226 Mockito.when(searchService.saveWidgetData(commonWidget)).thenReturn(null);
228 PortalRestResponse<String> actualPortalRestResponse = dashboardSearchResultController
229 .saveWidgetData(commonWidget);
230 assertEquals(actualPortalRestResponse, ecpectedPortalRestResponse);
235 public void saveWidgetDataXSSTest() {
236 PortalRestResponse<String> expectedPortalRestResponse = new PortalRestResponse<>();
237 expectedPortalRestResponse.setMessage("ERROR");
238 expectedPortalRestResponse.setResponse("Category is not valid");
239 expectedPortalRestResponse.setStatus(PortalRestStatusEnum.ERROR);
240 CommonWidget commonWidget = new CommonWidget();
241 commonWidget.setId((long) 1);
242 commonWidget.setCategory("test");
243 commonWidget.setHref("\"<IMG SRC=\"jav\\tascript:alert('XSS');\">\"");
244 commonWidget.setTitle("test_title");
245 commonWidget.setContent("test_content");
246 commonWidget.setEventDate(null);
247 commonWidget.setSortOrder(1);
249 Mockito.when(searchService.saveWidgetData(commonWidget)).thenReturn(null);
251 PortalRestResponse<String> actualPortalRestResponse = dashboardSearchResultController
252 .saveWidgetData(commonWidget);
253 assertEquals(expectedPortalRestResponse, actualPortalRestResponse);
258 public void saveWidgetDataExceptionTest() {
259 PortalRestResponse<String> ecpectedPortalRestResponse = new PortalRestResponse<>();
260 ecpectedPortalRestResponse.setMessage("ERROR");
261 ecpectedPortalRestResponse.setResponse("Category cannot be null or empty");
262 ecpectedPortalRestResponse.setStatus(PortalRestStatusEnum.ERROR);
263 CommonWidget commonWidget = new CommonWidget();
264 commonWidget.setId((long) 1);
265 commonWidget.setCategory("");
266 commonWidget.setHref("test_href");
267 commonWidget.setTitle("test_title");
268 commonWidget.setContent("test_content");
269 commonWidget.setEventDate(null);
270 commonWidget.setSortOrder(1);
272 Mockito.when(searchService.saveWidgetData(commonWidget)).thenReturn(null);
274 PortalRestResponse<String> actualPortalRestResponse = dashboardSearchResultController
275 .saveWidgetData(commonWidget);
276 assertEquals(actualPortalRestResponse, ecpectedPortalRestResponse);
281 public void saveWidgetDataDateErrorTest() {
282 PortalRestResponse<String> ecpectedPortalRestResponse = new PortalRestResponse<>();
283 ecpectedPortalRestResponse.setMessage("java.text.ParseException: Unparseable date: \"1\"");
284 ecpectedPortalRestResponse.setResponse(null);
285 ecpectedPortalRestResponse.setStatus(PortalRestStatusEnum.ERROR);
286 CommonWidget commonWidget = new CommonWidget();
287 commonWidget.setId((long) 1);
288 commonWidget.setCategory("test");
289 commonWidget.setHref("test_href");
290 commonWidget.setTitle("test_title");
291 commonWidget.setContent("test_content");
292 commonWidget.setEventDate("1");
293 commonWidget.setSortOrder(1);
295 Mockito.when(searchService.saveWidgetData(commonWidget)).thenReturn(null);
297 PortalRestResponse<String> actualPortalRestResponse = dashboardSearchResultController
298 .saveWidgetData(commonWidget);
299 assertEquals(actualPortalRestResponse, ecpectedPortalRestResponse);
304 public void deleteWidgetDataTest() {
305 PortalRestResponse<String> ecpectedPortalRestResponse = new PortalRestResponse<>();
306 ecpectedPortalRestResponse.setMessage("success");
307 ecpectedPortalRestResponse.setResponse(null);
308 ecpectedPortalRestResponse.setStatus(PortalRestStatusEnum.OK);
309 CommonWidget commonWidget = new CommonWidget();
310 commonWidget.setId((long) 1);
311 commonWidget.setCategory("test");
312 commonWidget.setHref("test_href");
313 commonWidget.setTitle("test_title");
314 commonWidget.setContent("test_content");
315 commonWidget.setEventDate(null);
316 commonWidget.setSortOrder(1);
317 Mockito.when(searchService.deleteWidgetData(commonWidget)).thenReturn(null);
319 PortalRestResponse<String> actualPortalRestResponse = dashboardSearchResultController
320 .deleteWidgetData(commonWidget);
321 System.out.println(actualPortalRestResponse);
322 assertEquals(actualPortalRestResponse, ecpectedPortalRestResponse);
326 public void deleteWidgetDataXSSTest() {
327 PortalRestResponse<String> expectedPortalRestResponse = new PortalRestResponse<>();
328 expectedPortalRestResponse.setMessage("ERROR");
329 expectedPortalRestResponse.setResponse("CommonWidget is not valid");
330 expectedPortalRestResponse.setStatus(PortalRestStatusEnum.ERROR);
331 CommonWidget commonWidget = new CommonWidget();
332 commonWidget.setId((long) 1);
333 commonWidget.setCategory("test");
334 commonWidget.setHref("test_href");
335 commonWidget.setTitle("\"<IMG SRC=\"jav\\tascript:alert('XSS');\">\"");
336 commonWidget.setContent("test_content");
337 commonWidget.setEventDate(null);
338 commonWidget.setSortOrder(1);
339 Mockito.when(searchService.deleteWidgetData(commonWidget)).thenReturn(null);
341 PortalRestResponse<String> actualPortalRestResponse = dashboardSearchResultController
342 .deleteWidgetData(commonWidget);
344 assertEquals(expectedPortalRestResponse, actualPortalRestResponse);
348 public void searchPortalIfUserIsNull() {
350 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
351 String searchString = "test";
353 PortalRestResponse<Map<String, List<SearchResultItem>>> expectedResult = new PortalRestResponse<>();
354 expectedResult.setMessage("searchPortal: User object is null? - check logs");
355 expectedResult.setResponse(new HashMap<>());
356 expectedResult.setStatus(PortalRestStatusEnum.ERROR);
357 PortalRestResponse<Map<String, List<SearchResultItem>>> actualResult = dashboardSearchResultController
358 .searchPortal(mockedRequest, searchString);
359 assertEquals(expectedResult, actualResult);
363 public void searchPortalIfSearchStringNullTest() {
364 EPUser user = mockUser.mockEPUser();
365 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
366 String searchString = null;
368 PortalRestResponse<Map<String, List<SearchResultItem>>> expectedResult = new PortalRestResponse<>();
369 expectedResult.setMessage("searchPortal: String string is null");
370 expectedResult.setResponse(new HashMap<>());
371 expectedResult.setStatus(PortalRestStatusEnum.ERROR);
373 PortalRestResponse<Map<String, List<SearchResultItem>>> actualResult = dashboardSearchResultController
374 .searchPortal(mockedRequest, searchString);
375 assertEquals(expectedResult, actualResult);
379 public void searchPortalIfSearchTest() {
380 EPUser user = mockUser.mockEPUser();
381 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
382 String searchString = "test";
383 List<SearchResultItem> searchResultItemList = new ArrayList<>();
384 SearchResultItem searchResultItem = new SearchResultItem();
386 searchResultItem.setId((long) 1);
387 searchResultItem.setCategory("test");
388 searchResultItem.setName("test_name");
389 searchResultItem.setTarget("test_target");
390 searchResultItem.setUuid("test_UUId");
391 searchResultItemList.add(searchResultItem);
392 Map<String, List<SearchResultItem>> expectedResultMap = new HashMap<>();
393 expectedResultMap.put(searchString, searchResultItemList);
395 PortalRestResponse<Map<String, List<SearchResultItem>>> expectedResult = new PortalRestResponse<>();
396 expectedResult.setMessage("success");
397 expectedResult.setResponse(expectedResultMap);
398 expectedResult.setStatus(PortalRestStatusEnum.OK);
400 Mockito.when(searchService.searchResults(user.getLoginId(), searchString)).thenReturn(expectedResultMap);
401 PortalRestResponse<Map<String, List<SearchResultItem>>> actualResult = dashboardSearchResultController
402 .searchPortal(mockedRequest, searchString);
403 assertEquals(expectedResult, actualResult);
408 public void searchPortalIfSearchExcptionTest() {
409 EPUser user = mockUser.mockEPUser();
410 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
411 String searchString = "test";
413 PortalRestResponse<Map<String, List<SearchResultItem>>> expectedResult = new PortalRestResponse<>();
414 expectedResult.setMessage("null - check logs.");
415 expectedResult.setResponse(new HashMap<>());
416 expectedResult.setStatus(PortalRestStatusEnum.ERROR);
418 Mockito.when(searchService.searchResults(user.getLoginId(), searchString)).thenThrow(nullPointerException);
419 PortalRestResponse<Map<String, List<SearchResultItem>>> actualResult = dashboardSearchResultController
420 .searchPortal(mockedRequest, searchString);
421 assertEquals(expectedResult, actualResult);
425 public void getActiveUsersTest() {
426 List<String> expectedActiveUsers = new ArrayList<>();
427 EPUser user = mockUser.mockEPUser();
428 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
429 String userId = user.getOrgUserId();
430 Mockito.when(searchService.getRelatedUsers(userId)).thenReturn(expectedActiveUsers);
431 List<String> actualOnlineUsers = dashboardSearchResultController.getActiveUsers(mockedRequest);
432 assertEquals(expectedActiveUsers, actualOnlineUsers);
437 public void getActiveUsersExceptionTest() {
438 List<String> expectedActiveUsers = new ArrayList<>();
439 EPUser user = mockUser.mockEPUser();
440 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
441 String userId = user.getOrgUserId();
442 Mockito.when(searchService.getRelatedUsers(userId)).thenThrow(nullPointerException);
443 List<String> actualOnlineUsers = dashboardSearchResultController.getActiveUsers(mockedRequest);
444 assertEquals(expectedActiveUsers, actualOnlineUsers);
449 public void activeUsersTest() {
450 EPUser user = mockUser.mockEPUser();
451 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
452 PortalRestResponse<List<String>> expectedResult = new PortalRestResponse<>();
453 expectedResult.setMessage("success");
454 expectedResult.setResponse(new ArrayList<>());
455 expectedResult.setStatus(PortalRestStatusEnum.OK);
456 PortalRestResponse<List<String>> actualResult = dashboardSearchResultController.activeUsers(mockedRequest);
458 assertEquals(actualResult, expectedResult);
463 public void activeUsersIfUserNullTest() {
465 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
466 PortalRestResponse<List<String>> expectedResult = new PortalRestResponse<>();
467 expectedResult.setMessage("User object is null? - check logs");
468 expectedResult.setResponse(new ArrayList<>());
469 expectedResult.setStatus(PortalRestStatusEnum.ERROR);
470 PortalRestResponse<List<String>> actualResult = dashboardSearchResultController.activeUsers(mockedRequest);
471 assertEquals(actualResult, expectedResult);
476 public void activeUsersExceptionTest() {
477 EPUser user = mockUser.mockEPUser();
478 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
479 PortalRestResponse<List<String>> expectedResult = new PortalRestResponse<>();
480 expectedResult.setMessage("null - check logs.");
481 expectedResult.setResponse(new ArrayList<>());
482 expectedResult.setStatus(PortalRestStatusEnum.ERROR);
483 Mockito.when(searchService.getRelatedUsers(user.getLoginId())).thenThrow(nullPointerException);
484 PortalRestResponse<List<String>> actualResult = dashboardSearchResultController.activeUsers(mockedRequest);
485 assertEquals(actualResult, expectedResult);