From 9ab5dadbb9c0b0f8ceffa6a997e49f282954572b Mon Sep 17 00:00:00 2001 From: JeethJJ Date: Wed, 16 Oct 2024 18:44:08 +0530 Subject: [PATCH] Address comments. --- .../application/mgt/ApplicationConstants.java | 2 +- .../mgt/ApplicationManagementService.java | 9 +-- .../mgt/ApplicationManagementServiceImpl.java | 2 + .../ApplicationPaginationAndSearching.java | 42 +++++++---- .../PaginatableFilterableApplicationDAO.java | 44 +++++++---- .../mgt/dao/impl/ApplicationDAOImpl.java | 52 ++----------- .../dao/impl/CacheBackedApplicationDAO.java | 4 + .../ApplicationManagementServiceImplTest.java | 75 +++++++++---------- 8 files changed, 104 insertions(+), 126 deletions(-) diff --git a/components/application-mgt/org.wso2.carbon.identity.application.mgt/src/main/java/org/wso2/carbon/identity/application/mgt/ApplicationConstants.java b/components/application-mgt/org.wso2.carbon.identity.application.mgt/src/main/java/org/wso2/carbon/identity/application/mgt/ApplicationConstants.java index 5c30320fb9f..9ed1349fb74 100644 --- a/components/application-mgt/org.wso2.carbon.identity.application.mgt/src/main/java/org/wso2/carbon/identity/application/mgt/ApplicationConstants.java +++ b/components/application-mgt/org.wso2.carbon.identity.application.mgt/src/main/java/org/wso2/carbon/identity/application/mgt/ApplicationConstants.java @@ -102,7 +102,7 @@ private ApplicationConstants() { public static final String SYSTEM_APPLICATIONS_CONFIG_ELEMENT = "SystemApplications"; public static final String DEFAULT_APPLICATIONS_CONFIG_ELEMENT = "DefaultApplications"; public static final String APPLICATION_NAME_CONFIG_ELEMENT = "ApplicationName"; - public static final String PORTAL_NAME_CONFIG_ELEMENT = "PortalName"; + public static final String PORTAL_NAMES_CONFIG_ELEMENT = "SystemPortals.PortalName"; // Application Management Service Configurations. public static final String ENABLE_APPLICATION_ROLE_VALIDATION_PROPERTY = "ApplicationMgt.EnableRoleValidation"; diff --git a/components/application-mgt/org.wso2.carbon.identity.application.mgt/src/main/java/org/wso2/carbon/identity/application/mgt/ApplicationManagementService.java b/components/application-mgt/org.wso2.carbon.identity.application.mgt/src/main/java/org/wso2/carbon/identity/application/mgt/ApplicationManagementService.java index 8fd2cb30307..5f469a4ed23 100644 --- a/components/application-mgt/org.wso2.carbon.identity.application.mgt/src/main/java/org/wso2/carbon/identity/application/mgt/ApplicationManagementService.java +++ b/components/application-mgt/org.wso2.carbon.identity.application.mgt/src/main/java/org/wso2/carbon/identity/application/mgt/ApplicationManagementService.java @@ -466,6 +466,7 @@ public List getTrustedApps(PlatformType platformType) throws Identit return new ArrayList<>(); } + @Deprecated @Override public ApplicationBasicInfo[] getApplicationBasicInfo(String tenantDomain, String username, String filter, int offset, int limit) @@ -474,14 +475,6 @@ public ApplicationBasicInfo[] getApplicationBasicInfo(String tenantDomain, Strin return getApplicationBasicInfo(tenantDomain, username, filter, offset, limit, false); } - @Override - public ApplicationBasicInfo[] getApplicationBasicInfo(String tenantDomain, String username, String filter, - int offset, int limit, Boolean excludeSystemPortals) - throws IdentityApplicationManagementException { - - return new ApplicationBasicInfo[0]; - } - /** * Retrieve application basic information using the application name. * diff --git a/components/application-mgt/org.wso2.carbon.identity.application.mgt/src/main/java/org/wso2/carbon/identity/application/mgt/ApplicationManagementServiceImpl.java b/components/application-mgt/org.wso2.carbon.identity.application.mgt/src/main/java/org/wso2/carbon/identity/application/mgt/ApplicationManagementServiceImpl.java index d7e27d99c17..7c26a56ef32 100644 --- a/components/application-mgt/org.wso2.carbon.identity.application.mgt/src/main/java/org/wso2/carbon/identity/application/mgt/ApplicationManagementServiceImpl.java +++ b/components/application-mgt/org.wso2.carbon.identity.application.mgt/src/main/java/org/wso2/carbon/identity/application/mgt/ApplicationManagementServiceImpl.java @@ -556,6 +556,7 @@ public ApplicationBasicInfo[] getPaginatedApplicationBasicInfo(String tenantDoma * @return An array of {@link ApplicationBasicInfo} instances within the limit. * @throws IdentityApplicationManagementException Error in retrieving basic application information. */ + @Deprecated @Override public ApplicationBasicInfo[] getApplicationBasicInfo(String tenantDomain, String username, String filter, int offset, int limit) @@ -690,6 +691,7 @@ public int getCountOfAllApplications(String tenantDomain, String username) * @return int * @throws IdentityApplicationManagementException */ + @Deprecated @Override public int getCountOfApplications(String tenantDomain, String username, String filter) throws IdentityApplicationManagementException { diff --git a/components/application-mgt/org.wso2.carbon.identity.application.mgt/src/main/java/org/wso2/carbon/identity/application/mgt/ApplicationPaginationAndSearching.java b/components/application-mgt/org.wso2.carbon.identity.application.mgt/src/main/java/org/wso2/carbon/identity/application/mgt/ApplicationPaginationAndSearching.java index 32562256af1..921d0a201ae 100644 --- a/components/application-mgt/org.wso2.carbon.identity.application.mgt/src/main/java/org/wso2/carbon/identity/application/mgt/ApplicationPaginationAndSearching.java +++ b/components/application-mgt/org.wso2.carbon.identity.application.mgt/src/main/java/org/wso2/carbon/identity/application/mgt/ApplicationPaginationAndSearching.java @@ -94,27 +94,32 @@ ApplicationBasicInfo[] getPaginatedApplicationBasicInfo(String tenantDomain, Str * @param limit Counting value. * @return An array of {@link ApplicationBasicInfo} instances matching the given filter within the given limit. * @throws IdentityApplicationManagementException Error in retrieving basic application information. - * @Deprecated This is being deprecated as introducing excludeSystemPortals to exclude system portals in response + * @Deprecated This is being deprecated as introducing excludeSystemPortals to exclude system portals in response. * use {@link ApplicationPaginationAndSearching#getApplicationBasicInfo(String, String, String, int, int, Boolean)}. */ + @Deprecated ApplicationBasicInfo[] getApplicationBasicInfo(String tenantDomain, String username, String filter, int offset, int limit) throws IdentityApplicationManagementException; /** * Get all basic application information for a matching filter with pagination based on the offset and limit. * - * @param tenantDomain Tenant Domain. - * @param username User name. - * @param filter Application name filter. - * @param offset Starting index of the count. - * @param limit Counting value. - * @param excludeSystemPortals Exclude system portals. + * @param tenantDomain Tenant Domain. + * @param username User name. + * @param filter Application name filter. + * @param offset Starting index of the count. + * @param limit Counting value. + * @param excludeSystemPortals Exclude system portals. * @return An array of {@link ApplicationBasicInfo} instances matching the given filter within the given limit. * @throws IdentityApplicationManagementException Error in retrieving basic application information. */ - ApplicationBasicInfo[] getApplicationBasicInfo(String tenantDomain, String username, String filter, int offset, - int limit, Boolean excludeSystemPortals) - throws IdentityApplicationManagementException; + default ApplicationBasicInfo[] getApplicationBasicInfo(String tenantDomain, String username, String filter, + int offset, + int limit, Boolean excludeSystemPortals) + throws IdentityApplicationManagementException { + + return new ApplicationBasicInfo[0]; + } /** * Get count of all Application Basic Information. @@ -138,20 +143,25 @@ int getCountOfAllApplications(String tenantDomain, String username) * @Deprecated This is being deprecated as introducing excludeSystemPortals to exclude system portals in response. * use {@link ApplicationPaginationAndSearching#getCountOfApplications(String, String, String, Boolean)}. */ + @Deprecated int getCountOfApplications(String tenantDomain, String username, String filter) throws IdentityApplicationManagementException; /** * Get count of all basic application information for a matching filter. * - * @param tenantDomain Tenant Domain. - * @param username User Name. - * @param filter Application name filter. - * @param excludeSystemPortals Exclude system portals. + * @param tenantDomain Tenant Domain. + * @param username User Name. + * @param filter Application name filter. + * @param excludeSystemPortals Exclude system portals. * @return int Count of applications. * @throws org.wso2.carbon.identity.application.common.IdentityApplicationManagementException */ - int getCountOfApplications(String tenantDomain, String username, String filter, Boolean excludeSystemPortals) - throws IdentityApplicationManagementException; + default int getCountOfApplications(String tenantDomain, String username, String filter, + Boolean excludeSystemPortals) + throws IdentityApplicationManagementException { + + return 0; + } } diff --git a/components/application-mgt/org.wso2.carbon.identity.application.mgt/src/main/java/org/wso2/carbon/identity/application/mgt/dao/PaginatableFilterableApplicationDAO.java b/components/application-mgt/org.wso2.carbon.identity.application.mgt/src/main/java/org/wso2/carbon/identity/application/mgt/dao/PaginatableFilterableApplicationDAO.java index 73ce75fdfa6..8b3e0262ab5 100644 --- a/components/application-mgt/org.wso2.carbon.identity.application.mgt/src/main/java/org/wso2/carbon/identity/application/mgt/dao/PaginatableFilterableApplicationDAO.java +++ b/components/application-mgt/org.wso2.carbon.identity.application.mgt/src/main/java/org/wso2/carbon/identity/application/mgt/dao/PaginatableFilterableApplicationDAO.java @@ -49,19 +49,23 @@ ApplicationBasicInfo[] getAllPaginatedApplicationBasicInfo(int pageNumber) throw * @Deprecated This is being deprecated as introducing excludeSystemPortals to exclude system portals in response. * use {@link PaginatableFilterableApplicationDAO#getApplicationBasicInfo(int, int, Boolean)}. */ + @Deprecated ApplicationBasicInfo[] getApplicationBasicInfo(int offset, int limit) throws IdentityApplicationManagementException; /** * Get all the basic application information based on the offset and the limit. * - * @param offset Starting index of the count. - * @param limit Count value. - * @param excludeSystemPortals Exclude system portals. + * @param offset Starting index of the count. + * @param limit Count value. + * @param excludeSystemPortals Exclude system portals. * @return An array of {@link ApplicationBasicInfo} instances within the limit. * @throws IdentityApplicationManagementException Error in retrieving basic application information. */ - ApplicationBasicInfo[] getApplicationBasicInfo(int offset, int limit, Boolean excludeSystemPortals) - throws IdentityApplicationManagementException; + default ApplicationBasicInfo[] getApplicationBasicInfo(int offset, int limit, Boolean excludeSystemPortals) + throws IdentityApplicationManagementException { + + return null; + } /** * Get all basic application information for a matching filter that falls under the given page number. @@ -87,23 +91,27 @@ ApplicationBasicInfo[] getPaginatedApplicationBasicInfo(int pageNumber, String f * @Deprecated This is being deprecated as introducing excludeSystemPortals to exclude system portals in response. * use {@link PaginatableFilterableApplicationDAO#getApplicationBasicInfo(String, int, int, Boolean)}. */ + @Deprecated ApplicationBasicInfo[] getApplicationBasicInfo(String filter, int offset, int limit) throws IdentityApplicationManagementException; /** * Get all basic application information for a matching filter based on the offset and the limit. * - * @param filter Application name filter. - * @param offset Starting index of the count. - * @param limit Count value. - * @param excludeSystemPortals Exclude system portals + * @param filter Application name filter. + * @param offset Starting index of the count. + * @param limit Count value. + * @param excludeSystemPortals Exclude system portals * @return An array of {@link ApplicationBasicInfo} instances matching the given filter within the given limit. * @throws IdentityApplicationManagementException Error in retrieving basic application information based on the * given filter within the given limit. - * */ - ApplicationBasicInfo[] getApplicationBasicInfo(String filter, int offset, int limit, Boolean excludeSystemPortals) - throws IdentityApplicationManagementException; + default ApplicationBasicInfo[] getApplicationBasicInfo(String filter, int offset, int limit, + Boolean excludeSystemPortals) + throws IdentityApplicationManagementException { + + return null; + } /** * Get count of applications. @@ -122,18 +130,22 @@ ApplicationBasicInfo[] getApplicationBasicInfo(String filter, int offset, int li * @Deprecated This is being deprecated as introducing excludeSystemPortals to exclude system portals in response. * use {@link PaginatableFilterableApplicationDAO#getCountOfApplications(String, Boolean)}. */ + @Deprecated int getCountOfApplications(String filter) throws IdentityApplicationManagementException; /** * Get count of applications matching the filter. * - * @param filter application search filter - * @param excludeSystemPortals Exclude system portals + * @param filter application search filter + * @param excludeSystemPortals Exclude system portals * @return matched application count in a int value * @throws IdentityApplicationManagementException */ - int getCountOfApplications(String filter, Boolean excludeSystemPortals) throws - IdentityApplicationManagementException; + default int getCountOfApplications(String filter, Boolean excludeSystemPortals) throws + IdentityApplicationManagementException { + + return 0; + } /** * Get all basic application information for a matching filter. diff --git a/components/application-mgt/org.wso2.carbon.identity.application.mgt/src/main/java/org/wso2/carbon/identity/application/mgt/dao/impl/ApplicationDAOImpl.java b/components/application-mgt/org.wso2.carbon.identity.application.mgt/src/main/java/org/wso2/carbon/identity/application/mgt/dao/impl/ApplicationDAOImpl.java index dabb855da93..94f128adbbb 100644 --- a/components/application-mgt/org.wso2.carbon.identity.application.mgt/src/main/java/org/wso2/carbon/identity/application/mgt/dao/impl/ApplicationDAOImpl.java +++ b/components/application-mgt/org.wso2.carbon.identity.application.mgt/src/main/java/org/wso2/carbon/identity/application/mgt/dao/impl/ApplicationDAOImpl.java @@ -18,7 +18,6 @@ package org.wso2.carbon.identity.application.mgt.dao.impl; -import org.apache.axiom.om.OMElement; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.io.IOUtils; import org.apache.commons.lang.ArrayUtils; @@ -87,7 +86,6 @@ import org.wso2.carbon.identity.core.model.FilterTreeBuilder; import org.wso2.carbon.identity.core.model.Node; import org.wso2.carbon.identity.core.model.OperationNode; -import org.wso2.carbon.identity.core.util.IdentityConfigParser; import org.wso2.carbon.identity.core.util.IdentityDatabaseUtil; import org.wso2.carbon.identity.core.util.IdentityTenantUtil; import org.wso2.carbon.identity.core.util.IdentityUtil; @@ -124,7 +122,6 @@ import java.util.Comparator; import java.util.HashMap; import java.util.HashSet; -import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Map.Entry; @@ -177,8 +174,7 @@ import static org.wso2.carbon.identity.application.common.util.IdentityApplicationConstants.TRUSTED_APP_CONSENT_GRANTED_SP_PROPERTY_NAME; import static org.wso2.carbon.identity.application.mgt.ApplicationConstants.LOCAL_SP; import static org.wso2.carbon.identity.application.mgt.ApplicationConstants.ORACLE; -import static org.wso2.carbon.identity.application.mgt.ApplicationConstants.PORTAL_NAME_CONFIG_ELEMENT; -import static org.wso2.carbon.identity.application.mgt.ApplicationConstants.SYSTEM_PORTALS; +import static org.wso2.carbon.identity.application.mgt.ApplicationConstants.PORTAL_NAMES_CONFIG_ELEMENT; import static org.wso2.carbon.identity.application.mgt.ApplicationConstants.UNION_SEPARATOR; import static org.wso2.carbon.identity.application.mgt.ApplicationMgtUtil.getConsoleAccessUrlFromServerConfig; import static org.wso2.carbon.identity.application.mgt.ApplicationMgtUtil.getMyAccountAccessUrlFromServerConfig; @@ -2075,6 +2071,7 @@ public ApplicationBasicInfo[] getPaginatedApplicationBasicInfo(int pageNumber, S return getApplicationBasicInfo(filter, offset, limit); } + @Deprecated @Override public ApplicationBasicInfo[] getApplicationBasicInfo(String filter, int offset, int limit) throws IdentityApplicationManagementException { @@ -2194,51 +2191,14 @@ private String populateSystemPortalsExcludeQuery(Boolean excludeSystemPortals, B String excludeSystemPortalsQuery = useTableNameInQuery ? ApplicationMgtDBQueries.EXCLUDE_SYSTEM_PORTALS_BY_TABLE_NAME_AND_NAME : ApplicationMgtDBQueries.EXCLUDE_SYSTEM_PORTALS_BY_NAME; - Set systemPortals = getSystemPortalsFromConfiguration(SYSTEM_PORTALS); - return systemPortals.isEmpty() ? "" : + List systemPortals = IdentityUtil.getPropertyAsList(PORTAL_NAMES_CONFIG_ELEMENT); + return systemPortals.isEmpty() ? StringUtils.EMPTY : String.format(excludeSystemPortalsQuery, systemPortals.stream() .map(s -> "'" + s + "'") .collect(Collectors.joining(", "))); } else { - return ""; - } - } - - /** - * Get system portals from configuration. - * - * @param parentElement Configuration tag name. - * @return Set of system portals from default.json. - */ - private static Set getSystemPortalsFromConfiguration(String parentElement) { - - IdentityConfigParser configParser = IdentityConfigParser.getInstance(); - OMElement systemApplicationsConfig = configParser.getConfigElement(parentElement); - if (systemApplicationsConfig == null) { - if (log.isDebugEnabled()) { - log.debug("'" + parentElement + "' config not found."); - } - return Collections.emptySet(); - } - - Iterator applicationIdentifierIterator = systemApplicationsConfig - .getChildrenWithLocalName(PORTAL_NAME_CONFIG_ELEMENT); - if (applicationIdentifierIterator == null) { - if (log.isDebugEnabled()) { - log.debug("'" + PORTAL_NAME_CONFIG_ELEMENT + "' config not found."); - } - return Collections.emptySet(); - } - - Set applications = new HashSet<>(); - while (applicationIdentifierIterator.hasNext()) { - OMElement applicationIdentifierConfig = (OMElement) applicationIdentifierIterator.next(); - String applicationName = applicationIdentifierConfig.getText(); - if (StringUtils.isNotBlank(applicationName)) { - applications.add(applicationName.trim()); - } + return StringUtils.EMPTY; } - return applications; } /** @@ -4033,6 +3993,7 @@ private String generateFilterValueForBackend(String searchOperation, String sear * @return * @throws IdentityApplicationManagementException */ + @Deprecated @Override public int getCountOfApplications(String filter) throws IdentityApplicationManagementException { @@ -4206,6 +4167,7 @@ public ApplicationBasicInfo[] getAllPaginatedApplicationBasicInfo(int pageNumber return getApplicationBasicInfo(offset, limit); } + @Deprecated @Override public ApplicationBasicInfo[] getApplicationBasicInfo(int offset, int limit) throws IdentityApplicationManagementException { diff --git a/components/application-mgt/org.wso2.carbon.identity.application.mgt/src/main/java/org/wso2/carbon/identity/application/mgt/dao/impl/CacheBackedApplicationDAO.java b/components/application-mgt/org.wso2.carbon.identity.application.mgt/src/main/java/org/wso2/carbon/identity/application/mgt/dao/impl/CacheBackedApplicationDAO.java index 4a2c173cb07..8874621837b 100644 --- a/components/application-mgt/org.wso2.carbon.identity.application.mgt/src/main/java/org/wso2/carbon/identity/application/mgt/dao/impl/CacheBackedApplicationDAO.java +++ b/components/application-mgt/org.wso2.carbon.identity.application.mgt/src/main/java/org/wso2/carbon/identity/application/mgt/dao/impl/CacheBackedApplicationDAO.java @@ -289,6 +289,7 @@ public ApplicationBasicInfo[] getAllPaginatedApplicationBasicInfo(int pageNumber } } + @Deprecated @Override public ApplicationBasicInfo[] getApplicationBasicInfo(int offset, int limit) throws IdentityApplicationManagementException { @@ -336,9 +337,11 @@ public ApplicationBasicInfo[] getPaginatedApplicationBasicInfo(int pageNumber, S } } + @Deprecated @Override public ApplicationBasicInfo[] getApplicationBasicInfo(String filter, int offset, int limit) throws IdentityApplicationManagementException { + return getApplicationBasicInfo(filter, offset, limit, false); } @@ -367,6 +370,7 @@ public int getCountOfAllApplications() throws IdentityApplicationManagementExcep } } + @Deprecated public int getCountOfApplications(String filter) throws IdentityApplicationManagementException { return getCountOfApplications(filter, false); diff --git a/components/application-mgt/org.wso2.carbon.identity.application.mgt/src/test/java/org/wso2/carbon/identity/application/mgt/ApplicationManagementServiceImplTest.java b/components/application-mgt/org.wso2.carbon.identity.application.mgt/src/test/java/org/wso2/carbon/identity/application/mgt/ApplicationManagementServiceImplTest.java index 09d24fb231a..ee8bde5b7c0 100644 --- a/components/application-mgt/org.wso2.carbon.identity.application.mgt/src/test/java/org/wso2/carbon/identity/application/mgt/ApplicationManagementServiceImplTest.java +++ b/components/application-mgt/org.wso2.carbon.identity.application.mgt/src/test/java/org/wso2/carbon/identity/application/mgt/ApplicationManagementServiceImplTest.java @@ -18,7 +18,6 @@ package org.wso2.carbon.identity.application.mgt; -import org.apache.axiom.om.OMElement; import org.mockito.MockedStatic; import org.mockito.Mockito; import org.testng.Assert; @@ -68,7 +67,6 @@ import org.wso2.carbon.identity.common.testng.realm.InMemoryRealmService; import org.wso2.carbon.identity.common.testng.realm.MockUserStoreManager; import org.wso2.carbon.identity.core.internal.IdentityCoreServiceDataHolder; -import org.wso2.carbon.identity.core.util.IdentityConfigParser; import org.wso2.carbon.identity.core.util.IdentityTenantUtil; import org.wso2.carbon.identity.core.util.IdentityUtil; import org.wso2.carbon.identity.secret.mgt.core.IdPSecretsProcessor; @@ -99,7 +97,6 @@ import java.nio.file.Paths; import java.util.Arrays; import java.util.Collections; -import java.util.Iterator; import java.util.List; import static java.lang.Boolean.FALSE; @@ -113,8 +110,7 @@ import static org.wso2.carbon.identity.application.common.util.IdentityApplicationConstants.PlatformType; import static org.wso2.carbon.identity.application.common.util.IdentityApplicationConstants.TEMPLATE_ID_SP_PROPERTY_NAME; import static org.wso2.carbon.identity.application.common.util.IdentityApplicationConstants.TEMPLATE_VERSION_SP_PROPERTY_NAME; -import static org.wso2.carbon.identity.application.mgt.ApplicationConstants.PORTAL_NAME_CONFIG_ELEMENT; -import static org.wso2.carbon.identity.application.mgt.ApplicationConstants.SYSTEM_PORTALS; +import static org.wso2.carbon.identity.application.mgt.ApplicationConstants.PORTAL_NAMES_CONFIG_ELEMENT; import static org.wso2.carbon.identity.application.mgt.ApplicationConstants.TRUSTED_APP_CONSENT_REQUIRED_PROPERTY; import static org.wso2.carbon.utils.multitenancy.MultitenantConstants.SUPER_TENANT_DOMAIN_NAME; import static org.wso2.carbon.utils.multitenancy.MultitenantConstants.SUPER_TENANT_ID; @@ -159,7 +155,6 @@ public class ApplicationManagementServiceImplTest { private IdPManagementDAO idPManagementDAO; private ApplicationManagementServiceImpl applicationManagementService; - private MockedStatic mockedIdentityConfigParser; @BeforeClass public void setup() throws RegistryException, UserStoreException, SecretManagementException { @@ -482,7 +477,8 @@ public Object[][] getAppsExcludingSystemPortals() { }; } - private void setupExcludeSystemPortalsEnv() throws IdentityApplicationManagementException { + private void setupExcludeSystemPortalsEnv() + throws IdentityApplicationManagementException { ServiceProvider serviceProvider1 = new ServiceProvider(); serviceProvider1.setApplicationName(APPLICATION_NAME_1); @@ -496,33 +492,22 @@ private void setupExcludeSystemPortalsEnv() throws IdentityApplicationManagement applicationManagementService.addApplication(serviceProvider1, SUPER_TENANT_DOMAIN_NAME, USERNAME_1); applicationManagementService.addApplication(serviceProvider2, SUPER_TENANT_DOMAIN_NAME, USERNAME_1); applicationManagementService.addApplication(serviceProvider3, SUPER_TENANT_DOMAIN_NAME, USERNAME_1); - - IdentityConfigParser mockConfigParser = Mockito.mock(IdentityConfigParser.class); - mockedIdentityConfigParser = Mockito.mockStatic(IdentityConfigParser.class); - mockedIdentityConfigParser.when(IdentityConfigParser::getInstance).thenReturn(mockConfigParser); - OMElement mockOMElement = mock(OMElement.class); - Iterator portals = mock(Iterator.class); - OMElement mockPortalsOMElement = mock(OMElement.class); - - when(mockConfigParser.getConfigElement(SYSTEM_PORTALS)).thenReturn(mockOMElement); - when(mockOMElement.getChildrenWithLocalName(PORTAL_NAME_CONFIG_ELEMENT)).thenReturn(portals); - when(portals.hasNext()).thenReturn(true).thenReturn(false); - when(portals.next()).thenReturn(mockPortalsOMElement); - when(mockPortalsOMElement.getText()).thenReturn(APPLICATION_NAME_3); } @Test public void testGetApplicationBasicInfoExcludingSystemPortals() throws IdentityApplicationManagementException { setupExcludeSystemPortalsEnv(); - - ApplicationBasicInfo[] applicationBasicInfo = applicationManagementService.getApplicationBasicInfo - (SUPER_TENANT_DOMAIN_NAME, USERNAME_1, "", 0, 10, true); - Assert.assertEquals(applicationBasicInfo.length, 2); - + try (MockedStatic identityUtil = Mockito.mockStatic(IdentityUtil.class)) { + List systemApp = Arrays.asList(APPLICATION_NAME_3); + identityUtil.when(() -> IdentityUtil.getPropertyAsList(PORTAL_NAMES_CONFIG_ELEMENT)) + .thenReturn(systemApp); + ApplicationBasicInfo[] applicationBasicInfo = applicationManagementService.getApplicationBasicInfo + (SUPER_TENANT_DOMAIN_NAME, USERNAME_1, "", 0, 10, true); + Assert.assertEquals(applicationBasicInfo.length, 2); + } // Deleting all added applications. applicationManagementService.deleteApplications(SUPER_TENANT_ID); - mockedIdentityConfigParser.close(); } @Test(dataProvider = "getAppsExcludingSystemPortalsDataProvider") @@ -530,14 +515,16 @@ public void testGetApplicationBasicInfoWithFilterExcludingSystemPortals(String f throws IdentityApplicationManagementException { setupExcludeSystemPortalsEnv(); - - ApplicationBasicInfo[] applicationBasicInfo = applicationManagementService.getApplicationBasicInfo - (SUPER_TENANT_DOMAIN_NAME, USERNAME_1, filter, 0, 10, true); - Assert.assertEquals(applicationBasicInfo.length, expectedResult); - + try (MockedStatic identityUtil = Mockito.mockStatic(IdentityUtil.class)) { + List systemApp = Arrays.asList(APPLICATION_NAME_3); + identityUtil.when(() -> IdentityUtil.getPropertyAsList(PORTAL_NAMES_CONFIG_ELEMENT)) + .thenReturn(systemApp); + ApplicationBasicInfo[] applicationBasicInfo = applicationManagementService.getApplicationBasicInfo + (SUPER_TENANT_DOMAIN_NAME, USERNAME_1, filter, 0, 10, true); + Assert.assertEquals(applicationBasicInfo.length, expectedResult); + } // Deleting all added applications. applicationManagementService.deleteApplications(SUPER_TENANT_ID); - mockedIdentityConfigParser.close(); } @Test @@ -545,12 +532,16 @@ public void testGetCountOfApplicationsExcludingSystemPortals() throws IdentityApplicationManagementException { setupExcludeSystemPortalsEnv(); - Assert.assertEquals(applicationManagementService.getCountOfApplications(SUPER_TENANT_DOMAIN_NAME, USERNAME_1, - "", true), 2); - + try (MockedStatic identityUtil = Mockito.mockStatic(IdentityUtil.class)) { + List systemApp = Arrays.asList(APPLICATION_NAME_3); + identityUtil.when(() -> IdentityUtil.getPropertyAsList(PORTAL_NAMES_CONFIG_ELEMENT)) + .thenReturn(systemApp); + Assert.assertEquals( + applicationManagementService.getCountOfApplications(SUPER_TENANT_DOMAIN_NAME, USERNAME_1, + "", true), 2); + } // Deleting all added applications. applicationManagementService.deleteApplications(SUPER_TENANT_ID); - mockedIdentityConfigParser.close(); } @Test(dataProvider = "getAppsExcludingSystemPortalsDataProvider") @@ -558,12 +549,16 @@ public void testGetCountOfApplicationsWithFilterExcludingSystemPortals(String fi throws IdentityApplicationManagementException { setupExcludeSystemPortalsEnv(); - Assert.assertEquals(applicationManagementService.getCountOfApplications(SUPER_TENANT_DOMAIN_NAME, USERNAME_1, - filter, true), expectedResult); - + try (MockedStatic identityUtil = Mockito.mockStatic(IdentityUtil.class)) { + List systemApp = Arrays.asList(APPLICATION_NAME_3); + identityUtil.when(() -> IdentityUtil.getPropertyAsList(PORTAL_NAMES_CONFIG_ELEMENT)) + .thenReturn(systemApp); + Assert.assertEquals( + applicationManagementService.getCountOfApplications(SUPER_TENANT_DOMAIN_NAME, USERNAME_1, + filter, true), expectedResult); + } // Deleting all added applications. applicationManagementService.deleteApplications(SUPER_TENANT_ID); - mockedIdentityConfigParser.close(); } @Test