1 package org.openecomp.portalapp.portal.controller;
3 import static org.junit.Assert.assertEquals;
5 import java.io.IOException;
6 import java.util.ArrayList;
10 import javax.servlet.http.HttpServletRequest;
11 import javax.servlet.http.HttpServletResponse;
13 import org.junit.Before;
14 import org.junit.Test;
15 import org.junit.runner.RunWith;
16 import org.mockito.InjectMocks;
17 import org.mockito.Mock;
18 import org.mockito.Mockito;
19 import org.mockito.MockitoAnnotations;
20 import org.openecomp.portalapp.portal.framework.MockitoTestSuite;
21 import org.openecomp.portalapp.portal.controller.DashboardController;
22 import org.openecomp.portalapp.portal.core.MockEPUser;
23 import org.openecomp.portalapp.portal.domain.EPUser;
24 import org.openecomp.portalapp.portal.ecomp.model.PortalRestResponse;
25 import org.openecomp.portalapp.portal.ecomp.model.PortalRestStatusEnum;
26 import org.openecomp.portalapp.portal.service.DashboardSearchService;
27 import org.openecomp.portalapp.portal.service.DashboardSearchServiceImpl;
28 import org.openecomp.portalapp.portal.transport.CommonWidget;
29 import org.openecomp.portalapp.portal.transport.CommonWidgetMeta;
30 import org.openecomp.portalapp.portal.utils.EPCommonSystemProperties;
31 import org.openecomp.portalapp.util.EPUserUtils;
32 import org.openecomp.portalsdk.core.domain.support.CollaborateList;
33 import org.openecomp.portalsdk.core.util.SystemProperties;
34 import org.powermock.api.mockito.PowerMockito;
35 import org.powermock.core.classloader.annotations.PrepareForTest;
36 import org.powermock.modules.junit4.PowerMockRunner;
39 @RunWith(PowerMockRunner.class)
40 @PrepareForTest({EPUserUtils.class, CollaborateList.class, SystemProperties.class, EPCommonSystemProperties.class})
41 public class DashboardControllerTest {
44 DashboardSearchService searchService = new DashboardSearchServiceImpl();
47 DashboardController dashboardController = new DashboardController();
51 MockitoAnnotations.initMocks(this);
54 MockitoTestSuite mockitoTestSuite = new MockitoTestSuite();
56 HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest();
57 HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse();
59 NullPointerException nullPointerException = new NullPointerException();
61 MockEPUser mockUser = new MockEPUser();
63 public CommonWidgetMeta mockCommonWidgetMeta() {
64 CommonWidgetMeta commonWidgetMeta= new CommonWidgetMeta();
65 List<CommonWidget> widgetList = new ArrayList<>();
66 CommonWidget commonWidget = new CommonWidget();
67 commonWidget.setId((long) 1);
68 commonWidget.setCategory("test");
69 commonWidget.setHref("testhref");
70 commonWidget.setTitle("testTitle");
71 commonWidget.setContent("testcontent");
72 commonWidget.setEventDate("testDate");
73 commonWidget.setSortOrder(1);
74 widgetList.add(commonWidget);
75 commonWidgetMeta.setItems(widgetList);
77 return commonWidgetMeta;
80 public CommonWidget mockCommonWidget() {
82 CommonWidget commonWidget = new CommonWidget();
83 commonWidget.setId((long) 1);
84 commonWidget.setCategory("test");
85 commonWidget.setHref("testhref");
86 commonWidget.setTitle("testTitle");
87 commonWidget.setContent("testcontent");
88 commonWidget.setEventDate("testDate");
89 commonWidget.setSortOrder(1);
96 public void getWidgetDataTest() throws IOException {
98 String resourceType = null;
99 PortalRestResponse<CommonWidgetMeta> expectedData = new PortalRestResponse<CommonWidgetMeta>();
100 expectedData.setStatus(PortalRestStatusEnum.ERROR);
101 expectedData.setMessage("Unexpected resource type null");
102 expectedData.setResponse(null);
104 PortalRestResponse<CommonWidgetMeta> actualResponse = dashboardController.getWidgetData(mockedRequest, resourceType);
105 assertEquals(expectedData,actualResponse);
109 public void getWidgetDataWithValidResourceTest() throws IOException {
110 String resourceType = "EVENTS";
111 CommonWidgetMeta commonWidgetMeta= mockCommonWidgetMeta();
112 commonWidgetMeta.setCategory(null);
114 Mockito.when(searchService.getWidgetData(resourceType)).thenReturn(commonWidgetMeta);
115 PortalRestResponse<CommonWidgetMeta> expectedData = new PortalRestResponse<CommonWidgetMeta>();
116 expectedData.setStatus(PortalRestStatusEnum.OK);
117 expectedData.setMessage("success");
118 expectedData.setResponse(commonWidgetMeta);
120 PortalRestResponse<CommonWidgetMeta> actualResponse = dashboardController.getWidgetData(mockedRequest, resourceType);
121 System.out.println(actualResponse);
122 assertEquals(expectedData,actualResponse);
126 public void saveWidgetDataBulkNullTest() throws IOException {
127 CommonWidgetMeta commonWidgetMeta= mockCommonWidgetMeta();
128 commonWidgetMeta.setCategory(null);
130 PortalRestResponse<String> expectedData = new PortalRestResponse<String>();
131 expectedData.setStatus(PortalRestStatusEnum.ERROR);
132 expectedData.setMessage("ERROR");
133 expectedData.setResponse("Category cannot be null or empty");
135 PortalRestResponse<String> actualResponse = dashboardController.saveWidgetDataBulk(commonWidgetMeta);
136 assertEquals(expectedData,actualResponse);
140 public void saveWidgetUnexpectedDataBulkTest() throws IOException {
141 CommonWidgetMeta commonWidgetMeta= mockCommonWidgetMeta();
142 commonWidgetMeta.setCategory("Unexpected Data");
144 PortalRestResponse<String> expectedData = new PortalRestResponse<String>();
145 expectedData.setStatus(PortalRestStatusEnum.ERROR);
146 expectedData.setMessage("Unexpected resource type Unexpected Data");
147 expectedData.setResponse(null);
149 PortalRestResponse<String> actualResponse = dashboardController.saveWidgetDataBulk(commonWidgetMeta);
150 assertEquals(expectedData,actualResponse);
155 public void saveWidgetInvalidDataBulkTest() throws IOException {
156 CommonWidgetMeta commonWidgetMeta= mockCommonWidgetMeta();
157 commonWidgetMeta.setCategory("EVENTS");
159 PortalRestResponse<String> expectedData = new PortalRestResponse<String>();
160 expectedData.setStatus(PortalRestStatusEnum.ERROR);
161 expectedData.setMessage("Invalid category: test");
162 expectedData.setResponse(null);
164 PortalRestResponse<String> actualResponse = dashboardController.saveWidgetDataBulk(commonWidgetMeta);
165 assertEquals(expectedData,actualResponse);
169 public void saveWidgetDataBulkTest() throws IOException {
171 List<CommonWidget> widgetList = new ArrayList<>();
172 CommonWidget commonWidget = new CommonWidget("EVENTS", "http://test.com", "testTitle", "testcontent", "2017-07-01", 1);
173 widgetList.add(commonWidget);
174 CommonWidgetMeta commonWidgetMeta= new CommonWidgetMeta("EVENTS", widgetList);
178 /* commonWidgetMeta.setItems(widgetList);
180 commonWidgetMeta.setCategory("EVENTS");*/
182 PortalRestResponse<String> expectedData = new PortalRestResponse<String>();
183 expectedData.setStatus(PortalRestStatusEnum.OK);
184 expectedData.setMessage("success");
185 expectedData.setResponse("success");
187 Mockito.when(searchService.saveWidgetDataBulk(commonWidgetMeta)).thenReturn("success");
189 PortalRestResponse<String> actualResponse = dashboardController.saveWidgetDataBulk(commonWidgetMeta);
190 assertEquals(expectedData,actualResponse);
194 public void saveWidgetDataNullTest() throws IOException {
196 CommonWidget commonWidget = mockCommonWidget();
197 commonWidget.setId((long)1);
198 commonWidget.setContent("test");
199 commonWidget.setCategory(null);
200 PortalRestResponse<String> expectedData = new PortalRestResponse<String>();
201 expectedData.setStatus(PortalRestStatusEnum.ERROR);
202 expectedData.setMessage("ERROR");
203 expectedData.setResponse("Category cannot be null or empty");
205 PortalRestResponse<String> actualResponse = dashboardController.saveWidgetData(commonWidget);
206 assertEquals(expectedData,actualResponse);
211 public void saveWidgetDataErrorTest() throws IOException {
213 CommonWidget commonWidget = mockCommonWidget();
214 PortalRestResponse<String> expectedData = new PortalRestResponse<String>();
215 expectedData.setStatus(PortalRestStatusEnum.ERROR);
216 expectedData.setMessage("Invalid category: test");
217 expectedData.setResponse(null);
219 PortalRestResponse<String> actualResponse = dashboardController.saveWidgetData(commonWidget);
220 assertEquals(expectedData,actualResponse);
224 public void saveWidgetDataTest() throws IOException {
226 CommonWidgetMeta commonWidgetMeta= new CommonWidgetMeta();
227 List<CommonWidget> widgetList = new ArrayList<>();
228 CommonWidget commonWidget = new CommonWidget();
229 commonWidget.setId((long) 1);
230 commonWidget.setCategory("EVENTS");
231 commonWidget.setHref("http://test.com");
232 commonWidget.setTitle("testTitle");
233 commonWidget.setContent("testcontent");
234 commonWidget.setEventDate("2017-07-01");
235 commonWidget.setSortOrder(1);
236 widgetList.add(commonWidget);
237 commonWidgetMeta.setItems(widgetList);
239 commonWidgetMeta.setCategory("EVENTS");
241 PortalRestResponse<String> expectedData = new PortalRestResponse<String>();
242 expectedData.setStatus(PortalRestStatusEnum.OK);
243 expectedData.setMessage("success");
244 expectedData.setResponse("success");
246 Mockito.when(searchService.saveWidgetData(commonWidget)).thenReturn("success");
248 PortalRestResponse<String> actualResponse = dashboardController.saveWidgetData(commonWidget);
249 assertEquals(expectedData,actualResponse);
254 public void deleteWidgetDataTest() throws IOException {
256 CommonWidget commonWidget = mockCommonWidget();
258 PortalRestResponse<String> expectedData = new PortalRestResponse<String>();
259 expectedData.setStatus(PortalRestStatusEnum.OK);
260 expectedData.setMessage("success");
261 expectedData.setResponse(null);
263 Mockito.when(searchService.saveWidgetData(commonWidget)).thenReturn("success");
265 PortalRestResponse<String> actualResponse = dashboardController.deleteWidgetData(commonWidget);
266 assertEquals(expectedData,actualResponse);
271 public void getActiveUsersTest(){
272 List<String> activeUsers = new ArrayList<>();
273 List<String> expectedUsersList = new ArrayList<>();
274 EPUser user = mockUser.mockEPUser();
275 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
276 String userId = user.getOrgUserId();
277 Mockito.when(searchService.getRelatedUsers(userId)).thenReturn(activeUsers);
278 expectedUsersList= dashboardController.getActiveUsers(mockedRequest);
279 assertEquals(expectedUsersList, activeUsers);
284 public void getActiveUsersExceptionTest(){
285 List<String> activeUsers = new ArrayList<>();
286 List<String> expectedUsersList = new ArrayList<>();
287 EPUser user = mockUser.mockEPUser();
288 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
289 String userId = user.getOrgUserId();
290 Mockito.when(searchService.getRelatedUsers(userId)).thenThrow(nullPointerException);
291 expectedUsersList = dashboardController.getActiveUsers(mockedRequest);
292 assertEquals(expectedUsersList, activeUsers);
296 public void getOnlineUserUpdateRateTest(){
297 PortalRestResponse<String> expectedData = new PortalRestResponse<String>();
298 expectedData.setStatus(PortalRestStatusEnum.OK);
299 expectedData.setMessage("success");
300 expectedData.setResponse("{onlineUserUpdateRate=1400000, onlineUserUpdateDuration=1400000}");
302 PowerMockito.mockStatic(SystemProperties.class);
303 PowerMockito.mockStatic(EPCommonSystemProperties.class);
304 Mockito.when(SystemProperties.getProperty(EPCommonSystemProperties.ONLINE_USER_UPDATE_RATE)).thenReturn("1400");
305 Mockito.when(SystemProperties.getProperty(EPCommonSystemProperties.ONLINE_USER_UPDATE_DURATION)).thenReturn("1400");
307 PortalRestResponse<Map<String, String>> actualResponse = dashboardController.getOnlineUserUpdateRate(mockedRequest);
308 assertEquals(expectedData.getStatus(),actualResponse.getStatus());
312 public void getOnlineUserUpdateRateExceptionTest(){
313 PortalRestResponse<String> expectedData = new PortalRestResponse<String>();
314 expectedData.setStatus(PortalRestStatusEnum.ERROR);
315 expectedData.setMessage("java.lang.NullPointerException");
316 expectedData.setResponse(null);
318 PowerMockito.mockStatic(SystemProperties.class);
319 PowerMockito.mockStatic(EPCommonSystemProperties.class);
320 Mockito.when(SystemProperties.getProperty(EPCommonSystemProperties.ONLINE_USER_UPDATE_RATE)).thenThrow(nullPointerException);
321 Mockito.when(SystemProperties.getProperty(EPCommonSystemProperties.ONLINE_USER_UPDATE_DURATION)).thenThrow(nullPointerException);
323 PortalRestResponse<Map<String, String>> actualResponse = dashboardController.getOnlineUserUpdateRate(mockedRequest);
324 assertEquals(expectedData,actualResponse);
328 public void getWindowWidthThresholdForRightMenuTest(){
329 PortalRestResponse<String> expectedData = new PortalRestResponse<String>();
330 expectedData.setStatus(PortalRestStatusEnum.OK);
331 expectedData.setMessage("success");
332 expectedData.setResponse("{windowWidth=1400}");
334 PowerMockito.mockStatic(SystemProperties.class);
335 PowerMockito.mockStatic(EPCommonSystemProperties.class);
336 Mockito.when(SystemProperties.getProperty(EPCommonSystemProperties.WINDOW_WIDTH_THRESHOLD_RIGHT_MENU)).thenReturn("1400");
338 PortalRestResponse<Map<String, String>> actualResponse = dashboardController.getWindowWidthThresholdForRightMenu(mockedRequest);
339 assertEquals(expectedData.getStatus(),actualResponse.getStatus());
343 public void getWindowWidthThresholdForRightMenuExceptionTest(){
344 PortalRestResponse<String> expectedData = new PortalRestResponse<String>();
345 expectedData.setStatus(PortalRestStatusEnum.ERROR);
346 expectedData.setMessage("java.lang.NullPointerException");
347 expectedData.setResponse(null);
349 PowerMockito.mockStatic(SystemProperties.class);
350 PowerMockito.mockStatic(EPCommonSystemProperties.class);
351 Mockito.when(SystemProperties.getProperty(EPCommonSystemProperties.WINDOW_WIDTH_THRESHOLD_RIGHT_MENU)).thenThrow(nullPointerException);
353 PortalRestResponse<Map<String, String>> actualResponse = dashboardController.getWindowWidthThresholdForRightMenu(mockedRequest);
354 assertEquals(expectedData,actualResponse);
358 public void getWindowWidthThresholdForLeftMenuTest(){
359 PortalRestResponse<String> expectedData = new PortalRestResponse<String>();
360 expectedData.setStatus(PortalRestStatusEnum.OK);
361 expectedData.setMessage("success");
362 expectedData.setResponse("{windowWidth=1400}");
364 PowerMockito.mockStatic(SystemProperties.class);
365 PowerMockito.mockStatic(EPCommonSystemProperties.class);
366 Mockito.when(SystemProperties.getProperty(EPCommonSystemProperties.WINDOW_WIDTH_THRESHOLD_LEFT_MENU)).thenReturn("1400");
368 PortalRestResponse<Map<String, String>> actualResponse = dashboardController.getWindowWidthThresholdForLeftMenu(mockedRequest);
369 assertEquals(expectedData.getStatus(),actualResponse.getStatus());
373 public void getWindowWidthThresholdForLeftMenuExceptionTest(){
374 PortalRestResponse<String> expectedData = new PortalRestResponse<String>();
375 expectedData.setStatus(PortalRestStatusEnum.ERROR);
376 expectedData.setMessage("java.lang.NullPointerException");
377 expectedData.setResponse(null);
379 PowerMockito.mockStatic(SystemProperties.class);
380 PowerMockito.mockStatic(EPCommonSystemProperties.class);
381 Mockito.when(SystemProperties.getProperty(EPCommonSystemProperties.WINDOW_WIDTH_THRESHOLD_LEFT_MENU)).thenThrow(nullPointerException);
383 PortalRestResponse<Map<String, String>> actualResponse = dashboardController.getWindowWidthThresholdForLeftMenu(mockedRequest);
384 assertEquals(expectedData,actualResponse);
388 public void getActiveUsersNullTest(){
389 PortalRestResponse<List<String>> expectedData = new PortalRestResponse<List<String>>();
390 expectedData.setStatus(PortalRestStatusEnum.ERROR);
391 expectedData.setMessage("User object is null? - check logs");
392 expectedData.setResponse(new ArrayList<>());
394 PortalRestResponse<List<String>> actualResponse = dashboardController.activeUsers(mockedRequest);
395 assertEquals(expectedData,actualResponse);
399 public void activeUsersTest(){
400 EPUser user = mockUser.mockEPUser();
401 PortalRestResponse<List<String>> expectedData = new PortalRestResponse<List<String>>();
402 expectedData.setStatus(PortalRestStatusEnum.OK);
403 expectedData.setMessage("success");
404 expectedData.setResponse(new ArrayList<>());
405 PowerMockito.mockStatic(EPUserUtils.class);
406 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
407 PortalRestResponse<List<String>> actualResponse = dashboardController.activeUsers(mockedRequest);
408 assertEquals(expectedData,actualResponse);
412 // public void activeUsersExceptionTest(){
413 // EPUser user = mockUser.mockEPUser();
414 // user.setLoginId("test");
415 // String loginId = "abc";
416 // PortalRestResponse<List<String>> expectedData = new PortalRestResponse<List<String>>();
417 // expectedData.setStatus(PortalRestStatusEnum.ERROR);
418 // expectedData.setMessage("java.lang.NullPointerException");
419 // expectedData.setResponse(null);
421 //// PowerMockito.mockStatic(EPUserUtils.class);
422 // Mockito.when(searchService.getRelatedUsers(user.getLoginId(user.getLoginId()))).thenReturn(nullPointerException);
423 // PortalRestResponse<List<String>> actualResponse = dashboardController.activeUsers(mockedRequest);
424 // System.out.println(actualResponse);
425 // //assertEquals(expectedData,actualResponse);