63 lines
2 KiB
Java
63 lines
2 KiB
Java
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 jakarta.transaction.Transactional;
|
|
import org.junit.jupiter.api.Test;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
import static org.assertj.core.api.Assertions.assertThat;
|
|
import static org.assertj.core.api.Assertions.assertThatThrownBy;
|
|
|
|
class UserServiceTest extends RepositoryBasedTest {
|
|
|
|
private final UserService userService;
|
|
|
|
@Autowired
|
|
public UserServiceTest(UserRepository userRepository) {
|
|
super(userRepository);
|
|
userService = new UserService(userRepository);
|
|
}
|
|
|
|
@Test
|
|
@Transactional
|
|
void createNewUserTest() {
|
|
userService.create(EntityCreator.userRequest());
|
|
var entity = EntityCreator.user().build();
|
|
expect(entity);
|
|
}
|
|
|
|
@Test
|
|
void createDuplicatedUser() {
|
|
var first = EntityCreator.userRequest();
|
|
var second = EntityCreator.userRequest();
|
|
userService.create(first);
|
|
assertThatThrownBy(() -> userService.create(second))
|
|
.isInstanceOf(UserAlreadyExistsException.class)
|
|
.hasMessage("User with PESEL %s already exists".formatted(EntityCreator.Constants.PESEL));
|
|
}
|
|
|
|
@Test
|
|
@Transactional
|
|
void getExistingUserTest() {
|
|
var entity = EntityCreator.user().build();
|
|
userRepository.save(entity);
|
|
var userOptional = userService.get(EntityCreator.Constants.PESEL);
|
|
var expected = UserMapper.entityToPojo(entity);
|
|
assertThat(userOptional)
|
|
.isNotEmpty()
|
|
.get()
|
|
.usingRecursiveComparison()
|
|
.isEqualTo(expected);
|
|
}
|
|
|
|
@Test
|
|
void getNonExistingUserTest() {
|
|
var userOptional = userService.get(EntityCreator.Constants.PESEL);
|
|
assertThat(userOptional).isEmpty();
|
|
}
|
|
|
|
}
|