Browse Source

FileWrite writeLn test

Andrew Grant 4 tháng trước cách đây
mục cha
commit
92e252aa5d

+ 2 - 0
src/main/java/scot/carricksoftware/grantswriter/writer/FileWriterImpl.java

@@ -29,6 +29,7 @@ public class FileWriterImpl implements FileWriter {
     public void close() throws IOException {
         logger.debug("FileWriterImpl::close");
         os.close();
+        os = null;
     }
 
     @Override
@@ -36,6 +37,7 @@ public class FileWriterImpl implements FileWriter {
         logger.debug("FileWriterImpl::writeLine");
         try {
             os.write(line.getBytes());
+            os.write(System.lineSeparator().getBytes());
         } catch (IOException e) {
             throw new RuntimeException(e);
         }

+ 33 - 0
src/test/java/scot/carricksoftware/grantswriter/writer/FileWriterTest.java

@@ -8,6 +8,11 @@ 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 scot.carricksoftware.grantswriter.GenerateRandomNumberValues.GetRandomString;
 
@@ -31,4 +36,32 @@ class FileWriterTest {
         writer.init(GetRandomString());
         assertNotNull(writer.getOs());
     }
+
+    @Test
+    void closeTest() throws Exception {
+        writer.init(GetRandomString());
+        writer.close();
+        assertNull(writer.getOs());
+    }
+
+    @Test
+    void writeTest() throws Exception {
+        File file = File.createTempFile("/tmp", ".tmp");
+        String line = GetRandomString();
+        writer.init(file.getAbsolutePath());
+        writer.writeLine(line);
+        writer.close();
+
+        assertEquals(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();
+    }
 }