--- /dev/null
+/*-\r
+ * ================================================================================\r
+ * ECOMP Portal\r
+ * ================================================================================\r
+ * Copyright (C) 2017 AT&T Intellectual Property\r
+ * ================================================================================\r
+ * Licensed under the Apache License, Version 2.0 (the "License");\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ * \r
+ * http://www.apache.org/licenses/LICENSE-2.0\r
+ * \r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License.\r
+ * ================================================================================\r
+ */\r
+package org.openecomp.portalapp.portal.test.controller;\r
+\r
+import static org.junit.Assert.assertTrue;\r
+\r
+import java.util.ArrayList;\r
+import java.util.Calendar;\r
+import java.util.Date;\r
+import java.util.List;\r
+\r
+import javax.servlet.http.HttpServletRequest;\r
+import javax.servlet.http.HttpServletResponse;\r
+import javax.servlet.http.HttpSession;\r
+\r
+import org.junit.Before;\r
+import org.junit.Test;\r
+import org.junit.runner.RunWith;\r
+import org.mockito.InjectMocks;\r
+import org.mockito.Mock;\r
+import org.mockito.Mockito;\r
+import org.mockito.MockitoAnnotations;\r
+import org.openecomp.portalapp.portal.controller.UserNotificationController;\r
+import org.openecomp.portalapp.portal.domain.EPUser;\r
+import org.openecomp.portalapp.portal.ecomp.model.PortalRestResponse;\r
+import org.openecomp.portalapp.portal.ecomp.model.PortalRestStatusEnum;\r
+import org.openecomp.portalapp.portal.service.FunctionalMenuService;\r
+import org.openecomp.portalapp.portal.service.FunctionalMenuServiceImpl;\r
+import org.openecomp.portalapp.portal.service.UserNotificationService;\r
+import org.openecomp.portalapp.portal.service.UserNotificationServiceImpl;\r
+import org.openecomp.portalapp.portal.test.core.MockEPUser;\r
+import org.openecomp.portalapp.portal.test.framework.MockitoTestSuite;\r
+import org.openecomp.portalapp.portal.transport.EpNotificationItem;\r
+import org.openecomp.portalapp.portal.transport.EpNotificationItemVO;\r
+import org.openecomp.portalapp.portal.transport.FunctionalMenuRole;\r
+import org.openecomp.portalapp.util.EPUserUtils;\r
+import org.openecomp.portalsdk.core.util.SystemProperties;\r
+import org.openecomp.portalsdk.core.web.support.UserUtils;\r
+import org.powermock.api.mockito.PowerMockito;\r
+import org.powermock.core.classloader.annotations.PrepareForTest;\r
+import org.powermock.modules.junit4.PowerMockRunner;\r
+\r
+@RunWith(PowerMockRunner.class)\r
+@PrepareForTest(UserUtils.class)\r
+public class UserNotificationControllerTest {\r
+\r
+ @Mock\r
+ FunctionalMenuService functionalMenuService = new FunctionalMenuServiceImpl();\r
+\r
+ @Mock\r
+ UserNotificationService userNotificationService = new UserNotificationServiceImpl();\r
+\r
+ @InjectMocks\r
+ UserNotificationController userNotificationController = new UserNotificationController();\r
+\r
+ @Before\r
+ public void setup() {\r
+ MockitoAnnotations.initMocks(this);\r
+ }\r
+\r
+ MockEPUser mockUser = new MockEPUser();\r
+ MockitoTestSuite mockitoTestSuite = new MockitoTestSuite();\r
+\r
+ HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest();\r
+ HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse();\r
+ NullPointerException nullPointerException = new NullPointerException();\r
+\r
+ @Test\r
+ public void getMenuIdRoleIdTest() {\r
+ List<FunctionalMenuRole> expectedMenuRoleList = new ArrayList<FunctionalMenuRole>();\r
+ FunctionalMenuRole functionalMenuRole = new FunctionalMenuRole();\r
+ functionalMenuRole.setId(new Integer(99999999));\r
+ functionalMenuRole.setMenuId((long) 137);\r
+ functionalMenuRole.setAppId(new Integer(456));\r
+ functionalMenuRole.setRoleId(new Integer(6214));\r
+ expectedMenuRoleList.add(functionalMenuRole);\r
+ List<FunctionalMenuRole> actualFunctionalMenuRoleList = null;\r
+ Mockito.when(functionalMenuService.getFunctionalMenuRole()).thenReturn(expectedMenuRoleList);\r
+ actualFunctionalMenuRoleList = userNotificationController.getMenuIdRoleId(mockedRequest, mockedResponse);\r
+ assertTrue(actualFunctionalMenuRoleList.equals(expectedMenuRoleList));\r
+\r
+ }\r
+\r
+ @Test\r
+ public void getNotificationsTest() {\r
+ EPUser user = mockUser.mockEPUser();\r
+ HttpSession session = mockedRequest.getSession();\r
+ session.setAttribute(SystemProperties.getProperty(SystemProperties.USER_ATTRIBUTE_NAME), user);\r
+ Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);\r
+ List<EpNotificationItem> expectedEpNotificationList = new ArrayList<EpNotificationItem>();\r
+ EpNotificationItem epNotificationItem = new EpNotificationItem();\r
+ epNotificationItem.setNotificationId((long) 200);\r
+ expectedEpNotificationList.add(epNotificationItem);\r
+ PortalRestResponse<List<EpNotificationItem>> expectedportalRestResponse = new PortalRestResponse<List<EpNotificationItem>>();\r
+ expectedportalRestResponse.setMessage("success");\r
+ expectedportalRestResponse.setResponse(expectedEpNotificationList);\r
+ PortalRestStatusEnum portalRestStatusEnum = null;\r
+ expectedportalRestResponse.setStatus(portalRestStatusEnum.OK);\r
+ PortalRestResponse<List<EpNotificationItem>> actualPortalRestResponse = null;\r
+ Mockito.when(userNotificationService.getNotifications(user.getId())).thenReturn(expectedEpNotificationList);\r
+ actualPortalRestResponse = userNotificationController.getNotifications(mockedRequest, mockedResponse);\r
+ assertTrue(expectedportalRestResponse.equals(actualPortalRestResponse));\r
+\r
+ }\r
+\r
+ @Test\r
+ public void getNotificationsCatchesExceptionTest() {\r
+ EPUser user = mockUser.mockEPUser();\r
+ HttpSession session = mockedRequest.getSession();\r
+ session.setAttribute(SystemProperties.getProperty(SystemProperties.USER_ATTRIBUTE_NAME), user);\r
+ Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);\r
+ List<EpNotificationItem> expectedEpNotificationList = null;\r
+ PortalRestResponse<List<EpNotificationItem>> expectedportalRestResponse = new PortalRestResponse<List<EpNotificationItem>>();\r
+ expectedportalRestResponse.setMessage(null);\r
+ expectedportalRestResponse.setResponse(expectedEpNotificationList);\r
+ PortalRestStatusEnum portalRestStatusEnum = null;\r
+ expectedportalRestResponse.setStatus(portalRestStatusEnum.ERROR);\r
+ PortalRestResponse<List<EpNotificationItem>> actualPortalRestResponse = null;\r
+ Mockito.when(userNotificationService.getNotifications(user.getId())).thenThrow(new NullPointerException());\r
+ actualPortalRestResponse = userNotificationController.getNotifications(mockedRequest, mockedResponse);\r
+ assertTrue(expectedportalRestResponse.equals(actualPortalRestResponse));\r
+\r
+ }\r
+\r
+ @Test\r
+ public void getAdminNotificationsTest() {\r
+ List<EpNotificationItemVO> actualEpNotificationsList = new ArrayList<EpNotificationItemVO>();\r
+ List<EpNotificationItemVO> expectedEpNotificationsList = new ArrayList<EpNotificationItemVO>();\r
+ EpNotificationItemVO epNotificationItemVO = new EpNotificationItemVO();\r
+ epNotificationItemVO.setId((long) 1);\r
+ expectedEpNotificationsList.add(epNotificationItemVO);\r
+ Mockito.when(userNotificationService.getAdminNotificationVOS()).thenReturn(expectedEpNotificationsList);\r
+ actualEpNotificationsList = userNotificationController.getAdminNotifications(mockedRequest, mockedResponse);\r
+ assertTrue(actualEpNotificationsList.equals(expectedEpNotificationsList));\r
+ }\r
+\r
+ @Test\r
+ public void saveTestWhenNotificationIsNull() throws Exception {\r
+ EPUser user = mockUser.mockEPUser();\r
+ HttpSession session = mockedRequest.getSession();\r
+ session.setAttribute(SystemProperties.getProperty(SystemProperties.USER_ATTRIBUTE_NAME), user);\r
+ Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);\r
+\r
+ PortalRestResponse<String> actualPortalRestResponse = new PortalRestResponse<String>();\r
+ PortalRestResponse<String> expectedPortalRestResponse = new PortalRestResponse<String>();\r
+ expectedPortalRestResponse.setMessage("FAILURE");\r
+ expectedPortalRestResponse.setResponse("Notification Header cannot be null or empty");\r
+ PortalRestStatusEnum portalRestStatusEnum = null;\r
+ expectedPortalRestResponse.setStatus(portalRestStatusEnum.ERROR);\r
+\r
+ EpNotificationItem notificationItem = null;\r
+ actualPortalRestResponse = userNotificationController.save(mockedRequest, mockedResponse, notificationItem);\r
+ assertTrue(actualPortalRestResponse.equals(expectedPortalRestResponse));\r
+ }\r
+\r
+ @Test\r
+ public void saveTestWhenEndTimeIsGreater() throws Exception {\r
+ EPUser user = mockUser.mockEPUser();\r
+ HttpSession session = mockedRequest.getSession();\r
+ session.setAttribute(SystemProperties.getProperty(SystemProperties.USER_ATTRIBUTE_NAME), user);\r
+ Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);\r
+ PortalRestResponse<String> actualPortalRestResponse = new PortalRestResponse<String>();\r
+ PortalRestResponse<String> expectedPortalRestResponse = new PortalRestResponse<String>();\r
+ expectedPortalRestResponse.setMessage("FAILURE");\r
+ expectedPortalRestResponse.setResponse("End Time should be greater than start time");\r
+ PortalRestStatusEnum portalRestStatusEnum = null;\r
+ expectedPortalRestResponse.setStatus(portalRestStatusEnum.ERROR);\r
+ EpNotificationItem notificationItem = new EpNotificationItem();\r
+ notificationItem.setNotificationId((long) 1);\r
+ notificationItem.setMsgHeader("Test");\r
+ Date currentDate = new Date();\r
+ Calendar c = Calendar.getInstance();\r
+ c.setTime(currentDate);\r
+ c.add(Calendar.DATE, 1);\r
+ Date currentDatePlusOne = c.getTime();\r
+ notificationItem.setStartTime(currentDatePlusOne);\r
+ notificationItem.setEndTime(currentDate);\r
+\r
+ actualPortalRestResponse = userNotificationController.save(mockedRequest, mockedResponse, notificationItem);\r
+ assertTrue(actualPortalRestResponse.equals(expectedPortalRestResponse));\r
+\r
+ }\r
+\r
+ @Test\r
+ public void saveTestWhenNoRoleIDExists() throws Exception {\r
+ EPUser user = mockUser.mockEPUser();\r
+ HttpSession session = mockedRequest.getSession();\r
+ session.setAttribute(SystemProperties.getProperty(SystemProperties.USER_ATTRIBUTE_NAME), user);\r
+ Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);\r
+ PortalRestResponse<String> actualPortalRestResponse = new PortalRestResponse<String>();\r
+ PortalRestResponse<String> expectedPortalRestResponse = new PortalRestResponse<String>();\r
+ expectedPortalRestResponse.setMessage("FAILURE");\r
+ expectedPortalRestResponse.setResponse("No Roles Ids Exist for the selected Roles");\r
+ PortalRestStatusEnum portalRestStatusEnum = null;\r
+ expectedPortalRestResponse.setStatus(portalRestStatusEnum.ERROR);\r
+ EpNotificationItem notificationItem = new EpNotificationItem();\r
+ notificationItem.setNotificationId((long) 1);\r
+ notificationItem.setMsgHeader("Test");\r
+ notificationItem.setIsForAllRoles("N");\r
+ Date currentDate = new Date();\r
+ Calendar c = Calendar.getInstance();\r
+ c.setTime(currentDate);\r
+ c.add(Calendar.DATE, 1);\r
+ Date currentDatePlusOne = c.getTime();\r
+ notificationItem.setStartTime(currentDate);\r
+ notificationItem.setEndTime(currentDatePlusOne);\r
+ List<Long> roleList = new ArrayList<Long>();\r
+ notificationItem.setRoleIds(roleList);\r
+ actualPortalRestResponse = userNotificationController.save(mockedRequest, mockedResponse, notificationItem);\r
+ assertTrue(actualPortalRestResponse.equals(expectedPortalRestResponse));\r
+ }\r
+\r
+ @Test\r
+ public void saveTest() throws Exception {\r
+ EPUser user = mockUser.mockEPUser();\r
+ HttpSession session = mockedRequest.getSession();\r
+ session.setAttribute("user", user);\r
+ Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);\r
+ PortalRestResponse<String> actualPortalRestResponse = new PortalRestResponse<String>();\r
+ PortalRestResponse<String> expectedPortalRestResponse = new PortalRestResponse<String>();\r
+ expectedPortalRestResponse.setMessage("SUCCESS");\r
+ expectedPortalRestResponse.setResponse("");\r
+ PortalRestStatusEnum portalRestStatusEnum = null;\r
+ expectedPortalRestResponse.setStatus(portalRestStatusEnum.OK);\r
+ EpNotificationItem notificationItem = new EpNotificationItem();\r
+ notificationItem.setNotificationId((long) 1);\r
+ notificationItem.setMsgHeader("Test");\r
+ notificationItem.setIsForAllRoles("Y");\r
+ Date currentDate = new Date();\r
+ Calendar c = Calendar.getInstance();\r
+ c.setTime(currentDate);\r
+ c.add(Calendar.DATE, 1);\r
+ Date currentDatePlusOne = c.getTime();\r
+ notificationItem.setStartTime(currentDate);\r
+ notificationItem.setEndTime(currentDatePlusOne);\r
+ List<Long> roleList = new ArrayList<Long>();\r
+ Long role1 = (long) 1;\r
+ roleList.add(role1);\r
+ notificationItem.setRoleIds(roleList);\r
+ HttpServletRequest request = mockitoTestSuite.getMockedRequest();\r
+ PowerMockito.mockStatic(UserUtils.class);\r
+ Mockito.when(UserUtils.getUserIdAsLong(request)).thenReturn((long) 1);\r
+ Mockito.when(userNotificationService.saveNotification(notificationItem)).thenReturn("Test");\r
+ actualPortalRestResponse = userNotificationController.save(mockedRequest, mockedResponse, notificationItem);\r
+ assertTrue(actualPortalRestResponse.equals(expectedPortalRestResponse));\r
+ }\r
+\r
+}\r