From a5b9485c82ec05de64695c65eefddb5c55e5cde5 Mon Sep 17 00:00:00 2001 From: = Date: Wed, 11 Mar 2026 15:37:17 +0100 Subject: [PATCH] Feat: Unit tests for FileParser --- .../idatt2003/g40/mappe/FileParserTest.java | 46 ++++++++++++++++++- 1 file changed, 44 insertions(+), 2 deletions(-) diff --git a/src/test/java/edu/ntnu/idi/idatt2003/g40/mappe/FileParserTest.java b/src/test/java/edu/ntnu/idi/idatt2003/g40/mappe/FileParserTest.java index ef7e8fb..fc901fc 100644 --- a/src/test/java/edu/ntnu/idi/idatt2003/g40/mappe/FileParserTest.java +++ b/src/test/java/edu/ntnu/idi/idatt2003/g40/mappe/FileParserTest.java @@ -1,8 +1,15 @@ package edu.ntnu.idi.idatt2003.g40.mappe; +import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import java.io.File; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.ArrayList; +import java.util.List; import static org.junit.jupiter.api.Assertions.*; @@ -11,8 +18,43 @@ class FileParserTest { private final String filePath = "src/main/resources/dummydata.txt"; FileParser fileParser; - @Test - void test1() { + private final String validStockFromFile = "NVID, Nvidida Corporation, 241.591"; + + private final String invalidStockFromFile = "COOLI, This is a cool name, 252.2"; + + private final String commentFromFile = "#Above me are some valid formats."; + + private List allLines = new ArrayList<>(); + + private List validStocks = new ArrayList<>(); + + @BeforeEach + void setUp() throws Exception { fileParser = new FileParser(filePath); + Path path = Paths.get(filePath); + allLines = Files.readAllLines(path); + try { + validStocks = fileParser.readFile(); + } catch (Exception _) { + throw new Exception("Test failed"); + } + } + + @Test + void parser_gets_valid_stock_from_file() { + assertTrue(allLines.contains(validStockFromFile)); + assertTrue(validStocks.contains(validStockFromFile)); + } + + @Test + void parser_skips_comments_from_file() { + assertTrue(allLines.contains(commentFromFile)); + assertFalse(validStocks.contains(commentFromFile)); + } + + @Test + void parser_skips_invalid_stock_from_file() { + assertTrue(allLines.contains(invalidStockFromFile)); + assertFalse(validStocks.contains(invalidStockFromFile)); } } \ No newline at end of file