diff --git a/libs/onboarding-sdk-product/src/test/java/it/pagopa/selfcare/product/service/ProductServiceDefaultTest.java b/libs/onboarding-sdk-product/src/test/java/it/pagopa/selfcare/product/service/ProductServiceDefaultTest.java index ce1b11631..d57d49a65 100644 --- a/libs/onboarding-sdk-product/src/test/java/it/pagopa/selfcare/product/service/ProductServiceDefaultTest.java +++ b/libs/onboarding-sdk-product/src/test/java/it/pagopa/selfcare/product/service/ProductServiceDefaultTest.java @@ -7,7 +7,6 @@ import it.pagopa.selfcare.product.entity.ProductRoleInfo; import it.pagopa.selfcare.product.exception.InvalidRoleMappingException; import it.pagopa.selfcare.product.exception.ProductNotFoundException; -import it.pagopa.selfcare.product.service.ProductServiceDefault; import org.junit.jupiter.api.Test; import java.util.HashMap; @@ -24,7 +23,7 @@ public class ProductServiceDefaultTest { "{\"id\":\"prod-inactive\",\"status\":\"INACTIVE\"}]"; final private String PRODUCT_JSON_STRING_WITH_ROLEMAPPING = "[{\"id\":\"prod-test-parent\",\"status\":\"ACTIVE\"}," + - "{\"id\":\"prod-test\", \"parentId\":\"prod-test-parent\",\"status\":\"ACTIVE\", \"roleMappings\" : {\"MANAGER\":{\"roles\":[{\"code\":\"operatore\"}]}}}," + + "{\"id\":\"prod-test\", \"parentId\":\"prod-test-parent\",\"status\":\"ACTIVE\", \"roleMappings\" : {\"MANAGER\":{\"roles\":[{\"code\":\"operatore\"}], \"phasesAdditionAllowed\":[\"onboarding\"]}}}," + "{\"id\":\"prod-inactive\",\"status\":\"INACTIVE\"}]"; @Test diff --git a/libs/onboarding-sdk-product/src/test/java/it/pagopa/selfcare/product/utils/ProductUtilsTest.java b/libs/onboarding-sdk-product/src/test/java/it/pagopa/selfcare/product/utils/ProductUtilsTest.java new file mode 100644 index 000000000..85890ee3e --- /dev/null +++ b/libs/onboarding-sdk-product/src/test/java/it/pagopa/selfcare/product/utils/ProductUtilsTest.java @@ -0,0 +1,59 @@ +package it.pagopa.selfcare.product.utils; + +import it.pagopa.selfcare.onboarding.common.PartyRole; +import it.pagopa.selfcare.product.entity.PHASE_ADDITION_ALLOWED; +import it.pagopa.selfcare.product.entity.Product; +import it.pagopa.selfcare.product.entity.ProductRole; +import it.pagopa.selfcare.product.entity.ProductRoleInfo; +import org.junit.jupiter.api.Test; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +public class ProductUtilsTest { + + private final static String productRoleManager = "admin"; + + @Test + void validRoles() { + Product product = dummyProduct(); + List partyRoles = ProductUtils.validRoles(product, PHASE_ADDITION_ALLOWED.ONBOARDING); + assertEquals(1, partyRoles.size()); + assertEquals(PartyRole.MANAGER, partyRoles.get(0)); + } + + @Test + void validRolesByProductRole() { + Product product = dummyProduct(); + List partyRoles = ProductUtils.validRolesByProductRole(product, PHASE_ADDITION_ALLOWED.ONBOARDING, productRoleManager); + assertEquals(1, partyRoles.size()); + assertEquals(PartyRole.MANAGER, partyRoles.get(0)); + } + + Product dummyProduct() { + + ProductRole productRole = new ProductRole(); + productRole.setCode(productRoleManager); + ProductRoleInfo productRoleInfo = new ProductRoleInfo(); + productRoleInfo.setRoles(List.of(productRole)); + productRoleInfo.setPhasesAdditionAllowed(List.of(PHASE_ADDITION_ALLOWED.ONBOARDING.value)); + + ProductRole productRoleOperator = new ProductRole(); + productRoleOperator.setCode("operator"); + ProductRoleInfo productRoleInfoOperator = new ProductRoleInfo(); + productRoleInfoOperator.setRoles(List.of(productRoleOperator)); + productRoleInfoOperator.setPhasesAdditionAllowed(List.of(PHASE_ADDITION_ALLOWED.DASHBOARD.value)); + + Map roleMapping = new HashMap<>(); + roleMapping.put(PartyRole.MANAGER, productRoleInfo); + roleMapping.put(PartyRole.OPERATOR, productRoleInfoOperator); + + Product productResource = new Product(); + productResource.setId("productId"); + productResource.setRoleMappings(roleMapping); + return productResource; + } +}