From ebc269eb0864f10f7d137ca92cf7cd2e3195452b Mon Sep 17 00:00:00 2001 From: Pasindu Yeshan Date: Wed, 9 Oct 2024 00:57:52 +0530 Subject: [PATCH 1/4] Fix SCIM custom claim dialect test issue --- .../SCIM2CustomSchemaUserTestCase.java | 23 +++++++++++++------ 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/modules/integration/tests-integration/tests-backend/src/test/java/org/wso2/identity/integration/test/scim2/rest/api/customSchema/SCIM2CustomSchemaUserTestCase.java b/modules/integration/tests-integration/tests-backend/src/test/java/org/wso2/identity/integration/test/scim2/rest/api/customSchema/SCIM2CustomSchemaUserTestCase.java index 4c992866d75..f4eebdf1853 100644 --- a/modules/integration/tests-integration/tests-backend/src/test/java/org/wso2/identity/integration/test/scim2/rest/api/customSchema/SCIM2CustomSchemaUserTestCase.java +++ b/modules/integration/tests-integration/tests-backend/src/test/java/org/wso2/identity/integration/test/scim2/rest/api/customSchema/SCIM2CustomSchemaUserTestCase.java @@ -48,6 +48,7 @@ import org.wso2.identity.integration.test.scim2.rest.api.SCIMUtils; import java.rmi.RemoteException; +import java.util.Arrays; import java.util.LinkedHashMap; import java.util.List; @@ -145,17 +146,25 @@ private void createClaims() throws Exception { loginLogoutClient = new LoginLogoutClient(context); cookie = loginLogoutClient.login(); claimMetadataManagementServiceClient = new ClaimMetadataManagementServiceClient(backendURL, cookie); - int claimDialect = claimMetadataManagementServiceClient.getClaimDialects().length; + ClaimDialectDTO[] claimDialects = claimMetadataManagementServiceClient.getClaimDialects(); - // Set custom schema dialect. - ClaimDialectDTO claimDialectDTO = new ClaimDialectDTO(); - claimDialectDTO.setClaimDialectURI(CUSTOM_SCHEMA_URI); - claimMetadataManagementServiceClient.addClaimDialect(claimDialectDTO); + boolean isCustomSchemaDialectExist = Arrays.stream(claimDialects) + .anyMatch(claimDialect -> StringUtils.equals(claimDialect.getClaimDialectURI(), CUSTOM_SCHEMA_URI)); - //Set claims + if (!isCustomSchemaDialectExist) { + // Set custom schema dialect. + ClaimDialectDTO claimDialectDTO = new ClaimDialectDTO(); + claimDialectDTO.setClaimDialectURI(CUSTOM_SCHEMA_URI); + claimMetadataManagementServiceClient.addClaimDialect(claimDialectDTO); + } + + //Set claims. setSimpleAttribute(); setComplexAttribute(); - assertEquals(claimMetadataManagementServiceClient.getClaimDialects().length, claimDialect + 1); + + ClaimDialectDTO[] updatedClaimDialects = claimMetadataManagementServiceClient.getClaimDialects(); + Assert.assertTrue(Arrays.stream(updatedClaimDialects) + .anyMatch(dialect -> StringUtils.equals(dialect.getClaimDialectURI(), CUSTOM_SCHEMA_URI))); } @Test(dependsOnMethods = "createClaims", description = "Create user with custom schema dialect.") From 973ecf075760dd7a41370125dd10d17a5d4b2fde Mon Sep 17 00:00:00 2001 From: Pasindu Yeshan Date: Wed, 9 Oct 2024 09:53:51 +0530 Subject: [PATCH 2/4] Fix SCIM2CustomSchemaMeTestCase and add additional assertion --- .../SCIM2CustomSchemaMeTestCase.java | 35 +++++++++++++++---- .../SCIM2CustomSchemaUserTestCase.java | 14 +++++++- 2 files changed, 41 insertions(+), 8 deletions(-) diff --git a/modules/integration/tests-integration/tests-backend/src/test/java/org/wso2/identity/integration/test/scim2/rest/api/customSchema/SCIM2CustomSchemaMeTestCase.java b/modules/integration/tests-integration/tests-backend/src/test/java/org/wso2/identity/integration/test/scim2/rest/api/customSchema/SCIM2CustomSchemaMeTestCase.java index c66318a2438..5535e25c008 100644 --- a/modules/integration/tests-integration/tests-backend/src/test/java/org/wso2/identity/integration/test/scim2/rest/api/customSchema/SCIM2CustomSchemaMeTestCase.java +++ b/modules/integration/tests-integration/tests-backend/src/test/java/org/wso2/identity/integration/test/scim2/rest/api/customSchema/SCIM2CustomSchemaMeTestCase.java @@ -21,6 +21,7 @@ import io.restassured.RestAssured; import io.restassured.response.ExtractableResponse; import io.restassured.response.Response; +import org.apache.commons.lang.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.http.HttpHeaders; @@ -46,6 +47,7 @@ import org.wso2.identity.integration.test.scim2.rest.api.SCIM2BaseTest; import java.rmi.RemoteException; +import java.util.Arrays; import java.util.LinkedHashMap; import static org.hamcrest.CoreMatchers.notNullValue; @@ -125,7 +127,10 @@ public void init() throws RemoteException, InterruptedException { public void testFinish() { try { - claimMetadataManagementServiceClient.removeClaimDialect(CUSTOM_SCHEMA_URI); + claimMetadataManagementServiceClient.removeExternalClaim(CUSTOM_SCHEMA_URI, COUNTRY_CLAIM_ATTRIBUTE_URI); + claimMetadataManagementServiceClient.removeExternalClaim(CUSTOM_SCHEMA_URI, + MANAGER_EMAIL_CLAIM_ATTRIBUTE_URI); + claimMetadataManagementServiceClient.removeExternalClaim(CUSTOM_SCHEMA_URI, MANAGER_CLAIM_ATTRIBUTE_URI); claimMetadataManagementServiceClient.removeLocalClaim(MANAGER_LOCAL_CLAIM_URI); } catch (RemoteException | ClaimMetadataManagementServiceClaimMetadataException e) { log.error(e); @@ -147,17 +152,33 @@ private void createClaims() throws Exception { loginLogoutClient = new LoginLogoutClient(context); cookie = loginLogoutClient.login(); claimMetadataManagementServiceClient = new ClaimMetadataManagementServiceClient(backendURL, cookie); - int claimDialect = claimMetadataManagementServiceClient.getClaimDialects().length; + ClaimDialectDTO[] claimDialects = claimMetadataManagementServiceClient.getClaimDialects(); - // Set custom schema dialect. - ClaimDialectDTO claimDialectDTO = new ClaimDialectDTO(); - claimDialectDTO.setClaimDialectURI(CUSTOM_SCHEMA_URI); - claimMetadataManagementServiceClient.addClaimDialect(claimDialectDTO); + boolean isCustomSchemaDialectExist = Arrays.stream(claimDialects) + .anyMatch(claimDialect -> StringUtils.equals(claimDialect.getClaimDialectURI(), CUSTOM_SCHEMA_URI)); + + if (!isCustomSchemaDialectExist) { + // Set custom schema dialect. + ClaimDialectDTO claimDialectDTO = new ClaimDialectDTO(); + claimDialectDTO.setClaimDialectURI(CUSTOM_SCHEMA_URI); + claimMetadataManagementServiceClient.addClaimDialect(claimDialectDTO); + } //Set claims setSimpleAttribute(); setComplexAttribute(); - assertEquals(claimMetadataManagementServiceClient.getClaimDialects().length, claimDialect + 1); + ClaimDialectDTO[] updatedClaimDialects = claimMetadataManagementServiceClient.getClaimDialects(); + Assert.assertTrue(Arrays.stream(updatedClaimDialects) + .anyMatch(dialect -> StringUtils.equals(dialect.getClaimDialectURI(), CUSTOM_SCHEMA_URI))); + + ExternalClaimDTO[] externalClaimDTOs = + claimMetadataManagementServiceClient.getExternalClaims(CUSTOM_SCHEMA_URI); + Assert.assertTrue(Arrays.stream(externalClaimDTOs) + .anyMatch(claim -> StringUtils.equals(claim.getExternalClaimURI(), COUNTRY_CLAIM_ATTRIBUTE_URI))); + Assert.assertTrue(Arrays.stream(externalClaimDTOs) + .anyMatch(claim -> StringUtils.equals(claim.getExternalClaimURI(), MANAGER_CLAIM_ATTRIBUTE_URI))); + Assert.assertTrue(Arrays.stream(externalClaimDTOs) + .anyMatch(claim -> StringUtils.equals(claim.getExternalClaimURI(), MANAGER_EMAIL_CLAIM_ATTRIBUTE_URI))); } @Test(dependsOnMethods = "createClaims", description = "Create user with custom schema dialect.") diff --git a/modules/integration/tests-integration/tests-backend/src/test/java/org/wso2/identity/integration/test/scim2/rest/api/customSchema/SCIM2CustomSchemaUserTestCase.java b/modules/integration/tests-integration/tests-backend/src/test/java/org/wso2/identity/integration/test/scim2/rest/api/customSchema/SCIM2CustomSchemaUserTestCase.java index f4eebdf1853..9b76b39ce3e 100644 --- a/modules/integration/tests-integration/tests-backend/src/test/java/org/wso2/identity/integration/test/scim2/rest/api/customSchema/SCIM2CustomSchemaUserTestCase.java +++ b/modules/integration/tests-integration/tests-backend/src/test/java/org/wso2/identity/integration/test/scim2/rest/api/customSchema/SCIM2CustomSchemaUserTestCase.java @@ -124,7 +124,10 @@ public void init() throws RemoteException, InterruptedException { public void testFinish() { try { - claimMetadataManagementServiceClient.removeClaimDialect(CUSTOM_SCHEMA_URI); + claimMetadataManagementServiceClient.removeExternalClaim(CUSTOM_SCHEMA_URI, COUNTRY_CLAIM_ATTRIBUTE_URI); + claimMetadataManagementServiceClient.removeExternalClaim(CUSTOM_SCHEMA_URI, + MANAGER_EMAIL_CLAIM_ATTRIBUTE_URI); + claimMetadataManagementServiceClient.removeExternalClaim(CUSTOM_SCHEMA_URI, MANAGER_CLAIM_ATTRIBUTE_URI); claimMetadataManagementServiceClient.removeLocalClaim(MANAGER_LOCAL_CLAIM_URI); } catch (RemoteException | ClaimMetadataManagementServiceClaimMetadataException e) { log.error(e); @@ -165,6 +168,15 @@ private void createClaims() throws Exception { ClaimDialectDTO[] updatedClaimDialects = claimMetadataManagementServiceClient.getClaimDialects(); Assert.assertTrue(Arrays.stream(updatedClaimDialects) .anyMatch(dialect -> StringUtils.equals(dialect.getClaimDialectURI(), CUSTOM_SCHEMA_URI))); + + ExternalClaimDTO[] externalClaimDTOs = + claimMetadataManagementServiceClient.getExternalClaims(CUSTOM_SCHEMA_URI); + Assert.assertTrue(Arrays.stream(externalClaimDTOs) + .anyMatch(claim -> StringUtils.equals(claim.getExternalClaimURI(), COUNTRY_CLAIM_ATTRIBUTE_URI))); + Assert.assertTrue(Arrays.stream(externalClaimDTOs) + .anyMatch(claim -> StringUtils.equals(claim.getExternalClaimURI(), MANAGER_CLAIM_ATTRIBUTE_URI))); + Assert.assertTrue(Arrays.stream(externalClaimDTOs) + .anyMatch(claim -> StringUtils.equals(claim.getExternalClaimURI(), MANAGER_EMAIL_CLAIM_ATTRIBUTE_URI))); } @Test(dependsOnMethods = "createClaims", description = "Create user with custom schema dialect.") From 82e711dc4429242e31e5bc66473679e12a47333d Mon Sep 17 00:00:00 2001 From: Pasindu Yeshan Date: Wed, 9 Oct 2024 11:37:30 +0530 Subject: [PATCH 3/4] Removed custom claim dialect adding part. --- .../SCIM2CustomSchemaMeTestCase.java | 18 ++---------------- .../SCIM2CustomSchemaUserTestCase.java | 17 +---------------- 2 files changed, 3 insertions(+), 32 deletions(-) diff --git a/modules/integration/tests-integration/tests-backend/src/test/java/org/wso2/identity/integration/test/scim2/rest/api/customSchema/SCIM2CustomSchemaMeTestCase.java b/modules/integration/tests-integration/tests-backend/src/test/java/org/wso2/identity/integration/test/scim2/rest/api/customSchema/SCIM2CustomSchemaMeTestCase.java index 5535e25c008..4e8c4c67cf5 100644 --- a/modules/integration/tests-integration/tests-backend/src/test/java/org/wso2/identity/integration/test/scim2/rest/api/customSchema/SCIM2CustomSchemaMeTestCase.java +++ b/modules/integration/tests-integration/tests-backend/src/test/java/org/wso2/identity/integration/test/scim2/rest/api/customSchema/SCIM2CustomSchemaMeTestCase.java @@ -144,7 +144,7 @@ public void testInit() { RestAssured.basePath = basePath; } - @Test(description = "Creates custom schema dialect, simple attribute and complex attributes.") + @Test(description = "Creates simple attribute and complex attributes in urn:scim:wso2:schema.") private void createClaims() throws Exception { AutomationContext context = new AutomationContext("IDENTITY", mode); @@ -152,24 +152,10 @@ private void createClaims() throws Exception { loginLogoutClient = new LoginLogoutClient(context); cookie = loginLogoutClient.login(); claimMetadataManagementServiceClient = new ClaimMetadataManagementServiceClient(backendURL, cookie); - ClaimDialectDTO[] claimDialects = claimMetadataManagementServiceClient.getClaimDialects(); - boolean isCustomSchemaDialectExist = Arrays.stream(claimDialects) - .anyMatch(claimDialect -> StringUtils.equals(claimDialect.getClaimDialectURI(), CUSTOM_SCHEMA_URI)); - - if (!isCustomSchemaDialectExist) { - // Set custom schema dialect. - ClaimDialectDTO claimDialectDTO = new ClaimDialectDTO(); - claimDialectDTO.setClaimDialectURI(CUSTOM_SCHEMA_URI); - claimMetadataManagementServiceClient.addClaimDialect(claimDialectDTO); - } - - //Set claims + //Set claims. setSimpleAttribute(); setComplexAttribute(); - ClaimDialectDTO[] updatedClaimDialects = claimMetadataManagementServiceClient.getClaimDialects(); - Assert.assertTrue(Arrays.stream(updatedClaimDialects) - .anyMatch(dialect -> StringUtils.equals(dialect.getClaimDialectURI(), CUSTOM_SCHEMA_URI))); ExternalClaimDTO[] externalClaimDTOs = claimMetadataManagementServiceClient.getExternalClaims(CUSTOM_SCHEMA_URI); diff --git a/modules/integration/tests-integration/tests-backend/src/test/java/org/wso2/identity/integration/test/scim2/rest/api/customSchema/SCIM2CustomSchemaUserTestCase.java b/modules/integration/tests-integration/tests-backend/src/test/java/org/wso2/identity/integration/test/scim2/rest/api/customSchema/SCIM2CustomSchemaUserTestCase.java index 9b76b39ce3e..57ba44cd3ba 100644 --- a/modules/integration/tests-integration/tests-backend/src/test/java/org/wso2/identity/integration/test/scim2/rest/api/customSchema/SCIM2CustomSchemaUserTestCase.java +++ b/modules/integration/tests-integration/tests-backend/src/test/java/org/wso2/identity/integration/test/scim2/rest/api/customSchema/SCIM2CustomSchemaUserTestCase.java @@ -141,7 +141,7 @@ public void testInit() { RestAssured.basePath = basePath; } - @Test(description = "Creates custom schema dialect, simple attribute and complex attributes.") + @Test(description = "Creates simple attribute and complex attributes in urn:scim:wso2:schema.") private void createClaims() throws Exception { AutomationContext context = new AutomationContext("IDENTITY", mode); @@ -149,26 +149,11 @@ private void createClaims() throws Exception { loginLogoutClient = new LoginLogoutClient(context); cookie = loginLogoutClient.login(); claimMetadataManagementServiceClient = new ClaimMetadataManagementServiceClient(backendURL, cookie); - ClaimDialectDTO[] claimDialects = claimMetadataManagementServiceClient.getClaimDialects(); - - boolean isCustomSchemaDialectExist = Arrays.stream(claimDialects) - .anyMatch(claimDialect -> StringUtils.equals(claimDialect.getClaimDialectURI(), CUSTOM_SCHEMA_URI)); - - if (!isCustomSchemaDialectExist) { - // Set custom schema dialect. - ClaimDialectDTO claimDialectDTO = new ClaimDialectDTO(); - claimDialectDTO.setClaimDialectURI(CUSTOM_SCHEMA_URI); - claimMetadataManagementServiceClient.addClaimDialect(claimDialectDTO); - } //Set claims. setSimpleAttribute(); setComplexAttribute(); - ClaimDialectDTO[] updatedClaimDialects = claimMetadataManagementServiceClient.getClaimDialects(); - Assert.assertTrue(Arrays.stream(updatedClaimDialects) - .anyMatch(dialect -> StringUtils.equals(dialect.getClaimDialectURI(), CUSTOM_SCHEMA_URI))); - ExternalClaimDTO[] externalClaimDTOs = claimMetadataManagementServiceClient.getExternalClaims(CUSTOM_SCHEMA_URI); Assert.assertTrue(Arrays.stream(externalClaimDTOs) From cce3820dc30dedad9b2dd033c3bfc2bdbbb3fff0 Mon Sep 17 00:00:00 2001 From: Pasindu Yeshan Date: Wed, 9 Oct 2024 14:50:09 +0530 Subject: [PATCH 4/4] Update framework version. --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 29eddbe9998..a16c213cf01 100755 --- a/pom.xml +++ b/pom.xml @@ -2360,7 +2360,7 @@ - 7.5.48 + 7.5.57 [5.14.67, 8.0.0)