From 47572e9670e1f9ba1f0a9c15fa429e93db22f57e Mon Sep 17 00:00:00 2001 From: vibes-863 Date: Wed, 20 Mar 2024 23:42:38 +0800 Subject: [PATCH 1/5] Update welcome message --- src/main/java/budgetbuddy/BudgetBuddy.java | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/main/java/budgetbuddy/BudgetBuddy.java b/src/main/java/budgetbuddy/BudgetBuddy.java index f7ece6c633..79d57211bf 100644 --- a/src/main/java/budgetbuddy/BudgetBuddy.java +++ b/src/main/java/budgetbuddy/BudgetBuddy.java @@ -18,11 +18,8 @@ public class BudgetBuddy { public static void main(String[] args) { String logo = "BUDGET BUDDY"; System.out.println("Hello from\n" + logo); - System.out.println("What is your name?"); - + System.out.println("What can I do for you?"); Scanner in = new Scanner(System.in); - System.out.println("Hello " + in.nextLine()); - TransactionList transactions = null; try { From 8a0a3da67f8cca9560ed3acbcfec04513eaa1dcf Mon Sep 17 00:00:00 2001 From: vibes-863 Date: Wed, 20 Mar 2024 23:44:02 +0800 Subject: [PATCH 2/5] Fix bug in checking if amount is double --- src/main/java/budgetbuddy/parser/Parser.java | 3 +-- .../budgetbuddy/transaction/TransactionList.java | 16 ++++++++++++---- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/src/main/java/budgetbuddy/parser/Parser.java b/src/main/java/budgetbuddy/parser/Parser.java index c0c85fbd15..6b75a99408 100644 --- a/src/main/java/budgetbuddy/parser/Parser.java +++ b/src/main/java/budgetbuddy/parser/Parser.java @@ -29,8 +29,7 @@ public Transaction parseTransaction(String input, Account account) description = parseData[i + 1].trim(); break; case "$": - // Checks that input is an Integer - if (!TransactionList.isInteger(parseData[i+1].trim())) { + if (TransactionList.isNotDouble(parseData[i + 1].trim())) { throw new NumberFormatException(parseData[i+1].trim()); } else { amount = parseData[i + 1].trim(); diff --git a/src/main/java/budgetbuddy/transaction/TransactionList.java b/src/main/java/budgetbuddy/transaction/TransactionList.java index 92e03cb2bd..2e0ad9cab4 100644 --- a/src/main/java/budgetbuddy/transaction/TransactionList.java +++ b/src/main/java/budgetbuddy/transaction/TransactionList.java @@ -43,7 +43,7 @@ public void removeTransaction(String input, Account account) throws EmptyArgumen throw new EmptyArgumentException("delete index"); } String data = input.substring(DELETE_BEGIN_INDEX).trim(); - if (!isInteger(data)) { + if (isNotInteger(data)) { throw new NumberFormatException(data); } int id = Integer.parseInt(data) - INDEX_OFFSET; @@ -60,13 +60,21 @@ public void removeTransaction(String input, Account account) throws EmptyArgumen } } - // Checks whether the input index is an Integer - public static boolean isInteger(String data) { + public static boolean isNotInteger(String data) { try { Integer.parseInt(data); - return true; + return false; } catch (NumberFormatException e) { + return true; + } + } + + public static boolean isNotDouble(String data) { + try { + Double.parseDouble(data); return false; + } catch (NumberFormatException e) { + return true; } } From 1e61a1c692f6183aaad3f377756fec3703e838c2 Mon Sep 17 00:00:00 2001 From: vibes-863 Date: Wed, 20 Mar 2024 23:44:24 +0800 Subject: [PATCH 3/5] Fix bug in DataStorage --- src/main/java/budgetbuddy/storage/DataStorage.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/budgetbuddy/storage/DataStorage.java b/src/main/java/budgetbuddy/storage/DataStorage.java index 59eb8a4605..88f55a588f 100644 --- a/src/main/java/budgetbuddy/storage/DataStorage.java +++ b/src/main/java/budgetbuddy/storage/DataStorage.java @@ -61,7 +61,7 @@ private Transaction processData(String s, Account account) { return new Income(transactionInfo[0], Double.parseDouble(transactionInfo[4]), transactionInfo[1], transactionInfo[3], account); case "Expense": - return new Expense(transactionInfo[0], Double.parseDouble(transactionInfo[4]), + return new Expense(transactionInfo[0], -Double.parseDouble(transactionInfo[4]), transactionInfo[1], transactionInfo[3], account); default: return null; From 753a9fd02269a3956974dcae613404c7e4b20202 Mon Sep 17 00:00:00 2001 From: vibes-863 Date: Wed, 20 Mar 2024 23:44:43 +0800 Subject: [PATCH 4/5] Add assertions to Expense and Income class --- build.gradle | 1 + src/main/java/budgetbuddy/transaction/type/Expense.java | 6 ++++++ src/main/java/budgetbuddy/transaction/type/Income.java | 6 ++++++ 3 files changed, 13 insertions(+) diff --git a/build.gradle b/build.gradle index 08e9d80a46..b5763d7db6 100644 --- a/build.gradle +++ b/build.gradle @@ -42,5 +42,6 @@ checkstyle { } run{ +// enableAssertions = true standardInput = System.in } diff --git a/src/main/java/budgetbuddy/transaction/type/Expense.java b/src/main/java/budgetbuddy/transaction/type/Expense.java index 095e586565..8d8fa36583 100644 --- a/src/main/java/budgetbuddy/transaction/type/Expense.java +++ b/src/main/java/budgetbuddy/transaction/type/Expense.java @@ -7,6 +7,12 @@ public class Expense extends Transaction { public Expense(String description, double amount, String category, String date, Account account) { super(description, -amount, category, date); + assert this.getAmount() < 0: "Expense amount must be positive"; + assert description != null && !description.isEmpty() : "Description cannot be null or empty"; + assert category != null && !category.isEmpty() : "Category cannot be null or empty"; + assert date != null : "Date cannot be null"; + assert account != null : "Account cannot be null"; + account.setBalance(account.getBalance() + this.getAmount()); } diff --git a/src/main/java/budgetbuddy/transaction/type/Income.java b/src/main/java/budgetbuddy/transaction/type/Income.java index d705394dd7..684dcb271f 100644 --- a/src/main/java/budgetbuddy/transaction/type/Income.java +++ b/src/main/java/budgetbuddy/transaction/type/Income.java @@ -7,6 +7,12 @@ public class Income extends Transaction { public Income(String description, double amount, String category, String date, Account account) { super(description, amount, category, date); + assert this.getAmount() > 0: "Income amount must be positive"; + assert description != null && !description.isEmpty() : "Description cannot be null or empty"; + assert category != null && !category.isEmpty() : "Category cannot be null or empty"; + assert date != null : "Date cannot be null"; + assert account != null : "Account cannot be null"; + account.setBalance(account.getBalance() + this.getAmount()); } From fd96185433dd8248b9edb4d4dacb7316cd1e4278 Mon Sep 17 00:00:00 2001 From: vibes-863 Date: Wed, 20 Mar 2024 23:52:28 +0800 Subject: [PATCH 5/5] Fix text-ui-test --- text-ui-test/EXPECTED.TXT | 3 +-- text-ui-test/input.txt | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/text-ui-test/EXPECTED.TXT b/text-ui-test/EXPECTED.TXT index 471c6f5580..61619e10e3 100644 --- a/text-ui-test/EXPECTED.TXT +++ b/text-ui-test/EXPECTED.TXT @@ -1,7 +1,6 @@ Hello from BUDGET BUDDY -What is your name? -Hello James Gosling +What can I do for you? ---------------------------------------------------------------------------------------------------------------------------------------- Bye... Don't forget to keep track of your future transactions ---------------------------------------------------------------------------------------------------------------------------------------- diff --git a/text-ui-test/input.txt b/text-ui-test/input.txt index 1329553ca2..b023018cab 100644 --- a/text-ui-test/input.txt +++ b/text-ui-test/input.txt @@ -1,2 +1 @@ -James Gosling -bye \ No newline at end of file +bye