diff --git a/src/main/java/millions/controller/fileIO/CSVStockFileParser.java b/src/main/java/millions/controller/fileIO/CSVStockFileParser.java index 536e142..5a0cee0 100644 --- a/src/main/java/millions/controller/fileIO/CSVStockFileParser.java +++ b/src/main/java/millions/controller/fileIO/CSVStockFileParser.java @@ -28,7 +28,9 @@ public boolean verifyCSV(List lines) { public List parse() { List stocks = new ArrayList<>(); - lines.stream().filter(l -> !((l.startsWith("#") || l.isBlank()))).forEach(l -> { + lines.stream() + .filter(l -> !((l.startsWith("#") || l.isBlank()))) + .forEach(l -> { String[] split = l.split(","); String symbol = split[0]; String company = split[1]; diff --git a/src/main/java/millions/controller/fileIO/CSVStockFileWriter.java b/src/main/java/millions/controller/fileIO/CSVStockFileWriter.java index 7f602ba..463ea04 100644 --- a/src/main/java/millions/controller/fileIO/CSVStockFileWriter.java +++ b/src/main/java/millions/controller/fileIO/CSVStockFileWriter.java @@ -2,11 +2,15 @@ import millions.model.Stock; +import java.io.BufferedWriter; +import java.io.*; +import java.nio.file.Path; import java.util.List; +//TODO: Validation of data before writing public class CSVStockFileWriter implements StockFileWriter { - List stocks; - String finalString; + private final List stocks; + private String finalString; public CSVStockFileWriter(List stocks) { this.stocks = stocks; @@ -20,14 +24,20 @@ public void formatString() { builder.append(","); builder.append(stock.getCompany()); builder.append(","); - builder.append(stock.getLatestPriceChange().toString()); + builder.append(stock.getSalesPrice().toString()); + builder.append("\n"); }); this.finalString = builder.toString(); } @Override - public boolean write(){ - // TODO: handle file creation/file selection when writing to file + public boolean write(Path path){ + try (FileWriter fw = new FileWriter(path.toString()); BufferedWriter writer = new BufferedWriter(fw);) { + this.formatString(); + writer.write(finalString); + } catch (IOException e) { + e.printStackTrace(); + } return false; } } diff --git a/src/main/java/millions/controller/fileIO/StockFileWriter.java b/src/main/java/millions/controller/fileIO/StockFileWriter.java index 6b61251..32a8e13 100644 --- a/src/main/java/millions/controller/fileIO/StockFileWriter.java +++ b/src/main/java/millions/controller/fileIO/StockFileWriter.java @@ -1,6 +1,8 @@ package millions.controller.fileIO; +import java.nio.file.Path; + public interface StockFileWriter { public void formatString(); - public boolean write(); + public boolean write(Path path); } diff --git a/src/test/java/millions/CSVStockFileWriterTest.java b/src/test/java/millions/CSVStockFileWriterTest.java new file mode 100644 index 0000000..6765f7a --- /dev/null +++ b/src/test/java/millions/CSVStockFileWriterTest.java @@ -0,0 +1,43 @@ +package millions; + +import millions.controller.fileIO.CSVStockFileWriter; +import millions.controller.fileIO.StockFileReader; +import millions.model.Stock; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; + +import java.math.BigDecimal; +import java.nio.file.Path; +import java.util.List; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +public class CSVStockFileWriterTest { + @TempDir + static Path tempDir; + + List stocks; + + @BeforeEach + void setup() { + Stock s1 = new Stock("PEAR", "Pear Inc.", BigDecimal.valueOf(300)); + Stock s2 = new Stock("DOGL", "DOOGLE Inc.", BigDecimal.valueOf(200.00)); + Stock s3 = new Stock("MSFT", "EpsteinSoft Inc.", BigDecimal.valueOf(0.02)); + + this.stocks = List.of(s1, s2, s3); + } + + @Test + public void testWrite() { + for(Stock stock : this.stocks) { + System.out.println(stock.toString()); + } + CSVStockFileWriter csvStockFileWriter = new CSVStockFileWriter(stocks); + csvStockFileWriter.write(tempDir.resolve("stocks.csv")); + + StockFileReader stockFileReader = new StockFileReader(tempDir.resolve("stocks.csv")); + assertEquals(3, stockFileReader.readFile().size()); + } +} diff --git a/src/test/java/millions/StockFileReaderTest.java b/src/test/java/millions/StockFileReaderTest.java index c40e4ca..bfb9a8d 100644 --- a/src/test/java/millions/StockFileReaderTest.java +++ b/src/test/java/millions/StockFileReaderTest.java @@ -28,7 +28,7 @@ public static void setUpTestFile() throws Exception { } @Test - public void testReadStockFile() throws Exception { + public void testReadStockFile() { StockFileReader stockFileReader = new StockFileReader(sharedFile); assertEquals(6, stockFileReader.readFile().size()); }