You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

84 lines
2.5 KiB

package de.fd.fh.server.user;
import de.fd.fh.server.user.web.ChangeUserRequest;
import de.fd.fh.server.user.web.UserRequest;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.mockito.ArgumentCaptor;
import java.util.Observable;
import java.util.Observer;
import static org.junit.jupiter.api.Assertions.*;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.*;
class UserServiceTest implements Observer
{
private Object event;
@BeforeEach
void before()
{
event = null;
}
@Test
void given_storedUser_when_changePassword_should_changePassword()
{
final User user =
User.of("testName");
final ChangeUserRequest request =
new ChangeUserRequest("testName", "newPassword");
final UserRepository repository = mock(UserRepository.class);
when(repository.findUserById(any(UserId.class)))
.thenReturn(user);
final UserService service = new UserService(repository);
service.addObserver(this);
final ArgumentCaptor<User> captor = ArgumentCaptor.forClass(User.class);
service.changePlayer(UserId.of("12345"), request);
verify(repository).save(captor.capture());
assertNotNull(captor.getValue(), "Should be saved");
assertNotNull(event);
}
@Test
void given_storedUser_when_getPlayer_should_returnPlayer()
{
final User user =
User.of("testName");
final UserRepository repository = mock(UserRepository.class);
when(repository.findUserById(any(UserId.class)))
.thenReturn(user);
final User result = new UserService(repository).getPlayer(UserId.of("12345"));
assertNotNull(result);
}
@Test
void given_storedUser_when_getSmallPlayer_should_returnSmallPlayer()
{
final User user =
new User(UserId.of("12345"), "testName");
final UserRepository repository = mock(UserRepository.class);
when(repository.findUserById(any(UserId.class)))
.thenReturn(user);
final UserRequest result = new UserService(repository).getSmallPlayer(UserId.of("12345"));
assertNotNull(result);
assertEquals("12345", result.getId(), "Wrong UserId");
assertEquals("testName", result.getName(), "Wrong Name");
}
@Override
public void update(Observable o, Object arg)
{
event = arg;
}
}