fixes for supporting non-gui application access provisioning
[portal.git] / ecomp-portal-BE-common / src / test / java / org / onap / portalapp / portal / service / ExternalAccessRolesServiceImplTest.java
index 295ba74..3b1df40 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.service;
 
@@ -78,18 +78,12 @@ import org.onap.portalapp.portal.domain.EPAppRoleFunction;
 import org.onap.portalapp.portal.domain.EPRole;
 import org.onap.portalapp.portal.domain.EPUser;
 import org.onap.portalapp.portal.domain.EPUserApp;
+import org.onap.portalapp.portal.domain.EpAppType;
+import org.onap.portalapp.portal.ecomp.model.UploadRoleFunctionExtSystem;
 import org.onap.portalapp.portal.exceptions.InactiveApplicationException;
 import org.onap.portalapp.portal.exceptions.InvalidUserException;
 import org.onap.portalapp.portal.framework.MockitoTestSuite;
-import org.onap.portalapp.portal.transport.BulkUploadRoleFunction;
-import org.onap.portalapp.portal.transport.BulkUploadUserRoles;
-import org.onap.portalapp.portal.transport.CentralRole;
-import org.onap.portalapp.portal.transport.CentralUser;
-import org.onap.portalapp.portal.transport.CentralV2Role;
-import org.onap.portalapp.portal.transport.EcompUserRoles;
-import org.onap.portalapp.portal.transport.ExternalRequestFieldsValidator;
-import org.onap.portalapp.portal.transport.GlobalRoleWithApplicationRoleFunction;
-import org.onap.portalapp.portal.transport.LocalRole;
+import org.onap.portalapp.portal.transport.*;
 import org.onap.portalapp.portal.utils.EPCommonSystemProperties;
 import org.onap.portalapp.portal.utils.EcompPortalUtils;
 import org.onap.portalapp.portal.utils.PortalConstants;
@@ -141,6 +135,13 @@ public class ExternalAccessRolesServiceImplTest {
        @Before
        public void setup() {
                MockitoAnnotations.initMocks(this);
+               PowerMockito.mockStatic(EPCommonSystemProperties.class);
+               PowerMockito.mockStatic(PortalConstants.class);
+               PowerMockito.mockStatic(EcompPortalUtils.class);
+               PowerMockito.mockStatic(SystemProperties.class);
+               PowerMockito.mockStatic(EPUserUtils.class);
+               PowerMockito.mockStatic(Restrictions.class);
+               PowerMockito.mockStatic(Criterion.class);
                Mockito.when(sessionFactory.openSession()).thenReturn(session);
                Mockito.when(session.beginTransaction()).thenReturn(transaction);
        }
@@ -177,24 +178,24 @@ public class ExternalAccessRolesServiceImplTest {
                app.setName("Test");
                app.setImageUrl("test");
                app.setNameSpace("com.test.app");
-               app.setCentralAuth(true);
-               app.setDescription("test");
-               app.setNotes("test");
-               app.setUrl("test");
+               app.setRolesInAAF(true);
+               app.setAppDescription("test");
+               app.setAppNotes("test");
+               app.setLandingPage("test");
                app.setId((long) 10);
                app.setAppRestEndpoint("test");
-               app.setAlternateUrl("test");
+               app.setAlternateLandingPage("test");
                app.setName("test");
                app.setMlAppName("test");
                app.setMlAppAdminId("test");
-               app.setUsername("test");
-               app.setAppPassword("test");
+               app.setAppBasicAuthUsername("test");
+               app.setAppBasicAuthPassword("test");
                app.setOpen(false);
                app.setEnabled(true);
                app.setUebKey("test");
                app.setUebSecret("test");
                app.setUebTopicName("test");
-               app.setAppType(1);
+               app.setAppType(EpAppType.GUI);
                return app;
        }
 
@@ -256,9 +257,6 @@ public class ExternalAccessRolesServiceImplTest {
        @Test
        public void addRoleTest() throws Exception {
                HttpHeaders headers = new HttpHeaders();
-               PowerMockito.mockStatic(EcompPortalUtils.class);
-               PowerMockito.mockStatic(SystemProperties.class);
-               PowerMockito.mockStatic(EPCommonSystemProperties.class);
                String uebKey = "test-ueb-key";
                Role role = new Role();
                role.setId((long) 25);
@@ -294,9 +292,6 @@ public class ExternalAccessRolesServiceImplTest {
        @Test
        public void addRoleMethodNotAllowedTest() throws Exception {
                HttpHeaders headers = new HttpHeaders();
-               PowerMockito.mockStatic(EcompPortalUtils.class);
-               PowerMockito.mockStatic(SystemProperties.class);
-               PowerMockito.mockStatic(EPCommonSystemProperties.class);
                Role role = new Role();
                role.setId((long) 25);
                EPApp app = mockApp();
@@ -331,31 +326,28 @@ public class ExternalAccessRolesServiceImplTest {
                EPApp app = new EPApp();
                app.setName("Test");
                app.setImageUrl("test");
-               app.setDescription("test");
-               app.setNotes("test");
-               app.setUrl("test");
+               app.setAppDescription("test");
+               app.setAppNotes("test");
+               app.setLandingPage("test");
                app.setId((long) 1);
                app.setAppRestEndpoint("test");
-               app.setAlternateUrl("test");
+               app.setAlternateLandingPage("test");
                app.setName("test");
                app.setMlAppName("test");
                app.setMlAppAdminId("test");
-               app.setUsername("test");
-               app.setAppPassword("test");
+               app.setAppBasicAuthUsername("test");
+               app.setAppBasicAuthPassword("test");
                app.setOpen(true);
                app.setEnabled(false);
                app.setUebKey("test");
                app.setUebSecret("test");
                app.setUebTopicName("test");
-               app.setAppType(1);
+               app.setAppType(EpAppType.GUI);
                return app;
        }
 
        @Test
        public void deleteCentralRoleFunctionTest() throws Exception {
-               PowerMockito.mockStatic(EcompPortalUtils.class);
-               PowerMockito.mockStatic(SystemProperties.class);
-               PowerMockito.mockStatic(EPCommonSystemProperties.class);
                final Map<String, String> params = new HashMap<>();
                EPApp app = mockApp();
                params.put("functionCode", "menu_fun_code");
@@ -488,7 +480,6 @@ public class ExternalAccessRolesServiceImplTest {
                Mockito.when(EcompPortalUtils.base64encodeKeyForAAFBasicAuth()).thenReturn(headers);
                Mockito.doNothing().when(dataAccessService).deleteDomainObjects(EPAppRoleFunction.class,
                                "app_id = " + app.getId() + " and function_cd = '" + "menu_fun_code" + "'", null);
-
                boolean returnedValue = externalAccessRolesServiceImpl.deleteCentralRoleFunction("menu_fun_code", app);
                assertTrue(returnedValue);
        }
@@ -510,9 +501,6 @@ public class ExternalAccessRolesServiceImplTest {
 
        @Test
        public void getRoleFunctionTest() throws Exception {
-               PowerMockito.mockStatic(EcompPortalUtils.class);
-               PowerMockito.mockStatic(EPCommonSystemProperties.class);
-               PowerMockito.mockStatic(SystemProperties.class);
                EPApp app = mockApp();
                List<EPApp> appList = new ArrayList<>();
                appList.add(app);
@@ -538,9 +526,6 @@ public class ExternalAccessRolesServiceImplTest {
 
        @Test
        public void getRoleFunctionMutilpleFilterTest() throws Exception {
-               PowerMockito.mockStatic(EcompPortalUtils.class);
-               PowerMockito.mockStatic(EPCommonSystemProperties.class);
-               PowerMockito.mockStatic(SystemProperties.class);
                EPApp app = mockApp();
                List<EPApp> appList = new ArrayList<>();
                appList.add(app);
@@ -554,6 +539,7 @@ public class ExternalAccessRolesServiceImplTest {
                Mockito.when(EcompPortalUtils.getFunctionCode("test_type_1|type_code_1|*")).thenReturn("type_code_1");
                Mockito.when(EcompPortalUtils.getFunctionType("test_type|type_code|*")).thenReturn("test_type");
                Mockito.when(EcompPortalUtils.getFunctionAction("test_type|type_code|*")).thenReturn("*");
+               Mockito.when(EcompPortalUtils.encodeFunctionCode("type_code")).thenReturn("type_code");
                List<CentralV2RoleFunction> getRoleFuncList = new ArrayList<>();
                CentralV2RoleFunction getCenRole = new CentralV2RoleFunction("test_type|type_code|*", "test_name");
                CentralV2RoleFunction getCenRole2 = new CentralV2RoleFunction("test_type_1|type_code_1|*", "test_name_1");
@@ -717,8 +703,6 @@ public class ExternalAccessRolesServiceImplTest {
        @SuppressWarnings("deprecation")
        @Test
        public void getAllAppUsersTest() throws Exception {
-               PowerMockito.mockStatic(EcompPortalUtils.class);
-               PowerMockito.mockStatic(EPUserUtils.class);
                EPApp app = new EPApp();
                app.setEnabled(true);
                app.setId((long) 10);
@@ -828,8 +812,8 @@ public class ExternalAccessRolesServiceImplTest {
                globalRoles.add(globalRole);
                Mockito.when(dataAccessService.executeNamedQuery("getGlobalRolesOfPortal", null, null)).thenReturn(globalRoles);
                List<CentralV2Role> expected = new ArrayList<>();
-               CentralV2Role cenV2Role = new CentralV2Role();
-               CentralV2Role cenV2Role2 = new CentralV2Role();
+               CentralV2Role cenV2Role = new CentralV2Role.CentralV2RoleBuilder().createCentralV2Role();
+               CentralV2Role cenV2Role2 = new CentralV2Role.CentralV2RoleBuilder().createCentralV2Role();
                expected.add(cenV2Role);
                expected.add(cenV2Role2);
                List<CentralV2Role> actual = externalAccessRolesServiceImpl.getRolesForApp(app.getUebKey());
@@ -927,7 +911,6 @@ public class ExternalAccessRolesServiceImplTest {
 
        @Test
        public void saveRoleForPortalApplicationNewTest() throws Exception {
-               PowerMockito.mockStatic(EcompPortalUtils.class);
                EPApp app = mockApp();
                app.setId(1l);
                Role addRoleTest = new Role();
@@ -968,9 +951,6 @@ public class ExternalAccessRolesServiceImplTest {
 
        @Test
        public void saveRoleForPortalApplicationUpdateTest() throws Exception {
-               PowerMockito.mockStatic(EPCommonSystemProperties.class);
-               PowerMockito.mockStatic(EcompPortalUtils.class);
-               PowerMockito.mockStatic(SystemProperties.class);
                EPApp app = mockApp();
                app.setId(1l);
                Role addRoleTest = new Role();
@@ -1094,9 +1074,6 @@ public class ExternalAccessRolesServiceImplTest {
 
        @Test
        public void saveRoleExitsInDbButNotInExtAuthSystemTest() throws Exception {
-               PowerMockito.mockStatic(EPCommonSystemProperties.class);
-               PowerMockito.mockStatic(EcompPortalUtils.class);
-               PowerMockito.mockStatic(SystemProperties.class);
                EPApp app = mockApp();
                app.setId(1l);
                Role addRoleTest = new Role();
@@ -1195,9 +1172,6 @@ public class ExternalAccessRolesServiceImplTest {
 
        @Test
        public void saveGlobalRoleForPortalApplicationUpdateTest() throws Exception {
-               PowerMockito.mockStatic(EPCommonSystemProperties.class);
-               PowerMockito.mockStatic(EcompPortalUtils.class);
-               PowerMockito.mockStatic(SystemProperties.class);
                EPApp app = mockApp();
                app.setId(1l);
                Role addRoleTest = new Role();
@@ -1321,9 +1295,6 @@ public class ExternalAccessRolesServiceImplTest {
 
        @Test
        public void saveRoleForPartnerApplicationUpdateTest() throws Exception {
-               PowerMockito.mockStatic(EPCommonSystemProperties.class);
-               PowerMockito.mockStatic(EcompPortalUtils.class);
-               PowerMockito.mockStatic(SystemProperties.class);
                EPApp app = mockApp();
                app.setId(2l);
                Role addRoleTest = new Role();
@@ -1457,9 +1428,6 @@ public class ExternalAccessRolesServiceImplTest {
 
        @Test
        public void saveGlobalRoleFunctionsForPartnerApplicationUpdateTest() throws Exception {
-               PowerMockito.mockStatic(EPCommonSystemProperties.class);
-               PowerMockito.mockStatic(EcompPortalUtils.class);
-               PowerMockito.mockStatic(SystemProperties.class);
                EPApp app = mockApp();
                app.setId(2l);
                Role addRoleTest = new Role();
@@ -1600,9 +1568,6 @@ public class ExternalAccessRolesServiceImplTest {
 
        @Test
        public void syncRoleFunctionFromExternalAccessSystemTest() {
-               PowerMockito.mockStatic(EPCommonSystemProperties.class);
-               PowerMockito.mockStatic(EcompPortalUtils.class);
-               PowerMockito.mockStatic(SystemProperties.class);
                EPApp app = mockApp();
                app.setId(2l);
                JSONObject mockJsonObjectFinalPerm = new JSONObject();
@@ -1770,9 +1735,6 @@ public class ExternalAccessRolesServiceImplTest {
 
        @Test
        public void syncApplicationRolesWithEcompDBTest() {
-               PowerMockito.mockStatic(EPCommonSystemProperties.class);
-               PowerMockito.mockStatic(EcompPortalUtils.class);
-               PowerMockito.mockStatic(SystemProperties.class);
                EPApp app = mockApp();
                app.setId(2l);
                JSONObject mockJsonObjectRole = new JSONObject();
@@ -1792,8 +1754,8 @@ public class ExternalAccessRolesServiceImplTest {
                mockJsonObjectRole.put("name", "com.test.app.Test");
                mockJsonObjectRole.put("perms", permsList);
                mockJsonObjectRole.put("description",
-                               "{\"id\":\"2\",\"name\":\"test1\",\"active\":\"true\",\"priority\":\"null\",\"appId\":\"2\",\"appRoleId\":\"2\"}");
-               mockJsonObjectRole2.put("name", "com.test.app.Test2");
+                               "Test role");
+               mockJsonObjectRole2.put("name", "com.test.app.Test2_role");
                List<JSONObject> permsList2 = new ArrayList<>();
                permsList2.add(mockJsonObjectPerm1);
                mockJsonObjectRole2.put("perms", permsList2);
@@ -1806,19 +1768,26 @@ public class ExternalAccessRolesServiceImplTest {
                                Matchers.<HttpEntity<String>>any(), Matchers.eq(String.class))).thenReturn(getResponse);
                List<EPRole> getCurrentRoleList = new ArrayList<>();
                EPRole getEPRole = new EPRole();
-               getEPRole.setName("Test");
+               getEPRole.setName("Test role");
                getEPRole.setId(2l);
                getEPRole.setAppId(app.getId());
                getEPRole.setAppRoleId(2l);
                getEPRole.setActive(true);
                EPRole getEPRole2 = new EPRole();
-               getEPRole2.setName("Test3");
+               getEPRole2.setName("Test2_role");
                getEPRole2.setId(3l);
-               getEPRole.setAppId(app.getId());
-               getEPRole.setAppRoleId(3l);
+               getEPRole2.setAppId(app.getId());
+               getEPRole2.setAppRoleId(3l);
                getEPRole2.setActive(true);
+               EPRole getEPRole3 = new EPRole();
+               getEPRole3.setName("Test3_role");
+               getEPRole3.setId(3l);
+               getEPRole3.setAppId(app.getId());
+               getEPRole3.setAppRoleId(3l);
+               getEPRole3.setActive(true);
                getCurrentRoleList.add(getEPRole);
                getCurrentRoleList.add(getEPRole2);
+               getCurrentRoleList.add(getEPRole3);
                final Map<String, Long> appParams = new HashMap<>();
                appParams.put("appId", app.getId());
                Mockito.when(dataAccessService.executeNamedQuery("getPartnerAppRolesList", appParams, null))
@@ -1853,10 +1822,10 @@ public class ExternalAccessRolesServiceImplTest {
                getV2RoleFunction.add(centralV2RoleFunction);
                final Map<String, String> extRoleParams = new HashMap<>();
                List<EPRole> roleListDeactivate = new ArrayList<>();
-               extRoleParams.put(APP_ROLE_NAME_PARAM, "Test3");
+               extRoleParams.put(APP_ROLE_NAME_PARAM, "Test3_role");
                extRoleParams.put(APP_ID, app.getId().toString());
                EPRole getEPRoleDeactivate = new EPRole();
-               getEPRoleDeactivate.setName("Test3");
+               getEPRoleDeactivate.setName("Test3_role");
                getEPRoleDeactivate.setId(3l);
                getEPRoleDeactivate.setAppId(app.getId());
                getEPRoleDeactivate.setAppRoleId(3l);
@@ -1903,9 +1872,6 @@ public class ExternalAccessRolesServiceImplTest {
 
        @Test
        public void deleteDependencyRoleRecord() throws Exception {
-               PowerMockito.mockStatic(EPCommonSystemProperties.class);
-               PowerMockito.mockStatic(EcompPortalUtils.class);
-               PowerMockito.mockStatic(SystemProperties.class);
                SQLQuery SqlQuery = Mockito.mock(SQLQuery.class);
                EPApp app = mockApp();
                app.setId(2l);
@@ -1946,9 +1912,6 @@ public class ExternalAccessRolesServiceImplTest {
 
        @Test
        public void deleteDependencyRoleRecordForPortal() throws Exception {
-               PowerMockito.mockStatic(EPCommonSystemProperties.class);
-               PowerMockito.mockStatic(EcompPortalUtils.class);
-               PowerMockito.mockStatic(SystemProperties.class);
                SQLQuery SqlQuery = Mockito.mock(SQLQuery.class);
                EPApp app = mockApp();
                app.setId(1l);
@@ -1988,9 +1951,6 @@ public class ExternalAccessRolesServiceImplTest {
 
        @Test
        public void bulkUploadFunctionsTest() throws Exception {
-               PowerMockito.mockStatic(EPCommonSystemProperties.class);
-               PowerMockito.mockStatic(EcompPortalUtils.class);
-               PowerMockito.mockStatic(SystemProperties.class);
                EPApp app = mockApp();
                app.setId(2l);
                List<EPApp> appList = new ArrayList<>();
@@ -2030,9 +1990,6 @@ public class ExternalAccessRolesServiceImplTest {
 
        @Test
        public void bulkUploadRolesTest() throws Exception {
-               PowerMockito.mockStatic(EPCommonSystemProperties.class);
-               PowerMockito.mockStatic(EcompPortalUtils.class);
-               PowerMockito.mockStatic(SystemProperties.class);
                EPApp app = mockApp();
                app.setId(2l);
                List<EPApp> appList = new ArrayList<>();
@@ -2086,15 +2043,12 @@ public class ExternalAccessRolesServiceImplTest {
                Mockito.when(template.exchange(Matchers.anyString(), Matchers.eq(HttpMethod.POST),
                                Matchers.<HttpEntity<String>>any(), Matchers.eq(String.class))).thenReturn(postResponse);
                Integer actual = externalAccessRolesServiceImpl.bulkUploadRoles(app.getUebKey());
-               Integer expected = 2;
+               Integer expected = 3;
                assertEquals(expected, actual);
        }
 
        @Test
        public void bulkUploadUserRolesTest() throws Exception {
-               PowerMockito.mockStatic(EPCommonSystemProperties.class);
-               PowerMockito.mockStatic(EcompPortalUtils.class);
-               PowerMockito.mockStatic(SystemProperties.class);
                EPApp app = mockApp();
                app.setId(2l);
                EPUser user = mockUser.mockEPUser();
@@ -2162,12 +2116,6 @@ public class ExternalAccessRolesServiceImplTest {
        @SuppressWarnings("unchecked")
        @Test
        public void getActiveRolesTest() throws Exception {
-               PowerMockito.mockStatic(EPCommonSystemProperties.class);
-               PowerMockito.mockStatic(EcompPortalUtils.class);
-               PowerMockito.mockStatic(SystemProperties.class);
-               PowerMockito.mockStatic(EPUserUtils.class);
-               PowerMockito.mockStatic(Restrictions.class);
-               PowerMockito.mockStatic(Criterion.class);
                EPApp app = mockApp();
                app.setId(1l);
                List<EPApp> appList = new ArrayList<>();
@@ -2231,9 +2179,6 @@ public class ExternalAccessRolesServiceImplTest {
 
        @Test
        public void bulkUploadRolesFunctionsTest() throws Exception {
-               PowerMockito.mockStatic(EPCommonSystemProperties.class);
-               PowerMockito.mockStatic(EcompPortalUtils.class);
-               PowerMockito.mockStatic(SystemProperties.class);
                EPApp app = mockApp();
                List<EPApp> appList = new ArrayList<>();
                final Map<String, String> appUebkeyParams = new HashMap<>();
@@ -2286,9 +2231,6 @@ public class ExternalAccessRolesServiceImplTest {
 
        @Test
        public void bulkUploadPartnerRoleFunctionsTest() throws Exception {
-               PowerMockito.mockStatic(EPCommonSystemProperties.class);
-               PowerMockito.mockStatic(EcompPortalUtils.class);
-               PowerMockito.mockStatic(SystemProperties.class);
                EPApp app = mockApp();
                List<EPApp> appList = new ArrayList<>();
                final Map<String, String> appUebkeyParams = new HashMap<>();
@@ -2296,32 +2238,64 @@ public class ExternalAccessRolesServiceImplTest {
                appUebkeyParams.put("appKey", app.getUebKey());
                Mockito.when(dataAccessService.executeNamedQuery("getMyAppDetailsByUebKey", appUebkeyParams, null))
                                .thenReturn(appList);
-               List<Role> roles = new ArrayList<>();
-               Role role = new Role();
-               role.setName("Test");
-               role.setId(2l);
-               role.setActive(true);
-               Role role2 = new Role();
-               role2.setName("Test2");
-               role2.setId(3l);
-               role2.setActive(true);
-               roles.add(role);
-               roles.add(role2);
-               SortedSet<RoleFunction> roleFuncSet = new TreeSet<>();
-               RoleFunction roleFunc = new RoleFunction();
-               roleFunc.setName("Test Name");
-               roleFunc.setCode("testcode");
-               RoleFunction roleFunc2 = new RoleFunction();
-               roleFunc2.setName("Test Name3");
-               roleFunc2.setCode("menu_testcode2");
-               roleFuncSet.add(roleFunc);
-               roleFuncSet.add(roleFunc2);
-               role.setRoleFunctions(roleFuncSet);
-               role2.setRoleFunctions(roleFuncSet);
+               List<EPRole> applicationRoles = new ArrayList<>();
+               EPRole getEPRole = new EPRole();
+               getEPRole.setName("Test");
+               getEPRole.setId(2l);
+               getEPRole.setActive(true);
+               EPRole getEPRole2 = new EPRole();
+               getEPRole2.setName("Test2");
+               getEPRole2.setId(3l);
+               getEPRole2.setActive(true);
+               applicationRoles.add(getEPRole);
+               applicationRoles.add(getEPRole2);
+               final Map<String, Long> paramsRoles = new HashMap<>();
+               paramsRoles.put("appId", app.getId());
+               Mockito.when(dataAccessService.executeNamedQuery("getPartnerAppRolesList", paramsRoles, null))
+                               .thenReturn(applicationRoles);
+               final Map<String, Long> params = new HashMap<>();
+               params.put("roleId", getEPRole.getId());
+               List<BulkUploadRoleFunction> appRoleFunc = new ArrayList<>();
+               BulkUploadRoleFunction bulkUploadRoleFunction = new BulkUploadRoleFunction();
+               bulkUploadRoleFunction.setFunctionCd("testcode");
+               bulkUploadRoleFunction.setFunctionName("test_name");
+               BulkUploadRoleFunction bulkUploadRoleFunction2 = new BulkUploadRoleFunction();
+               bulkUploadRoleFunction2.setFunctionCd("menu_testcode2");
+               bulkUploadRoleFunction2.setFunctionName("test_name2");
+               appRoleFunc.add(bulkUploadRoleFunction);
+               appRoleFunc.add(bulkUploadRoleFunction2);
+               Mockito.when(dataAccessService.executeNamedQuery("uploadPartnerRoleFunctions", params, null))
+                               .thenReturn(appRoleFunc);
+               final Map<String, Long> params2 = new HashMap<>();
+               params2.put("roleId", getEPRole2.getId());
+               List<BulkUploadRoleFunction> appRoleFunc2 = new ArrayList<>();
+               appRoleFunc2.add(bulkUploadRoleFunction);
+               appRoleFunc2.add(bulkUploadRoleFunction2);
+               Mockito.when(dataAccessService.executeNamedQuery("uploadPartnerRoleFunctions", params2, null))
+                               .thenReturn(appRoleFunc2);
                ResponseEntity<String> getResponse = new ResponseEntity<>(HttpStatus.OK);
                Mockito.when(template.exchange(Matchers.anyString(), Matchers.eq(HttpMethod.PUT),
                                Matchers.<HttpEntity<String>>any(), Matchers.eq(String.class))).thenReturn(getResponse);
-               externalAccessRolesServiceImpl.bulkUploadPartnerRoleFunctions(app.getUebKey(), roles);
+               // GlobalRoleFunctionsTest
+               final Map<String, Long> partnerAppParams = new HashMap<>();
+               partnerAppParams.put("appId", app.getId());
+               Mockito.when(epAppCommonServiceImpl.getApp(1l)).thenReturn(app);
+               List<GlobalRoleWithApplicationRoleFunction> globalRoleFuncsList = new ArrayList<>();
+               GlobalRoleWithApplicationRoleFunction globalRoleFunc = new GlobalRoleWithApplicationRoleFunction();
+               globalRoleFunc.setActive(true);
+               globalRoleFunc.setAppId(10l);
+               globalRoleFunc.setFunctionCd("test|test|test");
+               globalRoleFunc.setRoleId(2l);
+               globalRoleFunc.setFunctionName("test");
+               globalRoleFunc.setRoleName("global_test");
+               globalRoleFuncsList.add(globalRoleFunc);
+               Mockito.when(dataAccessService.executeNamedQuery("getBulkUploadPartnerGlobalRoleFunctions", partnerAppParams, null))
+                               .thenReturn(globalRoleFuncsList);
+               Mockito.when(template.exchange(Matchers.anyString(), Matchers.eq(HttpMethod.POST),
+                               Matchers.<HttpEntity<String>>any(), Matchers.eq(String.class))).thenReturn(getResponse);
+               Integer actual = externalAccessRolesServiceImpl.bulkUploadPartnerRoleFunctions(app.getUebKey());
+               Integer expected = 5;
+               assertEquals(expected, actual);
        }
 
        @Test
@@ -2384,7 +2358,7 @@ public class ExternalAccessRolesServiceImplTest {
        @Test
        public void convertV2CentralRoleListToOldVerisonCentralRoleListTest() {
                List<CentralV2Role> v2CenRoleList = new ArrayList<>();
-               CentralV2Role cenV2Role = new CentralV2Role(2l, "test1");
+               CentralV2Role cenV2Role = new CentralV2Role.CentralV2RoleBuilder().setId(2l).setName("test1").createCentralV2Role();
                CentralV2RoleFunction CentralV2Role = new CentralV2RoleFunction("testcode", "test_name");
                SortedSet<CentralV2RoleFunction> setV2RoleFuncs = new TreeSet<>();
                setV2RoleFuncs.add(CentralV2Role);
@@ -2393,4 +2367,174 @@ public class ExternalAccessRolesServiceImplTest {
                List<CentralRole> actual = externalAccessRolesServiceImpl.convertV2CentralRoleListToOldVerisonCentralRoleList(v2CenRoleList);
                assertEquals(1, actual.size());
        }
+       
+       @Test
+       public void bulkUploadRoleFuncTest() throws Exception {
+               EPApp app = mockApp();
+               UploadRoleFunctionExtSystem  data = new UploadRoleFunctionExtSystem();
+               data.setRoleName("test");
+               data.setType("test");
+               data.setInstance("test");
+               data.setIsGlobalRolePartnerFunc(false);
+               data.setAction("test");
+               data.setName("test");
+               ResponseEntity<String> getResponse = new ResponseEntity<>(HttpStatus.OK);
+               Mockito.when(template.exchange(Matchers.anyString(), Matchers.eq(HttpMethod.POST),
+                               Matchers.<HttpEntity<String>>any(), Matchers.eq(String.class))).thenReturn(getResponse);
+               externalAccessRolesServiceImpl.bulkUploadRoleFunc(data, app);
+       }
+       
+       @Test
+       public void bulkUploadGlobalRoleFuncTest() throws Exception {
+               EPApp app = mockApp();
+               EPApp portalApp = mockApp();
+               portalApp.setId(1L);
+               Mockito.when(epAppCommonServiceImpl.getApp(PortalConstants.PORTAL_APP_ID)).thenReturn(portalApp);
+               UploadRoleFunctionExtSystem  data = new UploadRoleFunctionExtSystem();
+               data.setRoleName("test");
+               data.setType("test");
+               data.setInstance("test");
+               data.setIsGlobalRolePartnerFunc(true);
+               data.setAction("test");
+               data.setName("test");
+               ResponseEntity<String> getResponse = new ResponseEntity<>(HttpStatus.OK);
+               Mockito.when(template.exchange(Matchers.anyString(), Matchers.eq(HttpMethod.POST),
+                               Matchers.<HttpEntity<String>>any(), Matchers.eq(String.class))).thenReturn(getResponse);
+               externalAccessRolesServiceImpl.bulkUploadRoleFunc(data, app);
+       }
+       
+       @Test(expected = HttpClientErrorException.class)
+       public void bulkUploadRoleFuncExcpetionTest() throws Exception {
+               UploadRoleFunctionExtSystem  data = new UploadRoleFunctionExtSystem();
+               data.setRoleName("test");
+               data.setType("test");
+               data.setInstance("test");
+               data.setAction("test");
+               data.setName("test");
+               data.setInstance("test");
+               EPApp app = mockApp();
+               Mockito.doThrow(new HttpClientErrorException(HttpStatus.CONFLICT)).when(template).exchange(Matchers.anyString(), Matchers.eq(HttpMethod.POST),
+                               Matchers.<HttpEntity<String>>any(), Matchers.eq(String.class));
+               externalAccessRolesServiceImpl.bulkUploadRoleFunc(data, app);
+       }
+       
+       @Test
+       public void syncApplicationUserRolesFromExtAuthSystemTest() throws Exception {
+               Mockito.when(EcompPortalUtils.base64encodeKeyForAAFBasicAuth()).thenReturn(new HttpHeaders());
+               Mockito.when(EPCommonSystemProperties.containsProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_USER_DOMAIN)).thenReturn(true);
+               JSONObject mockJsonObjectRole = new JSONObject();
+               JSONObject mockJsonObjectRole2 = new JSONObject();
+               JSONObject mockJsonObjectRole3 = new JSONObject();
+               mockJsonObjectRole.put("name", "com.test.app.test_role");
+               mockJsonObjectRole2.put("name", "com.test.app2.test_role");
+               mockJsonObjectRole3.put("name", "com.test.app2.Account_Administrator");
+               List<JSONObject> userRolesList = new ArrayList<>();
+               JSONObject mockJsonObjectFinalUserRole = new JSONObject();
+               userRolesList.add(mockJsonObjectRole);
+               userRolesList.add(mockJsonObjectRole2);
+               userRolesList.add(mockJsonObjectRole3);
+               mockJsonObjectFinalUserRole.put("role", userRolesList);
+               ResponseEntity<String> getResponse = new ResponseEntity<>(mockJsonObjectFinalUserRole.toString(),HttpStatus.OK);
+               Mockito.when(template.exchange(Matchers.anyString(), Matchers.eq(HttpMethod.GET),
+                               Matchers.<HttpEntity<String>>any(), Matchers.eq(String.class))).thenReturn(getResponse);
+               List<EPUser> users = new ArrayList<>();
+               EPUser user = mockUser.mockEPUser();
+               user.setOrgUserId("test");
+               users.add(user);
+               List<EPApp> apps = new ArrayList<>();
+               EPApp app = mockApp();
+               app.setNameSpace("com.test.app");
+               app.setId(1l);
+               EPApp app2 = mockApp();
+               app2.setNameSpace("com.test.app2");
+               app2.setId(2l);
+               apps.add(app);
+               apps.add(app2);
+               Mockito.when(dataAccessService
+               .executeNamedQuery("getCentralizedApps", null, null)).thenReturn(apps);
+               HashMap<String, String> userParams = new HashMap<>();
+               userParams.put("org_user_id", "test");
+               Mockito.when(dataAccessService.executeNamedQuery("getEPUserByOrgUserId", userParams, null)).thenReturn(users);
+               List<CentralizedAppRoles> currentUserAppRoles = new ArrayList<>();
+               CentralizedAppRoles currentUserAppRole = new CentralizedAppRoles();
+               currentUserAppRole.setAppId(1l);
+               currentUserAppRole.setAppNameSpace("com.test.app");
+               currentUserAppRole.setRoleId(2l);
+               currentUserAppRole.setRoleName("test role");
+               currentUserAppRoles.add(currentUserAppRole);
+               HashMap<String, String> userParams2 = new HashMap<>();
+               userParams2.put("orgUserId", user.getOrgUserId());
+               Mockito.when(dataAccessService
+               .executeNamedQuery("getUserCentralizedAppRoles", userParams2, null)).thenReturn(currentUserAppRoles);
+               List<CentralizedAppRoles> centralizedAppRoles = new ArrayList<>();
+               CentralizedAppRoles centralizedAppRole = new CentralizedAppRoles();
+               centralizedAppRole.setAppId(1l);
+               centralizedAppRole.setAppNameSpace("com.test.app");
+               centralizedAppRole.setRoleId(2l);
+               centralizedAppRole.setRoleName("test role");
+               CentralizedAppRoles centralizedAppRole2 = new CentralizedAppRoles();
+               centralizedAppRole2.setAppId(1l);
+               centralizedAppRole2.setAppNameSpace("com.test.app2");
+               centralizedAppRole2.setRoleId(2l);
+               centralizedAppRole2.setRoleName("test role");
+               centralizedAppRoles.add(centralizedAppRole);
+               centralizedAppRoles.add(centralizedAppRole2);
+               Mockito.when(dataAccessService
+               .executeNamedQuery("getAllCentralizedAppsRoles", null, null)).thenReturn(centralizedAppRoles);
+               externalAccessRolesServiceImpl.syncApplicationUserRolesFromExtAuthSystem(user.getOrgUserId());
+       }
+       
+       @Test
+       public void updateAppRoleDescriptionTest() {
+               EPApp app = mockUpdateAppRoleDescription();
+               ResponseEntity<String> postResponse = new ResponseEntity<>(HttpStatus.OK);
+               Mockito.when(template.exchange(Matchers.anyString(), Matchers.eq(HttpMethod.PUT),
+                               Matchers.<HttpEntity<String>>any(), Matchers.eq(String.class))).thenReturn(postResponse);
+               Integer actual = externalAccessRolesServiceImpl.updateAppRoleDescription(app.getUebKey());
+               Integer expected = 1;
+               assertEquals(expected, actual);
+       }
+       
+       @Test
+       public void updateAppRoleDescriptionExceptionTest() {
+               EPApp app = mockUpdateAppRoleDescription();
+               Mockito.when(template.exchange(Matchers.anyString(), Matchers.eq(HttpMethod.PUT),
+                               Matchers.<HttpEntity<String>>any(), Matchers.eq(String.class))).thenThrow(new HttpClientErrorException(HttpStatus.NOT_ACCEPTABLE));
+               Integer actual = externalAccessRolesServiceImpl.updateAppRoleDescription(app.getUebKey());
+               Integer expected = 0;
+               assertEquals(expected, actual);
+       }
+       
+       @Test
+       public void updateAppRoleDescriptionExceptionTest2() throws Exception {
+               EPApp app = mockUpdateAppRoleDescription();
+               Mockito.when(EcompPortalUtils.base64encodeKeyForAAFBasicAuth()).thenThrow(new NullPointerException());
+               Integer actual = externalAccessRolesServiceImpl.updateAppRoleDescription(app.getUebKey());
+               Integer expected = 0;
+               assertEquals(expected, actual);
+       }
+
+       private EPApp mockUpdateAppRoleDescription() {
+               EPApp app = mockApp();
+               app.setId(2l);
+               List<EPApp> appList = new ArrayList<>();
+               final Map<String, String> appUebkeyParams = new HashMap<>();
+               appList.add(app);
+               appUebkeyParams.put("appKey", app.getUebKey());
+               Mockito.when(dataAccessService.executeNamedQuery("getMyAppDetailsByUebKey", appUebkeyParams, null))
+                               .thenReturn(appList);
+               List<EPRole> epRoleList = new ArrayList<>();
+               EPRole getEPRole = new EPRole();
+               getEPRole.setName("Test");
+               getEPRole.setId(2l);
+               getEPRole.setAppRoleId(2l);
+               getEPRole.setActive(true);
+               epRoleList.add(getEPRole);
+               final Map<String, Long> appParams = new HashMap<>();
+               appParams.put("appId", app.getId());
+               Mockito.when(dataAccessService.executeNamedQuery("getPartnerAppRolesList", appParams, null))
+               .thenReturn(epRoleList);
+               return app;
+       }
+       
 }