[PORTAL-7] Rebase
[portal.git] / ecomp-portal-BE-common-test / src / main / java / org / openecomp / portalapp / portal / test / controller / UserNotificationControllerTest.java
diff --git a/ecomp-portal-BE-common-test/src/main/java/org/openecomp/portalapp/portal/test/controller/UserNotificationControllerTest.java b/ecomp-portal-BE-common-test/src/main/java/org/openecomp/portalapp/portal/test/controller/UserNotificationControllerTest.java
new file mode 100644 (file)
index 0000000..628f52a
--- /dev/null
@@ -0,0 +1,265 @@
+/*-\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