diff --git a/src/main/java/de/ozgcloud/admin/keycloak/GroupMapper.java b/src/main/java/de/ozgcloud/admin/keycloak/GroupMapper.java index 4af927fa8481a073970825559f759b9234b72c90..2559aec6b8f68b0b3c7572217ac9ab2d0c039dc7 100644 --- a/src/main/java/de/ozgcloud/admin/keycloak/GroupMapper.java +++ b/src/main/java/de/ozgcloud/admin/keycloak/GroupMapper.java @@ -44,7 +44,7 @@ abstract class GroupMapper { return null; } if (values.size() > 1 && values.stream().distinct().count() > 1) { - LOG.warn("Group contains multiple values for {}. The first one is taken.", keycloakApiProperties.getOrganisationsEinheitIdKey()); + throw new GroupRepresentationMappingException("Group contains multiple values for organisationsEinheitId: %s".formatted(values)); } return values.getFirst(); } diff --git a/src/main/java/de/ozgcloud/admin/keycloak/GroupRepresentationMappingException.java b/src/main/java/de/ozgcloud/admin/keycloak/GroupRepresentationMappingException.java new file mode 100644 index 0000000000000000000000000000000000000000..c07743ddf481a64e3d296309fbaa556fbab31f14 --- /dev/null +++ b/src/main/java/de/ozgcloud/admin/keycloak/GroupRepresentationMappingException.java @@ -0,0 +1,8 @@ +package de.ozgcloud.admin.keycloak; + +public class GroupRepresentationMappingException extends RuntimeException { + + public GroupRepresentationMappingException(String message) { + super(message); + } +} diff --git a/src/test/java/de/ozgcloud/admin/keycloak/GroupMapperTest.java b/src/test/java/de/ozgcloud/admin/keycloak/GroupMapperTest.java index a8f6474f5e6a299d683415901f0995f7b72b4a7f..7d0c09d55ffd100e1dae94a66c2865869a8b0717 100644 --- a/src/test/java/de/ozgcloud/admin/keycloak/GroupMapperTest.java +++ b/src/test/java/de/ozgcloud/admin/keycloak/GroupMapperTest.java @@ -235,14 +235,14 @@ class GroupMapperTest { } @Test - void shouldReturnFirstValueIfMultipleAreAvailable() { + void shouldThrowExceptionIfMultipleValuesAreAvailable() { givenOrganisationsEinheitIdProperty(); var value = GroupRepresentationTestFactory.ORGANISATIONS_EINHEIT_ID; var value2 = UUID.randomUUID().toString(); - var result = mapper.getOrganisationsEinheitId(Map.of(ORGANIZATIONS_EINHEIT_ID_ATTRIBUTE, List.of(value, value2))); - - assertThat(result).isEqualTo(value); + assertThatExceptionOfType(GroupRepresentationMappingException.class) + .isThrownBy(() -> mapper.getOrganisationsEinheitId(Map.of(ORGANIZATIONS_EINHEIT_ID_ATTRIBUTE, List.of(value, value2)))) + .withMessage("Group contains multiple values for organisationsEinheitId: %s", List.of(value, value2)); } }