diff --git a/src/main/java/no/ntnu/idatt1002/demo/data/Economics/ExpenseRegister.java b/src/main/java/no/ntnu/idatt1002/demo/data/Economics/ExpenseRegister.java index 1a279301d3d658581181a8b2b0bbcea2edbe56ee..b54e3afbec7f26ae6e2f831966b6781d9d902168 100644 --- a/src/main/java/no/ntnu/idatt1002/demo/data/Economics/ExpenseRegister.java +++ b/src/main/java/no/ntnu/idatt1002/demo/data/Economics/ExpenseRegister.java @@ -6,6 +6,8 @@ import java.util.List; * ExpenseRegister is a class for * storing Expenses. Subclass of * ItemRegister. + * + * @author andreas */ public class ExpenseRegister extends ItemRegister<Expense> { diff --git a/src/main/java/no/ntnu/idatt1002/demo/data/Economics/FileHandling.java b/src/main/java/no/ntnu/idatt1002/demo/data/Economics/FileHandling.java index a29090895bd1608135a9d016f45fe2c5471e1d18..e80d13c36c0c2e4f42458a824c094339bc0f44d5 100644 --- a/src/main/java/no/ntnu/idatt1002/demo/data/Economics/FileHandling.java +++ b/src/main/java/no/ntnu/idatt1002/demo/data/Economics/FileHandling.java @@ -9,6 +9,8 @@ import java.io.*; /** * FileHandling is a class for writing and reading * Item-objects to and from a file. + * + * @author andreas */ public class FileHandling{ private static final String filePath = "src/main/resources/Economics/"; @@ -34,11 +36,28 @@ public class FileHandling{ } /** + * Method for checking if a .register file is empty. + * + * @param fileTitle the name of the file you want to check + * @return true or false depending on if file is empty. + * @throws IOException if an input or output exception occurred. + */ + public boolean isEmpty(String fileTitle) throws IOException { + try (BufferedReader br = new BufferedReader(new FileReader(filePath + fileTitle + fileType))) { + if (br.readLine().equals("The register is Empty")) { + return true; + } else { + return false; + } + } + } + + /** * Method for reading (getting) an IncomeRegister from a file. * - * @param fileTitle the name of the file you want to read from + * @param fileTitle the name of the file you want to read from. * @return the IncomeRegister from the file. - * @throws IOException if an input or output exception occurred + * @throws IOException if an input or output exception occurred. */ public IncomeRegister readIncomeRegisterFromFile(String fileTitle) throws IOException { IncomeRegister incomeRegister = new IncomeRegister(); @@ -48,7 +67,7 @@ public class FileHandling{ boolean reoccuring = false; IncomeCategory incomeCategory = null; try (BufferedReader br = new BufferedReader(new FileReader(filePath + fileTitle + fileType))) { - String line = br.readLine(); + String line; String nextLine = br.readLine(); while ((line = nextLine) != null) { nextLine = br.readLine(); @@ -67,13 +86,13 @@ public class FileHandling{ case "STUDENT_LOAN" -> IncomeCategory.STUDENT_LOAN; default -> IncomeCategory.SALARY; }; - } if(line.isEmpty() || (nextLine == null)) { + } + if(line.isEmpty() || (nextLine == null)) { if(description.equals("")){ incomeRegister.addItem(new Income(amount, reoccuring, incomeCategory, date)); } else{ incomeRegister.addItem(new Income(description, amount, reoccuring, incomeCategory, date)); } - nextLine=br.readLine(); description = ""; } } @@ -96,7 +115,7 @@ public class FileHandling{ boolean reoccuring = false; ExpenseCategory expenseCategory = null; try (BufferedReader br = new BufferedReader(new FileReader(filePath + fileTitle + fileType))) { - String line = br.readLine(); + String line; String nextLine = br.readLine(); while ((line = nextLine) != null) { nextLine = br.readLine(); @@ -123,11 +142,10 @@ public class FileHandling{ } else { expenseRegister.addItem(new Expense(description, amount, reoccuring, expenseCategory, date)); } - nextLine = br.readLine(); description = ""; } } } return expenseRegister; } -} \ No newline at end of file +} diff --git a/src/main/java/no/ntnu/idatt1002/demo/data/Economics/IncomeRegister.java b/src/main/java/no/ntnu/idatt1002/demo/data/Economics/IncomeRegister.java index 1a9c4a126700254f2e7cf60be624edcbf337e04b..4e8c1a3c77333619006e1a47b275157c3bf30855 100644 --- a/src/main/java/no/ntnu/idatt1002/demo/data/Economics/IncomeRegister.java +++ b/src/main/java/no/ntnu/idatt1002/demo/data/Economics/IncomeRegister.java @@ -6,6 +6,8 @@ import java.util.List; * IncomeRegister is a class for * storing Income. Subclass of * ItemRegister. + * + * @author andreas */ public class IncomeRegister extends ItemRegister<Income>{ /** diff --git a/src/main/java/no/ntnu/idatt1002/demo/data/Economics/Item.java b/src/main/java/no/ntnu/idatt1002/demo/data/Economics/Item.java index 7135894a2001f15dba6af07ebfcbd5bc8940466e..3e20410321b823a58df6d6856ae26f986a51c6b7 100644 --- a/src/main/java/no/ntnu/idatt1002/demo/data/Economics/Item.java +++ b/src/main/java/no/ntnu/idatt1002/demo/data/Economics/Item.java @@ -40,8 +40,8 @@ public abstract class Item { * @param amount The price of the item as a float. */ public Item (String description, double amount, boolean recurring, String date){ - this(amount, recurring, date); - this.description = new SimpleStringProperty(description); + this(amount, recurring, date); + this.description = new SimpleStringProperty(description); } public StringProperty descriptionProperty() { @@ -87,9 +87,14 @@ public abstract class Item { this.amount.set(amount); } + /** + * The method returns the BooleanProperty of recurring. + * @return BooleanProperty whose value is either true or false. + */ public BooleanProperty recurringProperty() { return this.recurring; } + /** * The method returns true if the transaction is recurring, false otherwise. * @return True if the transaction is a recurring one, false otherwise. @@ -154,10 +159,10 @@ public abstract class Item { isReoccuring = "Not reoccurring"; } if(!description.get().isBlank()){ - return "\ndate=" + date.get() +"\ndescription=" + description.get()+"\namount="+amount.get()+"\nisReoccuring="+isReoccuring+"\n"; + return "date=" + date.get() +"\ndescription=" + description.get()+"\namount="+amount.get()+"\nisReoccuring="+isReoccuring+"\n"; } else{ - return "\ndate="+date.get()+"\namount="+amount.get()+"\nisReoccuring="+isReoccuring+"\n"; + return "date="+date.get()+"\namount="+amount.get()+"\nisReoccuring="+isReoccuring+"\n"; } } @@ -183,3 +188,4 @@ public abstract class Item { } + diff --git a/src/main/java/no/ntnu/idatt1002/demo/data/Economics/ItemRegister.java b/src/main/java/no/ntnu/idatt1002/demo/data/Economics/ItemRegister.java index 248434280056ee11236c202fab9c59065214e6ac..70da9679dba85f465705e0782721f3d6b13476a8 100644 --- a/src/main/java/no/ntnu/idatt1002/demo/data/Economics/ItemRegister.java +++ b/src/main/java/no/ntnu/idatt1002/demo/data/Economics/ItemRegister.java @@ -8,6 +8,7 @@ import java.util.List; * for storing either Income or Expense. * * @param <T> Income or Expense + * @author andreas */ public abstract class ItemRegister<T extends Item>{ List<T> items; diff --git a/src/test/java/no/ntnu/idatt1002/demo/data/Economics/ExpenseRegisterTest.java b/src/test/java/no/ntnu/idatt1002/demo/data/Economics/ExpenseRegisterTest.java index cf9f6ba0d63de4f2593f6fe27c22d30a51ae15d8..3f8c5564c7cf45960e2381aa2c909ab41272bd14 100644 --- a/src/test/java/no/ntnu/idatt1002/demo/data/Economics/ExpenseRegisterTest.java +++ b/src/test/java/no/ntnu/idatt1002/demo/data/Economics/ExpenseRegisterTest.java @@ -55,14 +55,6 @@ class ExpenseRegisterTest { } - @Test - @DisplayName("getItem does not throw exception when it should not") - void getItemDoesNotThrow(){ - Expense expense1 = new Expense("description", 59.9f, false, ExpenseCategory.CLOTHES, "03.03.23"); - expenseRegister.addItem(expense1); - assertDoesNotThrow(() -> expenseRegister.getItem(new Expense("description", 59.9f, false, ExpenseCategory.CLOTHES, "03.03.23"))); - } - @Nested @DisplayName("Test getTotalSum and getExpenseByCategory") class testGetExpenseByCategoryMethod { diff --git a/src/test/java/no/ntnu/idatt1002/demo/data/Economics/FileHandlingTest.java b/src/test/java/no/ntnu/idatt1002/demo/data/Economics/FileHandlingTest.java index 59ffe36701caa1eee0832678c4b41a3a16b43b8f..b2140dd619a923e51ed6d54da31f107065709d5b 100644 --- a/src/test/java/no/ntnu/idatt1002/demo/data/Economics/FileHandlingTest.java +++ b/src/test/java/no/ntnu/idatt1002/demo/data/Economics/FileHandlingTest.java @@ -9,6 +9,26 @@ class FileHandlingTest { FileHandling fileHandling = new FileHandling(); ExpenseRegister expenseRegister = new ExpenseRegister(); IncomeRegister incomeRegister = new IncomeRegister(); + + @Nested + @DisplayName("Test isEmpty method") + class testIsEmpty{ + @Test + @DisplayName("isEmpty returns true if a file is empty") + void isEmptyReturnsTrueIfAFileIsEmpty() throws IOException { + fileHandling.writeItemRegisterToFile(incomeRegister, "incomeRegisterTest"); + assertTrue(fileHandling.isEmpty("incomeRegisterTest")); + } + + @Test + @DisplayName("isEmpty returns false if a file is not empty") + void isEmptyReturnsFalseIfFileIsNotEmpty() throws IOException { + Income income1 = new Income("description", 59.9f, false, IncomeCategory.GIFT, "03.03.23"); + incomeRegister.addItem(income1); + fileHandling.writeItemRegisterToFile(incomeRegister, "incomeRegisterTest"); + assertFalse(fileHandling.isEmpty("incomeRegisterTest")); + } + } @Nested @DisplayName("FileHandling IncomeRegister to file") class fileHandlingIncomeRegisterToFile{