Skip to content

Commit

Permalink
Merge pull request #21294 from PasinduYeshan/fix/scim-custom-dialect-…
Browse files Browse the repository at this point in the history
…test

Fix SCIM custom claim dialect related test issue
  • Loading branch information
PasinduYeshan authored Oct 9, 2024
2 parents a76caf1 + f0a4a3d commit 4731cc4
Show file tree
Hide file tree
Showing 3 changed files with 34 additions and 21 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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;
Expand Down Expand Up @@ -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);
Expand All @@ -139,25 +144,27 @@ 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);
backendURL = context.getContextUrls().getBackEndUrl();
loginLogoutClient = new LoginLogoutClient(context);
cookie = loginLogoutClient.login();
claimMetadataManagementServiceClient = new ClaimMetadataManagementServiceClient(backendURL, cookie);
int claimDialect = claimMetadataManagementServiceClient.getClaimDialects().length;

// Set custom schema dialect.
ClaimDialectDTO claimDialectDTO = new ClaimDialectDTO();
claimDialectDTO.setClaimDialectURI(CUSTOM_SCHEMA_URI);
claimMetadataManagementServiceClient.addClaimDialect(claimDialectDTO);

//Set claims
//Set claims.
setSimpleAttribute();
setComplexAttribute();
assertEquals(claimMetadataManagementServiceClient.getClaimDialects().length, claimDialect + 1);

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.")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand Down Expand Up @@ -123,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);
Expand All @@ -137,25 +141,27 @@ 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);
backendURL = context.getContextUrls().getBackEndUrl();
loginLogoutClient = new LoginLogoutClient(context);
cookie = loginLogoutClient.login();
claimMetadataManagementServiceClient = new ClaimMetadataManagementServiceClient(backendURL, cookie);
int claimDialect = claimMetadataManagementServiceClient.getClaimDialects().length;

// Set custom schema dialect.
ClaimDialectDTO claimDialectDTO = new ClaimDialectDTO();
claimDialectDTO.setClaimDialectURI(CUSTOM_SCHEMA_URI);
claimMetadataManagementServiceClient.addClaimDialect(claimDialectDTO);

//Set claims
//Set claims.
setSimpleAttribute();
setComplexAttribute();
assertEquals(claimMetadataManagementServiceClient.getClaimDialects().length, claimDialect + 1);

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.")
Expand Down
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2360,7 +2360,7 @@
<properties>

<!--Carbon Identity Framework Version-->
<carbon.identity.framework.version>7.5.56</carbon.identity.framework.version>
<carbon.identity.framework.version>7.5.57</carbon.identity.framework.version>
<carbon.identity.framework.version.range>[5.14.67, 8.0.0)</carbon.identity.framework.version.range>

<!--SAML Common Utils Version-->
Expand Down

0 comments on commit 4731cc4

Please sign in to comment.