JUnits for coverage
[portal.git] / ecomp-portal-BE-common / src / test / java / org / onap / portalapp / portal / controller / ExternalAccessRolesControllerTest.java
index ecfd88f..556e215 100644 (file)
@@ -33,7 +33,7 @@
  *
  * ============LICENSE_END============================================
  *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
+ * 
  */
 package org.onap.portalapp.portal.controller;
 
@@ -51,6 +51,7 @@ import java.util.Map;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import org.json.JSONObject;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -70,6 +71,7 @@ import org.onap.portalapp.portal.service.ExternalAccessRolesService;
 import org.onap.portalapp.portal.service.ExternalAccessRolesServiceImpl;
 import org.onap.portalapp.portal.transport.CentralRole;
 import org.onap.portalapp.portal.transport.CentralRoleFunction;
+import org.onap.portalapp.portal.transport.CentralUser;
 import org.onap.portalapp.portal.transport.CentralV2Role;
 import org.onap.portalapp.portal.transport.ExternalRequestFieldsValidator;
 import org.onap.portalapp.portal.utils.EPCommonSystemProperties;
@@ -89,9 +91,11 @@ import org.powermock.core.classloader.annotations.PrepareForTest;
 import org.powermock.modules.junit4.PowerMockRunner;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
+import org.springframework.test.util.MatcherAssertionErrors;
 import org.springframework.web.client.HttpClientErrorException;
 
 import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.DeserializationFeature;
 import com.fasterxml.jackson.databind.ObjectMapper;
 
 @RunWith(PowerMockRunner.class)
@@ -128,30 +132,6 @@ public class ExternalAccessRolesControllerTest {
        String loginId = "guestT";
        String uebKey = "testUebKey";
 
-       @Test
-       public void getUserTest() throws Exception {
-               String reason = getInvalidKeyJson();
-               StringWriter sw = new StringWriter();
-               PrintWriter writer = new PrintWriter(sw);
-               Mockito.when(mockedResponse.getWriter()).thenReturn(writer);    
-               List<EPUser> userList = new ArrayList<>();
-               Mockito.when(externalAccessRolesService.getUser(loginId)).thenReturn(userList);
-               externalAccessRolesController.getUser(mockedRequest, mockedResponse, loginId);
-               String result = sw.getBuffer().toString().trim();
-               assertEquals(reason, result);
-       }
-
-       @Test
-       public void getUserExceptionTest() throws Exception {
-               String reason = getInvalidKeyJson();
-               StringWriter sw = new StringWriter();
-               PrintWriter writer = new PrintWriter(sw);
-               Mockito.when(mockedResponse.getWriter()).thenReturn(writer);
-               externalAccessRolesController.getUser(mockedRequest, mockedResponse, loginId);
-               String result = sw.getBuffer().toString().trim();
-               assertEquals(reason, result);
-       }
-       
        public EPApp mockApp()
        {
                EPApp app = new EPApp();
@@ -177,6 +157,146 @@ public class ExternalAccessRolesControllerTest {
                return app;
        }
        
+       @Test
+       public void getUserTest() throws Exception {
+               CentralUser expectedCentralUser = new CentralUser(null, null, null, null, null, null, null, null, loginId, loginId, loginId, loginId, loginId, loginId, loginId, null, loginId, loginId, loginId, loginId, loginId, loginId, loginId, loginId, loginId, loginId, loginId, loginId, loginId, loginId, loginId, loginId, loginId, loginId, loginId, loginId, loginId, loginId, loginId, loginId, loginId, loginId, loginId, loginId, null, false, false, null, null, false, loginId, null);
+               String loginId = "test";
+               StringWriter sw = new StringWriter();
+               PrintWriter writer = new PrintWriter(sw);
+               Mockito.when(mockedResponse.getWriter()).thenReturn(writer);
+               EPApp app = mockApp();
+               app.setCentralAuth(true);
+               List<EPApp> appList = new ArrayList<>();
+               appList.add(app);
+               Mockito.when(mockedRequest.getHeader("uebkey")).thenReturn(uebKey);
+               ResponseEntity<String> response = new ResponseEntity<>(HttpStatus.FOUND);
+               Mockito.when(externalAccessRolesService.getNameSpaceIfExists(appList.get(0))).thenReturn(response);
+               Mockito.when(externalAccessRolesService.getApp(mockedRequest.getHeader("uebkey"))).thenReturn(appList);
+               Mockito.when(externalAccessRolesService.getUserRoles(loginId, mockedRequest.getHeader("uebkey"))).thenReturn(expectedCentralUser);
+               CentralUser actualCentralUser = externalAccessRolesController.getUser(mockedRequest, mockedResponse, loginId);
+               assertEquals(actualCentralUser.isActive(), expectedCentralUser.isActive());
+       }
+
+       @Test
+       public void getUserExceptionTest() throws Exception {
+               String reason = getInvalidKeyJson();
+               StringWriter sw = new StringWriter();
+               PrintWriter writer = new PrintWriter(sw);
+               Mockito.when(mockedResponse.getWriter()).thenReturn(writer);
+               externalAccessRolesController.getUser(mockedRequest, mockedResponse, loginId);
+               String result = sw.getBuffer().toString().trim();
+               assertEquals(reason, result);
+       }
+               
+       @Test
+       public void getV2UserListTest() throws Exception {
+               String expectedCentralUser = "test";
+               String loginId = "test";
+               EPApp app = mockApp();
+               app.setCentralAuth(true);
+               List<EPApp> appList = new ArrayList<>();
+               appList.add(app);
+               Mockito.when(mockedRequest.getHeader("uebkey")).thenReturn(uebKey);
+               ResponseEntity<String> response = new ResponseEntity<>(HttpStatus.FOUND);
+               Mockito.when(externalAccessRolesService.getNameSpaceIfExists(appList.get(0))).thenReturn(response);
+               Mockito.when(externalAccessRolesService.getApp(mockedRequest.getHeader("uebkey"))).thenReturn(appList);
+               Mockito.when(externalAccessRolesService.getV2UserWithRoles(loginId, mockedRequest.getHeader("uebkey"))).thenReturn(expectedCentralUser);
+               String actualString = externalAccessRolesController.getV2UserList(mockedRequest, mockedResponse, loginId);
+               assertEquals(actualString, expectedCentralUser);
+       }
+       
+       @Test(expected = NullPointerException.class)
+       public void getV2UserListExceptionTest() throws Exception {
+               String expectedCentralUser = null;
+               String loginId = "test";
+               EPApp app = mockApp();
+               app.setCentralAuth(true);
+               List<EPApp> appList = new ArrayList<>();
+               appList.add(app);
+               Mockito.when(mockedRequest.getHeader("uebkey")).thenReturn(uebKey);
+               ResponseEntity<String> response = null;
+               Mockito.when(externalAccessRolesService.getNameSpaceIfExists(appList.get(0))).thenReturn(response);
+               Mockito.when(externalAccessRolesService.getApp(mockedRequest.getHeader("uebkey"))).thenReturn(appList);
+               Mockito.when(externalAccessRolesService.getV2UserWithRoles(loginId, mockedRequest.getHeader("uebkey"))).thenReturn(expectedCentralUser);
+               String actualString = externalAccessRolesController.getV2UserList(mockedRequest, mockedResponse, loginId);
+               assertEquals(actualString, expectedCentralUser);
+       }
+       
+       @Test
+       public void getRolesForAppCentralRoleTest() throws Exception {
+               List<CentralRole> expectedCentralRoleList = new ArrayList<CentralRole>();
+               List<EPApp> applicationList = new ArrayList<EPApp>();
+               List<CentralV2Role> centralV2RoleList = new ArrayList<>();
+               List<CentralRole> centralRoleList = new ArrayList<>();
+               EPApp app = mockApp();
+               app.setCentralAuth(true);
+               applicationList.add(app);
+               ResponseEntity<String> response = new ResponseEntity<>(HttpStatus.FOUND);
+               Mockito.when(externalAccessRolesService.getNameSpaceIfExists(applicationList.get(0))).thenReturn(response);
+               Mockito.when(mockedRequest.getHeader("uebkey")).thenReturn(uebKey);
+               Mockito.when(externalAccessRolesService.getApp(mockedRequest.getHeader("uebkey"))).thenReturn(applicationList);
+               Mockito.doNothing().when(externalAccessRolesService).syncApplicationRolesWithEcompDB(app);
+               Mockito.when(externalAccessRolesService.getRolesForApp(mockedRequest.getHeader(uebKey))).thenReturn(centralV2RoleList);
+               Mockito.when(externalAccessRolesService.convertV2CentralRoleListToOldVerisonCentralRoleList(centralV2RoleList)).thenReturn(centralRoleList);
+               List<CentralRole> actualCentralRoleList = externalAccessRolesController.getRolesForApp(mockedRequest, mockedResponse);
+               assertEquals(actualCentralRoleList.size(), expectedCentralRoleList.size());
+       }
+
+       @Test(expected = NullPointerException.class)
+       public void getRolesForAppCentralRoleExceptionTest() throws Exception {
+               List<EPApp> applicationList = new ArrayList<EPApp>();
+               List<CentralV2Role> centralV2RoleList = new ArrayList<>();
+               List<CentralRole> centralRoleList = new ArrayList<>();
+               EPApp app = mockApp();
+               app.setCentralAuth(true);
+               applicationList.add(app);
+               ResponseEntity<String> response = null;
+               Mockito.when(externalAccessRolesService.getNameSpaceIfExists(applicationList.get(0))).thenReturn(response);
+               Mockito.when(mockedRequest.getHeader("uebkey")).thenReturn(uebKey);
+               Mockito.when(externalAccessRolesService.getApp(mockedRequest.getHeader("uebkey"))).thenReturn(applicationList);
+               Mockito.doNothing().when(externalAccessRolesService).syncApplicationRolesWithEcompDB(app);
+               Mockito.when(externalAccessRolesService.getRolesForApp(mockedRequest.getHeader(uebKey))).thenReturn(centralV2RoleList);
+               Mockito.when(externalAccessRolesService.convertV2CentralRoleListToOldVerisonCentralRoleList(centralV2RoleList)).thenReturn(centralRoleList);
+               List<CentralRole> actualCentralRoleList = externalAccessRolesController.getRolesForApp(mockedRequest, mockedResponse);
+               assertEquals(null,actualCentralRoleList);
+       }
+       
+       @Test
+       public void getV2RolesForAppTest() throws Exception {
+               List<CentralRole> expectedCentralRoleList = new ArrayList<CentralRole>();
+               List<EPApp> applicationList = new ArrayList<EPApp>();
+               List<CentralV2Role> centralV2Role = new ArrayList<>();
+               EPApp app = mockApp();
+               app.setCentralAuth(true);
+               applicationList.add(app);
+               ResponseEntity<String> response = new ResponseEntity<>(HttpStatus.FOUND);
+               Mockito.when(externalAccessRolesService.getNameSpaceIfExists(applicationList.get(0))).thenReturn(response);
+               Mockito.when(mockedRequest.getHeader("uebkey")).thenReturn(uebKey);
+               Mockito.when(externalAccessRolesService.getApp(mockedRequest.getHeader("uebkey"))).thenReturn(applicationList);
+               Mockito.doNothing().when(externalAccessRolesService).syncApplicationRolesWithEcompDB(app);
+               Mockito.when(externalAccessRolesService.getRolesForApp(mockedRequest.getHeader(uebKey))).thenReturn(centralV2Role);
+               List<CentralV2Role> actualCentralV2Role = externalAccessRolesController.getV2RolesForApp(mockedRequest, mockedResponse);
+               assertEquals(actualCentralV2Role.size(), expectedCentralRoleList.size());
+       }
+       
+       @Test(expected = NullPointerException.class)
+       public void getV2RolesForAppExceptionTest() throws Exception {
+               List<CentralRole> expectedCentralRoleList = new ArrayList<CentralRole>();
+               List<EPApp> applicationList = new ArrayList<EPApp>();
+               List<CentralV2Role> centralV2Role = new ArrayList<>();
+               EPApp app = mockApp();
+               app.setCentralAuth(true);
+               applicationList.add(app);
+               ResponseEntity<String> response = null;
+               Mockito.when(externalAccessRolesService.getNameSpaceIfExists(applicationList.get(0))).thenReturn(response);
+               Mockito.when(mockedRequest.getHeader("uebkey")).thenReturn(uebKey);
+               Mockito.when(externalAccessRolesService.getApp(mockedRequest.getHeader("uebkey"))).thenReturn(applicationList);
+               Mockito.doNothing().when(externalAccessRolesService).syncApplicationRolesWithEcompDB(app);
+               Mockito.when(externalAccessRolesService.getRolesForApp(mockedRequest.getHeader(uebKey))).thenReturn(centralV2Role);
+               List<CentralV2Role> actualCentralV2Role = externalAccessRolesController.getV2RolesForApp(mockedRequest, mockedResponse);
+               assertEquals(actualCentralV2Role.size(), expectedCentralRoleList.size());
+       }
+       
        @Test(expected = NullPointerException.class)
        public void getRolesForAppTest() throws Exception {
                List<EPApp> applicationList = new ArrayList<EPApp>();
@@ -203,28 +323,82 @@ public class ExternalAccessRolesControllerTest {
 
        @Test
        public void getRoleFunctionsListTest() throws Exception {
+               List<CentralRole> expectedCentralRoleList = new ArrayList<CentralRole>();
+               List<CentralRoleFunction> roleFuncList = new ArrayList<CentralRoleFunction>();
+               List<EPApp> applicationList = new ArrayList<EPApp>();
+               List<CentralV2RoleFunction> centralV2RoleFunction = new ArrayList<>();
+               EPApp app = mockApp();
+               app.setCentralAuth(true);
+               applicationList.add(app);
+               ResponseEntity<String> response = new ResponseEntity<>(HttpStatus.FOUND);
+               Mockito.when(externalAccessRolesService.getNameSpaceIfExists(applicationList.get(0))).thenReturn(response);
+               Mockito.when(mockedRequest.getHeader("uebkey")).thenReturn(uebKey);
+               Mockito.when(externalAccessRolesService.getApp(mockedRequest.getHeader("uebkey"))).thenReturn(applicationList);
+               Mockito.doNothing().when(externalAccessRolesService).syncApplicationRolesWithEcompDB(app);
+               Mockito.when(externalAccessRolesService.getRoleFuncList(mockedRequest.getHeader("uebkey"))).thenReturn(centralV2RoleFunction);
+               Mockito.when(externalAccessRolesService.convertCentralRoleFunctionToRoleFunctionObject(centralV2RoleFunction)).thenReturn(roleFuncList);
+               List<CentralRoleFunction> actualCentralRoleFunction = externalAccessRolesController.getRoleFunctionsList(mockedRequest, mockedResponse);
+               assertEquals(actualCentralRoleFunction.size(), expectedCentralRoleList.size());
+       }
+
+       @Test
+       public void getRoleFunctionsListExceptionTest() throws Exception {
                String reason = getInvalidKeyJson();
                StringWriter sw = new StringWriter();
                PrintWriter writer = new PrintWriter(sw);
-               Mockito.when(mockedResponse.getWriter()).thenReturn(writer);    
-               List<CentralV2RoleFunction> answer = null;
-               Mockito.when(externalAccessRolesService.getRoleFuncList(mockedRequest.getHeader(uebKey))).thenReturn(null);
-               assertEquals(externalAccessRolesController.getRoleFunctionsList(mockedRequest, mockedResponse), answer);
+               Mockito.when(mockedResponse.getWriter()).thenReturn(writer);
+               externalAccessRolesController.getRoleFunctionsList(mockedRequest, mockedResponse);
                String result = sw.getBuffer().toString().trim();
                assertEquals(reason, result);
        }
 
        @Test
-       public void getRoleFunctionsListExceptionTest() throws Exception {
+       public void getV2RoleFunctionsListTest() throws Exception {
+               List<CentralV2RoleFunction> expectedCentralV2RoleFunctionList = new ArrayList<CentralV2RoleFunction>();
+               List<EPApp> applicationList = new ArrayList<EPApp>();
+               List<CentralV2RoleFunction> centralV2RoleFunction = new ArrayList<>();
+               EPApp app = mockApp();
+               app.setCentralAuth(true);
+               applicationList.add(app);
+               ResponseEntity<String> response = new ResponseEntity<>(HttpStatus.FOUND);
+               Mockito.when(externalAccessRolesService.getNameSpaceIfExists(applicationList.get(0))).thenReturn(response);
+               Mockito.when(mockedRequest.getHeader("uebkey")).thenReturn(uebKey);
+               Mockito.when(externalAccessRolesService.getApp(mockedRequest.getHeader("uebkey"))).thenReturn(applicationList);
+               Mockito.doNothing().when(externalAccessRolesService).syncApplicationRolesWithEcompDB(app);
+               Mockito.when(externalAccessRolesService.getRoleFuncList(mockedRequest.getHeader("uebkey"))).thenReturn(centralV2RoleFunction);
+               List<CentralV2RoleFunction> actualCentralV2RoleFunctionList = externalAccessRolesController.getV2RoleFunctionsList(mockedRequest, mockedResponse);
+               assertEquals(actualCentralV2RoleFunctionList.size(), expectedCentralV2RoleFunctionList.size());
+       }
+       
+       @Test
+       public void getV2RoleFunctionsListExceptionTest() throws Exception {
                String reason = getInvalidKeyJson();
                StringWriter sw = new StringWriter();
                PrintWriter writer = new PrintWriter(sw);
                Mockito.when(mockedResponse.getWriter()).thenReturn(writer);
-               externalAccessRolesController.getRoleFunctionsList(mockedRequest, mockedResponse);
+               externalAccessRolesController.getV2RoleFunctionsList(mockedRequest, mockedResponse);
                String result = sw.getBuffer().toString().trim();
                assertEquals(reason, result);
        }
-
+       
+       @Test
+       public void getRoleInfoValidationTest() throws Exception {
+               CentralRole expectedCentralRole = null;
+               List<EPApp> applicationList = new ArrayList<EPApp>();
+               long roleId = 1;
+               CentralV2Role centralV2Role = new CentralV2Role();
+               EPApp app = mockApp();
+               app.setCentralAuth(true);
+               applicationList.add(app);
+               Mockito.when(mockedRequest.getHeader("uebkey")).thenReturn(uebKey);
+               ResponseEntity<String> response = new ResponseEntity<>(HttpStatus.FOUND);
+               Mockito.when(externalAccessRolesService.getNameSpaceIfExists(applicationList.get(0))).thenReturn(response);
+               Mockito.when(externalAccessRolesService.getApp(mockedRequest.getHeader("uebkey"))).thenReturn(applicationList);
+               Mockito.when(externalAccessRolesService.getRoleInfo(roleId, mockedRequest.getHeader("uebkey"))).thenReturn(centralV2Role);
+               CentralRole actualCentralRole = externalAccessRolesController.getRoleInfo(mockedRequest, mockedResponse, roleId);
+               assertEquals(actualCentralRole, expectedCentralRole);
+       }
+       
        @Test
        public void getRoleInfoTest() throws Exception {
                String reason = getInvalidKeyJson();
@@ -251,7 +425,103 @@ public class ExternalAccessRolesControllerTest {
                String result = sw.getBuffer().toString().trim();
                assertEquals(reason, result);
        }
+       
+       @Test
+       public void getV2RoleInfoValidationTest() throws Exception {
+               CentralV2Role  expectedCentralRole = new CentralV2Role();
+               expectedCentralRole.setActive(false);
+               List<EPApp> applicationList = new ArrayList<EPApp>();
+               long roleId = 1;
+               CentralV2Role centralV2Role = new CentralV2Role();
+               EPApp app = mockApp();
+               app.setCentralAuth(true);
+               applicationList.add(app);
+               Mockito.when(mockedRequest.getHeader("uebkey")).thenReturn(uebKey);
+               ResponseEntity<String> response = new ResponseEntity<>(HttpStatus.FOUND);
+               Mockito.when(externalAccessRolesService.getNameSpaceIfExists(applicationList.get(0))).thenReturn(response);
+               Mockito.when(externalAccessRolesService.getApp(mockedRequest.getHeader("uebkey"))).thenReturn(applicationList);
+               Mockito.when(externalAccessRolesService.getRoleInfo(roleId, mockedRequest.getHeader("uebkey"))).thenReturn(centralV2Role);
+               CentralV2Role actualCentralRole = externalAccessRolesController.getV2RoleInfo(mockedRequest, mockedResponse, roleId);
+               assertEquals(actualCentralRole.getActive(), expectedCentralRole.getActive());
+       }
+       
+       @Test
+       public void getV2RoleInfoTest() throws Exception {
+               String reason = getInvalidKeyJson();
+               StringWriter sw = new StringWriter();
+               PrintWriter writer = new PrintWriter(sw);
+               Mockito.when(mockedResponse.getWriter()).thenReturn(writer);            
+               CentralV2Role answer = new CentralV2Role();
+               long roleId = 1;
+               Mockito.when(externalAccessRolesService.getRoleInfo(roleId, mockedRequest.getHeader(uebKey)))
+                               .thenReturn(answer);
+               externalAccessRolesController.getV2RoleInfo(mockedRequest, mockedResponse, roleId);
+               String result = sw.getBuffer().toString().trim();
+               assertEquals(reason, result);
+       }
 
+       @Test
+       public void getV2RoleInfoExceptionTest() throws Exception {
+               String reason = getInvalidKeyJson();
+               StringWriter sw = new StringWriter();
+               PrintWriter writer = new PrintWriter(sw);
+               Mockito.when(mockedResponse.getWriter()).thenReturn(writer);    
+               long roleId = 1;
+               assertNull(externalAccessRolesController.getV2RoleInfo(mockedRequest, mockedResponse, roleId));
+               String result = sw.getBuffer().toString().trim();
+               assertEquals(reason, result);
+       }
+       
+       @Test
+       public void getV2RoleFunctionTest() throws HttpClientErrorException, Exception{
+               CentralV2RoleFunction expectedCentralV2RoleFunction = new CentralV2RoleFunction();
+               expectedCentralV2RoleFunction.setCode("test");
+               List<EPApp> applicationList = new ArrayList<EPApp>();
+               String code = "test";
+               CentralV2RoleFunction centralV2RoleFunction = new CentralV2RoleFunction();
+               centralV2RoleFunction.setCode("test");
+               EPApp app = mockApp();
+               app.setCentralAuth(true);
+               applicationList.add(app);
+               Mockito.when(mockedRequest.getHeader("uebkey")).thenReturn(uebKey);
+               ResponseEntity<String> response = new ResponseEntity<>(HttpStatus.FOUND);
+               Mockito.when(externalAccessRolesService.getNameSpaceIfExists(applicationList.get(0))).thenReturn(response);
+               Mockito.when(externalAccessRolesService.getApp(mockedRequest.getHeader("uebkey"))).thenReturn(applicationList);
+               Mockito.when(externalAccessRolesService.getRoleFunction(code, mockedRequest.getHeader("uebkey"))).thenReturn(centralV2RoleFunction);
+               CentralV2RoleFunction actualCentralV2RoleFunction = externalAccessRolesController.getV2RoleFunction(mockedRequest, mockedResponse, code);
+               assertEquals(actualCentralV2RoleFunction.getCode(), expectedCentralV2RoleFunction.getCode());
+       }
+       
+       @Test
+       public void getV2RoleFunctionNullCheckTest() throws HttpClientErrorException, Exception{
+               CentralV2RoleFunction expectedCentralV2RoleFunction = new CentralV2RoleFunction();
+               List<EPApp> applicationList = new ArrayList<EPApp>();
+               String code = "test";
+               CentralV2RoleFunction centralV2RoleFunction = null;
+               EPApp app = mockApp();
+               app.setCentralAuth(true);
+               applicationList.add(app);
+               Mockito.when(mockedRequest.getHeader("uebkey")).thenReturn(uebKey);
+               ResponseEntity<String> response = new ResponseEntity<>(HttpStatus.FOUND);
+               Mockito.when(externalAccessRolesService.getNameSpaceIfExists(applicationList.get(0))).thenReturn(response);
+               Mockito.when(externalAccessRolesService.getApp(mockedRequest.getHeader("uebkey"))).thenReturn(applicationList);
+               Mockito.when(externalAccessRolesService.getRoleFunction(code, mockedRequest.getHeader("uebkey"))).thenReturn(centralV2RoleFunction);
+               CentralV2RoleFunction actualCentralV2RoleFunction = externalAccessRolesController.getV2RoleFunction(mockedRequest, mockedResponse, code);
+               assertEquals(actualCentralV2RoleFunction.getAction(), expectedCentralV2RoleFunction.getAction());
+       }
+       
+       @Test
+       public void getV2RoleFunctionExceptionTest() throws Exception {
+               String reason = getInvalidKeyJson();
+               StringWriter sw = new StringWriter();
+               PrintWriter writer = new PrintWriter(sw);
+               Mockito.when(mockedResponse.getWriter()).thenReturn(writer);    
+               String code = "test";
+               assertNull(externalAccessRolesController.getV2RoleFunction(mockedRequest, mockedResponse, code));
+               String result = sw.getBuffer().toString().trim();
+               assertEquals(reason, result);
+       }
+       
        @Test
        public void getRoleFunctionTest() throws Exception {
                EPApp mockApp = mockApp();
@@ -291,57 +561,87 @@ public class ExternalAccessRolesControllerTest {
                assertEquals(reason, result);
        }
 
-       @Test(expected = NullPointerException.class)
-       public void saveRoleFunctionIfIsIsNotDeletedTest() throws Exception {
+       @Test
+       public void saveRoleFunctionIfIsNotDeletedTest() throws Exception {
                List<EPApp> applicationList = new ArrayList<EPApp>();
                EPApp app = mockApp();
                applicationList.add(app);
                Mockito.when(externalAccessRolesService.getApp(mockedRequest.getHeader(uebKey))).thenReturn(applicationList);
                PortalRestResponse<String> portalRestResponse = null;
                PortalRestResponse<String> expectedportalRestResponse = new PortalRestResponse<String>();
-               expectedportalRestResponse.setMessage("Invalid uebkey!");
+               expectedportalRestResponse.setMessage(null);
                expectedportalRestResponse.setResponse("Failed");
                expectedportalRestResponse.setStatus(PortalRestStatusEnum.ERROR);
                String data = null;
                CentralV2RoleFunction centralV2RoleFunction = new CentralV2RoleFunction();
+               Mockito.when(mockedRequest.getHeader("uebkey")).thenReturn(uebKey);
+               Mockito.when(externalAccessRolesService.getApp(mockedRequest.getHeader("uebkey"))).thenReturn(applicationList);
+               ResponseEntity<String> response = new ResponseEntity<>(HttpStatus.FOUND);
+               Mockito.when(externalAccessRolesService.getNameSpaceIfExists(applicationList.get(0))).thenReturn(response);
                Mockito.when(externalAccessRolesService.saveCentralRoleFunction(centralV2RoleFunction, app)).thenReturn(false);
                portalRestResponse = externalAccessRolesController.saveRoleFunction(mockedRequest, mockedResponse, data);
                assertEquals(portalRestResponse, expectedportalRestResponse);
        }
        
-       @Test(expected = NullPointerException.class)
+       @Test
        public void saveRoleFunctionExceptionTest() throws Exception {
                List<EPApp> applicationList = new ArrayList<EPApp>();
                EPApp app = mockApp();
+               app.setCentralAuth(true);
                applicationList.add(app);
                Mockito.when(externalAccessRolesService.getApp(mockedRequest.getHeader(uebKey))).thenReturn(applicationList);
                PortalRestResponse<String> portalRestResponse = null;
                PortalRestResponse<String> expectedportalRestResponse = new PortalRestResponse<String>();
-               expectedportalRestResponse.setMessage("Invalid uebkey!");
+               expectedportalRestResponse.setMessage(null);
                expectedportalRestResponse.setResponse("Failed");
                expectedportalRestResponse.setStatus(PortalRestStatusEnum.ERROR);
+               Mockito.when(mockedRequest.getHeader("uebkey")).thenReturn(uebKey);
+               Mockito.when(externalAccessRolesService.getApp(mockedRequest.getHeader("uebkey"))).thenReturn(applicationList);
+               ResponseEntity<String> response = new ResponseEntity<>(HttpStatus.FOUND);
+               Mockito.when(externalAccessRolesService.getNameSpaceIfExists(applicationList.get(0))).thenReturn(response);
                portalRestResponse = externalAccessRolesController.saveRoleFunction(mockedRequest, mockedResponse, null);
-               System.out.println(portalRestResponse);
                assertEquals(portalRestResponse, expectedportalRestResponse);
        }
        
-       @Test(expected = NullPointerException.class)
+       @Test
        public void saveRoleFunctionTest() throws Exception {
                List<EPApp> applicationList = new ArrayList<EPApp>();
+               EPUser user = mockUser.mockEPUser();
+               List<EPUser> userList = new ArrayList<>();
+               userList.add(user);
                EPApp app = mockApp();
+               app.setCentralAuth(true);
                applicationList.add(app);
+               JSONObject roleFunc = new JSONObject();
+               roleFunc.put("type", "test_type");
+               roleFunc.put("code", "test_instance");
+               roleFunc.put("action", "test_action");
+               roleFunc.put("name", "test_name");
+               ObjectMapper mapper = new ObjectMapper();
+               mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+               CentralV2RoleFunction saveRoleFunc = mapper.readValue(roleFunc.toString(), CentralV2RoleFunction.class);
+               saveRoleFunc.setAppId(app.getId());
                Mockito.when(externalAccessRolesService.getApp(mockedRequest.getHeader(uebKey))).thenReturn(applicationList);
                PortalRestResponse<String> portalRestResponse = null;
                PortalRestResponse<String> expectedportalRestResponse = new PortalRestResponse<String>();
-               expectedportalRestResponse.setMessage(null);
-               expectedportalRestResponse.setResponse("Failed");
+               expectedportalRestResponse.setMessage("Successfully saved!");
+               expectedportalRestResponse.setResponse("Success");
                PortalRestStatusEnum portalRestStatusEnum = null;
-               expectedportalRestResponse.setStatus(portalRestStatusEnum.ERROR);
-               String data = null;
-               CentralV2RoleFunction centralV2RoleFunction = new CentralV2RoleFunction();
-               Mockito.when(externalAccessRolesService.saveCentralRoleFunction(centralV2RoleFunction, app)).thenReturn(true);
-               portalRestResponse = externalAccessRolesController.saveRoleFunction(mockedRequest, mockedResponse, data);
-               System.out.println(portalRestResponse);
+               expectedportalRestResponse.setStatus(portalRestStatusEnum.OK);
+               Mockito.when(mockedRequest.getHeader("uebkey")).thenReturn(uebKey);
+               Mockito.when(externalAccessRolesService.getApp(mockedRequest.getHeader("uebkey"))).thenReturn(applicationList);
+               ResponseEntity<String> response = new ResponseEntity<>(HttpStatus.FOUND);
+               Mockito.when(externalAccessRolesService.getNameSpaceIfExists(applicationList.get(0))).thenReturn(response);
+               Mockito.when(externalAccessRolesService.getRoleFunction("test_type|test_instance|test_action", app.getUebKey()))
+                               .thenReturn(null);
+               Mockito.when(externalAccessRolesService.saveCentralRoleFunction(Matchers.any(CentralV2RoleFunction.class),
+                               Matchers.any(EPApp.class))).thenReturn(true);
+               Mockito.when(externalAccessRolesService.getUser(mockedRequest.getHeader(Matchers.anyString())))
+                               .thenReturn(userList);
+               Mockito.when(externalAccessRolesService.getApp(mockedRequest.getHeader(Matchers.anyString())))
+                               .thenReturn(applicationList);
+               portalRestResponse = externalAccessRolesController.saveRoleFunction(mockedRequest, mockedResponse,
+                               roleFunc.toString());
                assertEquals(portalRestResponse, expectedportalRestResponse);
        }
 
@@ -389,6 +689,24 @@ public class ExternalAccessRolesControllerTest {
                assertEquals(reason, result);
        }
 
+       @Test
+       public void getActiveRolesValidationTest() throws Exception {
+               List<CentralRole> expectedRolesList = null;
+               EPApp app = mockApp();
+               app.setCentralAuth(true);
+               List<EPApp> appList = new ArrayList<EPApp>();
+               appList.add(app);
+               List<CentralV2Role> cenRoles = new ArrayList<CentralV2Role>();
+               Mockito.when(mockedRequest.getHeader("uebkey")).thenReturn(uebKey);
+               Mockito.when(externalAccessRolesService.getApp(mockedRequest.getHeader("uebkey"))).thenReturn(appList); 
+               ResponseEntity<String> response = new ResponseEntity<>(HttpStatus.FOUND);
+               Mockito.when(externalAccessRolesService.getNameSpaceIfExists(appList.get(0))).thenReturn(response);
+               Mockito.when(externalAccessRolesService.getActiveRoles(mockedRequest.getHeader("uebkey"))).thenReturn(cenRoles);
+               Mockito.when(externalAccessRolesService.convertV2CentralRoleListToOldVerisonCentralRoleList(cenRoles)).thenReturn(expectedRolesList);
+               List<CentralRole> actualRolesList = externalAccessRolesController.getActiveRoles(mockedRequest, mockedResponse);
+               assertEquals(actualRolesList, expectedRolesList);
+       }
+       
        @Test
        public void getActiveRolesExceptionTest() throws Exception {
                String reason = getInvalidKeyJson();
@@ -547,11 +865,11 @@ public class ExternalAccessRolesControllerTest {
        public void bulkUploadPartnerFunctionsTest() throws Exception {
                PortalRestResponse<String> portalRestResponse = null;
                PortalRestResponse<String> expectedportalRestResponse = new PortalRestResponse<String>();
-               expectedportalRestResponse.setMessage("Successfully added");
+               expectedportalRestResponse.setMessage("Successfully added: '0' functions");
                expectedportalRestResponse.setResponse("Success");
                PortalRestStatusEnum portalRestStatusEnum = null;
                expectedportalRestResponse.setStatus(portalRestStatusEnum.OK);
-               portalRestResponse = externalAccessRolesController.bulkUploadPartnerFunctions(mockedRequest, mockedResponse, null);
+               portalRestResponse = externalAccessRolesController.bulkUploadPartnerFunctions(mockedRequest, mockedResponse);
                assertEquals(portalRestResponse, expectedportalRestResponse);
        }
 
@@ -648,12 +966,11 @@ public class ExternalAccessRolesControllerTest {
        public void bulkUploadPartnerRoleFunctionsTest() throws Exception {
                PortalRestResponse<String> portalRestResponse = null;
                PortalRestResponse<String> expectedportalRestResponse = new PortalRestResponse<String>();
-               expectedportalRestResponse.setMessage("Successfully added");
+               expectedportalRestResponse.setMessage("Successfully added: '0' role functions");
                expectedportalRestResponse.setResponse("Success");
                PortalRestStatusEnum portalRestStatusEnum = null;
                expectedportalRestResponse.setStatus(portalRestStatusEnum.OK);
-               List<Role> upload = new ArrayList<>();
-               portalRestResponse = externalAccessRolesController.bulkUploadPartnerRoleFunctions(mockedRequest, mockedResponse,upload);
+               portalRestResponse = externalAccessRolesController.bulkUploadPartnerRoleFunctions(mockedRequest, mockedResponse);
                assertEquals(portalRestResponse, expectedportalRestResponse);
        }
        
@@ -860,4 +1177,198 @@ public class ExternalAccessRolesControllerTest {
                assertNull(externalAccessRolesController.getEcompRolesOfApplication(mockedRequest, mockedResponse));
 
        }
+       
+       @Test
+       public void saveRoleTest() throws Exception{
+               PowerMockito.mockStatic(EcompPortalUtils.class);
+               PowerMockito.mockStatic(SystemProperties.class);
+               PowerMockito.mockStatic(EPCommonSystemProperties.class);
+               PowerMockito.mockStatic(PortalConstants.class);
+               PortalRestResponse<String> actualPortalRestResponse = null;
+               PortalRestResponse<String> expectedportalRestResponse = new PortalRestResponse<String>();
+               expectedportalRestResponse.setMessage("Successfully Saved");
+               expectedportalRestResponse.setResponse("Success");
+               PortalRestStatusEnum portalRestStatusEnum = null;
+               EPUser user = mockUser.mockEPUser();
+               List<EPUser> userList = new ArrayList<>();
+               userList.add(user);
+               EPApp app = mockApp();
+               app.setCentralAuth(true);
+               List<EPApp> appList  = new ArrayList<>();
+               appList.add(app);
+               expectedportalRestResponse.setStatus(portalRestStatusEnum.OK);
+               Role role = new Role();
+               ExternalRequestFieldsValidator externalRequestFieldsValidator = new ExternalRequestFieldsValidator(true, "Success");
+               Mockito.when(mockedRequest.getHeader("uebkey")).thenReturn(uebKey);
+               Mockito.when(externalAccessRolesService.getApp(mockedRequest.getHeader("uebkey"))).thenReturn(appList); 
+               ResponseEntity<String> response = new ResponseEntity<>(HttpStatus.FOUND);
+               Mockito.when(externalAccessRolesService.getNameSpaceIfExists(appList.get(0))).thenReturn(response);
+               Mockito.when(externalAccessRolesService.getUser(mockedRequest.getHeader("LoginId"))).thenReturn(userList);
+               Mockito.when(externalAccessRolesService.saveRoleForApplication(role, mockedRequest.getHeader("uebkey"))).thenReturn(externalRequestFieldsValidator);
+               actualPortalRestResponse = externalAccessRolesController.saveRole(mockedRequest, mockedResponse, role);
+               assertEquals(actualPortalRestResponse.getStatus(), expectedportalRestResponse.getStatus());
+       }
+       
+       @Test
+       public void saveRoleNegativeTest() throws Exception{
+               PowerMockito.mockStatic(EcompPortalUtils.class);
+               PowerMockito.mockStatic(SystemProperties.class);
+               PowerMockito.mockStatic(EPCommonSystemProperties.class);
+               PowerMockito.mockStatic(PortalConstants.class);
+               PortalRestResponse<String> actualPortalRestResponse = null;
+               PortalRestResponse<String> expectedportalRestResponse = new PortalRestResponse<String>();
+               expectedportalRestResponse.setMessage("Successfully Saved");
+               expectedportalRestResponse.setResponse("Success");
+               PortalRestStatusEnum portalRestStatusEnum = null;
+               EPUser user = mockUser.mockEPUser();
+               List<EPUser> userList = new ArrayList<>();
+               userList.add(user);
+               EPApp app = mockApp();
+               app.setCentralAuth(true);
+               List<EPApp> appList  = new ArrayList<>();
+               appList.add(app);
+               expectedportalRestResponse.setStatus(portalRestStatusEnum.ERROR);
+               Role role = new Role();
+               ExternalRequestFieldsValidator externalRequestFieldsValidator = new ExternalRequestFieldsValidator(false, "Failed");
+               Mockito.when(mockedRequest.getHeader("uebkey")).thenReturn(uebKey);
+               Mockito.when(externalAccessRolesService.getApp(mockedRequest.getHeader("uebkey"))).thenReturn(appList); 
+               ResponseEntity<String> response = new ResponseEntity<>(HttpStatus.FOUND);
+               Mockito.when(externalAccessRolesService.getNameSpaceIfExists(appList.get(0))).thenReturn(response);
+               Mockito.when(externalAccessRolesService.getUser(mockedRequest.getHeader("LoginId"))).thenReturn(userList);
+               Mockito.when(externalAccessRolesService.saveRoleForApplication(role, mockedRequest.getHeader("uebkey"))).thenReturn(externalRequestFieldsValidator);
+               actualPortalRestResponse = externalAccessRolesController.saveRole(mockedRequest, mockedResponse, role);
+               assertEquals(actualPortalRestResponse.getStatus(), expectedportalRestResponse.getStatus());
+       }
+       
+       @Test
+       public void saveRole406Test() throws Exception{
+               PowerMockito.mockStatic(EcompPortalUtils.class);
+               PowerMockito.mockStatic(SystemProperties.class);
+               PowerMockito.mockStatic(EPCommonSystemProperties.class);
+               PowerMockito.mockStatic(PortalConstants.class);
+               PortalRestResponse<String> actualPortalRestResponse = null;
+               PortalRestResponse<String> expectedportalRestResponse = new PortalRestResponse<String>();
+               expectedportalRestResponse.setMessage("Successfully Saved");
+               expectedportalRestResponse.setResponse("Failed");
+               PortalRestStatusEnum portalRestStatusEnum = null;
+               EPUser user = mockUser.mockEPUser();
+               List<EPUser> userList = new ArrayList<>();
+               userList.add(user);
+               EPApp app = mockApp();
+               app.setCentralAuth(true);
+               List<EPApp> appList  = new ArrayList<>();
+               appList.add(app);
+               expectedportalRestResponse.setStatus(portalRestStatusEnum.ERROR);
+               Role role = new Role();
+               ExternalRequestFieldsValidator externalRequestFieldsValidator = new ExternalRequestFieldsValidator(false, "406");
+               Mockito.when(mockedRequest.getHeader("uebkey")).thenReturn(uebKey);
+               Mockito.when(externalAccessRolesService.getApp(mockedRequest.getHeader("uebkey"))).thenReturn(appList); 
+               ResponseEntity<String> response = new ResponseEntity<>(HttpStatus.FOUND);
+               Mockito.when(externalAccessRolesService.getNameSpaceIfExists(appList.get(0))).thenReturn(response);
+               Mockito.when(externalAccessRolesService.getUser(mockedRequest.getHeader("LoginId"))).thenReturn(userList);
+               Mockito.when(externalAccessRolesService.saveRoleForApplication(role, mockedRequest.getHeader("uebkey"))).thenReturn(externalRequestFieldsValidator);
+               actualPortalRestResponse = externalAccessRolesController.saveRole(mockedRequest, mockedResponse, role);
+               assertEquals(actualPortalRestResponse.getStatus(), expectedportalRestResponse.getStatus());
+       }
+               
+       @Test(expected = NullPointerException.class)
+       public void saveRoleNullExceptionTest() throws Exception
+       {
+               List<EPApp> applicationList = new ArrayList<EPApp>();
+               EPApp app = mockApp();
+               applicationList.add(app);
+               Role role = new Role();
+               Mockito.when(externalAccessRolesService.getApp(mockedRequest.getHeader(uebKey))).thenReturn(applicationList);
+               ExternalRequestFieldsValidator externalRequestFieldsValidator = new ExternalRequestFieldsValidator(false, "failed");
+               Mockito.when(externalAccessRolesService.deleteDependencyRoleRecord(Matchers.anyLong(),Matchers.anyString(),Matchers.anyString())).thenReturn(externalRequestFieldsValidator);
+               PortalRestResponse<String> expectedportalRestResponse = new PortalRestResponse<String>();
+               expectedportalRestResponse.setMessage("Failed to deleteRole");
+               expectedportalRestResponse.setResponse("Failed");
+               PortalRestStatusEnum portalRestStatusEnum = null;
+               expectedportalRestResponse.setStatus(portalRestStatusEnum.ERROR);
+               PortalRestResponse<String> actualResponse = externalAccessRolesController.saveRole(mockedRequest, mockedResponse, role);
+               assertEquals(actualResponse, null);
+       }
+       
+       @Test
+       public void deleteRoleTest() throws Exception{
+               PowerMockito.mockStatic(EcompPortalUtils.class);
+               PowerMockito.mockStatic(SystemProperties.class);
+               PowerMockito.mockStatic(EPCommonSystemProperties.class);
+               PowerMockito.mockStatic(PortalConstants.class);
+               PortalRestResponse<String> actualPortalRestResponse = null;
+               PortalRestResponse<String> expectedportalRestResponse = new PortalRestResponse<String>();
+               expectedportalRestResponse.setMessage("Successfully Deleted");
+               expectedportalRestResponse.setResponse("Success");
+               PortalRestStatusEnum portalRestStatusEnum = null;
+               EPUser user = mockUser.mockEPUser();
+               List<EPUser> userList = new ArrayList<>();
+               userList.add(user);
+               EPApp app = mockApp();
+               app.setCentralAuth(true);
+               List<EPApp> appList  = new ArrayList<>();
+               appList.add(app);
+               expectedportalRestResponse.setStatus(portalRestStatusEnum.OK);
+               String code ="test";
+               boolean deleteResponse = true;
+               Mockito.when(mockedRequest.getHeader("uebkey")).thenReturn(uebKey);
+               Mockito.when(externalAccessRolesService.getApp(mockedRequest.getHeader("uebkey"))).thenReturn(appList); 
+               ResponseEntity<String> response = new ResponseEntity<>(HttpStatus.FOUND);
+               Mockito.when(externalAccessRolesService.getNameSpaceIfExists(appList.get(0))).thenReturn(response);
+               Mockito.when(externalAccessRolesService.getUser(mockedRequest.getHeader("LoginId"))).thenReturn(userList);
+               Mockito.when(externalAccessRolesService.deleteRoleForApplication(code, mockedRequest.getHeader("uebkey"))).thenReturn(deleteResponse);
+               actualPortalRestResponse = externalAccessRolesController.deleteRole(mockedRequest, mockedResponse, code);
+               assertEquals(actualPortalRestResponse.getStatus(), expectedportalRestResponse.getStatus());
+       }
+       
+       @Test
+       public void deleteRoleNegativeTest() throws Exception{
+               PowerMockito.mockStatic(EcompPortalUtils.class);
+               PowerMockito.mockStatic(SystemProperties.class);
+               PowerMockito.mockStatic(EPCommonSystemProperties.class);
+               PowerMockito.mockStatic(PortalConstants.class);
+               PortalRestResponse<String> actualPortalRestResponse = null;
+               PortalRestResponse<String> expectedportalRestResponse = new PortalRestResponse<String>();
+               expectedportalRestResponse.setMessage("Failed to delete Role for 'test");
+               expectedportalRestResponse.setResponse("Failed");
+               PortalRestStatusEnum portalRestStatusEnum = null;
+               EPUser user = mockUser.mockEPUser();
+               List<EPUser> userList = new ArrayList<>();
+               userList.add(user);
+               EPApp app = mockApp();
+               app.setCentralAuth(true);
+               List<EPApp> appList  = new ArrayList<>();
+               appList.add(app);
+               expectedportalRestResponse.setStatus(portalRestStatusEnum.ERROR);
+               String code ="test";
+               boolean deleteResponse = false;
+               Mockito.when(mockedRequest.getHeader("uebkey")).thenReturn(uebKey);
+               Mockito.when(externalAccessRolesService.getApp(mockedRequest.getHeader("uebkey"))).thenReturn(appList); 
+               ResponseEntity<String> response = new ResponseEntity<>(HttpStatus.FOUND);
+               Mockito.when(externalAccessRolesService.getNameSpaceIfExists(appList.get(0))).thenReturn(response);
+               Mockito.when(externalAccessRolesService.getUser(mockedRequest.getHeader("LoginId"))).thenReturn(userList);
+               Mockito.when(externalAccessRolesService.deleteRoleForApplication(code, mockedRequest.getHeader("uebkey"))).thenReturn(deleteResponse);
+               actualPortalRestResponse = externalAccessRolesController.deleteRole(mockedRequest, mockedResponse, code);
+               assertEquals(actualPortalRestResponse.getStatus(), expectedportalRestResponse.getStatus());
+       }
+       
+       @Test
+       public void deleteDependcyRoleRecordTest() throws Exception {
+               ExternalRequestFieldsValidator removeResult = new ExternalRequestFieldsValidator(true, "success");
+               PortalRestResponse<String> portalRestResponse = null;
+               PortalRestResponse<String> expectedportalRestResponse = new PortalRestResponse<String>();
+               expectedportalRestResponse.setMessage("Invalid uebkey!");
+               expectedportalRestResponse.setResponse("Failed");
+               PortalRestStatusEnum portalRestStatusEnum = null;
+               expectedportalRestResponse.setStatus(portalRestStatusEnum.ERROR);
+               long roleId = 123;
+               String LoginId = "loginId";
+               List<EPApp> appList = new ArrayList<EPApp>();
+               Mockito.when(mockedRequest.getHeader("uebkey")).thenReturn(uebKey);
+               Mockito.when(mockedRequest.getHeader("LoginId")).thenReturn(LoginId);
+               Mockito.when(externalAccessRolesService.getApp(mockedRequest.getHeader("uebkey"))).thenReturn(appList);
+               Mockito.when(externalAccessRolesService.deleteDependencyRoleRecord(roleId, mockedRequest.getHeader("uebkey"), mockedRequest.getHeader("LoginId"))).thenReturn(removeResult);
+               portalRestResponse = externalAccessRolesController.deleteDependencyRoleRecord(mockedRequest, mockedResponse, roleId);
+               assertEquals(expectedportalRestResponse, portalRestResponse);
+       }
 }