DataLoadCensusTest.java 3.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. package scot.carricksoftware.grants.bootstrap;
  2. import org.junit.jupiter.api.BeforeEach;
  3. import org.junit.jupiter.api.Test;
  4. import org.junit.jupiter.api.extension.ExtendWith;
  5. import org.mockito.ArgumentCaptor;
  6. import org.mockito.Mock;
  7. import org.mockito.junit.jupiter.MockitoExtension;
  8. import scot.carricksoftware.grants.commands.census.CensusCommand;
  9. import scot.carricksoftware.grants.commands.census.CensusEntryCommand;
  10. import scot.carricksoftware.grants.domains.census.Census;
  11. import scot.carricksoftware.grants.domains.people.Person;
  12. import scot.carricksoftware.grants.domains.places.Place;
  13. import scot.carricksoftware.grants.enums.censusentry.CensusEntryRelationship;
  14. import scot.carricksoftware.grants.services.census.CensusEntryService;
  15. import scot.carricksoftware.grants.services.census.CensusService;
  16. import scot.carricksoftware.grants.services.people.PersonService;
  17. import scot.carricksoftware.grants.services.places.places.PlaceService;
  18. import java.time.LocalDate;
  19. import static org.junit.jupiter.api.Assertions.assertEquals;
  20. import static org.mockito.Mockito.verify;
  21. import static org.mockito.Mockito.when;
  22. import static scot.carricksoftware.grants.GenerateRandomCensusValues.GetRandomCensus;
  23. import static scot.carricksoftware.grants.GenerateRandomPeopleValues.GetRandomPerson;
  24. import static scot.carricksoftware.grants.GenerateRandomPlaceValues.GetRandomPlace;
  25. @ExtendWith(MockitoExtension.class)
  26. public class DataLoadCensusTest {
  27. private DataLoadCensus dataLoadCensus;
  28. @Mock
  29. private CensusEntryService censusEntryServiceMock;
  30. @Mock
  31. private CensusService censusServiceMock;
  32. @Mock
  33. private PlaceService placeServiceMock;
  34. @Mock
  35. private PersonService personServiceMock;
  36. @BeforeEach
  37. public void setUp() {
  38. dataLoadCensus = new DataLoadCensus(censusServiceMock,
  39. censusEntryServiceMock,
  40. placeServiceMock,
  41. personServiceMock);
  42. }
  43. @Test
  44. public void censusIsCreatedTest() {
  45. Place place = GetRandomPlace();
  46. ArgumentCaptor<CensusCommand> captor = ArgumentCaptor.forClass(CensusCommand.class);
  47. when(placeServiceMock.findById(1L)).thenReturn(place);
  48. dataLoadCensus.load();
  49. verify(censusServiceMock).saveCensusCommand(captor.capture());
  50. assertEquals(captor.getValue().getDate(), LocalDate.now());
  51. assertEquals(captor.getValue().getPlace(), place);
  52. }
  53. @Test
  54. public void censusEntryIsCreatedTest() {
  55. ArgumentCaptor<CensusEntryCommand> captor = ArgumentCaptor.forClass(CensusEntryCommand.class);
  56. Census census = GetRandomCensus();
  57. Person person = GetRandomPerson();
  58. CensusEntryRelationship relationship = CensusEntryRelationship.COUSIN;
  59. when(censusServiceMock.findById(1L)).thenReturn(census);
  60. when(personServiceMock.findById(1L)).thenReturn(person);
  61. dataLoadCensus.load();
  62. verify(censusEntryServiceMock).saveCensusEntryCommand(captor.capture());
  63. assertEquals("Archie Grant", captor.getValue().getName());
  64. assertEquals(census, captor.getValue().getCensus());
  65. assertEquals(person, captor.getValue().getPerson());
  66. assertEquals(relationship, captor.getValue().getRelationship());
  67. }
  68. }