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.

83 lines
2.5 KiB

3 years ago
  1. package de.fd.fh.server.user;
  2. import de.fd.fh.server.user.web.ChangeUserRequest;
  3. import de.fd.fh.server.user.web.UserRequest;
  4. import org.junit.jupiter.api.BeforeEach;
  5. import org.junit.jupiter.api.Test;
  6. import org.mockito.ArgumentCaptor;
  7. import java.util.Observable;
  8. import java.util.Observer;
  9. import static org.junit.jupiter.api.Assertions.*;
  10. import static org.mockito.ArgumentMatchers.any;
  11. import static org.mockito.Mockito.*;
  12. class UserServiceTest implements Observer
  13. {
  14. private Object event;
  15. @BeforeEach
  16. void before()
  17. {
  18. event = null;
  19. }
  20. @Test
  21. void given_storedUser_when_changePassword_should_changePassword()
  22. {
  23. final User user =
  24. User.of("testName");
  25. final ChangeUserRequest request =
  26. new ChangeUserRequest("testName", "newPassword");
  27. final UserRepository repository = mock(UserRepository.class);
  28. when(repository.findUserById(any(UserId.class)))
  29. .thenReturn(user);
  30. final UserService service = new UserService(repository);
  31. service.addObserver(this);
  32. final ArgumentCaptor<User> captor = ArgumentCaptor.forClass(User.class);
  33. service.changePlayer(UserId.of("12345"), request);
  34. verify(repository).save(captor.capture());
  35. assertNotNull(captor.getValue(), "Should be saved");
  36. assertNotNull(event);
  37. }
  38. @Test
  39. void given_storedUser_when_getPlayer_should_returnPlayer()
  40. {
  41. final User user =
  42. User.of("testName");
  43. final UserRepository repository = mock(UserRepository.class);
  44. when(repository.findUserById(any(UserId.class)))
  45. .thenReturn(user);
  46. final User result = new UserService(repository).getPlayer(UserId.of("12345"));
  47. assertNotNull(result);
  48. }
  49. @Test
  50. void given_storedUser_when_getSmallPlayer_should_returnSmallPlayer()
  51. {
  52. final User user =
  53. new User(UserId.of("12345"), "testName");
  54. final UserRepository repository = mock(UserRepository.class);
  55. when(repository.findUserById(any(UserId.class)))
  56. .thenReturn(user);
  57. final UserRequest result = new UserService(repository).getSmallPlayer(UserId.of("12345"));
  58. assertNotNull(result);
  59. assertEquals("12345", result.getId(), "Wrong UserId");
  60. assertEquals("testName", result.getName(), "Wrong Name");
  61. }
  62. @Override
  63. public void update(Observable o, Object arg)
  64. {
  65. event = arg;
  66. }
  67. }