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