feat: UserService TDD
This commit is contained in:
parent
3121caf8f7
commit
7207e9b256
2 changed files with 84 additions and 0 deletions
21
src/main/java/eu/ztsh/wymiana/service/UserService.java
Normal file
21
src/main/java/eu/ztsh/wymiana/service/UserService.java
Normal file
|
@ -0,0 +1,21 @@
|
|||
package eu.ztsh.wymiana.service;
|
||||
|
||||
import eu.ztsh.wymiana.model.User;
|
||||
import eu.ztsh.wymiana.web.model.UserCreateRequest;
|
||||
import jakarta.validation.Valid;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
@Service
|
||||
public class UserService {
|
||||
|
||||
public User create(@Valid UserCreateRequest request) {
|
||||
throw new IllegalStateException("Not impplemented yet");
|
||||
}
|
||||
|
||||
public Optional<User> get(String pesel) {
|
||||
throw new IllegalStateException("Not impplemented yet");
|
||||
}
|
||||
|
||||
}
|
63
src/test/java/eu/ztsh/wymiana/service/UserServiceTest.java
Normal file
63
src/test/java/eu/ztsh/wymiana/service/UserServiceTest.java
Normal file
|
@ -0,0 +1,63 @@
|
|||
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.util.UserMapper;
|
||||
import eu.ztsh.wymiana.web.model.UserCreateRequest;
|
||||
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 = new UserService();
|
||||
|
||||
@Autowired
|
||||
public UserServiceTest(UserRepository userRepository) {
|
||||
super(userRepository);
|
||||
}
|
||||
|
||||
@Test
|
||||
void createNewUserTest() {
|
||||
userService.create(createRequest());
|
||||
var entity = EntityCreator.user().build();
|
||||
expect(entity);
|
||||
}
|
||||
|
||||
@Test
|
||||
void createDuplicatedUser() {
|
||||
userService.create(createRequest());
|
||||
assertThatThrownBy(() -> userService.create(createRequest()))
|
||||
.isInstanceOf(IllegalArgumentException.class)
|
||||
.hasMessage("Duplicated PESEL: %s".formatted(EntityCreator.Constants.PESEL));
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
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();
|
||||
}
|
||||
|
||||
private UserCreateRequest createRequest() {
|
||||
return new UserCreateRequest(EntityCreator.Constants.NAME, EntityCreator.Constants.SURNAME,
|
||||
EntityCreator.Constants.PESEL, 20.10);
|
||||
}
|
||||
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue