Pārlūkot izejas kodu

FileWriter testing

Andrew Grant 4 mēneši atpakaļ
vecāks
revīzija
5bf7b574b2

+ 5 - 4
src/main/java/scot/carricksoftware/grantswriter/writer/FileWriter.java

@@ -6,15 +6,16 @@
 package scot.carricksoftware.grantswriter.writer;
 
 import java.io.IOException;
-import java.io.OutputStream;
+import java.io.PrintWriter;
 
 public interface FileWriter {
 
-    void init(String texFilename) throws IOException;
+
+    void init(String fileName) throws IOException;
+
     void close();
 
     void writeLine(String line);
 
-    OutputStream getOs();
-
+    PrintWriter getPrintWriter();
 }

+ 8 - 13
src/main/java/scot/carricksoftware/grantswriter/writer/FileWriterImpl.java

@@ -9,42 +9,37 @@ import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 import org.springframework.stereotype.Component;
 
-import java.io.FileOutputStream;
 import java.io.IOException;
-import java.io.OutputStream;
+import java.io.PrintWriter;
 
 @Component
 public class FileWriterImpl implements FileWriter {
 
     private static final Logger logger = LogManager.getLogger(FileWriterImpl.class);
 
-    private OutputStream os = null;
+    private PrintWriter printWriter = null;
 
+    @Override
     public void init(String fileName) throws IOException {
         logger.debug("FileWriterImpl::init");
-        os = new FileOutputStream(fileName);
+        printWriter = new PrintWriter(fileName);
     }
 
     @Override
     public void close() {
         logger.debug("FileWriterImpl::close");
-        os = null;
+        printWriter = null;
     }
 
     @Override
     public void writeLine(String line) {
         logger.debug("FileWriterImpl::writeLine");
-        try {
-            os.write(line.getBytes());
-            os.write(System.lineSeparator().getBytes());
-        } catch (IOException e) {
-            throw new RuntimeException(e);
-        }
+        printWriter.println(line);
     }
 
     @Override
-    public OutputStream getOs() {
-        return os;
+    public PrintWriter getPrintWriter() {
+        return printWriter;
     }
 
 

+ 8 - 32
src/test/java/scot/carricksoftware/grantswriter/writer/FileWriterTest.java

@@ -8,15 +8,10 @@ package scot.carricksoftware.grantswriter.writer;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 
-import java.io.File;
-import java.io.FileReader;
-import java.io.IOException;
-import java.util.Scanner;
-
-import static org.junit.jupiter.api.Assertions.*;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertNull;
 import static scot.carricksoftware.grantswriter.GenerateRandomNumberValues.GetRandomString;
 
-
 class FileWriterTest {
 
     private FileWriter writer;
@@ -27,42 +22,23 @@ class FileWriterTest {
     }
 
     @Test
-    void getOsTest(){
-        assertNull(writer.getOs());
+    public void GetPrintWriterTest() {
+        assertNull(writer.getPrintWriter());
     }
 
     @Test
-    void initTest() throws Exception {
+    public void initTest() throws Exception {
         writer.init(GetRandomString());
-        assertNotNull(writer.getOs());
+        assertNotNull(writer.getPrintWriter());
     }
 
     @Test
-    void closeTest() throws Exception {
+    public void closeTest() throws Exception {
         writer.init(GetRandomString());
         writer.close();
-        assertNull(writer.getOs());
+        assertNull(writer.getPrintWriter());
     }
 
-    @Test
-    void writeTest() throws Exception {
-        File file = File.createTempFile("/tmp", ".tmp");
-        String line = GetRandomString();
-        writer.init(file.getAbsolutePath());
-        writer.writeLine(line);
-        writer.writeLine(line);
-        writer.close();
 
-        assertEquals(line + line, getFileContents(file.getAbsolutePath()));
-    }
 
-    private String getFileContents(String fileName) throws IOException {
-        Scanner in = new Scanner(new FileReader(fileName));
-        StringBuilder sb = new StringBuilder();
-        while(in.hasNext()) {
-            sb.append(in.next());
-        }
-        in.close();
-        return sb.toString();
-    }
 }