Andrew Grant 3 月之前
父節點
當前提交
3856926f76

+ 2 - 1
docs/Structure.txt

@@ -1,4 +1,5 @@
-TexController -> TexWriter -> PartsWriter -> PeoplePartWriter -> (PeoplePartHeader+PersonSectionWriter) -> (PersonPart SubSectionHeading + PersonSubSectionTimeLineWriter)
+TexController -> TexWriter -> PartsWriter -> PeoplePartWriter -> (PeoplePartHeader+PersonSectionWriter) ->
+    (PersonPart SubSectionHeading + PersonSubSectionTimeLineWriter + PersonSubSectionReferencesWriter)
 
 
 

+ 0 - 1
src/main/java/scot/carricksoftware/grantswriter/data/DMYImpl.java

@@ -131,6 +131,5 @@ public class DMYImpl implements DMY {
         }
         return -1;
 
-
     }
 }

+ 2 - 5
src/main/java/scot/carricksoftware/grantswriter/data/TimeLineDataImpl.java

@@ -21,13 +21,10 @@ public class TimeLineDataImpl implements TimeLineData {
 
     private SortedSet<String> refs;
 
-    private final DMY dmy;
-
     @SuppressWarnings({"FieldCanBeLocal", "unused"})
     private final TimeLineDateComparator timeLineDateComparator;
 
-    public TimeLineDataImpl(DMY dmy, TimeLineDateComparator timeLineDateComparator) {
-        this.dmy = dmy;
+    public TimeLineDataImpl( TimeLineDateComparator timeLineDateComparator) {
         this.timeLineDateComparator = timeLineDateComparator;
         this.timeLine = new TreeMap<>();
         this.refs = new TreeSet<>();
@@ -57,7 +54,7 @@ public class TimeLineDataImpl implements TimeLineData {
             if (censusEntry.getPersonalOccupation() != null && !censusEntry.getPersonalOccupation().isEmpty()) {
                 existingValues.add("Occupation recorded as " +
                                 censusEntry.getPersonalOccupation());
-                timeLine.put(dmy, existingValues);
+                timeLine.put(dmyKey, existingValues);
             }
             refs.add(censusEntry.getCensus().toString());
         }

+ 0 - 1
src/main/java/scot/carricksoftware/grantswriter/writer/latex/parts/people/subsections/PersonSubSectionReferencesWriterImpl.java

@@ -21,7 +21,6 @@ public class PersonSubSectionReferencesWriterImpl implements PersonSubSectionRef
     @Override
     public void write(Person person) {
         latexSubSectionHeader.write("References");
-
     }
 
 }

+ 3 - 0
src/main/java/scot/carricksoftware/grantswriter/writer/latex/parts/people/subsections/helpers/WriteReferences.java

@@ -6,6 +6,9 @@
 package scot.carricksoftware.grantswriter.writer.latex.parts.people.subsections.helpers;
 
 
+import java.util.SortedSet;
+
 public interface WriteReferences {
 
+    void write(SortedSet<String> references);
 }

+ 41 - 0
src/main/java/scot/carricksoftware/grantswriter/writer/latex/parts/people/subsections/helpers/WriteReferencesImpl.java

@@ -5,5 +5,46 @@
 
 package scot.carricksoftware.grantswriter.writer.latex.parts.people.subsections.helpers;
 
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import scot.carricksoftware.grantswriter.constants.LatexConstants;
+import scot.carricksoftware.grantswriter.writer.FileWriter;
+import scot.carricksoftware.grantswriter.writer.latex.LatexLongTabLeEnd;
+import scot.carricksoftware.grantswriter.writer.latex.LatexLongTableStart;
+
+import java.util.SortedSet;
+
 public class WriteReferencesImpl implements WriteReferences {
+
+    private static final Logger logger = LogManager.getLogger(WriteReferencesImpl.class);
+
+    private final FileWriter fileWriter;
+    private final LatexLongTableStart latexLongTableStart;
+    private final LatexLongTabLeEnd latexLongTabLeEnd;
+
+    public WriteReferencesImpl(FileWriter fileWriter,
+                               LatexLongTableStart latexLongTableStart,
+                               LatexLongTabLeEnd latexLongTabLeEnd) {
+        this.fileWriter = fileWriter;
+        this.latexLongTableStart = latexLongTableStart;
+        this.latexLongTabLeEnd = latexLongTabLeEnd;
+    }
+
+    @Override
+    public void write(SortedSet<String> references) {
+        logger.info("WriteReferences::write");
+
+        latexLongTableStart.write("l");
+        writeTheData(references);
+        latexLongTabLeEnd.write();
+    }
+
+    private void writeTheData(SortedSet<String> references) {
+        logger.info("WriteReferences::writeTheData");
+        for (String reference : references) {
+            String line =
+                    reference + LatexConstants.TABLE_LINE_END;
+            fileWriter.writeLine(line);
+        }
+    }
 }

+ 1 - 4
src/test/java/scot/carricksoftware/grantswriter/data/TimeLineDataAddTest.java

@@ -30,9 +30,6 @@ class TimeLineDataAddTest {
 
     private TimeLineData timeLineData;
 
-    @Mock
-    private DMY dmyMock;
-
     @Mock
     private TimeLineDateComparator timeLineDateComparatorMock;
 
@@ -44,7 +41,7 @@ class TimeLineDataAddTest {
 
     @BeforeEach
     void setUp() {
-        timeLineData = new TimeLineDataImpl(dmyMock, timeLineDateComparatorMock);
+        timeLineData = new TimeLineDataImpl(timeLineDateComparatorMock);
     }
 
     @Test

+ 1 - 1
src/test/java/scot/carricksoftware/grantswriter/data/TimeLineDataSetterAndGetterTest.java

@@ -36,7 +36,7 @@ class TimeLineDataSetterAndGetterTest {
 
     @BeforeEach
     void setUp() {
-        timeLineData = new TimeLineDataImpl(dmyMock, timeLineDateComparatorMock);
+        timeLineData = new TimeLineDataImpl(timeLineDateComparatorMock);
     }
 
     @Test

+ 18 - 2
src/test/java/scot/carricksoftware/grantswriter/writer/latex/parts/people/subsections/helpers/WriteReferencesTest.java

@@ -7,19 +7,35 @@ package scot.carricksoftware.grantswriter.writer.latex.parts.people.subsections.
 
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.mockito.Mock;
+import org.mockito.junit.jupiter.MockitoExtension;
+import scot.carricksoftware.grantswriter.writer.FileWriter;
+import scot.carricksoftware.grantswriter.writer.latex.LatexLongTabLeEnd;
+import scot.carricksoftware.grantswriter.writer.latex.LatexLongTableStart;
 
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 
-
+@ExtendWith(MockitoExtension.class)
 class WriteReferencesTest {
 
     private WriteReferences writeReferences;
 
+    @Mock
+    private FileWriter fileWriterMock;
+
+    @Mock
+    private LatexLongTableStart latexLongTableStartMock;
+
+    @Mock
+    private LatexLongTabLeEnd latexLongTabLeEndMock;
+
     @BeforeEach
     void setUp() {
-        writeReferences = new WriteReferencesImpl();
+        writeReferences = new WriteReferencesImpl(fileWriterMock, latexLongTableStartMock, latexLongTabLeEndMock);
     }
 
+
     @Test
     void constructorTest() {
         assertNotNull(writeReferences);