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.
|
|
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; } }
|