diff --git a/src/test/java/financemanager/TransactionListTest.java b/src/test/java/financemanager/TransactionListTest.java index 6a3bcb75f3..3bf8655992 100644 --- a/src/test/java/financemanager/TransactionListTest.java +++ b/src/test/java/financemanager/TransactionListTest.java @@ -17,6 +17,22 @@ public void setUp() { } @Test + public void getTransactions_initiallyEmpty() { + assertEquals(0, transactionList.getTransactions().size()); + } + + @Test + public void processTransaction_addsTransaction() { + Transaction testTransaction = new Transaction("Test", 200,"Personal", "14-03-2024"); + transactionList.processTransaction("add /n/Test /$/200 /d/14-03-2024 /c/Personal"); + + assertEquals(1, transactionList.getTransactions().size()); + assertEquals(testTransaction.getDescription(), transactionList.getTransactions().get(0).getDescription()); + assertEquals(testTransaction.getAmount(), transactionList.getTransactions().get(0).getAmount()); + assertEquals(testTransaction.getCategory(), transactionList.getTransactions().get(0).getCategory()); + assertEquals(testTransaction.getDate(), transactionList.getTransactions().get(0).getDate()); + } + public void removeTransaction_removesCorrectTransaction() { Transaction testTransaction1 = new Transaction("Test1", 100, "Category1", "14-03-2024"); Transaction testTransaction2 = new Transaction("Test2", 200, "Category2", "16-03-2024"); diff --git a/src/test/java/parser/ParserTest.java b/src/test/java/parser/ParserTest.java new file mode 100644 index 0000000000..9d4a300339 --- /dev/null +++ b/src/test/java/parser/ParserTest.java @@ -0,0 +1,21 @@ +package parser; +import org.junit.jupiter.api.Test; +import transactions.Transaction; + +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +public class ParserTest { + + @Test + public void testParseTransaction() { + Parser parser = new Parser(); + Transaction transaction = parser.parseTransaction("add /n/Shopping /$/50 /d/14-03-2024 /c/Personal"); + assertEquals("Shopping", transaction.getDescription()); + assertEquals(50.0f, transaction.getAmount(), 0.001); + assertEquals(LocalDate.parse("14-03-2024", DateTimeFormatter.ofPattern("dd-MM-yyyy")), transaction.getDate()); + assertEquals("Personal", transaction.getCategory()); + } +} diff --git a/src/test/java/transactions/TransactionTest.java b/src/test/java/transactions/TransactionTest.java new file mode 100644 index 0000000000..8371e4bb9a --- /dev/null +++ b/src/test/java/transactions/TransactionTest.java @@ -0,0 +1,52 @@ +package transactions; + +import org.junit.jupiter.api.Test; + +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +public class TransactionTest { + @Test + public void testTransactionConstructor() { + Transaction transaction = new Transaction("Groceries", 50.0f, "Food", "14-03-2024"); + assertEquals("Groceries", transaction.getDescription()); + assertEquals(50.0f, transaction.getAmount(), 0.001); + assertEquals("Food", transaction.getCategory()); + LocalDate date = LocalDate.parse("14-03-2024", DateTimeFormatter.ofPattern("dd-MM-yyyy")); + assertEquals(date, transaction.getDate()); + } + + @Test + public void testGetDescription() { + Transaction transaction = new Transaction("Groceries", 50.0f, "Food", "14-03-2024"); + assertEquals("Groceries", transaction.getDescription()); + } + + @Test + public void testGetAmount() { + Transaction transaction = new Transaction("Groceries", 50.0f, "Food", "14-03-2024"); + assertEquals(50.0f, transaction.getAmount(), 0.001); + } + + @Test + public void testGetCategory() { + Transaction transaction = new Transaction("Groceries", 50.0f, "Food", "14-03-2024"); + assertEquals("Food", transaction.getCategory()); + } + + @Test + public void testGetDate() { + Transaction transaction = new Transaction("Groceries", 50.0f, "Food", "14-03-2024"); + LocalDate date = LocalDate.parse("14-03-2024", DateTimeFormatter.ofPattern("dd-MM-yyyy")); + assertEquals(date, transaction.getDate()); + } + + @Test + public void testToString() { + Transaction transaction = new Transaction("Groceries", 50.0f, "Food", "14-03-2024"); + String expected = " Description: Groceries | Date: 2024-03-14 | Amount: 50.0 | Category: Food"; + assertEquals(expected, transaction.toString()); + } +}