From a20484e486f6c758269237e7040fca42186a34a4 Mon Sep 17 00:00:00 2001 From: maverickstuder Date: Mon, 5 Feb 2024 11:06:23 +0100 Subject: [PATCH 1/2] RED-6625: Inconsistencies when creating a new user --- .../service/UserService.java | 4 ++++ .../com/knecon/fforesight/tests/UserTest.java | 18 ++++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/src/main/java/com/knecon/fforesight/tenantusermanagement/service/UserService.java b/src/main/java/com/knecon/fforesight/tenantusermanagement/service/UserService.java index a5bfbeb..6ea260b 100644 --- a/src/main/java/com/knecon/fforesight/tenantusermanagement/service/UserService.java +++ b/src/main/java/com/knecon/fforesight/tenantusermanagement/service/UserService.java @@ -73,6 +73,10 @@ public class UserService { @CacheEvict(value = "${commons.keycloak.userCache}", allEntries = true, beforeInvocation = true) public User createUser(CreateUserRequest user) { + if (StringUtils.isEmpty(user.getEmail())) { + throw new ResponseStatusException(HttpStatus.BAD_REQUEST, "Email address must be set"); + } + String username = StringUtils.isEmpty(user.getUsername()) ? user.getEmail() : user.getUsername(); if (!this.getTenantUsersResource().search(username).isEmpty()) { throw new ResponseStatusException(HttpStatus.BAD_REQUEST, "User with this username already exists"); diff --git a/src/test/java/com/knecon/fforesight/tests/UserTest.java b/src/test/java/com/knecon/fforesight/tests/UserTest.java index aa59134..b05faad 100644 --- a/src/test/java/com/knecon/fforesight/tests/UserTest.java +++ b/src/test/java/com/knecon/fforesight/tests/UserTest.java @@ -133,5 +133,23 @@ public class UserTest extends AbstractTenantUserManagementIntegrationTest { } } + + @Test + public void testCreateUserWithoutMail() { + + TenantContext.setTenantId(AbstractTenantUserManagementIntegrationTest.TEST_TENANT_ID); + + CreateUserRequest createUserRequest = new CreateUserRequest(); + createUserRequest.setFirstName("Test"); + createUserRequest.setLastName("New User"); + createUserRequest.setUsername(createUserRequest.getEmail()); + createUserRequest.setRoles(tenantUserManagementProperties.getKcRoleMapping().getAllRoles()); + try { + userClient.createUser(createUserRequest); + } catch (FeignException e) { + assertThat(e.status()).isEqualTo(400); + } + + } } From f0f888a63d19a479aa266248d84263340b4f690d Mon Sep 17 00:00:00 2001 From: maverickstuder Date: Mon, 5 Feb 2024 11:18:39 +0100 Subject: [PATCH 2/2] RED-6625: Inconsistencies when creating a new user --- .../java/com/knecon/fforesight/tests/UserTest.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/test/java/com/knecon/fforesight/tests/UserTest.java b/src/test/java/com/knecon/fforesight/tests/UserTest.java index b05faad..23f6d41 100644 --- a/src/test/java/com/knecon/fforesight/tests/UserTest.java +++ b/src/test/java/com/knecon/fforesight/tests/UserTest.java @@ -2,6 +2,8 @@ package com.knecon.fforesight.tests; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.fail; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertThrows; import java.util.HashSet; import java.util.List; @@ -144,11 +146,9 @@ public class UserTest extends AbstractTenantUserManagementIntegrationTest { createUserRequest.setLastName("New User"); createUserRequest.setUsername(createUserRequest.getEmail()); createUserRequest.setRoles(tenantUserManagementProperties.getKcRoleMapping().getAllRoles()); - try { - userClient.createUser(createUserRequest); - } catch (FeignException e) { - assertThat(e.status()).isEqualTo(400); - } + // Optionally, you can also check the status code of the exception + FeignException e = assertThrows(FeignException.class, () -> userClient.createUser(createUserRequest)); + assertEquals(400, e.status()); }