TimelineDataAddTest.java 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. /*
  2. * Copyright (c) 2025. Andrew Grant Carrick Software. All rights reserved
  3. *
  4. */
  5. package scot.carricksoftware.grantswriter.data;
  6. import org.junit.jupiter.api.BeforeEach;
  7. import org.junit.jupiter.api.Test;
  8. import org.junit.jupiter.api.extension.ExtendWith;
  9. import org.mockito.junit.jupiter.MockitoExtension;
  10. import org.springframework.util.LinkedMultiValueMap;
  11. import scot.carricksoftware.grantswriter.domains.census.Census;
  12. import scot.carricksoftware.grantswriter.domains.census.CensusEntry;
  13. import scot.carricksoftware.grantswriter.domains.places.Place;
  14. import scot.carricksoftware.grantswriter.enums.census.CensusDate;
  15. import java.util.ArrayList;
  16. import java.util.Collection;
  17. import java.util.List;
  18. import java.util.SortedSet;
  19. import static org.junit.jupiter.api.Assertions.assertTrue;
  20. import static scot.carricksoftware.grantswriter.GenerateCertificateRandomValues.GetRandomString;
  21. import static scot.carricksoftware.grantswriter.GenerateRandomPlaceValues.GetRandomPlace;
  22. @ExtendWith(MockitoExtension.class)
  23. public class TimelineDataAddTest {
  24. @SuppressWarnings({"unused"})
  25. private TimelineData timelineData;
  26. private List<CensusEntry> censusEntryList;
  27. private CensusEntry censusEntry;
  28. Census census;
  29. @BeforeEach
  30. void setUp() {
  31. timelineData = new TimelineDataImpl();
  32. Place place = GetRandomPlace();
  33. census = new Census();
  34. census.setPlace(place);
  35. census.setCensusDate(CensusDate.CENSUS_1861);
  36. censusEntry = new CensusEntry();
  37. censusEntry.setCensus(census);
  38. censusEntryList = new ArrayList<>();
  39. censusEntryList.add(censusEntry);
  40. }
  41. @Test
  42. void placeTest() {
  43. Place place = GetRandomPlace();
  44. census.setPlace(place);
  45. timelineData.add(censusEntryList);
  46. LinkedMultiValueMap<String, String> timeline = timelineData.getTimeline();
  47. String required = "Recorded as being at " + place;
  48. assertTrue(isFound(timeline, required));
  49. }
  50. @Test
  51. void occupationTest() {
  52. String occupation = GetRandomString();
  53. censusEntry.setPersonalOccupation(occupation);
  54. timelineData.add(censusEntryList);
  55. LinkedMultiValueMap<String, String> timeline = timelineData.getTimeline();
  56. String required = "Occupation recorded as " + occupation;
  57. assertTrue(isFound(timeline, required));
  58. }
  59. private boolean isFound(LinkedMultiValueMap<String, String> timeline, String required) {
  60. boolean found = false;
  61. Collection<List <String>> test = timeline.values();
  62. for (List<String> list : test) {
  63. for (String s : list) {
  64. if (s.equals(required)) {
  65. found = true;
  66. break;
  67. }
  68. }
  69. }
  70. return found;
  71. }
  72. @Test
  73. void refsTest() {
  74. timelineData.add(censusEntryList);
  75. SortedSet<String> refs = timelineData.getRefs();
  76. assertTrue(refs.contains(censusEntry.getCensus().toString()));
  77. }
  78. }