From dd0b33c4dce78f1ef9f881161319224bf053f2d3 Mon Sep 17 00:00:00 2001 From: soriaoli Date: Tue, 10 Mar 2026 15:18:27 +0100 Subject: [PATCH] [bugfix] - Validate considering Upper and lower cases --- .../LocationsRestrictionsEvaluator.java | 1 - ...ItemUserActionParameterLocationMother.java | 17 ++++++++++++ .../CatalogItemUserActionParameterMother.java | 16 +++++++---- .../LocationsRestrictionsEvaluatorTest.java | 27 +++++++++++++++++++ 4 files changed, 55 insertions(+), 6 deletions(-) create mode 100644 src/test/java/org/opendevstack/component_catalog/org/opendevstack/component_catalog/server/model/CatalogItemUserActionParameterLocationMother.java diff --git a/src/main/java/org/opendevstack/component_catalog/server/services/restrictions/evaluators/LocationsRestrictionsEvaluator.java b/src/main/java/org/opendevstack/component_catalog/server/services/restrictions/evaluators/LocationsRestrictionsEvaluator.java index 58e4c6b..ee8b24a 100644 --- a/src/main/java/org/opendevstack/component_catalog/server/services/restrictions/evaluators/LocationsRestrictionsEvaluator.java +++ b/src/main/java/org/opendevstack/component_catalog/server/services/restrictions/evaluators/LocationsRestrictionsEvaluator.java @@ -82,7 +82,6 @@ private List computeSharedLocations(String[] restrictionLocations, List< // We also put everything on lower case, to ensure String comparisons Set restrictionSet = Optional.ofNullable(restrictionLocations) .map(locations -> Arrays.stream(restrictionLocations) - .map(String::toLowerCase) .collect(Collectors.toSet()) ) .orElse(Collections.emptySet()); diff --git a/src/test/java/org/opendevstack/component_catalog/org/opendevstack/component_catalog/server/model/CatalogItemUserActionParameterLocationMother.java b/src/test/java/org/opendevstack/component_catalog/org/opendevstack/component_catalog/server/model/CatalogItemUserActionParameterLocationMother.java new file mode 100644 index 0000000..06acdf8 --- /dev/null +++ b/src/test/java/org/opendevstack/component_catalog/org/opendevstack/component_catalog/server/model/CatalogItemUserActionParameterLocationMother.java @@ -0,0 +1,17 @@ +package org.opendevstack.component_catalog.org.opendevstack.component_catalog.server.model; + +import org.opendevstack.component_catalog.server.model.CatalogItemUserActionParameterLocation; + +public class CatalogItemUserActionParameterLocationMother { + + public static CatalogItemUserActionParameterLocation of() { + return of("eu-mother-location"); + } + + public static CatalogItemUserActionParameterLocation of(String location) { + return CatalogItemUserActionParameterLocation.builder() + .location(location) + .value("1234") + .build(); + } +} diff --git a/src/test/java/org/opendevstack/component_catalog/server/mother/CatalogItemUserActionParameterMother.java b/src/test/java/org/opendevstack/component_catalog/server/mother/CatalogItemUserActionParameterMother.java index e37a445..bb49a83 100644 --- a/src/test/java/org/opendevstack/component_catalog/server/mother/CatalogItemUserActionParameterMother.java +++ b/src/test/java/org/opendevstack/component_catalog/server/mother/CatalogItemUserActionParameterMother.java @@ -1,5 +1,6 @@ package org.opendevstack.component_catalog.server.mother; +import org.opendevstack.component_catalog.org.opendevstack.component_catalog.server.model.CatalogItemUserActionParameterLocationMother; import org.opendevstack.component_catalog.server.model.CatalogItemUserActionParameter; import org.opendevstack.component_catalog.server.model.CatalogItemUserActionParameterLocation; import org.opendevstack.component_catalog.server.model.CatalogItemUserActionParameterValidation; @@ -14,10 +15,18 @@ public static CatalogItemUserActionParameter of() { return of("CatalogItemUserActionParameter Name"); } + public static CatalogItemUserActionParameter of(List locations) { + return of("CatalogItemUserActionParameter Name", locations); + } + public static CatalogItemUserActionParameter of(String name) { return of(name, "CatalogItemUserActionParameter Type", List.of(CatalogItemUserActionParameterValidationMother.of())); } + public static CatalogItemUserActionParameter of(String name, List locations) { + return of(name, "CatalogItemUserActionParameter Type", List.of(CatalogItemUserActionParameterValidationMother.of()), locations); + } + public static CatalogItemUserActionParameter of(String name, String type) { return of(name, type, Collections.emptyList()); } @@ -25,11 +34,7 @@ public static CatalogItemUserActionParameter of(String name, String type) { public static CatalogItemUserActionParameter of(String name, String type, List validations, List locations) { var locationObjects = locations.stream() - .map(loc -> { - var l = new CatalogItemUserActionParameterLocation(); - l.setLocation(loc); - return l; - }).toList(); + .map(CatalogItemUserActionParameterLocationMother::of).toList(); return CatalogItemUserActionParameter.builder() .name(name) .type(type) @@ -58,4 +63,5 @@ public static CatalogItemUserActionParameter of(String name, String type, List result = evaluator.evaluate(evaluationRestrictions, params); + + // then + assertThat(result.getLeft()) + .as("Uppercase 'EU' should NOT match lowercase 'eu'") + .isFalse(); + + assertThat(result.getRight()) + .isEqualTo("This product is not provisionable in the project location."); + } + }