2 * ================================================================================
\r
4 * ================================================================================
\r
5 * Copyright (C) 2017 AT&T Intellectual Property
\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
11 * http://www.apache.org/licenses/LICENSE-2.0
\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 * ================================================================================
\r
20 package org.openecomp.portalapp.portal.test.controller;
\r
22 import static org.junit.Assert.assertTrue;
\r
24 import java.util.ArrayList;
\r
25 import java.util.Calendar;
\r
26 import java.util.Date;
\r
27 import java.util.List;
\r
29 import javax.servlet.http.HttpServletRequest;
\r
30 import javax.servlet.http.HttpServletResponse;
\r
31 import javax.servlet.http.HttpSession;
\r
33 import org.junit.Before;
\r
34 import org.junit.Test;
\r
35 import org.junit.runner.RunWith;
\r
36 import org.mockito.InjectMocks;
\r
37 import org.mockito.Mock;
\r
38 import org.mockito.Mockito;
\r
39 import org.mockito.MockitoAnnotations;
\r
40 import org.openecomp.portalapp.portal.controller.UserNotificationController;
\r
41 import org.openecomp.portalapp.portal.domain.EPUser;
\r
42 import org.openecomp.portalapp.portal.ecomp.model.PortalRestResponse;
\r
43 import org.openecomp.portalapp.portal.ecomp.model.PortalRestStatusEnum;
\r
44 import org.openecomp.portalapp.portal.service.FunctionalMenuService;
\r
45 import org.openecomp.portalapp.portal.service.FunctionalMenuServiceImpl;
\r
46 import org.openecomp.portalapp.portal.service.UserNotificationService;
\r
47 import org.openecomp.portalapp.portal.service.UserNotificationServiceImpl;
\r
48 import org.openecomp.portalapp.portal.test.core.MockEPUser;
\r
49 import org.openecomp.portalapp.portal.test.framework.MockitoTestSuite;
\r
50 import org.openecomp.portalapp.portal.transport.EpNotificationItem;
\r
51 import org.openecomp.portalapp.portal.transport.EpNotificationItemVO;
\r
52 import org.openecomp.portalapp.portal.transport.FunctionalMenuRole;
\r
53 import org.openecomp.portalapp.util.EPUserUtils;
\r
54 import org.openecomp.portalsdk.core.util.SystemProperties;
\r
55 import org.openecomp.portalsdk.core.web.support.UserUtils;
\r
56 import org.powermock.api.mockito.PowerMockito;
\r
57 import org.powermock.core.classloader.annotations.PrepareForTest;
\r
58 import org.powermock.modules.junit4.PowerMockRunner;
\r
60 @RunWith(PowerMockRunner.class)
\r
61 @PrepareForTest(UserUtils.class)
\r
62 public class UserNotificationControllerTest {
\r
65 FunctionalMenuService functionalMenuService = new FunctionalMenuServiceImpl();
\r
68 UserNotificationService userNotificationService = new UserNotificationServiceImpl();
\r
71 UserNotificationController userNotificationController = new UserNotificationController();
\r
74 public void setup() {
\r
75 MockitoAnnotations.initMocks(this);
\r
78 MockEPUser mockUser = new MockEPUser();
\r
79 MockitoTestSuite mockitoTestSuite = new MockitoTestSuite();
\r
81 HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest();
\r
82 HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse();
\r
83 NullPointerException nullPointerException = new NullPointerException();
\r
86 public void getMenuIdRoleIdTest() {
\r
87 List<FunctionalMenuRole> expectedMenuRoleList = new ArrayList<FunctionalMenuRole>();
\r
88 FunctionalMenuRole functionalMenuRole = new FunctionalMenuRole();
\r
89 functionalMenuRole.setId(new Integer(99999999));
\r
90 functionalMenuRole.setMenuId((long) 137);
\r
91 functionalMenuRole.setAppId(new Integer(456));
\r
92 functionalMenuRole.setRoleId(new Integer(6214));
\r
93 expectedMenuRoleList.add(functionalMenuRole);
\r
94 List<FunctionalMenuRole> actualFunctionalMenuRoleList = null;
\r
95 Mockito.when(functionalMenuService.getFunctionalMenuRole()).thenReturn(expectedMenuRoleList);
\r
96 actualFunctionalMenuRoleList = userNotificationController.getMenuIdRoleId(mockedRequest, mockedResponse);
\r
97 assertTrue(actualFunctionalMenuRoleList.equals(expectedMenuRoleList));
\r
102 public void getNotificationsTest() {
\r
103 EPUser user = mockUser.mockEPUser();
\r
104 HttpSession session = mockedRequest.getSession();
\r
105 session.setAttribute(SystemProperties.getProperty(SystemProperties.USER_ATTRIBUTE_NAME), user);
\r
106 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
\r
107 List<EpNotificationItem> expectedEpNotificationList = new ArrayList<EpNotificationItem>();
\r
108 EpNotificationItem epNotificationItem = new EpNotificationItem();
\r
109 epNotificationItem.setNotificationId((long) 200);
\r
110 expectedEpNotificationList.add(epNotificationItem);
\r
111 PortalRestResponse<List<EpNotificationItem>> expectedportalRestResponse = new PortalRestResponse<List<EpNotificationItem>>();
\r
112 expectedportalRestResponse.setMessage("success");
\r
113 expectedportalRestResponse.setResponse(expectedEpNotificationList);
\r
114 PortalRestStatusEnum portalRestStatusEnum = null;
\r
115 expectedportalRestResponse.setStatus(portalRestStatusEnum.OK);
\r
116 PortalRestResponse<List<EpNotificationItem>> actualPortalRestResponse = null;
\r
117 Mockito.when(userNotificationService.getNotifications(user.getId())).thenReturn(expectedEpNotificationList);
\r
118 actualPortalRestResponse = userNotificationController.getNotifications(mockedRequest, mockedResponse);
\r
119 assertTrue(expectedportalRestResponse.equals(actualPortalRestResponse));
\r
124 public void getNotificationsCatchesExceptionTest() {
\r
125 EPUser user = mockUser.mockEPUser();
\r
126 HttpSession session = mockedRequest.getSession();
\r
127 session.setAttribute(SystemProperties.getProperty(SystemProperties.USER_ATTRIBUTE_NAME), user);
\r
128 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
\r
129 List<EpNotificationItem> expectedEpNotificationList = null;
\r
130 PortalRestResponse<List<EpNotificationItem>> expectedportalRestResponse = new PortalRestResponse<List<EpNotificationItem>>();
\r
131 expectedportalRestResponse.setMessage(null);
\r
132 expectedportalRestResponse.setResponse(expectedEpNotificationList);
\r
133 PortalRestStatusEnum portalRestStatusEnum = null;
\r
134 expectedportalRestResponse.setStatus(portalRestStatusEnum.ERROR);
\r
135 PortalRestResponse<List<EpNotificationItem>> actualPortalRestResponse = null;
\r
136 Mockito.when(userNotificationService.getNotifications(user.getId())).thenThrow(new NullPointerException());
\r
137 actualPortalRestResponse = userNotificationController.getNotifications(mockedRequest, mockedResponse);
\r
138 assertTrue(expectedportalRestResponse.equals(actualPortalRestResponse));
\r
143 public void getAdminNotificationsTest() {
\r
144 List<EpNotificationItemVO> actualEpNotificationsList = new ArrayList<EpNotificationItemVO>();
\r
145 List<EpNotificationItemVO> expectedEpNotificationsList = new ArrayList<EpNotificationItemVO>();
\r
146 EpNotificationItemVO epNotificationItemVO = new EpNotificationItemVO();
\r
147 epNotificationItemVO.setId((long) 1);
\r
148 expectedEpNotificationsList.add(epNotificationItemVO);
\r
149 Mockito.when(userNotificationService.getAdminNotificationVOS()).thenReturn(expectedEpNotificationsList);
\r
150 actualEpNotificationsList = userNotificationController.getAdminNotifications(mockedRequest, mockedResponse);
\r
151 assertTrue(actualEpNotificationsList.equals(expectedEpNotificationsList));
\r
155 public void saveTestWhenNotificationIsNull() throws Exception {
\r
156 EPUser user = mockUser.mockEPUser();
\r
157 HttpSession session = mockedRequest.getSession();
\r
158 session.setAttribute(SystemProperties.getProperty(SystemProperties.USER_ATTRIBUTE_NAME), user);
\r
159 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
\r
161 PortalRestResponse<String> actualPortalRestResponse = new PortalRestResponse<String>();
\r
162 PortalRestResponse<String> expectedPortalRestResponse = new PortalRestResponse<String>();
\r
163 expectedPortalRestResponse.setMessage("FAILURE");
\r
164 expectedPortalRestResponse.setResponse("Notification Header cannot be null or empty");
\r
165 PortalRestStatusEnum portalRestStatusEnum = null;
\r
166 expectedPortalRestResponse.setStatus(portalRestStatusEnum.ERROR);
\r
168 EpNotificationItem notificationItem = null;
\r
169 actualPortalRestResponse = userNotificationController.save(mockedRequest, mockedResponse, notificationItem);
\r
170 assertTrue(actualPortalRestResponse.equals(expectedPortalRestResponse));
\r
174 public void saveTestWhenEndTimeIsGreater() throws Exception {
\r
175 EPUser user = mockUser.mockEPUser();
\r
176 HttpSession session = mockedRequest.getSession();
\r
177 session.setAttribute(SystemProperties.getProperty(SystemProperties.USER_ATTRIBUTE_NAME), user);
\r
178 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
\r
179 PortalRestResponse<String> actualPortalRestResponse = new PortalRestResponse<String>();
\r
180 PortalRestResponse<String> expectedPortalRestResponse = new PortalRestResponse<String>();
\r
181 expectedPortalRestResponse.setMessage("FAILURE");
\r
182 expectedPortalRestResponse.setResponse("End Time should be greater than start time");
\r
183 PortalRestStatusEnum portalRestStatusEnum = null;
\r
184 expectedPortalRestResponse.setStatus(portalRestStatusEnum.ERROR);
\r
185 EpNotificationItem notificationItem = new EpNotificationItem();
\r
186 notificationItem.setNotificationId((long) 1);
\r
187 notificationItem.setMsgHeader("Test");
\r
188 Date currentDate = new Date();
\r
189 Calendar c = Calendar.getInstance();
\r
190 c.setTime(currentDate);
\r
191 c.add(Calendar.DATE, 1);
\r
192 Date currentDatePlusOne = c.getTime();
\r
193 notificationItem.setStartTime(currentDatePlusOne);
\r
194 notificationItem.setEndTime(currentDate);
\r
196 actualPortalRestResponse = userNotificationController.save(mockedRequest, mockedResponse, notificationItem);
\r
197 assertTrue(actualPortalRestResponse.equals(expectedPortalRestResponse));
\r
202 public void saveTestWhenNoRoleIDExists() throws Exception {
\r
203 EPUser user = mockUser.mockEPUser();
\r
204 HttpSession session = mockedRequest.getSession();
\r
205 session.setAttribute(SystemProperties.getProperty(SystemProperties.USER_ATTRIBUTE_NAME), user);
\r
206 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
\r
207 PortalRestResponse<String> actualPortalRestResponse = new PortalRestResponse<String>();
\r
208 PortalRestResponse<String> expectedPortalRestResponse = new PortalRestResponse<String>();
\r
209 expectedPortalRestResponse.setMessage("FAILURE");
\r
210 expectedPortalRestResponse.setResponse("No Roles Ids Exist for the selected Roles");
\r
211 PortalRestStatusEnum portalRestStatusEnum = null;
\r
212 expectedPortalRestResponse.setStatus(portalRestStatusEnum.ERROR);
\r
213 EpNotificationItem notificationItem = new EpNotificationItem();
\r
214 notificationItem.setNotificationId((long) 1);
\r
215 notificationItem.setMsgHeader("Test");
\r
216 notificationItem.setIsForAllRoles("N");
\r
217 Date currentDate = new Date();
\r
218 Calendar c = Calendar.getInstance();
\r
219 c.setTime(currentDate);
\r
220 c.add(Calendar.DATE, 1);
\r
221 Date currentDatePlusOne = c.getTime();
\r
222 notificationItem.setStartTime(currentDate);
\r
223 notificationItem.setEndTime(currentDatePlusOne);
\r
224 List<Long> roleList = new ArrayList<Long>();
\r
225 notificationItem.setRoleIds(roleList);
\r
226 actualPortalRestResponse = userNotificationController.save(mockedRequest, mockedResponse, notificationItem);
\r
227 assertTrue(actualPortalRestResponse.equals(expectedPortalRestResponse));
\r
231 public void saveTest() throws Exception {
\r
232 EPUser user = mockUser.mockEPUser();
\r
233 HttpSession session = mockedRequest.getSession();
\r
234 session.setAttribute("user", user);
\r
235 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
\r
236 PortalRestResponse<String> actualPortalRestResponse = new PortalRestResponse<String>();
\r
237 PortalRestResponse<String> expectedPortalRestResponse = new PortalRestResponse<String>();
\r
238 expectedPortalRestResponse.setMessage("SUCCESS");
\r
239 expectedPortalRestResponse.setResponse("");
\r
240 PortalRestStatusEnum portalRestStatusEnum = null;
\r
241 expectedPortalRestResponse.setStatus(portalRestStatusEnum.OK);
\r
242 EpNotificationItem notificationItem = new EpNotificationItem();
\r
243 notificationItem.setNotificationId((long) 1);
\r
244 notificationItem.setMsgHeader("Test");
\r
245 notificationItem.setIsForAllRoles("Y");
\r
246 Date currentDate = new Date();
\r
247 Calendar c = Calendar.getInstance();
\r
248 c.setTime(currentDate);
\r
249 c.add(Calendar.DATE, 1);
\r
250 Date currentDatePlusOne = c.getTime();
\r
251 notificationItem.setStartTime(currentDate);
\r
252 notificationItem.setEndTime(currentDatePlusOne);
\r
253 List<Long> roleList = new ArrayList<Long>();
\r
254 Long role1 = (long) 1;
\r
255 roleList.add(role1);
\r
256 notificationItem.setRoleIds(roleList);
\r
257 HttpServletRequest request = mockitoTestSuite.getMockedRequest();
\r
258 PowerMockito.mockStatic(UserUtils.class);
\r
259 Mockito.when(UserUtils.getUserIdAsLong(request)).thenReturn((long) 1);
\r
260 Mockito.when(userNotificationService.saveNotification(notificationItem)).thenReturn("Test");
\r
261 actualPortalRestResponse = userNotificationController.save(mockedRequest, mockedResponse, notificationItem);
\r
262 assertTrue(actualPortalRestResponse.equals(expectedPortalRestResponse));
\r