feat: Dedicated exception on user creation

This commit is contained in:
Piotr Dec 2024-05-22 19:21:26 +02:00
parent 52ae2789fc
commit c7ef32e28d
Signed by: stawros
GPG key ID: F89F27AD8F881A91
3 changed files with 22 additions and 3 deletions

View file

@ -0,0 +1,11 @@
package eu.ztsh.wymiana.exception;
import eu.ztsh.wymiana.web.model.UserCreateRequest;
public class UserAlreadyExistsException extends RuntimeException {
public UserAlreadyExistsException(UserCreateRequest entity) {
super("User with PESEL %s already exists".formatted(entity.pesel()));
}
}

View file

@ -1,15 +1,21 @@
package eu.ztsh.wymiana.service;
import eu.ztsh.wymiana.data.repository.UserRepository;
import eu.ztsh.wymiana.model.User;
import eu.ztsh.wymiana.web.model.UserCreateRequest;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.Optional;
@RequiredArgsConstructor
@Service
public class UserService {
private final UserRepository userRepository;
public User create(@Valid UserCreateRequest request) {
throw new IllegalStateException("Not impplemented yet");
}

View file

@ -3,6 +3,7 @@ package eu.ztsh.wymiana.service;
import eu.ztsh.wymiana.EntityCreator;
import eu.ztsh.wymiana.RepositoryBasedTest;
import eu.ztsh.wymiana.data.repository.UserRepository;
import eu.ztsh.wymiana.exception.UserAlreadyExistsException;
import eu.ztsh.wymiana.util.UserMapper;
import eu.ztsh.wymiana.web.model.UserCreateRequest;
import org.junit.jupiter.api.Test;
@ -13,11 +14,12 @@ import static org.assertj.core.api.Assertions.assertThatThrownBy;
class UserServiceTest extends RepositoryBasedTest {
private final UserService userService = new UserService();
private final UserService userService;
@Autowired
public UserServiceTest(UserRepository userRepository) {
super(userRepository);
userService = new UserService(userRepository);
}
@Test
@ -33,8 +35,8 @@ class UserServiceTest extends RepositoryBasedTest {
var second = createRequest();
userService.create(first);
assertThatThrownBy(() -> userService.create(second))
.isInstanceOf(IllegalArgumentException.class)
.hasMessage("Duplicated PESEL: %s".formatted(EntityCreator.Constants.PESEL));
.isInstanceOf(UserAlreadyExistsException.class)
.hasMessage("User with PESEL %s already exists".formatted(EntityCreator.Constants.PESEL));
}
@Test