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.

50 lines
2.1 KiB

  1. package de.fd.fh.server.user;
  2. import de.fd.fh.server.access.events.AccountCreatedEvent;
  3. import de.fd.fh.server.access.events.AccountDeletedEvent;
  4. import org.junit.jupiter.api.Test;
  5. import org.mockito.ArgumentCaptor;
  6. import static org.junit.jupiter.api.Assertions.assertEquals;
  7. import static org.junit.jupiter.api.Assertions.assertNotNull;
  8. import static org.mockito.ArgumentMatchers.any;
  9. import static org.mockito.BDDMockito.then;
  10. import static org.mockito.Mockito.mock;
  11. import static org.mockito.Mockito.verify;
  12. class UserContextEventListenerTest
  13. {
  14. @Test
  15. void given_accountCreatedEvent_when_accountWasCreated_should_createUser()
  16. {
  17. final AccountCreatedEvent event = new AccountCreatedEvent("testName", UserId.of("12345"));
  18. final UserRepository repository = mock(UserRepository.class);
  19. final ArgumentCaptor<User> captor = ArgumentCaptor.forClass(User.class);
  20. new UserContextEventListener(repository).update(null, event);
  21. verify(repository).save(captor.capture());
  22. assertNotNull(captor.getValue());
  23. assertEquals("testName", captor.getValue().getName(), "Should have the correct name");
  24. assertEquals("12345", captor.getValue().getId().getIdentifier(), "Should have the correct userId");
  25. then(repository).should().save(any());
  26. then(repository).shouldHaveNoMoreInteractions();
  27. }
  28. @Test
  29. void given_accountDeletedEvent_when_accountWasDeleted_should_deleteUser()
  30. {
  31. final AccountDeletedEvent event = new AccountDeletedEvent(UserId.of("12345"));
  32. final UserRepository repository = mock(UserRepository.class);
  33. final ArgumentCaptor<UserId> captor = ArgumentCaptor.forClass(UserId.class);
  34. new UserContextEventListener(repository).update(null, event);
  35. verify(repository).deleteUserById(captor.capture());
  36. assertNotNull(captor.getValue());
  37. assertEquals("12345", captor.getValue().getIdentifier(), "No correct userId");
  38. then(repository).should().deleteUserById(any(UserId.class));
  39. then(repository).shouldHaveNoMoreInteractions();
  40. }
  41. }