summaryrefslogtreecommitdiffstats
path: root/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/service/UserRolesCommonServiceImplTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/service/UserRolesCommonServiceImplTest.java')
-rw-r--r--ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/service/UserRolesCommonServiceImplTest.java1466
1 files changed, 1466 insertions, 0 deletions
diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/service/UserRolesCommonServiceImplTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/service/UserRolesCommonServiceImplTest.java
new file mode 100644
index 00000000..2cb285f3
--- /dev/null
+++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/service/UserRolesCommonServiceImplTest.java
@@ -0,0 +1,1466 @@
+/*-
+ * ============LICENSE_START==========================================
+ * ONAP Portal
+ * ===================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ *
+ * Unless otherwise specified, all software contained herein is licensed
+ * under the Apache License, Version 2.0 (the "License");
+ * you may not use this software except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * Unless otherwise specified, all documentation contained herein is licensed
+ * under the Creative Commons License, Attribution 4.0 Intl. (the "License");
+ * you may not use this documentation except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://creativecommons.org/licenses/by/4.0/
+ *
+ * Unless required by applicable law or agreed to in writing, documentation
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * ============LICENSE_END============================================
+ *
+ * ECOMP is a trademark and service mark of AT&T Intellectual Property.
+ */
+package org.onap.portalapp.portal.service;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.SortedSet;
+import java.util.TreeSet;
+
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.cxf.transport.http.HTTPException;
+import org.hibernate.Query;
+import org.hibernate.SQLQuery;
+import org.hibernate.Session;
+import org.hibernate.SessionFactory;
+import org.hibernate.Transaction;
+import org.json.JSONObject;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.InjectMocks;
+import org.mockito.Matchers;
+import org.mockito.Mock;
+import org.mockito.Mockito;
+import org.mockito.MockitoAnnotations;
+import org.onap.portalapp.externalsystemapproval.model.ExternalSystemRoleApproval;
+import org.onap.portalapp.externalsystemapproval.model.ExternalSystemUser;
+import org.onap.portalapp.portal.core.MockEPUser;
+import org.onap.portalapp.portal.domain.EPApp;
+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.EPUserAppCatalogRoles;
+import org.onap.portalapp.portal.domain.EPUserAppRoles;
+import org.onap.portalapp.portal.domain.EPUserAppRolesRequest;
+import org.onap.portalapp.portal.domain.EPUserAppRolesRequestDetail;
+import org.onap.portalapp.portal.domain.ExternalSystemAccess;
+import org.onap.portalapp.portal.transport.AppWithRolesForUser;
+import org.onap.portalapp.portal.transport.CentralV2Role;
+import org.onap.portalapp.portal.transport.EPUserAppCurrentRoles;
+import org.onap.portalapp.portal.transport.EcompUserAppRoles;
+import org.onap.portalapp.portal.transport.ExternalRequestFieldsValidator;
+import org.onap.portalapp.portal.transport.FieldsValidator;
+import org.onap.portalapp.portal.transport.FunctionalMenuItem;
+import org.onap.portalapp.portal.transport.FunctionalMenuRole;
+import org.onap.portalapp.portal.transport.RemoteRole;
+import org.onap.portalapp.portal.transport.RemoteUserWithRoles;
+import org.onap.portalapp.portal.transport.RoleInAppForUser;
+import org.onap.portalapp.portal.transport.UserApplicationRoles;
+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.Role;
+import org.onap.portalsdk.core.restful.domain.EcompRole;
+import org.onap.portalsdk.core.service.DataAccessService;
+import org.onap.portalsdk.core.service.DataAccessServiceImpl;
+import org.onap.portalsdk.core.service.RoleServiceImpl;
+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.HttpEntity;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.client.RestTemplate;
+
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+
+@RunWith(PowerMockRunner.class)
+@PrepareForTest({ EcompPortalUtils.class, SystemProperties.class, PortalConstants.class,
+ EPCommonSystemProperties.class })
+public class UserRolesCommonServiceImplTest {
+
+ @Mock
+ DataAccessService dataAccessService = new DataAccessServiceImpl();
+
+ @Mock
+ EPAppCommonServiceImpl epAppCommonServiceImpl = new EPAppCommonServiceImpl();
+
+ @Mock
+ ExternalAccessRolesServiceImpl externalAccessRolesServiceImpl = new ExternalAccessRolesServiceImpl();
+
+ @Mock
+ ApplicationsRestClientService applicationsRestClientService;
+
+ @Mock
+ RoleServiceImpl roleServiceImpl = new RoleServiceImpl();
+
+ @Mock
+ SearchServiceImpl searchServiceImpl = new SearchServiceImpl();
+
+ @Mock
+ EPRoleServiceImpl epRoleServiceImpl = new EPRoleServiceImpl();
+
+ @Mock
+ RestTemplate template = new RestTemplate();
+
+ @Mock
+ SessionFactory sessionFactory;
+
+ @Mock
+ Session session;
+
+ @Mock
+ Transaction transaction;
+
+ @InjectMocks
+ UserRolesCommonServiceImpl userRolesCommonServiceImpl = new UserRolesCommonServiceImpl();
+
+ @Before
+ public void setup() {
+ MockitoAnnotations.initMocks(this);
+ Mockito.when(sessionFactory.openSession()).thenReturn(session);
+ Mockito.when(session.beginTransaction()).thenReturn(transaction);
+ }
+
+ @After
+ public void after() {
+ session.close();
+ }
+
+ MockEPUser mockUser = new MockEPUser();
+
+ public EPApp mockApp() {
+ EPApp app = new EPApp();
+ app.setName("Test");
+ app.setImageUrl("test");
+ app.setDescription("test");
+ app.setNotes("test");
+ app.setUrl("test");
+ app.setId((long) 1);
+ app.setAppRestEndpoint("test");
+ app.setAlternateUrl("test");
+ app.setName("test");
+ app.setMlAppName("test");
+ app.setMlAppAdminId("test");
+ app.setUsername("test");
+ app.setAppPassword("test");
+ app.setOpen(false);
+ app.setEnabled(false);
+ app.setCentralAuth(true);
+ app.setUebKey("test");
+ app.setUebSecret("test");
+ app.setUebTopicName("test");
+ app.setAppType(1);
+ return app;
+ }
+
+ @SuppressWarnings("unchecked")
+ @Test
+ public void getAppRolesForUserCentralizedForPortal() throws Exception {
+ EPUser user = mockUser.mockEPUser();
+ EPApp mockApp = mockApp();
+ Mockito.when(epAppCommonServiceImpl.getApp(mockApp.getId())).thenReturn(mockApp);
+ List<RoleInAppForUser> mockRoleInAppForUserList = getMockedRoleInAppUserList();
+ List<CentralV2Role> mockCenV2Role = new ArrayList<>();
+ CentralV2Role cenV2Role = new CentralV2Role(1l, null, null, null, null, null, "test1", true, null,
+ new TreeSet<>(), new TreeSet<>(), new TreeSet<>());
+ CentralV2Role cenV2Role2 = new CentralV2Role(16l, null, null, null, null, null, "test2", true, null,
+ new TreeSet<>(), new TreeSet<>(), new TreeSet<>());
+ mockCenV2Role.add(cenV2Role);
+ mockCenV2Role.add(cenV2Role2);
+ Mockito.when(externalAccessRolesServiceImpl.getRolesForApp(mockApp.getUebKey())).thenReturn(mockCenV2Role);
+ List<EPUser> mockUserList = new ArrayList<>();
+ mockUserList.add(user);
+ Mockito.when((List<EPUser>) dataAccessService
+ .executeQuery("from EPUser where orgUserId='" + user.getOrgUserId() + "'", null))
+ .thenReturn(mockUserList);
+ Mockito.when(userRolesCommonServiceImpl.getAppRolesForUser(1l, user.getOrgUserId(), true))
+ .thenReturn(mockRoleInAppForUserList);
+ List<RoleInAppForUser> roleInAppForUser = userRolesCommonServiceImpl.getAppRolesForUser(1l, "test", true);
+ assertEquals(roleInAppForUser, mockRoleInAppForUserList);
+ }
+
+ private List<RoleInAppForUser> getMockedRoleInAppUserList() {
+ List<RoleInAppForUser> mockRoleInAppForUserList = new ArrayList<>();
+ RoleInAppForUser mockRoleInAppForUser = new RoleInAppForUser();
+ mockRoleInAppForUser.setIsApplied(false);
+ mockRoleInAppForUser.setRoleId(1l);
+ mockRoleInAppForUser.setRoleName("test1");
+ RoleInAppForUser mockRoleInAppForUser2 = new RoleInAppForUser();
+ mockRoleInAppForUser2.setIsApplied(false);
+ mockRoleInAppForUser2.setRoleId(16l);
+ mockRoleInAppForUser2.setRoleName("test2");
+ mockRoleInAppForUserList.add(mockRoleInAppForUser);
+ mockRoleInAppForUserList.add(mockRoleInAppForUser2);
+ return mockRoleInAppForUserList;
+ }
+
+ @SuppressWarnings("unchecked")
+ @Test
+ public void getAppRolesForUserNonCentralizedForPortal() throws Exception {
+ EPUser user = mockUser.mockEPUser();
+ user.setId(1l);
+ EPApp mockApp = mockApp();
+ mockApp.setCentralAuth(false);
+ EPRole mockEPRole = new EPRole();
+ mockEPRole.setId(1l);
+ mockEPRole.setName("test1");
+ mockEPRole.setActive(true);
+ SortedSet<EPUserApp> mockUserApps = new TreeSet<EPUserApp>();
+ EPUserApp mockEPUserApp = new EPUserApp();
+ mockEPUserApp.setApp(mockApp);
+ mockEPUserApp.setRole(mockEPRole);
+ mockEPUserApp.setUserId(1l);
+ mockUserApps.add(mockEPUserApp);
+ user.setEPUserApps(mockUserApps);
+ Mockito.when(epAppCommonServiceImpl.getApp(mockApp.getId())).thenReturn(mockApp);
+ List<RoleInAppForUser> mockRoleInAppForUserListNonCentralizedList = getMockedRoleInAppUserList();
+ List<Role> mockRole = new ArrayList<>();
+ Role role = new Role();
+ role.setId(1l);
+ role.setName("test1");
+ role.setActive(true);
+ Role role2 = new Role();
+ role.setId(16l);
+ role.setName("test2");
+ role.setActive(true);
+ mockRole.add(role);
+ mockRole.add(role2);
+ Mockito.when(roleServiceImpl.getAvailableRoles(user.getOrgUserId())).thenReturn(mockRole);
+ List<EPUser> mockUserList = new ArrayList<>();
+ mockUserList.add(user);
+ Mockito.when((List<EPUser>) dataAccessService
+ .executeQuery("from EPUser where orgUserId='" + user.getOrgUserId() + "'", null))
+ .thenReturn(mockUserList);
+ Mockito.when(userRolesCommonServiceImpl.getAppRolesForUser(1l, user.getOrgUserId(), true))
+ .thenReturn(mockRoleInAppForUserListNonCentralizedList);
+ List<RoleInAppForUser> roleInAppForUserNonCentralized = userRolesCommonServiceImpl.getAppRolesForUser(1l,
+ user.getOrgUserId(), true);
+ assertNull(roleInAppForUserNonCentralized);
+ }
+
+ @Test
+ public void getAppRolesForCentralizedPartnerAppTest() throws Exception {
+ EPUser user = mockUser.mockEPUser();
+ EPApp mockApp = mockApp();
+ mockApp.setId(2l);
+ Mockito.when(epAppCommonServiceImpl.getApp(mockApp.getId())).thenReturn(mockApp);
+ List<RoleInAppForUser> mockRoleInAppForUserList = getMockedRoleInAppUserList();
+ List<EPRole> mockEPRoleList = new ArrayList<>();
+ EPRole mockEpRole = new EPRole();
+ mockEpRole.setActive(true);
+ mockEpRole.setAppId(2l);
+ mockEpRole.setName("test1");
+ mockEpRole.setAppRoleId(333l);
+ mockEpRole.setId(1l);
+ EPRole mockEpRole2 = new EPRole();
+ mockEpRole2.setActive(true);
+ mockEpRole2.setAppId(2l);
+ mockEpRole2.setName("test2");
+ mockEpRole2.setAppRoleId(444l);
+ mockEpRole2.setId(16l);
+ mockEPRoleList.add(mockEpRole);
+ mockEPRoleList.add(mockEpRole2);
+ final Map<String, Long> appParams = new HashMap<>();
+ appParams.put("appId", 2l);
+ Mockito.when(dataAccessService.executeNamedQuery("getActiveRolesOfApplication", appParams, null))
+ .thenReturn(mockEPRoleList);
+ final Map<String, String> params = new HashMap<>();
+ params.put("orgUserIdValue", "guestT");
+ List<EPUser> mockEPUserList = new ArrayList<>();
+ mockEPUserList.add(user);
+ Mockito.when(dataAccessService.executeNamedQuery("epUserAppId", params, null)).thenReturn(mockEPUserList);
+ final Map<String, Long> userParams = new HashMap<>();
+ userParams.put("appId", mockApp.getId());
+ userParams.put("userId", mockEPUserList.get(0).getId());
+ List<EPUserAppCurrentRoles> epUserAppCurrentRolesList = new ArrayList<>();
+ EPUserAppCurrentRoles epUserAppCurrentRoles = new EPUserAppCurrentRoles();
+ epUserAppCurrentRoles.setRoleId(444l);
+ epUserAppCurrentRoles.setRoleName("TestPartnerRole2");
+ epUserAppCurrentRoles.setUserId(mockEPUserList.get(0).getId());
+ epUserAppCurrentRolesList.add(epUserAppCurrentRoles);
+ Mockito.when(dataAccessService.executeNamedQuery("getUserAppCurrentRoles", userParams, null))
+ .thenReturn(epUserAppCurrentRolesList);
+ Mockito.when(userRolesCommonServiceImpl.getAppRolesForUser(2l, user.getOrgUserId(), true))
+ .thenReturn(mockRoleInAppForUserList);
+ List<RoleInAppForUser> roleInAppForUser = userRolesCommonServiceImpl.getAppRolesForUser(2l, user.getOrgUserId(),
+ true);
+ assertEquals(roleInAppForUser, mockRoleInAppForUserList);
+ }
+
+ @Test
+ public void getAppRolesForNonCentralizedPartnerAppTest() throws Exception {
+ EPUser user = mockUser.mockEPUser();
+ user.setId(2l);
+ List<EPUser> mockEpUserList = new ArrayList<>();
+ mockEpUserList.add(user);
+ EPApp mockApp = mockApp();
+ mockApp.setId(2l);
+ mockApp.setCentralAuth(false);
+ Mockito.when(epAppCommonServiceImpl.getApp(mockApp.getId())).thenReturn(mockApp);
+ List<RoleInAppForUser> mockRoleInAppForUserList = new ArrayList<>();
+ RoleInAppForUser mockRoleInAppForUser = new RoleInAppForUser();
+ mockRoleInAppForUser.setIsApplied(true);
+ mockRoleInAppForUser.setRoleId(333l);
+ mockRoleInAppForUser.setRoleName("test1");
+ RoleInAppForUser mockRoleInAppForUser2 = new RoleInAppForUser();
+ mockRoleInAppForUser2.setIsApplied(true);
+ mockRoleInAppForUser2.setRoleId(777l);
+ mockRoleInAppForUser2.setRoleName("test2");
+ RoleInAppForUser mockRoleInAppForUser3 = new RoleInAppForUser();
+ mockRoleInAppForUser3.setIsApplied(false);
+ mockRoleInAppForUser3.setRoleId(888l);
+ mockRoleInAppForUser3.setRoleName("test5");
+ mockRoleInAppForUserList.add(mockRoleInAppForUser);
+ mockRoleInAppForUserList.add(mockRoleInAppForUser2);
+ mockRoleInAppForUserList.add(mockRoleInAppForUser3);
+ List<EcompRole> mockEcompRoleList = new ArrayList<>();
+ EcompRole mockEcompRole = new EcompRole();
+ mockEcompRole.setId(333l);
+ mockEcompRole.setName("test1");
+ EcompRole mockEcompRole2 = new EcompRole();
+ mockEcompRole2.setId(777l);
+ mockEcompRole2.setName("test2");
+ EcompRole mockEcompRole3 = new EcompRole();
+ mockEcompRole3.setId(888l);
+ mockEcompRole3.setName("test5");
+ mockEcompRoleList.add(mockEcompRole);
+ mockEcompRoleList.add(mockEcompRole2);
+ mockEcompRoleList.add(mockEcompRole3);
+ EcompRole[] mockEcompRoleArray = mockEcompRoleList.toArray(new EcompRole[mockEcompRoleList.size()]);
+ List<EPRole> mockEPRoleList = new ArrayList<>();
+ EPRole mockEpRole = new EPRole();
+ mockEpRole.setActive(true);
+ mockEpRole.setAppId(2l);
+ mockEpRole.setName("test1");
+ mockEpRole.setAppRoleId(333l);
+ mockEpRole.setId(16l);
+ EPRole mockEpRole2 = new EPRole();
+ mockEpRole2.setActive(true);
+ mockEpRole2.setAppId(2l);
+ mockEpRole2.setName("test3");
+ mockEpRole2.setAppRoleId(555l);
+ mockEpRole2.setId(15l);
+ EPRole mockEpRole3 = new EPRole();
+ mockEpRole3.setActive(true);
+ mockEpRole3.setAppId(2l);
+ mockEpRole3.setName("test4");
+ mockEpRole3.setAppRoleId(888l);
+ mockEpRole3.setId(17l);
+ mockEPRoleList.add(mockEpRole);
+ mockEPRoleList.add(mockEpRole2);
+ mockEPRoleList.add(mockEpRole3);
+ List<EPUserApp> mockUserRolesList = new ArrayList<>();
+ EPUserApp mockEpUserApp = new EPUserApp();
+ mockEpUserApp.setApp(mockApp);
+ mockEpUserApp.setRole(mockEpRole2);
+ mockEpUserApp.setUserId(user.getId());
+ mockUserRolesList.add(mockEpUserApp);
+ List<FunctionalMenuRole> mockFunctionalMenuRolesList = new ArrayList<>();
+ FunctionalMenuRole mockFunctionalMenuRole = new FunctionalMenuRole();
+ mockFunctionalMenuRole.setAppId((int) (long) mockApp.getId());
+ mockFunctionalMenuRole.setRoleId((int) (long) 15l);
+ mockFunctionalMenuRole.setMenuId(10l);
+ mockFunctionalMenuRole.setId(10);
+ mockFunctionalMenuRolesList.add(mockFunctionalMenuRole);
+ List<FunctionalMenuItem> mockFunctionalMenuItemList = new ArrayList<>();
+ FunctionalMenuItem mockFunctionalMenuItem = new FunctionalMenuItem();
+ List<Integer> mockRolesList = new ArrayList<>();
+ Integer role1 = 1;
+ mockRolesList.add(role1);
+ mockFunctionalMenuItem.setRestrictedApp(false);
+ mockFunctionalMenuItem.setRoles(mockRolesList);
+ mockFunctionalMenuItem.setUrl("http://test.com");
+ mockFunctionalMenuItemList.add(mockFunctionalMenuItem);
+ Query epRoleQuery = Mockito.mock(Query.class);
+ Query epUserAppsQuery = Mockito.mock(Query.class);
+ Query epFunctionalMenuQuery = Mockito.mock(Query.class);
+ Query epFunctionalMenuQuery2 = Mockito.mock(Query.class);
+ Query epFunctionalMenuItemQuery = Mockito.mock(Query.class);
+ Query epUserListQuery = Mockito.mock(Query.class);
+ Query epUserRolesListQuery = Mockito.mock(Query.class);
+ Mockito.when(applicationsRestClientService.get(EcompRole[].class, mockApp.getId(), "/roles"))
+ .thenReturn(mockEcompRoleArray);
+ // syncAppRolesTest
+ Mockito.when(session.createQuery("from " + EPRole.class.getName() + " where appId=" + mockApp.getId()))
+ .thenReturn(epRoleQuery);
+ Mockito.doReturn(mockEPRoleList).when(epRoleQuery).list();
+ Mockito.when(session.createQuery(
+ "from " + EPUserApp.class.getName() + " where app.id=" + mockApp.getId() + " and role_id=" + 15l))
+ .thenReturn(epUserAppsQuery);
+ Mockito.doReturn(mockUserRolesList).when(epUserAppsQuery).list();
+
+ Mockito.when(session.createQuery("from " + FunctionalMenuRole.class.getName() + " where roleId=" + 15l))
+ .thenReturn(epFunctionalMenuQuery);
+ Mockito.doReturn(mockFunctionalMenuRolesList).when(epFunctionalMenuQuery).list();
+
+ Mockito.when(session.createQuery("from " + FunctionalMenuRole.class.getName() + " where menuId=" + 10l))
+ .thenReturn(epFunctionalMenuQuery2);
+ Mockito.doReturn(mockFunctionalMenuRolesList).when(epFunctionalMenuQuery2).list();
+
+ Mockito.when(session.createQuery("from " + FunctionalMenuItem.class.getName() + " where menuId=" + 10l))
+ .thenReturn(epFunctionalMenuItemQuery);
+ Mockito.doReturn(mockFunctionalMenuItemList).when(epFunctionalMenuItemQuery).list();
+ List<EcompRole> mockEcompRoleList2 = new ArrayList<>();
+ EcompRole mockUserAppRoles = new EcompRole();
+ mockUserAppRoles.setId(333l);
+ mockUserAppRoles.setName("test1");
+ EcompRole mockUserAppRoles2 = new EcompRole();
+ mockUserAppRoles2.setId(777l);
+ mockUserAppRoles2.setName("test2");
+ mockEcompRoleList2.add(mockUserAppRoles);
+ mockEcompRoleList2.add(mockUserAppRoles2);
+ EcompRole[] mockEcompRoleArray2 = mockEcompRoleList2.toArray(new EcompRole[mockEcompRoleList2.size()]);
+ Mockito.when(applicationsRestClientService.get(EcompRole[].class, mockApp.getId(),
+ String.format("/user/%s/roles", user.getOrgUserId()))).thenReturn(mockEcompRoleArray2);
+ // SyncUserRoleTest
+ Mockito.when(session
+ .createQuery("from " + EPUser.class.getName() + " where orgUserId='" + user.getOrgUserId() + "'"))
+ .thenReturn(epUserListQuery);
+ Mockito.doReturn(mockEpUserList).when(epUserListQuery).list();
+
+ List<EPUserApp> mockUserRolesList2 = new ArrayList<>();
+ EPUserApp mockEpUserAppRoles = new EPUserApp();
+ mockEpUserAppRoles.setApp(mockApp);
+ mockEpUserAppRoles.setRole(mockEpRole3);
+ mockEpUserAppRoles.setUserId(user.getId());
+ mockUserRolesList2.add(mockEpUserAppRoles);
+ Mockito.when(session.createQuery(
+ "from org.onap.portalapp.portal.domain.EPUserApp where app.id=2 and role.active = 'Y' and userId=2"))
+ .thenReturn(epUserRolesListQuery);
+ Mockito.doReturn(mockUserRolesList2).when(epUserRolesListQuery).list();
+ List<RoleInAppForUser> roleInAppForUser = userRolesCommonServiceImpl.getAppRolesForUser(2l, user.getOrgUserId(),
+ true);
+ assertEquals(roleInAppForUser, mockRoleInAppForUserList);
+ }
+
+ @SuppressWarnings("unchecked")
+ @Test
+ public void setAppWithUserRoleStateForUserTestForCentralizedAppForPortal() throws Exception {
+ PowerMockito.mockStatic(SystemProperties.class);
+ PowerMockito.mockStatic(EcompPortalUtils.class);
+ PowerMockito.mockStatic(EPCommonSystemProperties.class);
+ PowerMockito.mockStatic(PortalConstants.class);
+ EPUser user = mockUser.mockEPUser();
+ user.setId(2l);
+ List<EPUser> mockEpUserList = new ArrayList<>();
+ mockEpUserList.add(user);
+ EPApp mockApp = mockApp();
+ mockApp.setNameSpace("com.test.com");
+ mockApp.setId(1l);
+ mockApp.setCentralAuth(true);
+ Mockito.when(epAppCommonServiceImpl.getApp(mockApp.getId())).thenReturn(mockApp);
+ Mockito.when(EcompPortalUtils.checkIfRemoteCentralAccessAllowed()).thenReturn(true);
+ AppWithRolesForUser mockWithRolesForUser = new AppWithRolesForUser();
+ List<RoleInAppForUser> mockRoleInAppForUserList = new ArrayList<>();
+ RoleInAppForUser mockRoleInAppForUser = new RoleInAppForUser();
+ mockRoleInAppForUser.setIsApplied(true);
+ mockRoleInAppForUser.setRoleId(1l);
+ mockRoleInAppForUser.setRoleName("test1");
+ RoleInAppForUser mockRoleInAppForUser2 = new RoleInAppForUser();
+ mockRoleInAppForUser2.setIsApplied(true);
+ mockRoleInAppForUser2.setRoleId(1000l);
+ mockRoleInAppForUser2.setRoleName("test3");
+ mockRoleInAppForUserList.add(mockRoleInAppForUser);
+ mockRoleInAppForUserList.add(mockRoleInAppForUser2);
+ mockWithRolesForUser.setAppId(mockApp.getId());
+ mockWithRolesForUser.setAppName(mockApp.getName());
+ mockWithRolesForUser.setOrgUserId(user.getOrgUserId());
+ mockWithRolesForUser.setAppRoles(mockRoleInAppForUserList);
+ List<EPUserAppRolesRequest> mockEpRequestIdValList = new ArrayList<EPUserAppRolesRequest>();
+ Set<EPUserAppRolesRequestDetail> mockEpUserAppRolesRequestDetailList = new TreeSet<>();
+ EPUserAppRolesRequestDetail mockEpUserAppRolesRequestDetail = new EPUserAppRolesRequestDetail();
+ mockEpUserAppRolesRequestDetail.setId(2l);
+ mockEpUserAppRolesRequestDetail.setReqType("P");
+ mockEpUserAppRolesRequestDetail.setReqRoleId(16l);
+ EPUserAppRolesRequest mockEPUserAppRolesRequest = new EPUserAppRolesRequest();
+ mockEPUserAppRolesRequest.setAppId(mockApp.getId());
+ mockEPUserAppRolesRequest.setId(1l);
+ mockEPUserAppRolesRequest.setRequestStatus("P");
+ mockEPUserAppRolesRequest.setUserId(user.getId());
+ mockEPUserAppRolesRequest.setEpRequestIdDetail(mockEpUserAppRolesRequestDetailList);
+ mockEpRequestIdValList.add(mockEPUserAppRolesRequest);
+ mockEpUserAppRolesRequestDetail.setEpRequestIdData(mockEPUserAppRolesRequest);
+ mockEpUserAppRolesRequestDetailList.add(mockEpUserAppRolesRequestDetail);
+
+ // Update Requests if any requests are pending
+ final Map<String, Long> params = new HashMap<>();
+ params.put("appId", mockApp.getId());
+ params.put("userId", user.getId());
+ Mockito.when((List<EPUserAppRolesRequest>) dataAccessService.executeNamedQuery("userAppRolesRequestList",
+ params, null)).thenReturn(mockEpRequestIdValList);
+ mockEPUserAppRolesRequest.setUpdatedDate(new Date());
+ mockEPUserAppRolesRequest.setRequestStatus("O");
+ HashMap<String, Long> additionalUpdateParam = new HashMap<String, Long>();
+ Mockito.doNothing().when(dataAccessService).saveDomainObject(mockEPUserAppRolesRequest, additionalUpdateParam);
+ List<EPUserAppRolesRequestDetail> mockGetEpUserAppRolesRequestDetailList = new ArrayList<EPUserAppRolesRequestDetail>();
+ EPUserAppRolesRequestDetail mockGetEpUserAppRolesRequestDetail = new EPUserAppRolesRequestDetail();
+ mockEpUserAppRolesRequestDetail.setId(2l);
+ mockEpUserAppRolesRequestDetail.setReqType("P");
+ mockEpUserAppRolesRequestDetail.setReqRoleId(16l);
+ mockGetEpUserAppRolesRequestDetailList.add(mockGetEpUserAppRolesRequestDetail);
+ // Updates in External Auth System
+ final Map<String, String> userParams = new HashMap<>();
+ userParams.put("orgUserIdValue", user.getOrgUserId());
+ Mockito.when((List<EPUser>) dataAccessService.executeNamedQuery("epUserAppId", userParams, null))
+ .thenReturn(mockEpUserList);
+ PowerMockito
+ .when(EPCommonSystemProperties
+ .containsProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_USER_DOMAIN))
+ .thenReturn(true);
+ PowerMockito.when(SystemProperties.getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_USER_DOMAIN))
+ .thenReturn("@test.com");
+ HttpHeaders headers = new HttpHeaders();
+ Mockito.when(EcompPortalUtils.base64encodeKeyForAAFBasicAuth()).thenReturn(headers);
+ JSONObject mockJsonObject1 = new JSONObject();
+ JSONObject mockJsonObject2 = new JSONObject();
+ JSONObject mockJsonObject3 = new JSONObject();
+ mockJsonObject1.put("name", "com.test.com.test1");
+ mockJsonObject2.put("name", "com.test.com.test2");
+ List<JSONObject> mockJson = new ArrayList<>();
+ mockJson.add(mockJsonObject1);
+ mockJson.add(mockJsonObject2);
+ mockJsonObject3.put("role", mockJson);
+ ResponseEntity<String> getResponse = new ResponseEntity<>(mockJsonObject3.toString(), HttpStatus.OK);
+ Mockito.when(template.exchange(Matchers.anyString(), Matchers.eq(HttpMethod.GET),
+ Matchers.<HttpEntity<String>>any(), Matchers.eq(String.class))).thenReturn(getResponse);
+ EPRole mockEPRole = new EPRole();
+ mockEPRole.setActive(true);
+ mockEPRole.setAppId(null);
+ mockEPRole.setAppRoleId(null);
+ mockEPRole.setId(1l);
+ mockEPRole.setName("test1");
+ EPRole mockEPRole2 = new EPRole();
+ mockEPRole2.setActive(true);
+ mockEPRole2.setAppId(null);
+ mockEPRole2.setAppRoleId(null);
+ mockEPRole2.setId(16l);
+ mockEPRole2.setName("test2");
+ EPRole mockEPRole3 = new EPRole();
+ mockEPRole3.setActive(true);
+ mockEPRole3.setAppId(null);
+ mockEPRole3.setAppRoleId(null);
+ mockEPRole3.setId(1000l);
+ mockEPRole3.setName("test3");
+ Map<String, EPRole> mockEPRoleList = new HashMap<>();
+ mockEPRoleList.put("test1", mockEPRole);
+ mockEPRoleList.put("test2", mockEPRole2);
+ mockEPRoleList.put("test3", mockEPRole3);
+ Mockito.when(externalAccessRolesServiceImpl.getCurrentRolesInDB(mockApp)).thenReturn(mockEPRoleList);
+ final Map<String, Long> params2 = new HashMap<>();
+ params2.put("appId", mockApp.getId());
+ params2.put("userId", user.getId());
+ List<EcompUserAppRoles> mockEPuserAppList = getCurrentUserRoles(user, mockApp);
+ Mockito.when(dataAccessService.executeNamedQuery("getUserAppExistingRoles", params2, null))
+ .thenReturn(mockEPuserAppList);
+ final Map<String, Long> epDetailParams = new HashMap<>();
+ epDetailParams.put("reqId", mockEPUserAppRolesRequest.getId());
+ Mockito.when(dataAccessService.executeNamedQuery("userAppRolesRequestDetailList", epDetailParams, null))
+ .thenReturn(mockGetEpUserAppRolesRequestDetailList);
+
+ ResponseEntity<String> addResponse = new ResponseEntity<>(HttpStatus.CREATED);
+ Mockito.when(template.exchange(Matchers.anyString(), Matchers.eq(HttpMethod.POST),
+ Matchers.<HttpEntity<String>>any(), Matchers.eq(String.class))).thenReturn(addResponse);
+
+ ResponseEntity<String> deleteResponse = new ResponseEntity<>(HttpStatus.OK);
+ Mockito.when(template.exchange(Matchers.anyString(), Matchers.eq(HttpMethod.DELETE),
+ Matchers.<HttpEntity<String>>any(), Matchers.eq(String.class))).thenReturn(deleteResponse);
+
+ // Updates in EP DB
+ Query epsetAppWithUserRoleGetUserQuery = Mockito.mock(Query.class);
+ Query epsetAppWithUserRoleGetUserAppsQuery = Mockito.mock(Query.class);
+ Query epsetAppWithUserRoleGetRolesQuery = Mockito.mock(Query.class);
+ SQLQuery epsetAppWithUserRoleUpdateEPRoleQuery = Mockito.mock(SQLQuery.class);
+ Mockito.when(session.get(EPApp.class, mockApp.getId())).thenReturn(mockApp);
+ Mockito.when(session
+ .createQuery("from " + EPUser.class.getName() + " where orgUserId='" + user.getOrgUserId() + "'"))
+ .thenReturn(epsetAppWithUserRoleGetUserQuery);
+ Mockito.doReturn(mockEpUserList).when(epsetAppWithUserRoleGetUserQuery).list();
+ List<EPUserApp> mockUserRolesList2 = new ArrayList<>();
+ EPUserApp mockEpUserAppRoles = new EPUserApp();
+ mockEpUserAppRoles.setApp(mockApp);
+ mockEpUserAppRoles.setRole(mockEPRole);
+ mockEpUserAppRoles.setUserId(user.getId());
+ mockUserRolesList2.add(mockEpUserAppRoles);
+ Mockito.when(session.createQuery(
+ "from org.onap.portalapp.portal.domain.EPUserApp where app.id=1 and role.active = 'Y' and userId=2"))
+ .thenReturn(epsetAppWithUserRoleGetUserAppsQuery);
+ Mockito.doReturn(mockUserRolesList2).when(epsetAppWithUserRoleGetUserAppsQuery).list();
+ List<EPRole> mockEPRoles = new ArrayList<>();
+ mockEPRoles.add(mockEPRole2);
+ mockEPRoles.add(mockEPRole3);
+ Mockito.when(session.createQuery("from " + EPRole.class.getName() + " where appId is null and id != 1"))
+ .thenReturn(epsetAppWithUserRoleGetRolesQuery);
+ Mockito.doReturn(mockEPRoles).when(epsetAppWithUserRoleGetRolesQuery).list();
+ Mockito.when(session.createSQLQuery("update fn_role set app_id = null where app_id = 1 "))
+ .thenReturn(epsetAppWithUserRoleUpdateEPRoleQuery);
+ boolean actual = userRolesCommonServiceImpl.setAppWithUserRoleStateForUser(user, mockWithRolesForUser);
+ assertTrue(actual);
+ }
+
+ private List<EcompUserAppRoles> getCurrentUserRoles(EPUser user, EPApp mockApp) {
+ List<EcompUserAppRoles> mockEPuserAppList = new ArrayList<>();
+ EcompUserAppRoles mockEcompUserAppRoles = new EcompUserAppRoles();
+ mockEcompUserAppRoles.setAppId(String.valueOf(mockApp.getId()));
+ mockEcompUserAppRoles.setRoleId(1l);
+ mockEcompUserAppRoles.setRoleName("test1");
+ mockEcompUserAppRoles.setUserId(user.getId());
+ mockEPuserAppList.add(mockEcompUserAppRoles);
+ return mockEPuserAppList;
+ }
+
+ @SuppressWarnings("unchecked")
+ @Test
+ public void setAppWithUserRoleStateForUserTestForNonCentralizedApp() throws Exception {
+ PowerMockito.mockStatic(SystemProperties.class);
+ PowerMockito.mockStatic(EcompPortalUtils.class);
+ PowerMockito.mockStatic(EPCommonSystemProperties.class);
+ PowerMockito.mockStatic(PortalConstants.class);
+ EPUser user = mockUser.mockEPUser();
+ user.setId(2l);
+ List<EPUser> mockEpUserList = new ArrayList<>();
+ mockEpUserList.add(user);
+ EPApp mockApp = mockApp();
+ mockApp.setNameSpace("com.test.com");
+ mockApp.setId(2l);
+ mockApp.setCentralAuth(false);
+ Mockito.when(epAppCommonServiceImpl.getApp(mockApp.getId())).thenReturn(mockApp);
+ Mockito.when(EcompPortalUtils.checkIfRemoteCentralAccessAllowed()).thenReturn(true);
+ AppWithRolesForUser mockWithRolesForUser = new AppWithRolesForUser();
+ List<RoleInAppForUser> mockRoleInAppForUserList = new ArrayList<>();
+ RoleInAppForUser mockRoleInAppForUser = new RoleInAppForUser();
+ mockRoleInAppForUser.setIsApplied(true);
+ mockRoleInAppForUser.setRoleId(1l);
+ mockRoleInAppForUser.setRoleName("test1");
+ RoleInAppForUser mockRoleInAppForUser2 = new RoleInAppForUser();
+ mockRoleInAppForUser2.setIsApplied(true);
+ mockRoleInAppForUser2.setRoleId(1000l);
+ mockRoleInAppForUser2.setRoleName("test3");
+ mockRoleInAppForUserList.add(mockRoleInAppForUser);
+ mockRoleInAppForUserList.add(mockRoleInAppForUser2);
+ mockWithRolesForUser.setAppId(mockApp.getId());
+ mockWithRolesForUser.setAppName(mockApp.getName());
+ mockWithRolesForUser.setOrgUserId(user.getOrgUserId());
+ mockWithRolesForUser.setAppRoles(mockRoleInAppForUserList);
+ List<EPUserAppRolesRequest> mockEpRequestIdValList = new ArrayList<EPUserAppRolesRequest>();
+ Set<EPUserAppRolesRequestDetail> mockEpUserAppRolesRequestDetailList = new TreeSet<>();
+ EPUserAppRolesRequestDetail mockEpUserAppRolesRequestDetail = new EPUserAppRolesRequestDetail();
+ mockEpUserAppRolesRequestDetail.setId(2l);
+ mockEpUserAppRolesRequestDetail.setReqType("P");
+ mockEpUserAppRolesRequestDetail.setReqRoleId(16l);
+ EPUserAppRolesRequest mockEPUserAppRolesRequest = new EPUserAppRolesRequest();
+ mockEPUserAppRolesRequest.setAppId(mockApp.getId());
+ mockEPUserAppRolesRequest.setId(1l);
+ mockEPUserAppRolesRequest.setRequestStatus("P");
+ mockEPUserAppRolesRequest.setUserId(user.getId());
+ mockEPUserAppRolesRequest.setEpRequestIdDetail(mockEpUserAppRolesRequestDetailList);
+ mockEpRequestIdValList.add(mockEPUserAppRolesRequest);
+ mockEpUserAppRolesRequestDetail.setEpRequestIdData(mockEPUserAppRolesRequest);
+ mockEpUserAppRolesRequestDetailList.add(mockEpUserAppRolesRequestDetail);
+
+ // Update Requests if any requests are pending
+ final Map<String, Long> params = new HashMap<>();
+ params.put("appId", mockApp.getId());
+ params.put("userId", user.getId());
+ Mockito.when((List<EPUserAppRolesRequest>) dataAccessService.executeNamedQuery("userAppRolesRequestList",
+ params, null)).thenReturn(mockEpRequestIdValList);
+ mockEPUserAppRolesRequest.setUpdatedDate(new Date());
+ mockEPUserAppRolesRequest.setRequestStatus("O");
+ HashMap<String, Long> additionalUpdateParam = new HashMap<String, Long>();
+ Mockito.doNothing().when(dataAccessService).saveDomainObject(mockEPUserAppRolesRequest, additionalUpdateParam);
+ List<EPUserAppRolesRequestDetail> mockGetEpUserAppRolesRequestDetailList = new ArrayList<EPUserAppRolesRequestDetail>();
+ EPUserAppRolesRequestDetail mockGetEpUserAppRolesRequestDetail = new EPUserAppRolesRequestDetail();
+ mockEpUserAppRolesRequestDetail.setId(2l);
+ mockEpUserAppRolesRequestDetail.setReqType("P");
+ mockEpUserAppRolesRequestDetail.setReqRoleId(16l);
+ mockGetEpUserAppRolesRequestDetailList.add(mockGetEpUserAppRolesRequestDetail);
+ final Map<String, Long> epDetailParams = new HashMap<>();
+ epDetailParams.put("reqId", mockEPUserAppRolesRequest.getId());
+
+ final Map<String, String> userParams = new HashMap<>();
+ userParams.put("orgUserIdValue", user.getOrgUserId());
+ Mockito.when((List<EPUser>) dataAccessService.executeNamedQuery("epUserAppId", userParams, null))
+ .thenReturn(mockEpUserList);
+
+ PowerMockito
+ .when(EPCommonSystemProperties
+ .containsProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_USER_DOMAIN))
+ .thenReturn(true);
+ PowerMockito.when(SystemProperties.getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_USER_DOMAIN))
+ .thenReturn("@test.com");
+ HttpHeaders headers = new HttpHeaders();
+ Mockito.when(EcompPortalUtils.base64encodeKeyForAAFBasicAuth()).thenReturn(headers);
+ EPRole mockEPRole = new EPRole();
+ mockEPRole.setActive(true);
+ mockEPRole.setAppId(2l);
+ mockEPRole.setAppRoleId(null);
+ mockEPRole.setId(10l);
+ mockEPRole.setAppRoleId(1l);
+ mockEPRole.setName("test1");
+ EPRole mockEPRole2 = new EPRole();
+ mockEPRole2.setActive(true);
+ mockEPRole2.setAppId(2l);
+ mockEPRole2.setAppRoleId(null);
+ mockEPRole2.setId(160l);
+ mockEPRole2.setName("test2");
+ mockEPRole2.setAppRoleId(16l);
+ EPRole mockEPRole3 = new EPRole();
+ mockEPRole3.setActive(true);
+ mockEPRole3.setAppId(2l);
+ mockEPRole3.setAppRoleId(null);
+ mockEPRole3.setId(1100l);
+ mockEPRole3.setAppRoleId(100l);
+ mockEPRole3.setName("test3");
+ Mockito.when(applicationsRestClientService.get(EPUser.class, mockApp.getId(),
+ String.format("/user/%s", user.getOrgUserId()), true)).thenReturn(user);
+ // Updates in EP DB
+ Query epsetAppWithUserRoleNonCentralizedGetUserQuery = Mockito.mock(Query.class);
+ Query epsetAppWithUserRoleNonCentralizedGetUserAppsQuery = Mockito.mock(Query.class);
+ Query epsetAppWithUserRoleNonCentralizedGetRolesQuery = Mockito.mock(Query.class);
+ Mockito.when(session.get(EPApp.class, mockApp.getId())).thenReturn(mockApp);
+ Mockito.when(session
+ .createQuery("from " + EPUser.class.getName() + " where orgUserId='" + user.getOrgUserId() + "'"))
+ .thenReturn(epsetAppWithUserRoleNonCentralizedGetUserQuery);
+ Mockito.doReturn(mockEpUserList).when(epsetAppWithUserRoleNonCentralizedGetUserQuery).list();
+ List<EPUserApp> mockUserRolesList2 = new ArrayList<>();
+ EPUserApp mockEpUserAppRoles = new EPUserApp();
+ mockEpUserAppRoles.setApp(mockApp);
+ mockEpUserAppRoles.setRole(mockEPRole);
+ mockEpUserAppRoles.setUserId(user.getId());
+ mockUserRolesList2.add(mockEpUserAppRoles);
+ Mockito.when(session.createQuery(
+ "from org.onap.portalapp.portal.domain.EPUserApp where app.id=2 and role.active = 'Y' and userId=2"))
+ .thenReturn(epsetAppWithUserRoleNonCentralizedGetUserAppsQuery);
+ Mockito.doReturn(mockUserRolesList2).when(epsetAppWithUserRoleNonCentralizedGetUserAppsQuery).list();
+ List<EPRole> mockEPRoles = new ArrayList<>();
+ mockEPRoles.add(mockEPRole2);
+ mockEPRoles.add(mockEPRole3);
+ Mockito.when(session.createQuery("from " + EPRole.class.getName() + " where appId=2"))
+ .thenReturn(epsetAppWithUserRoleNonCentralizedGetRolesQuery);
+ Mockito.doReturn(mockEPRoles).when(epsetAppWithUserRoleNonCentralizedGetRolesQuery).list();
+ boolean expected = userRolesCommonServiceImpl.setAppWithUserRoleStateForUser(user, mockWithRolesForUser);
+ assertEquals(expected, true);
+ }
+
+ @SuppressWarnings("unchecked")
+ @Test
+ public void setExternalRequestUserAppRoleMerdianCentralizedAppTest() throws Exception {
+ PowerMockito.mockStatic(SystemProperties.class);
+ PowerMockito.mockStatic(EcompPortalUtils.class);
+ PowerMockito.mockStatic(EPCommonSystemProperties.class);
+ PowerMockito.mockStatic(PortalConstants.class);
+ EPUser user = mockUser.mockEPUser();
+ user.setId(2l);
+ List<EPUser> mockEpUserList = new ArrayList<>();
+ mockEpUserList.add(user);
+ EPApp mockApp = mockApp();
+ mockApp.setNameSpace("com.test.com");
+ mockApp.setId(1l);
+ mockApp.setCentralAuth(true);
+ Mockito.when(EcompPortalUtils.checkIfRemoteCentralAccessAllowed()).thenReturn(true);
+ ExternalSystemUser externalSystemUser = new ExternalSystemUser();
+ List<ExternalSystemRoleApproval> mockExternalSystemRoleApprovalList = new ArrayList<>();
+ ExternalSystemRoleApproval mockExternalSystemRoleApproval = new ExternalSystemRoleApproval();
+ mockExternalSystemRoleApproval.setRoleName("test1");
+ ExternalSystemRoleApproval mockExternalSystemRoleApproval2 = new ExternalSystemRoleApproval();
+ mockExternalSystemRoleApproval2.setRoleName("test2");
+ mockExternalSystemRoleApprovalList.add(mockExternalSystemRoleApproval);
+ mockExternalSystemRoleApprovalList.add(mockExternalSystemRoleApproval2);
+ externalSystemUser.setApplicationName(mockApp.getMlAppName());
+ externalSystemUser.setLoginId(user.getOrgUserId());
+ externalSystemUser.setRoles(mockExternalSystemRoleApprovalList);
+ EPRole mockEPRole = new EPRole();
+ mockEPRole.setActive(true);
+ mockEPRole.setAppId(null);
+ mockEPRole.setAppRoleId(null);
+ mockEPRole.setId(1l);
+ mockEPRole.setName("test1");
+ EPRole mockEPRole2 = new EPRole();
+ mockEPRole2.setActive(true);
+ mockEPRole2.setAppId(null);
+ mockEPRole2.setAppRoleId(null);
+ mockEPRole2.setId(16l);
+ mockEPRole2.setName("test2");
+ EPRole mockEPRole3 = new EPRole();
+ mockEPRole3.setActive(true);
+ mockEPRole3.setAppId(null);
+ mockEPRole3.setAppRoleId(null);
+ mockEPRole3.setId(1000l);
+ mockEPRole3.setName("test3");
+
+ Mockito.when(epAppCommonServiceImpl.getAppDetail(mockApp.getMlAppName())).thenReturn(mockApp);
+ final Map<String, String> userParams = new HashMap<>();
+ userParams.put("orgUserIdValue", user.getOrgUserId());
+ Mockito.when((List<EPUser>) dataAccessService.executeNamedQuery("epUserAppId", userParams, null))
+ .thenReturn(mockEpUserList);
+
+ List<EPUserAppRolesRequest> mockMerdianEpRequestIdValList = new ArrayList<EPUserAppRolesRequest>();
+ Set<EPUserAppRolesRequestDetail> mockEpUserAppRolesRequestDetailList = new TreeSet<>();
+ EPUserAppRolesRequestDetail mockEpUserAppRolesRequestDetail = new EPUserAppRolesRequestDetail();
+ mockEpUserAppRolesRequestDetail.setId(2l);
+ mockEpUserAppRolesRequestDetail.setReqType("P");
+ mockEpUserAppRolesRequestDetail.setReqRoleId(16l);
+ EPUserAppRolesRequest mockEPUserAppRolesRequest = new EPUserAppRolesRequest();
+ mockEPUserAppRolesRequest.setAppId(mockApp.getId());
+ mockEPUserAppRolesRequest.setId(1l);
+ mockEPUserAppRolesRequest.setRequestStatus("P");
+ mockEPUserAppRolesRequest.setUserId(user.getId());
+ mockEPUserAppRolesRequest.setEpRequestIdDetail(mockEpUserAppRolesRequestDetailList);
+ mockMerdianEpRequestIdValList.add(mockEPUserAppRolesRequest);
+ mockEpUserAppRolesRequestDetail.setEpRequestIdData(mockEPUserAppRolesRequest);
+ mockEpUserAppRolesRequestDetailList.add(mockEpUserAppRolesRequestDetail);
+
+ final Map<String, Long> params = new HashMap<>();
+ params.put("appId", mockApp.getId());
+ params.put("userId", user.getId());
+ Mockito.when((List<EPUserAppRolesRequest>) dataAccessService.executeNamedQuery("userAppRolesRequestList",
+ params, null)).thenReturn(mockMerdianEpRequestIdValList);
+ RoleInAppForUser mockRoleInAppForUser1 = new RoleInAppForUser();
+ mockRoleInAppForUser1.setIsApplied(true);
+ mockRoleInAppForUser1.setRoleId(1l);
+ mockRoleInAppForUser1.setRoleName("test1");
+ RoleInAppForUser mockRoleInAppForUser2 = new RoleInAppForUser();
+ mockRoleInAppForUser2.setIsApplied(true);
+ mockRoleInAppForUser2.setRoleId(16l);
+ mockRoleInAppForUser2.setRoleName("test2");
+ Mockito.when(epRoleServiceImpl.getAppRole(mockExternalSystemRoleApproval.getRoleName(), mockApp.getId()))
+ .thenReturn(mockEPRole);
+ Mockito.when(epRoleServiceImpl.getAppRole(mockExternalSystemRoleApproval2.getRoleName(), mockApp.getId()))
+ .thenReturn(mockEPRole2);
+ List<EcompUserAppRoles> mockEPuserAppList = getCurrentUserRoles(user, mockApp);
+ final Map<String, Long> params2 = new HashMap<>();
+ params2.put("userId", user.getId());
+ params2.put("appId", mockApp.getId());
+ Mockito.when(dataAccessService.executeNamedQuery("getUserAppExistingRoles", params2, null))
+ .thenReturn(mockEPuserAppList);
+ // Updates in External Auth System
+ List<EPUserAppRolesRequestDetail> mockGetEpUserAppRolesRequestDetailList = new ArrayList<EPUserAppRolesRequestDetail>();
+ EPUserAppRolesRequestDetail mockGetEpUserAppRolesRequestDetail = new EPUserAppRolesRequestDetail();
+ mockEpUserAppRolesRequestDetail.setId(2l);
+ mockEpUserAppRolesRequestDetail.setReqType("P");
+ mockEpUserAppRolesRequestDetail.setReqRoleId(16l);
+ mockGetEpUserAppRolesRequestDetailList.add(mockGetEpUserAppRolesRequestDetail);
+ final Map<String, String> userParams2 = new HashMap<>();
+ userParams2.put("orgUserIdValue", user.getOrgUserId());
+ Mockito.when((List<EPUser>) dataAccessService.executeNamedQuery("epUserAppId", userParams2, null))
+ .thenReturn(mockEpUserList);
+ PowerMockito
+ .when(EPCommonSystemProperties
+ .containsProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_USER_DOMAIN))
+ .thenReturn(true);
+ PowerMockito.when(SystemProperties.getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_USER_DOMAIN))
+ .thenReturn("@test.com");
+ HttpHeaders headers = new HttpHeaders();
+ Mockito.when(EcompPortalUtils.base64encodeKeyForAAFBasicAuth()).thenReturn(headers);
+ JSONObject mockJsonObject1 = new JSONObject();
+ JSONObject mockJsonObject2 = new JSONObject();
+ JSONObject mockJsonObject3 = new JSONObject();
+ mockJsonObject1.put("name", "com.test.com.test1");
+ mockJsonObject2.put("name", "com.test.com.test2");
+ List<JSONObject> mockJson = new ArrayList<>();
+ mockJson.add(mockJsonObject1);
+ mockJson.add(mockJsonObject2);
+ mockJsonObject3.put("role", mockJson);
+ ResponseEntity<String> getResponse = new ResponseEntity<>(mockJsonObject3.toString(), HttpStatus.OK);
+ Mockito.when(template.exchange(Matchers.anyString(), Matchers.eq(HttpMethod.GET),
+ Matchers.<HttpEntity<String>>any(), Matchers.eq(String.class))).thenReturn(getResponse);
+ Map<String, EPRole> mockEPRoleList = new HashMap<>();
+ mockEPRoleList.put("test1", mockEPRole);
+ mockEPRoleList.put("test2", mockEPRole2);
+ mockEPRoleList.put("test3", mockEPRole3);
+ Mockito.when(externalAccessRolesServiceImpl.getCurrentRolesInDB(mockApp)).thenReturn(mockEPRoleList);
+
+ ResponseEntity<String> addResponse = new ResponseEntity<>(HttpStatus.CREATED);
+ Mockito.when(template.exchange(Matchers.anyString(), Matchers.eq(HttpMethod.POST),
+ Matchers.<HttpEntity<String>>any(), Matchers.eq(String.class))).thenReturn(addResponse);
+
+ ResponseEntity<String> deleteResponse = new ResponseEntity<>(HttpStatus.OK);
+ Mockito.when(template.exchange(Matchers.anyString(), Matchers.eq(HttpMethod.DELETE),
+ Matchers.<HttpEntity<String>>any(), Matchers.eq(String.class))).thenReturn(deleteResponse);
+ // Updated in EP DB
+ Query epsetExternalRequestUserAppRoleGetUserQuery = Mockito.mock(Query.class);
+ Query epsetExternalRequestUserAppRoleGetUserAppsQuery = Mockito.mock(Query.class);
+ Query epsetExternalRequestUserAppRoleGetRolesQuery = Mockito.mock(Query.class);
+ SQLQuery epsetAppWithUserRoleUpdateEPRoleQuery = Mockito.mock(SQLQuery.class);
+ Mockito.when(session.get(EPApp.class, mockApp.getId())).thenReturn(mockApp);
+ Mockito.when(session
+ .createQuery("from " + EPUser.class.getName() + " where orgUserId='" + user.getOrgUserId() + "'"))
+ .thenReturn(epsetExternalRequestUserAppRoleGetUserQuery);
+ Mockito.doReturn(mockEpUserList).when(epsetExternalRequestUserAppRoleGetUserQuery).list();
+ List<EPUserApp> mockUserRolesList2 = new ArrayList<>();
+ EPUserApp mockEpUserAppRoles = new EPUserApp();
+ mockEpUserAppRoles.setApp(mockApp);
+ mockEpUserAppRoles.setRole(mockEPRole);
+ mockEpUserAppRoles.setUserId(user.getId());
+ mockUserRolesList2.add(mockEpUserAppRoles);
+ Mockito.when(session.createQuery(
+ "from org.onap.portalapp.portal.domain.EPUserApp where app.id=1 and role.active = 'Y' and userId=2"))
+ .thenReturn(epsetExternalRequestUserAppRoleGetUserAppsQuery);
+ Mockito.doReturn(mockUserRolesList2).when(epsetExternalRequestUserAppRoleGetUserAppsQuery).list();
+ List<EPRole> mockEPRoles = new ArrayList<>();
+ mockEPRoles.add(mockEPRole2);
+ mockEPRoles.add(mockEPRole3);
+ Mockito.when(session.createQuery("from org.onap.portalapp.portal.domain.EPRole where appId is null "))
+ .thenReturn(epsetExternalRequestUserAppRoleGetRolesQuery);
+ Mockito.doReturn(mockEPRoles).when(epsetExternalRequestUserAppRoleGetRolesQuery).list();
+ Mockito.when(session.createSQLQuery("update fn_role set app_id = null where app_id = 1 "))
+ .thenReturn(epsetAppWithUserRoleUpdateEPRoleQuery);
+
+ ExternalRequestFieldsValidator mockExternalRequestFieldsValidator = new ExternalRequestFieldsValidator(true,
+ "Updated Successfully");
+ ExternalRequestFieldsValidator externalRequestFieldsValidator = userRolesCommonServiceImpl
+ .setExternalRequestUserAppRole(externalSystemUser, "POST");
+ assertTrue(mockExternalRequestFieldsValidator.equals(externalRequestFieldsValidator));
+ }
+
+ @SuppressWarnings("unchecked")
+ @Test
+ public void setExternalRequestUserAppRoleMerdianNonCentralizedAppTest() throws Exception {
+ PowerMockito.mockStatic(SystemProperties.class);
+ PowerMockito.mockStatic(EPCommonSystemProperties.class);
+ PowerMockito.mockStatic(PortalConstants.class);
+ EPUser user = mockUser.mockEPUser();
+ user.setId(2l);
+ List<EPUser> mockEpUserList = new ArrayList<>();
+ mockEpUserList.add(user);
+ EPApp mockApp = mockApp();
+ mockApp.setId(2l);
+ mockApp.setEnabled(true);
+ mockApp.setCentralAuth(false);
+ ExternalSystemUser externalSystemUser = new ExternalSystemUser();
+ List<ExternalSystemRoleApproval> mockExternalSystemRoleApprovalList = new ArrayList<>();
+ ExternalSystemRoleApproval mockExternalSystemRoleApproval = new ExternalSystemRoleApproval();
+ mockExternalSystemRoleApproval.setRoleName("test1");
+ ExternalSystemRoleApproval mockExternalSystemRoleApproval2 = new ExternalSystemRoleApproval();
+ mockExternalSystemRoleApproval2.setRoleName("test2");
+ mockExternalSystemRoleApprovalList.add(mockExternalSystemRoleApproval);
+ mockExternalSystemRoleApprovalList.add(mockExternalSystemRoleApproval2);
+ externalSystemUser.setApplicationName(mockApp.getMlAppName());
+ externalSystemUser.setLoginId(user.getOrgUserId());
+ externalSystemUser.setRoles(mockExternalSystemRoleApprovalList);
+
+ EPRole mockEPRole = new EPRole();
+ mockEPRole.setActive(true);
+ mockEPRole.setAppId(2l);
+ mockEPRole.setAppRoleId(1l);
+ mockEPRole.setId(1000l);
+ mockEPRole.setName("test1");
+ EPRole mockEPRole2 = new EPRole();
+ mockEPRole2.setActive(true);
+ mockEPRole2.setAppId(2l);
+ mockEPRole2.setAppRoleId(16l);
+ mockEPRole2.setId(160l);
+ mockEPRole2.setName("test2");
+ EPRole mockEPRole3 = new EPRole();
+ mockEPRole3.setActive(true);
+ mockEPRole3.setAppId(2l);
+ mockEPRole3.setAppRoleId(10l);
+ mockEPRole3.setId(100l);
+ mockEPRole3.setName("test3");
+
+ Mockito.when(epAppCommonServiceImpl.getAppDetail(mockApp.getMlAppName())).thenReturn(mockApp);
+ final Map<String, String> userParams = new HashMap<>();
+ userParams.put("orgUserIdValue", user.getOrgUserId());
+ Mockito.when((List<EPUser>) dataAccessService.executeNamedQuery("epUserAppId", userParams, null))
+ .thenReturn(mockEpUserList);
+
+ List<EPUserAppRolesRequest> mockMerdianEpRequestIdValList = new ArrayList<EPUserAppRolesRequest>();
+ Set<EPUserAppRolesRequestDetail> mockEpUserAppRolesRequestDetailList = new TreeSet<>();
+ EPUserAppRolesRequestDetail mockEpUserAppRolesRequestDetail = new EPUserAppRolesRequestDetail();
+ mockEpUserAppRolesRequestDetail.setId(2l);
+ mockEpUserAppRolesRequestDetail.setReqType("P");
+ mockEpUserAppRolesRequestDetail.setReqRoleId(16l);
+ EPUserAppRolesRequest mockEPUserAppRolesRequest = new EPUserAppRolesRequest();
+ mockEPUserAppRolesRequest.setAppId(mockApp.getId());
+ mockEPUserAppRolesRequest.setId(1l);
+ mockEPUserAppRolesRequest.setRequestStatus("P");
+ mockEPUserAppRolesRequest.setUserId(user.getId());
+ mockEPUserAppRolesRequest.setEpRequestIdDetail(mockEpUserAppRolesRequestDetailList);
+ mockMerdianEpRequestIdValList.add(mockEPUserAppRolesRequest);
+ mockEpUserAppRolesRequestDetail.setEpRequestIdData(mockEPUserAppRolesRequest);
+ mockEpUserAppRolesRequestDetailList.add(mockEpUserAppRolesRequestDetail);
+
+ final Map<String, Long> params = new HashMap<>();
+ params.put("appId", mockApp.getId());
+ params.put("userId", user.getId());
+ Mockito.when((List<EPUserAppRolesRequest>) dataAccessService.executeNamedQuery("userAppRolesRequestList",
+ params, null)).thenReturn(mockMerdianEpRequestIdValList);
+ RoleInAppForUser mockRoleInAppForUser1 = new RoleInAppForUser();
+ mockRoleInAppForUser1.setIsApplied(true);
+ mockRoleInAppForUser1.setRoleId(1l);
+ mockRoleInAppForUser1.setRoleName("test1");
+ RoleInAppForUser mockRoleInAppForUser2 = new RoleInAppForUser();
+ mockRoleInAppForUser2.setIsApplied(true);
+ mockRoleInAppForUser2.setRoleId(16l);
+ mockRoleInAppForUser2.setRoleName("test2");
+ Mockito.when(epRoleServiceImpl.getAppRole(mockExternalSystemRoleApproval.getRoleName(), mockApp.getId()))
+ .thenReturn(mockEPRole);
+ Mockito.when(epRoleServiceImpl.getAppRole(mockExternalSystemRoleApproval2.getRoleName(), mockApp.getId()))
+ .thenReturn(mockEPRole2);
+ List<EcompUserAppRoles> mockEPuserAppList = new ArrayList<>();
+ EcompUserAppRoles mockEcompUserAppRoles = new EcompUserAppRoles();
+ mockEcompUserAppRoles.setAppId(String.valueOf(mockApp.getId()));
+ mockEcompUserAppRoles.setRoleId(100l);
+ mockEcompUserAppRoles.setRoleName("test1");
+ mockEcompUserAppRoles.setUserId(user.getId());
+ mockEPuserAppList.add(mockEcompUserAppRoles);
+ final Map<String, Long> params2 = new HashMap<>();
+ params2.put("userId", user.getId());
+ params2.put("appId", mockApp.getId());
+ Mockito.when(dataAccessService.executeNamedQuery("getUserAppExistingRoles", params2, null))
+ .thenReturn(mockEPuserAppList);
+ List<EcompRole> mockEcompRoleList = new ArrayList<>();
+ EcompRole mockEcompRole = new EcompRole();
+ mockEcompRole.setId(1l);
+ mockEcompRole.setName("test1");
+ EcompRole mockEcompRole2 = new EcompRole();
+ mockEcompRole2.setId(16l);
+ mockEcompRole2.setName("test2");
+ mockEcompRoleList.add(mockEcompRole);
+ mockEcompRoleList.add(mockEcompRole2);
+ EcompRole[] mockEcompRoleArray = mockEcompRoleList.toArray(new EcompRole[mockEcompRoleList.size()]);
+ Mockito.when(applicationsRestClientService.get(EcompRole[].class, mockApp.getId(), "/roles"))
+ .thenReturn(mockEcompRoleArray);
+
+ // SyncAppRoles
+ List<EPUserApp> mockUserRolesList = new ArrayList<>();
+ EPUserApp mockEpUserApp = new EPUserApp();
+ mockEpUserApp.setApp(mockApp);
+ mockEpUserApp.setRole(mockEPRole2);
+ mockEpUserApp.setUserId(user.getId());
+ mockUserRolesList.add(mockEpUserApp);
+ List<FunctionalMenuRole> mockFunctionalMenuRolesList = new ArrayList<>();
+ FunctionalMenuRole mockFunctionalMenuRole = new FunctionalMenuRole();
+ mockFunctionalMenuRole.setAppId((int) (long) mockApp.getId());
+ mockFunctionalMenuRole.setRoleId((int) (long) 15l);
+ mockFunctionalMenuRole.setMenuId(10l);
+ mockFunctionalMenuRole.setId(10);
+ mockFunctionalMenuRolesList.add(mockFunctionalMenuRole);
+ List<FunctionalMenuItem> mockFunctionalMenuItemList = new ArrayList<>();
+ FunctionalMenuItem mockFunctionalMenuItem = new FunctionalMenuItem();
+ List<Integer> mockRolesList = new ArrayList<>();
+ Integer role1 = 1;
+ mockRolesList.add(role1);
+ mockFunctionalMenuItem.setRestrictedApp(false);
+ mockFunctionalMenuItem.setRoles(mockRolesList);
+ mockFunctionalMenuItem.setUrl("http://test.com");
+ mockFunctionalMenuItemList.add(mockFunctionalMenuItem);
+ Query epRoleQuery = Mockito.mock(Query.class);
+ Query epUserAppsQuery = Mockito.mock(Query.class);
+ Query epFunctionalMenuQuery = Mockito.mock(Query.class);
+ Query epFunctionalMenuQuery2 = Mockito.mock(Query.class);
+ Query epFunctionalMenuItemQuery = Mockito.mock(Query.class);
+ Mockito.when(applicationsRestClientService.get(EcompRole[].class, mockApp.getId(), "/roles"))
+ .thenReturn(mockEcompRoleArray);
+ // syncAppRolesTest
+ Mockito.when(session.createQuery("from " + EPRole.class.getName() + " where appId=" + mockApp.getId()))
+ .thenReturn(epRoleQuery);
+ Mockito.doReturn(mockEcompRoleList).when(epRoleQuery).list();
+ Mockito.when(session.createQuery(
+ "from " + EPUserApp.class.getName() + " where app.id=" + mockApp.getId() + " and role_id=" + 100l))
+ .thenReturn(epUserAppsQuery);
+ Mockito.doReturn(mockUserRolesList).when(epUserAppsQuery).list();
+
+ Mockito.when(session.createQuery("from " + FunctionalMenuRole.class.getName() + " where roleId=" + 100l))
+ .thenReturn(epFunctionalMenuQuery);
+ Mockito.doReturn(mockFunctionalMenuRolesList).when(epFunctionalMenuQuery).list();
+
+ Mockito.when(session.createQuery("from " + FunctionalMenuRole.class.getName() + " where menuId=" + 10l))
+ .thenReturn(epFunctionalMenuQuery2);
+ Mockito.doReturn(mockFunctionalMenuRolesList).when(epFunctionalMenuQuery2).list();
+
+ Mockito.when(session.createQuery("from " + FunctionalMenuItem.class.getName() + " where menuId=" + 10l))
+ .thenReturn(epFunctionalMenuItemQuery);
+ Mockito.doReturn(mockFunctionalMenuItemList).when(epFunctionalMenuItemQuery).list();
+
+ Mockito.when(applicationsRestClientService.get(EPUser.class, mockApp.getId(),
+ String.format("/user/%s", user.getOrgUserId()), true)).thenReturn(user);
+ // Updated in EP DB
+ Query epsetExternalRequestUserAppRoleGetUserQuery = Mockito.mock(Query.class);
+ Query epsetExternalRequestUserAppRoleGetUserAppsQuery = Mockito.mock(Query.class);
+ Query epsetExternalRequestUserAppRoleGetRolesQuery = Mockito.mock(Query.class);
+ Mockito.when(session.get(EPApp.class, mockApp.getId())).thenReturn(mockApp);
+ Mockito.when(session
+ .createQuery("from " + EPUser.class.getName() + " where orgUserId='" + user.getOrgUserId() + "'"))
+ .thenReturn(epsetExternalRequestUserAppRoleGetUserQuery);
+ Mockito.doReturn(mockEpUserList).when(epsetExternalRequestUserAppRoleGetUserQuery).list();
+ List<EPUserApp> mockUserRolesList2 = new ArrayList<>();
+ EPUserApp mockEpUserAppRoles = new EPUserApp();
+ mockEpUserAppRoles.setApp(mockApp);
+ mockEpUserAppRoles.setRole(mockEPRole);
+ mockEpUserAppRoles.setUserId(user.getId());
+ mockUserRolesList2.add(mockEpUserAppRoles);
+ Mockito.when(session.createQuery(
+ "from org.onap.portalapp.portal.domain.EPUserApp where app.id=2 and role.active = 'Y' and userId=2"))
+ .thenReturn(epsetExternalRequestUserAppRoleGetUserAppsQuery);
+ Mockito.doReturn(mockUserRolesList2).when(epsetExternalRequestUserAppRoleGetUserAppsQuery).list();
+ List<EPRole> mockEPRoles = new ArrayList<>();
+ mockEPRoles.add(mockEPRole2);
+ mockEPRoles.add(mockEPRole3);
+ Mockito.when(session.createQuery("from org.onap.portalapp.portal.domain.EPRole where appId=2"))
+ .thenReturn(epsetExternalRequestUserAppRoleGetRolesQuery);
+ Mockito.doReturn(mockEPRoles).when(epsetExternalRequestUserAppRoleGetRolesQuery).list();
+
+ ExternalRequestFieldsValidator mockExternalRequestFieldsValidator = new ExternalRequestFieldsValidator(true,
+ "Updated Successfully");
+ ExternalRequestFieldsValidator externalRequestFieldsValidator = userRolesCommonServiceImpl
+ .setExternalRequestUserAppRole(externalSystemUser, "POST");
+ assertTrue(mockExternalRequestFieldsValidator.equals(externalRequestFieldsValidator));
+ }
+
+ @SuppressWarnings("unchecked")
+ @Test
+ public void getUsersFromAppEndpointCentralizedAppTest() throws HTTPException {
+ EPApp mockApp = mockApp();
+ mockApp.setId(1l);
+ mockApp.setEnabled(true);
+ mockApp.setCentralAuth(true);
+ EPUser user = mockUser.mockEPUser();
+ EPUser user2 = mockUser.mockEPUser();
+ user2.setActive(true);
+ user2.setOrgUserId("guestT2");
+ user2.setId(2l);
+ user2.setFirstName("Guest2");
+ user2.setLastName("Test2");
+ user.setId(1l);
+ user.setFirstName("Guest");
+ user.setLastName("Test");
+ EPRole mockEPRole1 = new EPRole();
+ mockEPRole1.setId(1l);
+ mockEPRole1.setName("test1");
+ mockEPRole1.setActive(true);
+ EPRole mockEPRole2 = new EPRole();
+ mockEPRole2.setId(16l);
+ mockEPRole2.setName("test2");
+ mockEPRole2.setActive(true);
+ SortedSet<EPUserApp> mockUserApps1 = new TreeSet<EPUserApp>();
+ EPUserApp mockEPUserApp1 = new EPUserApp();
+ mockEPUserApp1.setApp(mockApp);
+ mockEPUserApp1.setRole(mockEPRole1);
+ mockEPUserApp1.setUserId(1l);
+ mockUserApps1.add(mockEPUserApp1);
+ user.setEPUserApps(mockUserApps1);
+ SortedSet<EPUserApp> mockUserApps2 = new TreeSet<EPUserApp>();
+ EPUserApp mockEPUserApp2 = new EPUserApp();
+ mockEPUserApp2.setApp(mockApp);
+ mockEPUserApp2.setRole(mockEPRole2);
+ mockEPUserApp2.setUserId(2l);
+ mockUserApps2.add(mockEPUserApp2);
+ user2.setEPUserApps(mockUserApps2);
+ List<EPUser> mockEpUserList = new ArrayList<>();
+ mockEpUserList.add(user);
+ mockEpUserList.add(user2);
+ Mockito.when(epAppCommonServiceImpl.getApp(mockApp.getId())).thenReturn(mockApp);
+ List<UserApplicationRoles> mockUserApplicationRolesList = new ArrayList<>();
+ UserApplicationRoles mockUserApplicationRoles = new UserApplicationRoles();
+ List<RemoteRole> mockRemoteRoleList = new ArrayList<>();
+ RemoteRole mockRemoteRole = new RemoteRole();
+ mockRemoteRole.setId(1l);
+ mockRemoteRole.setName("test1");
+ mockRemoteRoleList.add(mockRemoteRole);
+ mockUserApplicationRoles.setAppId(mockApp.getId());
+ mockUserApplicationRoles.setFirstName("Guest");
+ mockUserApplicationRoles.setLastName("Test");
+ mockUserApplicationRoles.setOrgUserId("guestT");
+ mockUserApplicationRoles.setRoles(mockRemoteRoleList);
+ UserApplicationRoles mockUserApplicationRoles2 = new UserApplicationRoles();
+ List<RemoteRole> mockRemoteRoleList2 = new ArrayList<>();
+ RemoteRole mockRemoteRole2 = new RemoteRole();
+ mockRemoteRole2.setId(16l);
+ mockRemoteRole2.setName("test2");
+ mockRemoteRoleList2.add(mockRemoteRole2);
+ mockUserApplicationRoles2.setAppId(mockApp.getId());
+ mockUserApplicationRoles2.setFirstName("Guest2");
+ mockUserApplicationRoles2.setLastName("Test2");
+ mockUserApplicationRoles2.setOrgUserId("guestT2");
+ mockUserApplicationRoles2.setRoles(mockRemoteRoleList2);
+ mockUserApplicationRolesList.add(mockUserApplicationRoles);
+ mockUserApplicationRolesList.add(mockUserApplicationRoles2);
+ Mockito.when((List<EPUser>) dataAccessService.executeNamedQuery("getActiveUsers", null, null))
+ .thenReturn(mockEpUserList);
+ assertEquals(userRolesCommonServiceImpl.getUsersFromAppEndpoint(1l).size(),
+ mockUserApplicationRolesList.size());
+ }
+
+ @Test
+ public void getUsersFromAppEndpointNonCentralizedAppTest() throws HTTPException, JsonProcessingException {
+ EPApp mockApp = mockApp();
+ mockApp.setId(2l);
+ mockApp.setEnabled(true);
+ mockApp.setCentralAuth(false);
+ Mockito.when(epAppCommonServiceImpl.getApp(mockApp.getId())).thenReturn(mockApp);
+ List<UserApplicationRoles> mockUserApplicationRolesNonCentralizedList = new ArrayList<>();
+ UserApplicationRoles mockUserApplicationRoles = new UserApplicationRoles();
+ List<RemoteRole> mockRemoteRoleList = new ArrayList<>();
+ RemoteRole mockRemoteRole = new RemoteRole();
+ mockRemoteRole.setId(1l);
+ mockRemoteRole.setName("test1");
+ mockRemoteRoleList.add(mockRemoteRole);
+ mockUserApplicationRoles.setAppId(mockApp.getId());
+ mockUserApplicationRoles.setFirstName("Guest");
+ mockUserApplicationRoles.setLastName("Test");
+ mockUserApplicationRoles.setOrgUserId("guestT");
+ mockUserApplicationRoles.setRoles(mockRemoteRoleList);
+ UserApplicationRoles mockUserApplicationRoles2 = new UserApplicationRoles();
+ List<RemoteRole> mockRemoteRoleList2 = new ArrayList<>();
+ RemoteRole mockRemoteRole2 = new RemoteRole();
+ mockRemoteRole2.setId(16l);
+ mockRemoteRole2.setName("test2");
+ mockRemoteRoleList2.add(mockRemoteRole2);
+ mockUserApplicationRoles2.setAppId(mockApp.getId());
+ mockUserApplicationRoles2.setFirstName("Guest2");
+ mockUserApplicationRoles2.setLastName("Test2");
+ mockUserApplicationRoles2.setOrgUserId("guestT2");
+ mockUserApplicationRoles2.setRoles(mockRemoteRoleList2);
+ mockUserApplicationRolesNonCentralizedList.add(mockUserApplicationRoles);
+ mockUserApplicationRolesNonCentralizedList.add(mockUserApplicationRoles2);
+ RemoteUserWithRoles mockRemoteUserWithRoles1 = new RemoteUserWithRoles();
+ mockRemoteUserWithRoles1.setFirstName("Guest1");
+ mockRemoteUserWithRoles1.setLastName("Test1");
+ mockRemoteUserWithRoles1.setOrgUserId("guestT");
+ mockRemoteUserWithRoles1.setRoles(mockRemoteRoleList);
+ RemoteUserWithRoles mockRemoteUserWithRoles2 = new RemoteUserWithRoles();
+ mockRemoteUserWithRoles2.setFirstName("Guest2");
+ mockRemoteUserWithRoles2.setLastName("Test2");
+ mockRemoteUserWithRoles2.setOrgUserId("guestT");
+ mockRemoteUserWithRoles2.setRoles(mockRemoteRoleList2);
+ List<RemoteUserWithRoles> mockRemoteUserWithRolesList = new ArrayList<>();
+ mockRemoteUserWithRolesList.add(mockRemoteUserWithRoles1);
+ mockRemoteUserWithRolesList.add(mockRemoteUserWithRoles2);
+ ObjectMapper mapper = new ObjectMapper();
+ String mockGetRemoteUsersWithRoles = mapper.writeValueAsString(mockRemoteUserWithRolesList);
+ Mockito.when(applicationsRestClientService.getIncomingJsonString(mockApp.getId(), "/users"))
+ .thenReturn(mockGetRemoteUsersWithRoles);
+ List<UserApplicationRoles> userApplicationRolesNonCentralizedList = userRolesCommonServiceImpl
+ .getUsersFromAppEndpoint(2l);
+ assertEquals(mockUserApplicationRolesNonCentralizedList.size(), userApplicationRolesNonCentralizedList.size());
+ }
+
+ @SuppressWarnings("unchecked")
+ @Test
+ public void putUserAppRolesRequestTest() {
+ EPApp mockApp = mockApp();
+ mockApp.setId(2l);
+ mockApp.setEnabled(true);
+ mockApp.setCentralAuth(false);
+ EPUser user = mockUser.mockEPUser();
+ AppWithRolesForUser appWithRolesForUser = new AppWithRolesForUser();
+ List<RoleInAppForUser> mockRoleInAppForUserList = new ArrayList<>();
+ RoleInAppForUser roleInAppForUser = new RoleInAppForUser();
+ roleInAppForUser.setIsApplied(true);
+ roleInAppForUser.setRoleId(1l);
+ roleInAppForUser.setRoleName("test1");
+ RoleInAppForUser roleInAppForUser2 = new RoleInAppForUser();
+ roleInAppForUser2.setIsApplied(true);
+ roleInAppForUser2.setRoleId(1000l);
+ roleInAppForUser2.setRoleName("test3");
+ mockRoleInAppForUserList.add(roleInAppForUser);
+ mockRoleInAppForUserList.add(roleInAppForUser2);
+ appWithRolesForUser.setAppId(mockApp.getId());
+ appWithRolesForUser.setAppName(mockApp.getName());
+ appWithRolesForUser.setOrgUserId(user.getOrgUserId());
+ appWithRolesForUser.setAppRoles(mockRoleInAppForUserList);
+ List<EPUserAppRoles> epUserAppRolesList = new ArrayList<>();
+ EPUserAppRoles appRole1 = new EPUserAppRoles();
+ appRole1.setAppId(mockApp.getId());
+ appRole1.setId(10l);
+ appRole1.setRoleId(roleInAppForUser.roleId);
+ epUserAppRolesList.add(appRole1);
+ List<EPUserAppRoles> epUserAppRolesList2 = new ArrayList<>();
+ EPUserAppRoles appRole2 = new EPUserAppRoles();
+ appRole2.setAppId(mockApp.getId());
+ appRole2.setId(11l);
+ appRole2.setRoleId(roleInAppForUser2.roleId);
+ epUserAppRolesList2.add(appRole2);
+ EPUserAppRolesRequest mockEpAppRolesRequestData = new EPUserAppRolesRequest();
+ Mockito.doNothing().when(dataAccessService).saveDomainObject(mockEpAppRolesRequestData, null);
+ final Map<String, Long> params = new HashMap<>();
+ params.put("appId", appWithRolesForUser.appId);
+ params.put("appRoleId", roleInAppForUser.roleId);
+ Mockito.when((List<EPUserAppRoles>) dataAccessService.executeNamedQuery("appRoles", params, null))
+ .thenReturn(epUserAppRolesList);
+ params.put("appRoleId", roleInAppForUser2.roleId);
+ Mockito.when((List<EPUserAppRoles>) dataAccessService.executeNamedQuery("appRoles", params, null))
+ .thenReturn(epUserAppRolesList2);
+ EPUserAppRolesRequestDetail mockEPAppRoleDetail = new EPUserAppRolesRequestDetail();
+ Mockito.doNothing().when(dataAccessService).saveDomainObject(mockEPAppRoleDetail, null);
+ FieldsValidator expected = new FieldsValidator();
+ expected.setHttpStatusCode(Long.valueOf(HttpServletResponse.SC_OK));
+ FieldsValidator actual = userRolesCommonServiceImpl.putUserAppRolesRequest(appWithRolesForUser, user);
+ assertEquals(expected, actual);
+ }
+
+ @Test
+ public void importRolesFromRemoteApplicationTest() throws HTTPException {
+ EPApp mockApp = mockApp();
+ mockApp.setId(2l);
+ mockApp.setEnabled(true);
+ mockApp.setCentralAuth(false);
+ List<EPRole> expected = new ArrayList<>();
+ EPRole epRole = new EPRole();
+ epRole.setAppId(mockApp.getId());
+ epRole.setActive(true);
+ epRole.setId(10l);
+ epRole.setName("test1");
+ EPRole epRole2 = new EPRole();
+ epRole2.setAppId(mockApp.getId());
+ epRole2.setActive(true);
+ epRole2.setId(11l);
+ epRole2.setName("test2");
+ expected.add(epRole);
+ expected.add(epRole2);
+ EPRole[] epRoleArray = expected.toArray(new EPRole[expected.size()]);
+ Mockito.when(applicationsRestClientService.get(EPRole[].class, mockApp.getId(), "/rolesFull"))
+ .thenReturn(epRoleArray);
+ Mockito.when(epRoleServiceImpl.getRole(mockApp.getId(), epRole.getId())).thenReturn(epRole);
+ Mockito.when(epRoleServiceImpl.getRole(mockApp.getId(), epRole2.getId())).thenReturn(epRole2);
+ List<EPRole> actual = userRolesCommonServiceImpl.importRolesFromRemoteApplication(mockApp.getId());
+ assertEquals(expected.size(), actual.size());
+ }
+
+ @SuppressWarnings("deprecation")
+ @Test
+ public void getCachedAppRolesForUserTest() {
+ EPApp mockApp = mockApp();
+ mockApp.setId(2l);
+ mockApp.setEnabled(true);
+ mockApp.setCentralAuth(false);
+ EPUser user = mockUser.mockEPUser();
+ List<EPUserApp> expected = new ArrayList<>();
+ EPUserApp epUserApp = new EPUserApp();
+ EPRole epRole = new EPRole();
+ epRole.setAppId(mockApp.getId());
+ epRole.setActive(true);
+ epRole.setId(10l);
+ epRole.setName("test1");
+ epUserApp.setApp(mockApp);
+ epUserApp.setRole(epRole);
+ epUserApp.setUserId(user.getId());
+ expected.add(epUserApp);
+ String filter = " where user_id = " + Long.toString(user.getId()) + " and app_id = "
+ + Long.toString(mockApp.getId());
+ Mockito.when(dataAccessService.getList(EPUserApp.class, filter, null, null)).thenReturn(expected);
+ List<EPUserApp> actual = userRolesCommonServiceImpl.getCachedAppRolesForUser(mockApp.getId(), user.getId());
+ assertEquals(expected.size(), actual.size());
+ }
+
+ @SuppressWarnings("unchecked")
+ @Test
+ public void getUserAppCatalogRolesTest() {
+ EPApp mockApp = mockApp();
+ mockApp.setId(2l);
+ mockApp.setEnabled(true);
+ mockApp.setCentralAuth(false);
+ EPUser user = mockUser.mockEPUser();
+ List<EPUserAppCatalogRoles> expected = new ArrayList<>();
+ EPUserAppCatalogRoles epUserAppCatalogRoles = new EPUserAppCatalogRoles();
+ epUserAppCatalogRoles.setAppId(mockApp.getId());
+ epUserAppCatalogRoles.setId(2l);
+ epUserAppCatalogRoles.setRequestedRoleId(10l);
+ epUserAppCatalogRoles.setRequestStatus("S");
+ epUserAppCatalogRoles.setRolename("test1");
+ expected.add(epUserAppCatalogRoles);
+ Map<String, String> params = new HashMap<>();
+ params.put("userid", user.getId().toString());
+ params.put("appName", mockApp.getName());
+ Mockito.when(
+ (List<EPUserAppCatalogRoles>) dataAccessService.executeNamedQuery("userAppCatalogRoles", params, null))
+ .thenReturn(expected);
+ List<EPUserAppCatalogRoles> actual = userRolesCommonServiceImpl.getUserAppCatalogRoles(user, mockApp.getName());
+ assertEquals(expected.size(), actual.size());
+ }
+
+ @Test
+ public void getExternalRequestAccessTest() {
+ ExternalSystemAccess expected = new ExternalSystemAccess("external_access_enable", false);
+ ExternalSystemAccess actual = userRolesCommonServiceImpl.getExternalRequestAccess();
+ assertEquals(expected, actual);
+ }
+
+ @Test
+ public void getEPUserAppListTest() {
+ EPApp mockApp = mockApp();
+ mockApp.setId(2l);
+ mockApp.setEnabled(true);
+ mockApp.setCentralAuth(false);
+ EPUser user = mockUser.mockEPUser();
+ List<EPUserApp> expected = new ArrayList<>();
+ EPUserApp epUserApp = new EPUserApp();
+ EPRole epRole = new EPRole();
+ epRole.setAppId(mockApp.getId());
+ epRole.setActive(true);
+ epRole.setId(10l);
+ epRole.setName("test1");
+ epUserApp.setApp(mockApp);
+ epUserApp.setRole(epRole);
+ epUserApp.setUserId(user.getId());
+ expected.add(epUserApp);
+ final Map<String, Long> params = new HashMap<>();
+ params.put("appId", mockApp.getId());
+ params.put("userId", user.getId());
+ params.put("roleId", epRole.getId());
+ Mockito.when(dataAccessService.executeNamedQuery("getUserRoleOnUserIdAndRoleIdAndAppId", params, null))
+ .thenReturn(expected);
+ List<EPUserApp> actual = userRolesCommonServiceImpl.getEPUserAppList(mockApp.getId(), user.getId(),
+ epRole.getId());
+ assertEquals(expected.size(), actual.size());
+ }
+
+ @Test
+ public void updateRemoteUserProfileTest() {
+ EPApp mockApp = mockApp();
+ EPApp mockApp2 = mockApp();
+ mockApp.setId(2l);
+ mockApp.setEnabled(true);
+ mockApp.setCentralAuth(false);
+ EPUser user = mockUser.mockEPUser();
+ List<EPApp> mockEpAppList = new ArrayList<>();
+ mockEpAppList.add(mockApp);
+ mockEpAppList.add(mockApp2);
+ Mockito.when(searchServiceImpl.searchUserByUserId(user.getOrgUserId())).thenReturn(user);
+ Mockito.when(epAppCommonServiceImpl.getUserRemoteApps(user.getId().toString())).thenReturn(mockEpAppList);
+ String expected = "success";
+ String actual = userRolesCommonServiceImpl.updateRemoteUserProfile(user.getOrgUserId(), mockApp.getId());
+ assertEquals(expected, actual);
+ }
+}