Selaa lähdekoodia

LatexPackageDeclaration

Andrew Grant 3 kuukautta sitten
vanhempi
commit
eb29fdeb3b

+ 2 - 0
src/main/java/scot/carricksoftware/grantswriter/constants/LatexConstants.java

@@ -22,6 +22,8 @@ public class LatexConstants {
     public static final String PART_TERM = "\\part{";
     public static final String SECTION_TERM = "\\section{";
     public static final String SUBSECTION_TERM = "\\subsection{";
+    @SuppressWarnings("SpellCheckingInspection")
+    public static final String USE_PACKAGE_TERM = "\\usepackage{";
     public static final String TERM_END = "}";
 
 }

+ 9 - 1
src/main/java/scot/carricksoftware/grantswriter/writer/latex/LatexDocumentStartImpl.java

@@ -18,14 +18,22 @@ public class LatexDocumentStartImpl implements LatexDocumentStart {
 
     private final FileWriter fileWriter;
 
-    public LatexDocumentStartImpl(FileWriter fileWriter) {
+    private final LatexPackageDeclaration latexPackageDeclaration;
+
+    public LatexDocumentStartImpl(FileWriter fileWriter,
+                                  LatexPackageDeclaration latexPackageDeclaration) {
         this.fileWriter = fileWriter;
+        this.latexPackageDeclaration = latexPackageDeclaration;
     }
 
     @Override
     public void write() {
         logger.info("LatexDocumentStartImpl.write()");
         fileWriter.writeLine(LatexConstants.DOCUMENT_CLASS);
+        //noinspection SpellCheckingInspection
+        latexPackageDeclaration.write("longtable");
         fileWriter.writeLine(LatexConstants.DOCUMENT_START);
+
+
     }
 }

+ 10 - 0
src/main/java/scot/carricksoftware/grantswriter/writer/latex/LatexPackageDeclaration.java

@@ -0,0 +1,10 @@
+/*
+ * Copyright (c) 2025.  Andrew Grant Carrick Software. All rights reserved
+ *
+ */
+
+package scot.carricksoftware.grantswriter.writer.latex;
+
+public interface LatexPackageDeclaration {
+    void write(String packageName);
+}

+ 28 - 0
src/main/java/scot/carricksoftware/grantswriter/writer/latex/LatexPackageDeclarationImpl.java

@@ -0,0 +1,28 @@
+/*
+ * Copyright (c) 2025.  Andrew Grant Carrick Software. All rights reserved
+ *
+ */
+
+package scot.carricksoftware.grantswriter.writer.latex;
+
+import org.springframework.stereotype.Component;
+import scot.carricksoftware.grantswriter.constants.LatexConstants;
+import scot.carricksoftware.grantswriter.writer.FileWriter;
+
+@Component
+public class LatexPackageDeclarationImpl implements LatexPackageDeclaration {
+
+    private final FileWriter fileWriter;
+
+    public LatexPackageDeclarationImpl(FileWriter fileWriter) {
+        this.fileWriter = fileWriter;
+    }
+
+    @Override
+    public void write(String packageName) {
+        String sb = LatexConstants.USE_PACKAGE_TERM +
+                packageName +
+                LatexConstants.TERM_END;
+        fileWriter.writeLine(sb);
+    }
+}

+ 5 - 2
src/test/java/scot/carricksoftware/grantswriter/writer/latex/LatexDocumentStartTest.java

@@ -22,11 +22,14 @@ class LatexDocumentStartTest {
     private LatexDocumentStart documentStart;
 
     @Mock
-    private FileWriter fileWriterMock ;
+    private FileWriter fileWriterMock;
+
+    @Mock
+    private LatexPackageDeclaration latexPackageDeclarationMock;
 
     @BeforeEach
     void setUp() {
-        documentStart = new LatexDocumentStartImpl(fileWriterMock);
+        documentStart = new LatexDocumentStartImpl(fileWriterMock, latexPackageDeclarationMock);
     }
 
     @Test

+ 36 - 0
src/test/java/scot/carricksoftware/grantswriter/writer/latex/LatexPackageDeclarationTest.java

@@ -0,0 +1,36 @@
+/*
+ * Copyright (c) 2025.  Andrew Grant Carrick Software. All rights reserved
+ *
+ */
+
+package scot.carricksoftware.grantswriter.writer.latex;
+
+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 static org.junit.jupiter.api.Assertions.*;
+
+@ExtendWith(MockitoExtension.class)
+class LatexPackageDeclarationTest {
+
+    private LatexPackageDeclaration latexPackageDeclaration;
+
+    @Mock
+    private  FileWriter fileWriterMock;
+
+
+
+    @BeforeEach
+    void setUp() {
+        latexPackageDeclaration = new LatexPackageDeclarationImpl(fileWriterMock);
+    }
+
+    @Test
+    void constructorTest() {
+        assertNotNull(latexPackageDeclaration);
+    }
+}