JUnits for coverage
[portal.git] / ecomp-portal-BE-common / src / test / java / org / onap / portalapp / portal / controller / ExternalAccessRolesControllerTest.java
index 859cc4c..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,9 +51,10 @@ 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.Ignore;
 import org.junit.Test;
+import org.junit.runner.RunWith;
 import org.mockito.InjectMocks;
 import org.mockito.Matchers;
 import org.mockito.Mock;
@@ -68,19 +69,38 @@ import org.onap.portalapp.portal.ecomp.model.PortalRestStatusEnum;
 import org.onap.portalapp.portal.framework.MockitoTestSuite;
 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;
+import org.onap.portalapp.portal.utils.EcompPortalUtils;
+import org.onap.portalapp.portal.utils.PortalConstants;
 import org.onap.portalsdk.core.domain.AuditLog;
 import org.onap.portalsdk.core.domain.Role;
+import org.onap.portalsdk.core.domain.User;
+import org.onap.portalsdk.core.restful.domain.EcompRole;
 import org.onap.portalsdk.core.restful.domain.EcompUser;
-import org.springframework.beans.BeanUtils;
+import org.onap.portalsdk.core.service.AuditService;
+import org.onap.portalsdk.core.service.UserService;
+import org.onap.portalsdk.core.service.UserServiceCentalizedImpl;
+import org.onap.portalsdk.core.util.SystemProperties;
+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;
+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)
+@PrepareForTest({ EcompPortalUtils.class, PortalConstants.class, SystemProperties.class,
+               EPCommonSystemProperties.class })
 public class ExternalAccessRolesControllerTest {
 
        @Mock
@@ -88,6 +108,11 @@ public class ExternalAccessRolesControllerTest {
 
        @InjectMocks
        ExternalAccessRolesController externalAccessRolesController = new ExternalAccessRolesController();
+       @Mock
+       UserService userservice =  new UserServiceCentalizedImpl();
+       
+       @Mock
+       AuditService auditService; 
 
        @Before
        public void setup() {
@@ -107,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();
@@ -156,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>();
@@ -182,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();
@@ -230,23 +425,126 @@ 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 getRoleFunctionTest() throws Exception {
+       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();
-               CentralRoleFunction centralRoleFunction = new CentralRoleFunction();
+               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();
+               mockApp.setCentralAuth(true);
+               List<EPApp> mockAppList = new ArrayList<>();
+               mockAppList.add(mockApp);
+               StringWriter sw = new StringWriter();
+               PrintWriter writer = new PrintWriter(sw);
+               Mockito.when(mockedResponse.getWriter()).thenReturn(writer);    
+               CentralV2RoleFunction roleFunction1 = new CentralV2RoleFunction();
+               CentralRoleFunction roleFunction2 = new CentralRoleFunction();
+               roleFunction1.setCode("test2");
                String code = "test_menu";
-               Mockito.when(externalAccessRolesService.getRoleFunction(code, mockedRequest.getHeader(uebKey)))
-                               .thenReturn(centralV2RoleFunction);
+               Mockito.when(mockedRequest.getHeader("uebkey")).thenReturn(uebKey);
+               Mockito.when(externalAccessRolesService.getApp(mockedRequest.getHeader("uebkey"))).thenReturn(mockAppList);
+               ResponseEntity<String> response = new ResponseEntity<>(HttpStatus.FOUND);
+               Mockito.when(externalAccessRolesService.getNameSpaceIfExists(mockAppList.get(0))).thenReturn(response);
+               Mockito.when(externalAccessRolesService.getRoleFunction(code, mockedRequest.getHeader("uebkey")))
+                               .thenReturn(roleFunction1);
                CentralRoleFunction returnedValue = externalAccessRolesController.getRoleFunction(mockedRequest, mockedResponse, code);
-               BeanUtils.copyProperties(centralV2RoleFunction, centralRoleFunction, "type","action");
-               assertEquals(returnedValue,centralRoleFunction);
+               assertEquals(returnedValue, roleFunction2);
                String result = sw.getBuffer().toString().trim();
-               assertEquals(reason, result);
+               assertEquals("", result);
        }
 
        @Test
@@ -263,74 +561,116 @@ 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);
        }
 
        @Test
-       @Ignore
        public void deleteRoleFunctionTest() throws Exception {
+               PowerMockito.mockStatic(EcompPortalUtils.class);
+               PowerMockito.mockStatic(SystemProperties.class);
+               PowerMockito.mockStatic(EPCommonSystemProperties.class);
+               PowerMockito.mockStatic(PortalConstants.class);
                PortalRestResponse<String> portalRestResponse = 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 ="testNew";
-               Mockito.when(externalAccessRolesService.getUser(mockedRequest.getHeader("LOGIN_ID"))).thenReturn((List<EPUser>) user);
-               Mockito.when(externalAccessRolesService.getApp(mockedRequest.getHeader("UEBKEY")).get(0)).thenReturn(app);
+               Mockito.when(mockedRequest.getHeader("LoginId")).thenReturn("guestT");
+               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.deleteCentralRoleFunction(code, app)).thenReturn(true);
                portalRestResponse = externalAccessRolesController.deleteRoleFunction(mockedRequest, mockedResponse, code);
                assertEquals(portalRestResponse, expectedportalRestResponse);
@@ -343,12 +683,30 @@ public class ExternalAccessRolesControllerTest {
                PrintWriter writer = new PrintWriter(sw);
                Mockito.when(mockedResponse.getWriter()).thenReturn(writer);
                Mockito.when(externalAccessRolesService.getActiveRoles(mockedRequest.getHeader(uebKey))).thenReturn(null);
-               List<CentralV2Role> expectedCenRole = externalAccessRolesController.getActiveRoles(mockedRequest, mockedResponse);
+               List<CentralRole> expectedCenRole = externalAccessRolesController.getActiveRoles(mockedRequest, mockedResponse);
                assertNull(expectedCenRole);
                String result = sw.getBuffer().toString().trim();
                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();
@@ -507,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);
        }
 
@@ -608,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);
        }
        
@@ -624,7 +981,17 @@ public class ExternalAccessRolesControllerTest {
                EcompUser user = new EcompUser();
                user.setOrgUserId("guestT");
                users.add(user);
+               StringWriter sw = new StringWriter();
+               PrintWriter writer = new PrintWriter(sw);
+               Mockito.when(mockedResponse.getWriter()).thenReturn(writer);    
+               List<EPApp> applicationList = new ArrayList<EPApp>();
+               EPApp app = mockApp();
+               app.setCentralAuth(true);
+               applicationList.add(app);
+               Mockito.when(externalAccessRolesService.getApp(mockedRequest.getHeader(uebKey))).thenReturn(applicationList);
                Mockito.when(externalAccessRolesService.getAllAppUsers(mockedRequest.getHeader(uebKey))).thenReturn(users);
+               ResponseEntity<String> response = new ResponseEntity<>(HttpStatus.OK);
+               Mockito.when(externalAccessRolesService.getNameSpaceIfExists(app)).thenReturn(response);
                List<EcompUser> expectedUsers =         externalAccessRolesController.getUsersOfApplication(mockedRequest, mockedResponse);
                assertEquals(expectedUsers, users);
        }
@@ -708,4 +1075,300 @@ public class ExternalAccessRolesControllerTest {
                PortalRestResponse<String> actualResponse =     externalAccessRolesController.deleteRole(mockedRequest, mockedResponse, (long)1);
                assertEquals(actualResponse, null);
        }
+       
+       @Test
+       public void getEpUserNullTest() throws Exception{
+               List<EPApp> applicationList = new ArrayList<EPApp>();
+               EPApp app = mockApp();
+               app.setUebKey("uebKey");
+               app.setCentralAuth(true);
+               applicationList.add(app);
+               Mockito.when(externalAccessRolesService.getApp(mockedRequest.getHeader(uebKey))).thenReturn(applicationList);
+               ResponseEntity<String> response = new ResponseEntity<>(HttpStatus.OK);
+               Mockito.when(externalAccessRolesService.getNameSpaceIfExists(app)).thenReturn(response);
+               assertNull(externalAccessRolesController.getEcompUser(mockedRequest, mockedResponse, "test12"));
+       }
+       
+       @Test
+       public void getEpUserTest() throws Exception{
+               List<EPApp> applicationList = new ArrayList<EPApp>();
+               EPApp app = mockApp();
+               app.setUebKey("uebKey");
+               app.setCentralAuth(true);
+               applicationList.add(app);
+               Mockito.when(externalAccessRolesService.getApp(mockedRequest.getHeader(uebKey))).thenReturn(applicationList);
+               ResponseEntity<String> response = new ResponseEntity<>(HttpStatus.OK);
+               Mockito.when(externalAccessRolesService.getNameSpaceIfExists(app)).thenReturn(response);
+       String user = "{\"id\":null,\"created\":null,\"modified\":null,\"createdId\":null,\"modifiedId\":null,\"rowNum\":null,\"auditUserId\":null,\"auditTrail\":null,\"orgId\":null,\"managerId\":null,\"firstName\":\"test\",\"middleInitial\":null,\"lastName\":null,\"phone\":null,\"fax\":null,\"cellular\":null,\"email\":null,\"addressId\":null,\"alertMethodCd\":null,\"hrid\":null,\"orgUserId\":null,\"orgCode\":null,\"address1\":null,\"address2\":null,\"city\":null,\"state\":null,\"zipCode\":null,\"country\":null,\"orgManagerUserId\":null,\"locationClli\":null,\"businessCountryCode\":null,\"businessCountryName\":null,\"businessUnit\":null,\"businessUnitName\":null,\"department\":null,\"departmentName\":null,\"companyCode\":null,\"company\":null,\"zipCodeSuffix\":null,\"jobTitle\":null,\"commandChain\":null,\"siloStatus\":null,\"costCenter\":null,\"financialLocCode\":null,\"loginId\":null,\"loginPwd\":null,\"lastLoginDate\":null,\"active\":false,\"internal\":false,\"selectedProfileId\":null,\"timeZoneId\":null,\"online\":false,\"chatId\":null,\"userApps\":[],\"pseudoRoles\":[],\"defaultUserApp\":null,\"roles\":[],\"fullName\":\"test null\"}";
+               Mockito.when(externalAccessRolesService.getV2UserWithRoles("test12", mockedRequest.getHeader(uebKey))).thenReturn(user);
+               User EPuser = new User();
+               EPuser.setFirstName("test");
+               Mockito.when(userservice.userMapper(user)).thenReturn(EPuser);
+               String res = "{\"orgId\":null,\"managerId\":null,\"firstName\":\"test\",\"middleInitial\":null,\"lastName\":null,\"phone\":null,\"email\":null,\"hrid\":null,\"orgUserId\":null,\"orgCode\":null,\"orgManagerUserId\":null,\"jobTitle\":null,\"loginId\":null,\"active\":false,\"roles\":[]}";
+               assertEquals(externalAccessRolesController.getEcompUser(mockedRequest, mockedResponse, "test12"),res);
+       }
+       
+       @Test
+       public void getEpUserExceptionTest() throws Exception{
+               List<EPApp> applicationList = new ArrayList<EPApp>();
+               EPApp app = mockApp();
+               app.setCentralAuth(true);
+               Mockito.when(externalAccessRolesService.getApp(mockedRequest.getHeader(uebKey))).thenReturn(applicationList);
+               StringWriter sw = new StringWriter();
+               PrintWriter writer = new PrintWriter(sw);
+               Mockito.when(mockedResponse.getWriter()).thenReturn(writer);    
+               assertNull(externalAccessRolesController.getEcompUser(mockedRequest, mockedResponse, "test12"));
+       }
+       
+       @Test
+       public void  getEPRolesOfApplicationTest() throws Exception
+       {
+               List<EPApp> applicationList = new ArrayList<EPApp>();
+               EPApp app = mockApp();
+               app.setUebKey("uebKey");
+               app.setCentralAuth(true);
+               applicationList.add(app);
+               Mockito.when(externalAccessRolesService.getApp(mockedRequest.getHeader(uebKey))).thenReturn(applicationList);
+               ResponseEntity<String> response = new ResponseEntity<>(HttpStatus.OK);
+               Mockito.when(externalAccessRolesService.getNameSpaceIfExists(app)).thenReturn(response);
+               Mockito.doNothing().when(externalAccessRolesService).syncApplicationRolesWithEcompDB(app);
+               List<CentralV2Role> cenRoleList = new ArrayList<>();
+               CentralV2Role role = new CentralV2Role();
+               role.setName("test");
+               cenRoleList.add(role);
+               Mockito.when(externalAccessRolesService.getActiveRoles(mockedRequest.getHeader(uebKey))).thenReturn(cenRoleList);
+               List<EcompRole> ecompRoles = new ArrayList<>();
+               EcompRole eprole = new EcompRole();
+               eprole.setName("test");
+               ecompRoles.add(eprole);
+               assertEquals(ecompRoles,externalAccessRolesController.getEcompRolesOfApplication(mockedRequest, mockedResponse));
+       }       
+       @Test
+       public void  getEPRolesOfApplicationNullTest() throws Exception
+       {
+               List<EPApp> applicationList = new ArrayList<EPApp>();
+               EPApp app = mockApp();
+               app.setUebKey("uebKey");
+               app.setCentralAuth(true);
+               applicationList.add(app);
+               Mockito.when(externalAccessRolesService.getApp(mockedRequest.getHeader(uebKey))).thenReturn(applicationList);
+               ResponseEntity<String> response = new ResponseEntity<>(HttpStatus.OK);
+               Mockito.when(externalAccessRolesService.getNameSpaceIfExists(app)).thenReturn(response);
+               Mockito.doNothing().when(externalAccessRolesService).syncApplicationRolesWithEcompDB(app);
+               List<CentralV2Role> cenRoleList = new ArrayList<>();
+               CentralV2Role role = new CentralV2Role();
+               role.setName("test");
+               cenRoleList.add(role);
+               Mockito.when(externalAccessRolesService.getActiveRoles(mockedRequest.getHeader(uebKey))).thenReturn(null);
+               assertNull(externalAccessRolesController.getEcompRolesOfApplication(mockedRequest, mockedResponse));
+
+       }
+       
+       @Test
+       public void  getEPRolesOfApplicationExceptionTest() throws Exception
+       {
+               List<EPApp> applicationList = new ArrayList<EPApp>();
+               EPApp app = mockApp();
+               app.setCentralAuth(true);
+               Mockito.when(externalAccessRolesService.getApp(mockedRequest.getHeader(uebKey))).thenReturn(applicationList);
+               StringWriter sw = new StringWriter();
+               PrintWriter writer = new PrintWriter(sw);
+               Mockito.when(mockedResponse.getWriter()).thenReturn(writer);
+               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);
+       }
 }