Application Onboarding page changes
[portal.git] / ecomp-portal-BE-common / src / test / java / org / onap / portalapp / portal / controller / SchedulerControllerTest.java
index 8216510..b1816ec 100644 (file)
  */
 package org.onap.portalapp.portal.controller;
 
+import static org.junit.Assert.*;
+
+import java.util.HashSet;
+import java.util.Set;
+
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
 import org.apache.poi.ss.formula.functions.T;
 import org.json.simple.JSONObject;
 import org.junit.Before;
+import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.InjectMocks;
@@ -52,25 +58,30 @@ import org.mockito.Mockito;
 import org.mockito.MockitoAnnotations;
 import org.onap.portalapp.portal.controller.SchedulerController;
 import org.onap.portalapp.portal.core.MockEPUser;
+import org.onap.portalapp.portal.domain.EPUser;
 import org.onap.portalapp.portal.framework.MockitoTestSuite;
 import org.onap.portalapp.portal.scheduler.SchedulerProperties;
 import org.onap.portalapp.portal.scheduler.SchedulerRestInterface;
 import org.onap.portalapp.portal.scheduler.restobjects.RestObject;
+import org.onap.portalapp.portal.service.AdminRolesService;
+import org.onap.portalapp.util.EPUserUtils;
 import org.onap.portalsdk.core.util.SystemProperties;
 import org.onap.portalsdk.core.web.support.UserUtils;
 import org.powermock.api.mockito.PowerMockito;
 import org.powermock.core.classloader.annotations.PrepareForTest;
 import org.powermock.modules.junit4.PowerMockRunner;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
 
 @RunWith(PowerMockRunner.class)
-@PrepareForTest({UserUtils.class,SystemProperties.class,SchedulerProperties.class})
-
+@PrepareForTest({UserUtils.class,SystemProperties.class,SchedulerProperties.class,EPUserUtils.class})
 public class SchedulerControllerTest {
 
        @Mock
        SchedulerRestInterface schedulerRestInterface;
        
-       
+       @Mock
+       AdminRolesService adminRolesService;
 
        @InjectMocks
        SchedulerController schedulerController = new SchedulerController();
@@ -89,6 +100,18 @@ public class SchedulerControllerTest {
 
        @Test
        public void  getTimeSlotsTest() throws Exception{
+               JSONObject jsonObject =Mockito.mock(JSONObject.class);
+               Mockito.when(jsonObject.get("scheduleId")).thenReturn("12");
+               Set<String> functions = new HashSet<>();
+               functions.add("/get_time_slots/*");
+               Mockito.when(mockedRequest.getRequestURI()).thenReturn("/portalApi/get_time_slots/1");
+               Mockito.when(adminRolesService.getAllAppsFunctionsOfUser(Matchers.anyString())).thenReturn(functions);
+        PowerMockito.mockStatic(SystemProperties.class);
+        PowerMockito.mockStatic(EPUserUtils.class);
+        EPUser user = new EPUser();
+        user.setId((long) 1);
+        Mockito.when(EPUserUtils.matchRoleFunctions(Matchers.anyString(), Matchers.anySet())).thenReturn(true);
+        Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
                schedulerController.getTimeSlots(mockedRequest, "12");
                
        }
@@ -96,6 +119,17 @@ public class SchedulerControllerTest {
        @Test
        public void  getTimeSlotsTestWithException1() throws Exception{
                JSONObject jsonObject =Mockito.mock(JSONObject.class);
+               Mockito.when(jsonObject.get("scheduleId")).thenReturn("12");
+               Set<String> functions = new HashSet<>();
+               functions.add("/get_time_slots/*");
+               Mockito.when(mockedRequest.getRequestURI()).thenReturn("/portalApi/get_time_slots/1");
+               Mockito.when(adminRolesService.getAllAppsFunctionsOfUser(Matchers.anyString())).thenReturn(functions);
+        PowerMockito.mockStatic(SystemProperties.class);
+        PowerMockito.mockStatic(EPUserUtils.class);
+        EPUser user = new EPUser();
+        user.setId((long) 1);
+        Mockito.when(EPUserUtils.matchRoleFunctions(Matchers.anyString(), Matchers.anySet())).thenReturn(true);
+        Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
                RestObject<T> restObject=new RestObject<>();
                Mockito.doThrow(new NullPointerException()).when(schedulerRestInterface).Get(Matchers.any(),Matchers.any(),Matchers.any(),Matchers.any());
                schedulerController.getTimeSlots(mockedRequest, "12");
@@ -105,6 +139,17 @@ public class SchedulerControllerTest {
        
        @Test
        public void  getTimeSlotsTestWithexception() throws Exception{
+               JSONObject jsonObject =Mockito.mock(JSONObject.class);
+               Mockito.when(jsonObject.get("scheduleId")).thenReturn("12");
+               Set<String> functions = new HashSet<>();
+               functions.add("/get_time_slots/*");
+               Mockito.when(mockedRequest.getRequestURI()).thenReturn("/portalApi/get_time_slots/1");
+               Mockito.when(adminRolesService.getAllAppsFunctionsOfUser(Matchers.anyString())).thenReturn(functions);
+        PowerMockito.mockStatic(SystemProperties.class);
+        PowerMockito.mockStatic(EPUserUtils.class);
+        EPUser user = new EPUser();
+        user.setId((long) 1);
+        Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
                schedulerController.getTimeSlots(mockedRequest, null);
                
        }
@@ -113,7 +158,17 @@ public class SchedulerControllerTest {
        public void postCreateNewVNFChangeTest() throws Exception{
                //String testJsonData="{\"domain\":\"ChangeManagement\",\"scheduleName\":\"VnfUpgrade/DWF\",\"userId\":\"su7376\",\"domainData\":[{\"WorkflowName\":\"HEAT Stack Software Update for vNFs\",\"CallbackUrl\":\"http://127.0.0.1:8989/scheduler/v1/loopbacktest/vid\",\"CallbackData\":\"testing\"}],\"schedulingInfo\":{\"normalDurationInSeconds\":60,\"additionalDurationInSeconds\":60,\"concurrencyLimit\":60,\"policyId\":\"SNIRO_CM_1707.Config_MS_Demo_TimeLimitAndVerticalTopology_zone_localTime.1.xml\",\"vnfDetails\":[{\"groupId\":\"group1\",\"node\":[\"satmo415vbc\",\"satmo455vbc\"]}]}}";
                JSONObject jsonObject =Mockito.mock(JSONObject.class);
-               
+               Mockito.when(jsonObject.get("scheduleId")).thenReturn("12");
+               Set<String> functions = new HashSet<>();
+               functions.add("post_create_new_vnf_change");
+               Mockito.when(mockedRequest.getRequestURI()).thenReturn("/portalApi/post_create_new_vnf_change");
+               Mockito.when(adminRolesService.getAllAppsFunctionsOfUser(Matchers.anyString())).thenReturn(functions);
+        PowerMockito.mockStatic(SystemProperties.class);
+        PowerMockito.mockStatic(EPUserUtils.class);
+        EPUser user = new EPUser();
+        user.setId((long) 1);
+        Mockito.when(EPUserUtils.matchRoleFunctions(Matchers.anyString(), Matchers.anySet())).thenReturn(true);
+        Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
                schedulerController.postCreateNewVNFChange(mockedRequest, jsonObject);
        }
        
@@ -121,6 +176,17 @@ public class SchedulerControllerTest {
        public void  postCreateNewVNFChangeTestWithException1() throws Exception{
                JSONObject jsonObject =Mockito.mock(JSONObject.class);
                RestObject<T> restObject=new RestObject<>();
+               Mockito.when(jsonObject.get("scheduleId")).thenReturn("12");
+               Set<String> functions = new HashSet<>();
+               functions.add("post_create_new_vnf_change");
+               Mockito.when(mockedRequest.getRequestURI()).thenReturn("/portalApi/post_create_new_vnf_change");
+               Mockito.when(adminRolesService.getAllAppsFunctionsOfUser(Matchers.anyString())).thenReturn(functions);
+        PowerMockito.mockStatic(SystemProperties.class);
+        PowerMockito.mockStatic(EPUserUtils.class);
+        EPUser user = new EPUser();
+        user.setId((long) 1);
+        Mockito.when(EPUserUtils.matchRoleFunctions(Matchers.anyString(), Matchers.anySet())).thenReturn(true);
+        Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
                Mockito.doThrow(new NullPointerException()).when(schedulerRestInterface).Post(Matchers.any(),Matchers.any(),Matchers.any(),Matchers.any());
                schedulerController.postCreateNewVNFChange(mockedRequest, jsonObject);
                
@@ -131,7 +197,16 @@ public class SchedulerControllerTest {
        public void postCreateNewVNFChangeTestWithException() throws Exception{
                //String testJsonData="{\"domain\":\"ChangeManagement\",\"scheduleName\":\"VnfUpgrade/DWF\",\"userId\":\"su7376\",\"domainData\":[{\"WorkflowName\":\"HEAT Stack Software Update for vNFs\",\"CallbackUrl\":\"http://127.0.0.1:8989/scheduler/v1/loopbacktest/vid\",\"CallbackData\":\"testing\"}],\"schedulingInfo\":{\"normalDurationInSeconds\":60,\"additionalDurationInSeconds\":60,\"concurrencyLimit\":60,\"policyId\":\"SNIRO_CM_1707.Config_MS_Demo_TimeLimitAndVerticalTopology_zone_localTime.1.xml\",\"vnfDetails\":[{\"groupId\":\"group1\",\"node\":[\"satmo415vbc\",\"satmo455vbc\"]}]}}";
                JSONObject jsonObject =Mockito.mock(JSONObject.class);
-               
+               Mockito.when(jsonObject.get("scheduleId")).thenReturn("12");
+               Set<String> functions = new HashSet<>();
+               functions.add("post_create_new_vnf_change");
+               Mockito.when(mockedRequest.getRequestURI()).thenReturn("/portalApi/post_create_new_vnf_change");
+               Mockito.when(adminRolesService.getAllAppsFunctionsOfUser(Matchers.anyString())).thenReturn(functions);
+        PowerMockito.mockStatic(SystemProperties.class);
+        PowerMockito.mockStatic(EPUserUtils.class);
+        EPUser user = new EPUser();
+        user.setId((long) 1);
+        Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
                schedulerController.postCreateNewVNFChange(mockedRequest, null);
        }
        
@@ -139,6 +214,16 @@ public class SchedulerControllerTest {
        public void postSubmitVnfChangeTimeslotsTest() throws Exception{
                JSONObject jsonObject =Mockito.mock(JSONObject.class);
                Mockito.when(jsonObject.get("scheduleId")).thenReturn("12");
+               Set<String> functions = new HashSet<>();
+               functions.add("submit_vnf_change_timeslots");
+               Mockito.when(mockedRequest.getRequestURI()).thenReturn("/portalApi/submit_vnf_change_timeslots");
+               Mockito.when(adminRolesService.getAllAppsFunctionsOfUser(Matchers.anyString())).thenReturn(functions);
+        PowerMockito.mockStatic(SystemProperties.class);
+        PowerMockito.mockStatic(EPUserUtils.class);
+        Mockito.when(EPUserUtils.matchRoleFunctions(Matchers.anyString(), Matchers.anySet())).thenReturn(true);
+        EPUser user = new EPUser();
+        user.setId((long) 1);
+        Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
         PowerMockito.mockStatic(SystemProperties.class);
                PowerMockito.when(SystemProperties.getProperty(SchedulerProperties.SCHEDULER_SUBMIT_NEW_VNF_CHANGE)).thenReturn("/v1/ChangeManagement/schedules/{scheduleId}/approvals");
                schedulerController.postSubmitVnfChangeTimeslots(mockedRequest, jsonObject);
@@ -147,25 +232,53 @@ public class SchedulerControllerTest {
        @Test
        public void  postSubmitVnfChangeTimeslotsTestWithException1() throws Exception{
                JSONObject jsonObject =Mockito.mock(JSONObject.class);
-               RestObject<T> restObject=new RestObject<>();
-               Mockito.doThrow(new NullPointerException()).when(schedulerRestInterface).Post(Matchers.any(),Matchers.any(),Matchers.any(),Matchers.any());
-               schedulerController.postSubmitVnfChangeTimeslots(mockedRequest, jsonObject);
-               
+               Mockito.when(jsonObject.get("scheduleId")).thenReturn("12");
+               Set<String> functions = new HashSet<>();
+               functions.add("submit_vnf_change_timeslots");
+               Mockito.when(mockedRequest.getRequestURI()).thenReturn("/portalApi/submit_vnf_change_timeslots");
+               Mockito.when(adminRolesService.getAllAppsFunctionsOfUser(Matchers.anyString())).thenReturn(functions);
+        PowerMockito.mockStatic(SystemProperties.class);
+        PowerMockito.mockStatic(EPUserUtils.class);
+        Mockito.when(EPUserUtils.matchRoleFunctions(Matchers.anyString(), Matchers.anySet())).thenReturn(true);
+        EPUser user = new EPUser();
+        user.setId((long) 1);
+        Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
+               PowerMockito.when(SystemProperties.getProperty(SchedulerProperties.SCHEDULER_SUBMIT_NEW_VNF_CHANGE)).thenReturn("/v1/ChangeManagement/schedules/{scheduleId}/approvals");
+               ResponseEntity<String> res =    schedulerController.postSubmitVnfChangeTimeslots(mockedRequest, null);          
        }
        
        @Test
        public void postSubmitVnfChangeTimeslotsTestWithException() throws Exception{
                JSONObject jsonObject =Mockito.mock(JSONObject.class);
                Mockito.when(jsonObject.get("scheduleId")).thenReturn("12");
+               Set<String> functions = new HashSet<>();
+               functions.add("submit_vnf_change_timeslots");
+               Mockito.when(mockedRequest.getRequestURI()).thenReturn("/portalApi/submit_vnf_change_timeslots");
+               Mockito.when(adminRolesService.getAllAppsFunctionsOfUser(Matchers.anyString())).thenReturn(functions);
         PowerMockito.mockStatic(SystemProperties.class);
+        PowerMockito.mockStatic(EPUserUtils.class);
+        EPUser user = new EPUser();
+        user.setId((long) 1);
+        Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
                PowerMockito.when(SystemProperties.getProperty(SchedulerProperties.SCHEDULER_SUBMIT_NEW_VNF_CHANGE)).thenReturn("/v1/ChangeManagement/schedules/{scheduleId}/approvals");
-               schedulerController.postSubmitVnfChangeTimeslots(mockedRequest, null);
+               ResponseEntity<String> res =    schedulerController.postSubmitVnfChangeTimeslots(mockedRequest, null);
+               assertEquals(res.getStatusCode(), HttpStatus.UNAUTHORIZED);
        }
        
+       
        @Test
        public void getSchedulerConstantTestWithException() throws Exception{
                JSONObject jsonObject =Mockito.mock(JSONObject.class);
                Mockito.when(jsonObject.get("scheduleId")).thenReturn("12");
+               Set<String> functions = new HashSet<>();
+               functions.add("get_scheduler_constant");
+               Mockito.when(mockedRequest.getRequestURI()).thenReturn("/portalApi/get_scheduler_constant");
+               Mockito.when(adminRolesService.getAllAppsFunctionsOfUser(Matchers.anyString())).thenReturn(functions);
+        PowerMockito.mockStatic(SystemProperties.class);
+        PowerMockito.mockStatic(EPUserUtils.class);
+        EPUser user = new EPUser();
+        user.setId((long) 1);
+        Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
         PowerMockito.mockStatic(SystemProperties.class);
                PowerMockito.when(SystemProperties.getProperty(SchedulerProperties.SCHEDULER_CALLBACK_URL)).thenReturn("mockedRequest");
                schedulerController.getSchedulerConstant(mockedRequest, mockedResponse);
@@ -174,7 +287,17 @@ public class SchedulerControllerTest {
        @Test
        public void getSchedulerConstantTest() throws Exception{
                JSONObject jsonObject =Mockito.mock(JSONObject.class);
-               //Mockito.when(jsonObject.get("scheduleId")).thenReturn("12");
+               Mockito.when(jsonObject.get("scheduleId")).thenReturn("12");
+               Set<String> functions = new HashSet<>();
+               functions.add("submit_vnf_change_timeslots");
+               Mockito.when(mockedRequest.getRequestURI()).thenReturn("/portalApi/submit_vnf_change_timeslots");
+               Mockito.when(adminRolesService.getAllAppsFunctionsOfUser(Matchers.anyString())).thenReturn(functions);
+        PowerMockito.mockStatic(SystemProperties.class);
+        PowerMockito.mockStatic(EPUserUtils.class);
+        Mockito.when(EPUserUtils.matchRoleFunctions(Matchers.anyString(), Matchers.anySet())).thenReturn(true);
+        EPUser user = new EPUser();
+        user.setId((long) 1);
+        Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
         PowerMockito.mockStatic(SystemProperties.class);
                PowerMockito.when(SystemProperties.getProperty(SchedulerProperties.SCHEDULER_CALLBACK_URL)).thenReturn("callbackUrl");
                schedulerController.getSchedulerConstant(mockedRequest, mockedResponse);