diff --git a/src/main/java/no/ntnu/idatt1002/demo/controller/BudgetController.java b/src/main/java/no/ntnu/idatt1002/demo/controller/BudgetController.java index 3d33f030565c21a0aaf643e6aa699b38a467c732..514a9f1f18e800f43cc5368b2e5953ee1f810c8b 100644 --- a/src/main/java/no/ntnu/idatt1002/demo/controller/BudgetController.java +++ b/src/main/java/no/ntnu/idatt1002/demo/controller/BudgetController.java @@ -304,7 +304,7 @@ public class BudgetController implements FinanceController { FileHandlingBudget fileHandlingBudget = new FileHandlingBudget(); //Instantiate new budget if (fileHandlingBudget.isEmpty(fileName)) { - general = new GeneralBudget(31, 1000); + general = new GeneralBudget(1000); //throws new IOException("Not valid budget") } else { //Load previous budget try { diff --git a/src/main/java/no/ntnu/idatt1002/demo/controller/IncomeExpenseController.java b/src/main/java/no/ntnu/idatt1002/demo/controller/IncomeExpenseController.java index 27996dca15ac873a7e1b27289a6be97ae769e1c9..95e4519a34430e1540da2a44b37f8c128047147a 100644 --- a/src/main/java/no/ntnu/idatt1002/demo/controller/IncomeExpenseController.java +++ b/src/main/java/no/ntnu/idatt1002/demo/controller/IncomeExpenseController.java @@ -565,7 +565,7 @@ public class IncomeExpenseController implements FinanceController { //Instantiate new budget try { if (fileHandling.isEmpty(fileName)) { - generalBudget = new GeneralBudget(31, 1000); + generalBudget = new GeneralBudget(1000); } else { //Load previous income register generalBudget = fileHandlingBudget.readGeneralBudgetFromFile(fileName); } diff --git a/src/main/java/no/ntnu/idatt1002/demo/controller/MainMenu.java b/src/main/java/no/ntnu/idatt1002/demo/controller/MainMenu.java index b8230ee080fc0a6d6f779716effaaddf5cbfe1ca..0bb5d1d0d8b33b77c5d056c6cc4089d89ca5c86e 100644 --- a/src/main/java/no/ntnu/idatt1002/demo/controller/MainMenu.java +++ b/src/main/java/no/ntnu/idatt1002/demo/controller/MainMenu.java @@ -210,7 +210,7 @@ public class MainMenu { FileHandlingBudget fileHandlingBudget = new FileHandlingBudget(); //Instantiate new budget if (fileHandlingBudget.isEmpty(fileName)) { - generalBudget = new GeneralBudget(31, 1000); + generalBudget = new GeneralBudget(1000); } else { //Load previous budget try { generalBudget = fileHandlingBudget.readGeneralBudgetFromFile(fileName); diff --git a/src/main/java/no/ntnu/idatt1002/demo/data/Budget/FileHandlingBudget.java b/src/main/java/no/ntnu/idatt1002/demo/data/Budget/FileHandlingBudget.java index c39321868e3685847d9eb0a920828f81937778e4..002b796a2e332673ce046560bb033620e3af5351 100644 --- a/src/main/java/no/ntnu/idatt1002/demo/data/Budget/FileHandlingBudget.java +++ b/src/main/java/no/ntnu/idatt1002/demo/data/Budget/FileHandlingBudget.java @@ -3,8 +3,6 @@ package no.ntnu.idatt1002.demo.data.Budget; import no.ntnu.idatt1002.demo.data.Economics.*; import java.io.*; -import java.time.LocalDate; -import java.util.ArrayList; /** * FileHandling is a class for writing and reading @@ -15,7 +13,6 @@ import java.util.ArrayList; public class FileHandlingBudget { private static final String filePath = "src/main/resources/Budget/"; private static final String fileType = ".budget"; - private static final String budgetPeriod = "budgetPeriod="; private static final String maxAmount = "maxAmount="; private static final String budgetAmount = "budgetAmount="; private static final String budgetCategory = "budgetCategory="; @@ -45,11 +42,7 @@ public class FileHandlingBudget { */ public boolean isEmpty(String fileTitle) throws IOException { try (BufferedReader br = new BufferedReader(new FileReader(filePath + fileTitle + fileType))) { - if (br.readLine() == null) { - return true; - } else { - return false; - } + return br.readLine() == null; } } @@ -62,9 +55,7 @@ public class FileHandlingBudget { */ public GeneralBudget readGeneralBudgetFromFile(String fileTitle) throws IOException { GeneralBudget generalBudget = null; - int budgetPeriod = 0; double maxAmount = 0; - ArrayList<BudgetItem> budgetItems = new ArrayList<>(); double budgetAmount = 0; ExpenseCategory expenseCategory = null; String budgetDescription = null; @@ -74,9 +65,7 @@ public class FileHandlingBudget { String nextLine = br.readLine(); while ((line = nextLine) != null) { nextLine = br.readLine(); - if(line.startsWith(FileHandlingBudget.budgetPeriod)) { - budgetPeriod = Integer.parseInt(line.replace(FileHandlingBudget.budgetPeriod, "")); - } else if (line.startsWith(FileHandlingBudget.maxAmount)) { + if (line.startsWith(FileHandlingBudget.maxAmount)) { maxAmount = Double.parseDouble(line.replace(FileHandlingBudget.maxAmount,"")); } else if (line.startsWith(FileHandlingBudget.budgetAmount)) { budgetAmount = Double.parseDouble(line.replace(FileHandlingBudget.budgetAmount,"")); @@ -93,7 +82,7 @@ public class FileHandlingBudget { } if (line.isEmpty() || (nextLine == null)) { if(generalBudget == null){ - generalBudget = new GeneralBudget(budgetPeriod,maxAmount); + generalBudget = new GeneralBudget(maxAmount); } else{ generalBudget.addToBudget(budgetAmount,budgetDescription,expenseCategory); } 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 3a51dc780dc47f3c9c7458a5b050aaa638895a40..04fb19f700b6c48aa2786a6c8d4bde2d1774b768 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 @@ -3,15 +3,9 @@ package no.ntnu.idatt1002.demo.data.Budget; import java.util.Arrays; import no.ntnu.idatt1002.demo.data.Economics.ExpenseCategory; -import java.sql.Date; -import java.time.Duration; import java.time.LocalDate; import java.time.Month; -import java.time.ZoneId; -import java.time.temporal.ChronoUnit; -import java.time.temporal.Temporal; import java.util.ArrayList; -import java.util.Calendar; import java.util.List; import java.util.Objects; @@ -22,25 +16,31 @@ import java.util.Objects; */ public class GeneralBudget { - private final int budgetPeriod; + /** + * The period the budget is going to last for. + * Is always the amount of days left in the current month. + */ + private final int budgetPeriod = getDaysLeftOfBudgetPeriod(); + /** + * A List of BudgetItems. + */ private final List<BudgetItem> budgetItems; + /** + * The max amount of the budget. + */ private final double maxAmount; /** * Class constructor. * - * @param budgetPeriod the period the budget is going to last for. * @param budgetItems a List of BudgetItems. * @param maxAmount the max amount of the budget. * */ - public GeneralBudget(int budgetPeriod, List<BudgetItem> budgetItems, double maxAmount) { - if (budgetPeriod <= 0) { - throw new IllegalArgumentException("The period can´t be under zero days"); - } else if (maxAmount < 0) { + public GeneralBudget(List<BudgetItem> budgetItems, double maxAmount) { + if (maxAmount < 0) { throw new IllegalArgumentException("The max amount of the budget cant be less than zero"); } else { - this.budgetPeriod = budgetPeriod; this.maxAmount = maxAmount; this.budgetItems = budgetItems; } @@ -50,17 +50,12 @@ public class GeneralBudget { * Class constructor that creates an empty * ArrayList for storing BudgetItems * - * @param budgetPeriod the period the budget is going to last for. * @param maxAmount the max amount of the budget. */ - public GeneralBudget(int budgetPeriod, double maxAmount) { - if (budgetPeriod <= 0) { - throw new IllegalArgumentException("The period can´t be under zero days"); - } + public GeneralBudget(double maxAmount) { if (maxAmount < 0) { throw new IllegalArgumentException("The max amount of the budget cant be less than zero"); } else { - this.budgetPeriod = budgetPeriod; this.maxAmount = maxAmount; this.budgetItems = new ArrayList<>(); } @@ -117,7 +112,7 @@ public class GeneralBudget { * @return the amount of days left in the budget period * */ - public long getDaysLeftOfBudgetPeriod() { + public int getDaysLeftOfBudgetPeriod() { Month thisMonth = LocalDate.now().getMonth(); int dayOfTheMonth = LocalDate.now().getDayOfMonth(); @@ -224,9 +219,9 @@ public class GeneralBudget { budgetItemsString.append(budgetItem+"\n\n"); } if(budgetItemsString.isEmpty()) { - return "budgetPeriod="+getBudgetPeriod()+"\nmaxAmount="+getMaxAmount()+"\n\n"; + return "maxAmount="+getMaxAmount()+"\n\n"; } else { - return "budgetPeriod="+getBudgetPeriod()+"\nmaxAmount="+getMaxAmount()+"\n\n"+budgetItemsString; + return "maxAmount="+getMaxAmount()+"\n\n"+budgetItemsString; } } diff --git a/src/test/java/no/ntnu/idatt1002/demo/data/Budget/FileHandlingBudgetTest.java b/src/test/java/no/ntnu/idatt1002/demo/data/Budget/FileHandlingBudgetTest.java index 21e78490615680cfe43af5e716ca18acd6bdd1f9..b03b20a87a4f12578d3d2af562bb45057bb5f24a 100644 --- a/src/test/java/no/ntnu/idatt1002/demo/data/Budget/FileHandlingBudgetTest.java +++ b/src/test/java/no/ntnu/idatt1002/demo/data/Budget/FileHandlingBudgetTest.java @@ -26,7 +26,7 @@ class FileHandlingBudgetTest { @Nested @DisplayName("FileHandling budget with one BudgetItem does not throw exception") class fileHandlingBudgetWithOneBudgetItemDoesNotThrowException{ - GeneralBudget generalBudget = new GeneralBudget(12, 1200); + GeneralBudget generalBudget = new GeneralBudget(1200); String fileTitle = "oneBudgetItemTest"; @BeforeEach @@ -50,7 +50,7 @@ class FileHandlingBudgetTest { @Nested @DisplayName("FileHandling budget with multiple BudgetItems does not throw exception") class FileHandlingBudgetWithMultipleBudgetItemsDoesNotThrowException{ - GeneralBudget generalBudget = new GeneralBudget(12, 1200); + GeneralBudget generalBudget = new GeneralBudget(1200); String fileTitle = "multipleBudgetItem"; @BeforeEach void createGeneralBudget(){ 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 e13fadab307e970a357391f1c93a3b2b317e1518..55ea6e9fe7282f16d7bc32087e73a8771466dd9e 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 @@ -11,27 +11,19 @@ import java.util.List; import static org.junit.jupiter.api.Assertions.*; class GeneralBudgetTest { - @Test - @DisplayName("Constructor throws exception when the periodAmount is under zero") - void constructor_throws_exception_when_periodAmount_under_zero(){ - List<BudgetItem> list = new ArrayList<>(); - - assertThrows(IllegalArgumentException.class, () -> new GeneralBudget(-1, list, 1200)); - } - @Test @DisplayName("Constructor throws exception when maxAmount is under zero") void constructor_throws_exception_when_maxAmount_under_zero(){ List<BudgetItem> list = new ArrayList<>(); - assertThrows(IllegalArgumentException.class, () -> new GeneralBudget(10, list, -12)); + assertThrows(IllegalArgumentException.class, () -> new GeneralBudget(list, -12)); } @Test @DisplayName("AddToBudget throws when totalSum is higher than maxAmount ") void add_to_budget_throws_when_totalSum_is_over_maxAmount(){ List<BudgetItem> list = new ArrayList<>(); - GeneralBudget budget1 = new GeneralBudget(12, list, 1200); + GeneralBudget budget1 = new GeneralBudget(list, 1200); BudgetItem foodItem = new BudgetItem(1300, "Food", ExpenseCategory.FOOD); assertThrows(IllegalArgumentException.class, () -> budget1.addToBudgetBudgetItem(foodItem)); @@ -41,7 +33,7 @@ class GeneralBudgetTest { @DisplayName("addToBudget throws when a budget with same category already exists") void add_to_budget_throws_when_a_budget_with_same_category_already_exists(){ List<BudgetItem> list = new ArrayList<>(); - GeneralBudget budget1 = new GeneralBudget(12, list, 1200); + GeneralBudget budget1 = new GeneralBudget(list, 1200); BudgetItem foodItem = new BudgetItem(500, "Food", ExpenseCategory.FOOD); budget1.addToBudgetBudgetItem(foodItem); BudgetItem alsoFoodItem = new BudgetItem(200, "Food", ExpenseCategory.FOOD); @@ -53,7 +45,7 @@ class GeneralBudgetTest { @DisplayName("Adds a budget to generalBudget") void add_budget_to_generalBudget(){ List<BudgetItem> list = new ArrayList<>(); - GeneralBudget budget1 = new GeneralBudget(12, list, 1200); + GeneralBudget budget1 = new GeneralBudget(list, 1200); BudgetItem foodItem = new BudgetItem(500, "Food", ExpenseCategory.FOOD); budget1.addToBudgetBudgetItem(foodItem); @@ -64,7 +56,7 @@ class GeneralBudgetTest { @DisplayName("Checks if the list contains a item with a given category") void checks_if_the_list_contains_an_item_with_this_category_true(){ List<BudgetItem> list = new ArrayList<>(); - GeneralBudget budget1 = new GeneralBudget(12, list, 1200); + GeneralBudget budget1 = new GeneralBudget(list, 1200); BudgetItem foodItem = new BudgetItem(500, "Food", ExpenseCategory.FOOD); budget1.addToBudgetBudgetItem(foodItem); @@ -75,7 +67,7 @@ class GeneralBudgetTest { @DisplayName("checks that the list does not contain an item with the given category") void checks_if_the_list_contains_an_item_with_this_category_false(){ List<BudgetItem> list = new ArrayList<>(); - GeneralBudget budget1 = new GeneralBudget(12, list, 1200); + GeneralBudget budget1 = new GeneralBudget(list, 1200); BudgetItem bookItem = new BudgetItem(500, "Books", ExpenseCategory.BOOKS); budget1.addToBudgetBudgetItem(bookItem); @@ -86,7 +78,7 @@ class GeneralBudgetTest { @DisplayName("Checks that the getTotalSum gives the correct number") void get_total_sum_of_all_budgetItems_in_the_budget(){ List<BudgetItem> list = new ArrayList<>(); - GeneralBudget budget1 = new GeneralBudget(12, list, 1200); + GeneralBudget budget1 = new GeneralBudget(list, 1200); BudgetItem bookItem = new BudgetItem(500, "Books", ExpenseCategory.BOOKS); BudgetItem foodItem = new BudgetItem(300, "Food", ExpenseCategory.FOOD); budget1.addToBudgetBudgetItem(bookItem); @@ -99,7 +91,7 @@ class GeneralBudgetTest { @DisplayName("Checks that an item gets deleted from the budget") void delete_from_budget(){ List<BudgetItem> list = new ArrayList<>(); - GeneralBudget budget1 = new GeneralBudget(12, list, 1200); + GeneralBudget budget1 = new GeneralBudget(list, 1200); BudgetItem bookItem = new BudgetItem(500, "Books", ExpenseCategory.BOOKS); budget1.addToBudgetBudgetItem(bookItem); budget1.deleteItemFromBudget(ExpenseCategory.BOOKS); @@ -115,7 +107,7 @@ class GeneralBudgetTest { @BeforeEach void setUp() { list = new ArrayList<>(); - budget = new GeneralBudget(12, list, 1200); + budget = new GeneralBudget(list, 1200); budget.addToBudget(10, "Books", ExpenseCategory.BOOKS); }