Parcourir la source

LatexWriter::open and ::close
Closes #6, Closes #7

Andrew Grant il y a 4 mois
Parent
commit
97e2facfca

+ 2 - 3
src/main/java/scot/carricksoftware/grantswriter/files/WriterFilesImpl.java

@@ -44,8 +44,7 @@ public class WriterFilesImpl implements WriterFiles {
     @Override
     public void init() {
         logger.debug("WriterFiles::init");
-        String root = System.getProperty("user.home");
-        setLatexFileName(root + File.separator + "carricksoftware" + File.separator + "grants.tex");
-        setPdfFileName(root + File.separator + "carricksoftware" + File.separator + "grants.pdf");
+        setLatexFileName(System.getProperty("user.home") + File.separator + "carricksoftware" + File.separator + "grants.tex");
+        setPdfFileName(System.getProperty("user.home") + File.separator + "carricksoftware" + File.separator + "grants.pdf");
     }
 }

+ 5 - 1
src/main/java/scot/carricksoftware/grantswriter/writer/LatexWriter.java

@@ -7,5 +7,9 @@ package scot.carricksoftware.grantswriter.writer;
 
 public interface LatexWriter {
     @SuppressWarnings("unused")
-    void openOutput(String filename);
+    boolean open(String fileName);
+
+    boolean isOpen();
+
+    void close();
 }

+ 31 - 2
src/main/java/scot/carricksoftware/grantswriter/writer/LatexWriterImpl.java

@@ -5,10 +5,39 @@
 
 package scot.carricksoftware.grantswriter.writer;
 
+import java.io.PrintWriter;
+
 public class LatexWriterImpl implements LatexWriter {
 
+    private PrintWriter latexFile;
+
+    private boolean isOpen = false;
+
+
+    @Override
+    public boolean open(String fileName) {
+        try {
+            latexFile = new PrintWriter(fileName);
+            isOpen = true;
+            return true;
+        } catch (Exception e) {
+            return false;
+        }
+    }
+
     @Override
-    public void openOutput(String filename) {
-        throw new UnsupportedOperationException("Not supported yet.");
+    public boolean isOpen() {
+        return isOpen;
     }
+
+    @Override
+    public void close() {
+        if (isOpen) {
+            latexFile.close();
+            isOpen = false;
+        }
+
+    }
+
+
 }

+ 34 - 2
src/test/java/scot/carricksoftware/grantswriter/writer/LatexWriterTest.java

@@ -11,6 +11,8 @@ import org.junit.jupiter.api.extension.ExtendWith;
 import org.mockito.junit.jupiter.MockitoExtension;
 
 
+import java.io.File;
+
 import static org.junit.jupiter.api.Assertions.*;
 
 @ExtendWith(MockitoExtension.class)
@@ -24,7 +26,37 @@ class LatexWriterTest {
     }
 
     @Test
-    void openOutputTest() {
-        assertNotNull(writer);
+    void openAFileTest() {
+        String filename = System.getProperty("user.home") + File.separator + "test.tex";
+        assertTrue(writer.open(filename));
     }
+
+    @Test
+    void openInAProtectedFileTest() {
+        String filename = "/" + File.separator + "test.tex";
+        assertFalse(writer.open(filename));
+    }
+
+    @Test
+    void isOpenIsFirstClosedTest() {
+        assertFalse(writer.isOpen());
+    }
+
+    @Test
+    void isOpenIsTrueAfterAFileIsOpenTest() {
+        writer.open(System.getProperty("user.home") + File.separator + "test.tex");
+        assertTrue(writer.isOpen());
+    }
+
+    @Test
+    void isOpenIsFalseAfterAFileIsClosedTest() {
+        writer.open(System.getProperty("user.home") + File.separator + "test.tex");
+        assertTrue(writer.isOpen());
+        writer.close();
+        assertFalse(writer.isOpen());
+    }
+
+
+
+
 }