From bd0ba3e98f78ac30bc88d81b0771472428fe7671 Mon Sep 17 00:00:00 2001 From: Andreas <andreksv@ntnu.no> Date: Mon, 13 Mar 2023 12:36:31 +0100 Subject: [PATCH] Made ItemOverview abstract, and made subclasses --- .../idatt1002/demo/data/ExpenseOverview.java | 10 ++++++++++ .../idatt1002/demo/data/IncomeOverview.java | 11 ++++++++++ .../idatt1002/demo/data/ItemOverview.java | 2 +- ...rviewTest.java => IncomeOverviewTest.java} | 20 +++++++++---------- 4 files changed, 32 insertions(+), 11 deletions(-) create mode 100644 src/main/java/no/ntnu/idatt1002/demo/data/ExpenseOverview.java create mode 100644 src/main/java/no/ntnu/idatt1002/demo/data/IncomeOverview.java rename src/test/java/no/ntnu/idatt1002/demo/data/{ItemOverviewTest.java => IncomeOverviewTest.java} (50%) diff --git a/src/main/java/no/ntnu/idatt1002/demo/data/ExpenseOverview.java b/src/main/java/no/ntnu/idatt1002/demo/data/ExpenseOverview.java new file mode 100644 index 00000000..d5144e70 --- /dev/null +++ b/src/main/java/no/ntnu/idatt1002/demo/data/ExpenseOverview.java @@ -0,0 +1,10 @@ +package no.ntnu.idatt1002.demo.data; + +import java.util.ArrayList; +public class ExpenseOverview { + private ArrayList<Expense> expenses; + + public ExpenseOverview(){ + this.expenses = new ArrayList<>(); + } +} diff --git a/src/main/java/no/ntnu/idatt1002/demo/data/IncomeOverview.java b/src/main/java/no/ntnu/idatt1002/demo/data/IncomeOverview.java new file mode 100644 index 00000000..38e6ea00 --- /dev/null +++ b/src/main/java/no/ntnu/idatt1002/demo/data/IncomeOverview.java @@ -0,0 +1,11 @@ +package no.ntnu.idatt1002.demo.data; + +import java.util.ArrayList; + +public class IncomeOverview extends ItemOverview { + private ArrayList<Income> income; + + public IncomeOverview(){ + this.income = new ArrayList<>(); + } +} diff --git a/src/main/java/no/ntnu/idatt1002/demo/data/ItemOverview.java b/src/main/java/no/ntnu/idatt1002/demo/data/ItemOverview.java index 154fc9b4..f9bfbe1c 100644 --- a/src/main/java/no/ntnu/idatt1002/demo/data/ItemOverview.java +++ b/src/main/java/no/ntnu/idatt1002/demo/data/ItemOverview.java @@ -7,7 +7,7 @@ import java.util.ArrayList; * information on items. It is meant for storing EITHER * Income or Expense */ -public class ItemOverview { +public abstract class ItemOverview { ArrayList<Item> items; /** diff --git a/src/test/java/no/ntnu/idatt1002/demo/data/ItemOverviewTest.java b/src/test/java/no/ntnu/idatt1002/demo/data/IncomeOverviewTest.java similarity index 50% rename from src/test/java/no/ntnu/idatt1002/demo/data/ItemOverviewTest.java rename to src/test/java/no/ntnu/idatt1002/demo/data/IncomeOverviewTest.java index bc2db847..0cc69907 100644 --- a/src/test/java/no/ntnu/idatt1002/demo/data/ItemOverviewTest.java +++ b/src/test/java/no/ntnu/idatt1002/demo/data/IncomeOverviewTest.java @@ -6,35 +6,35 @@ import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.*; -public class ItemOverviewTest { - ItemOverview itemOverview; +public class IncomeOverviewTest { + IncomeOverview incomeOverview; @BeforeEach public void createItemOverView(){ - itemOverview = new ItemOverview(); + incomeOverview = new IncomeOverview(); } @Test @DisplayName("addItem method throws exception when it should") void addItemThrows(){ Income income = new Income("description", 59.9f, false, IncomeCategory.SALARY, "03.03.23"); - assertThrows(IllegalArgumentException.class, () -> {itemOverview.addItem(income); itemOverview.addItem(income);}); + assertThrows(IllegalArgumentException.class, () -> {incomeOverview.addItem(income); incomeOverview.addItem(income);}); } @Test @DisplayName("addItem method does not throw exception when it should not") void addItemDoesNotThrow(){ - Expense expense = new Expense("description", 59.9f, false, ExpenseCategory.CLOTHES, "03.03.23"); + Income expense = new Income("description", 59.9f, false, IncomeCategory.GIFT, "03.03.23"); Income income = new Income("anotherDescription", 6.5f, true, IncomeCategory.SALARY, "02.03.23"); - assertDoesNotThrow(() -> {itemOverview.addItem(expense); itemOverview.addItem(income);}); + assertDoesNotThrow(() -> {incomeOverview.addItem(expense); incomeOverview.addItem(income);}); } @Test @DisplayName("getTotalSum method gives correct amount") void getTotalSumCorrectAmount(){ - itemOverview.addItem(new Income("description1", 59.9f, false, IncomeCategory.SALARY, "03.03.23")); - itemOverview.addItem(new Income("description2", 62.4f, true, IncomeCategory.GIFT, "01.02.21")); - itemOverview.addItem(new Income("description3", 9.81f, false, IncomeCategory.SALARY, "05.07.23")); + incomeOverview.addItem(new Income("description1", 59.9f, false, IncomeCategory.SALARY, "03.03.23")); + incomeOverview.addItem(new Income("description2", 62.4f, true, IncomeCategory.GIFT, "01.02.21")); + incomeOverview.addItem(new Income("description3", 9.81f, false, IncomeCategory.SALARY, "05.07.23")); double totalIncome = 59.9f + 62.4f + 9.81f; - assertEquals(Math.round(itemOverview.getTotalSum()), Math.round(totalIncome)); + assertEquals(Math.round(incomeOverview.getTotalSum()), Math.round(totalIncome)); } } \ No newline at end of file -- GitLab