From 3be9628306dadeb27f02001b4b70483eeb57b5ae Mon Sep 17 00:00:00 2001 From: Harry Linrui XU <xulr0820@hotmail.com> Date: Mon, 17 Apr 2023 11:48:19 +0200 Subject: [PATCH] Made hasUnusedCategories more general + Tested new budget methods --- .../demo/data/Budget/GeneralBudget.java | 11 +++++++- .../demo/data/Budget/GeneralBudgetTest.java | 26 +++++++++++++++++++ 2 files changed, 36 insertions(+), 1 deletion(-) diff --git a/src/main/java/no/ntnu/idatt1002/demo/data/Budget/GeneralBudget.java b/src/main/java/no/ntnu/idatt1002/demo/data/Budget/GeneralBudget.java index 1a22deb2..3a51dc78 100644 --- a/src/main/java/no/ntnu/idatt1002/demo/data/Budget/GeneralBudget.java +++ b/src/main/java/no/ntnu/idatt1002/demo/data/Budget/GeneralBudget.java @@ -172,10 +172,19 @@ public class GeneralBudget { return budgetItems.stream().anyMatch(budgetItem -> budgetItem.getBudgetCategory().equals(category)); } + /** + * This method checks if there are unused categories in the budget. + + * @return True, if the list contains unused categories. Else returns false. + */ private boolean hasUnusedCategories() { - return budgetItems.size() != 4; + return budgetItems.size() != ExpenseCategory.values().length; } + /** + * Method that adds the remaining, unused categories to the budget list. + * Useful, as unused categories can be automatically added without user input. + */ public void addUnusedCategories() { if (hasUnusedCategories()) { Arrays.stream(ExpenseCategory.values()). diff --git a/src/test/java/no/ntnu/idatt1002/demo/data/Budget/GeneralBudgetTest.java b/src/test/java/no/ntnu/idatt1002/demo/data/Budget/GeneralBudgetTest.java index bd6064b4..e13fadab 100644 --- a/src/test/java/no/ntnu/idatt1002/demo/data/Budget/GeneralBudgetTest.java +++ b/src/test/java/no/ntnu/idatt1002/demo/data/Budget/GeneralBudgetTest.java @@ -1,7 +1,9 @@ package no.ntnu.idatt1002.demo.data.Budget; import no.ntnu.idatt1002.demo.data.Economics.ExpenseCategory; +import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; import java.util.ArrayList; @@ -105,6 +107,30 @@ class GeneralBudgetTest { assertTrue(list.isEmpty()); } + @Nested + class UnusedCategories { + GeneralBudget budget; + List<BudgetItem> list; + + @BeforeEach + void setUp() { + list = new ArrayList<>(); + budget = new GeneralBudget(12, list, 1200); + budget.addToBudget(10, "Books", ExpenseCategory.BOOKS); + } + + @Test + @DisplayName("Test addUnusedCategories adds unused categories") + void hasUnusedCategories_with_full_budget() { + assertEquals(1, budget.getBudgetItems().size()); + budget.addUnusedCategories(); + + assertEquals(4, budget.getBudgetItems().size()); + } + + } + + /* @Test @DisplayName("Gets the number of days left in the month. 17 has to be changed to the actual number of days left in the month.") void get_days_left_of_the_month(){ -- GitLab