From 287c1639b9c28a9d0fdd0e4f784f85ccc261c303 Mon Sep 17 00:00:00 2001 From: XavierCruz5106 Date: Thu, 31 Oct 2024 15:29:16 +0000 Subject: [PATCH 1/7] feat: inital commit --- .../java/com/codedifferently/lesson17/bank/SavingsAccount.java | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 lesson_17/bank/bank_app/src/main/java/com/codedifferently/lesson17/bank/SavingsAccount.java diff --git a/lesson_17/bank/bank_app/src/main/java/com/codedifferently/lesson17/bank/SavingsAccount.java b/lesson_17/bank/bank_app/src/main/java/com/codedifferently/lesson17/bank/SavingsAccount.java new file mode 100644 index 000000000..34eb7c15c --- /dev/null +++ b/lesson_17/bank/bank_app/src/main/java/com/codedifferently/lesson17/bank/SavingsAccount.java @@ -0,0 +1,3 @@ +public class SavingsAccount { + +} From 546128ff636cff7d7f60f78ce419128b404ac865 Mon Sep 17 00:00:00 2001 From: XavierCruz5106 Date: Thu, 31 Oct 2024 15:35:26 +0000 Subject: [PATCH 2/7] feat: savings account created --- .../lesson17/bank/SavingsAccount.java | 128 ++++++++++++++++++ 1 file changed, 128 insertions(+) diff --git a/lesson_17/bank/bank_app/src/main/java/com/codedifferently/lesson17/bank/SavingsAccount.java b/lesson_17/bank/bank_app/src/main/java/com/codedifferently/lesson17/bank/SavingsAccount.java index 34eb7c15c..a1a637fa5 100644 --- a/lesson_17/bank/bank_app/src/main/java/com/codedifferently/lesson17/bank/SavingsAccount.java +++ b/lesson_17/bank/bank_app/src/main/java/com/codedifferently/lesson17/bank/SavingsAccount.java @@ -1,3 +1,131 @@ +package com.codedifferently.lesson17.bank; + +import com.codedifferently.lesson17.bank.exceptions.InsufficientFundsException; +import java.util.Set; + +/** Represents a savings account. */ public class SavingsAccount { + private final Set owners; + private final String accountNumber; + private double balance; + private boolean isActive; + + /** + * Creates a new savings account. + * + * @param accountNumber The account number. + * @param owners The owners of the account. + * @param initialBalance The initial balance of the account. + */ + public SavingsAccount(String accountNumber, Set owners, double initialBalance) { + this.accountNumber = accountNumber; + this.owners = owners; + this.balance = initialBalance; + isActive = true; + } + + /** + * Gets the account number. + * + * @return The account number. + */ + public String getAccountNumber() { + return accountNumber; + } + + /** + * Gets the owners of the account. + * + * @return The owners of the account. + */ + public Set getOwners() { + return owners; + } + + /** + * Deposits funds into the account. + * + * @param amount The amount to deposit. + */ + public void deposit(double amount) throws IllegalStateException { + if (isClosed()) { + throw new IllegalStateException("Cannot deposit to a closed account"); + } + if (amount <= 0) { + throw new IllegalArgumentException("Deposit amount must be positive"); + } + balance += amount; + } + + /** + * Withdraws funds from the account. + * + * @param amount + * @throws InsufficientFundsException + */ + public void withdraw(double amount) throws InsufficientFundsException { + if (isClosed()) { + throw new IllegalStateException("Cannot withdraw from a closed account"); + } + if (amount <= 0) { + throw new IllegalStateException("Withdrawal amount must be positive"); + } + if (balance < amount) { + throw new InsufficientFundsException("Account does not have enough funds for withdrawal"); + } + balance -= amount; + } + + /** + * Gets the balance of the account. + * + * @return The balance of the account. + */ + public double getBalance() { + return balance; + } + + /** Closes the account. */ + public void closeAccount() throws IllegalStateException { + if (balance > 0) { + throw new IllegalStateException("Cannot close account with a positive balance"); + } + isActive = false; + } + + /** + * Checks if the account is closed. + * + * @return True if the account is closed, otherwise false. + */ + public boolean isClosed() { + return !isActive; + } + + @Override + public int hashCode() { + return accountNumber.hashCode(); + } + + @Override + public boolean equals(Object obj) { + if (obj instanceof SavingsAccount other) { + return accountNumber.equals(other.accountNumber); + } + return false; + } + + @Override + public String toString() { + return "SavingsAccount{" + + "accountNumber='" + + accountNumber + + '\'' + + ", balance=" + + balance + + ", isActive=" + + isActive + + '}'; + } } From b95940c1f808102019156ed86058142a723ec300 Mon Sep 17 00:00:00 2001 From: XavierCruz5106 Date: Thu, 31 Oct 2024 20:06:55 +0000 Subject: [PATCH 3/7] feat: adds BusinessChecking and adds a field for customers to be a business --- .../bank/BusinessCheckingAccount.java | 22 ++++++++++++++++++ .../lesson17/bank/Customer.java | 4 +++- .../lesson17/bank/MoneyOrder.java | 23 +++++++++++++++++++ 3 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 lesson_17/bank/bank_app/src/main/java/com/codedifferently/lesson17/bank/BusinessCheckingAccount.java create mode 100644 lesson_17/bank/bank_app/src/main/java/com/codedifferently/lesson17/bank/MoneyOrder.java diff --git a/lesson_17/bank/bank_app/src/main/java/com/codedifferently/lesson17/bank/BusinessCheckingAccount.java b/lesson_17/bank/bank_app/src/main/java/com/codedifferently/lesson17/bank/BusinessCheckingAccount.java new file mode 100644 index 000000000..c9e31d92d --- /dev/null +++ b/lesson_17/bank/bank_app/src/main/java/com/codedifferently/lesson17/bank/BusinessCheckingAccount.java @@ -0,0 +1,22 @@ +package com.codedifferently.lesson17.bank; + +import java.util.Set; + +public class BusinessCheckingAccount extends CheckingAccount { + private boolean isActive; + + /** + * Creates a new business checking account. + * + * @param accountNumber The account number. + * @param owners The owners of the account. + * @param initialBalance The initial balance of the account. + */ + public BusinessCheckingAccount(String accountNumber, Set owners, double initialBalance) { + super(accountNumber, owners, initialBalance); + isActive = true; + } + + + +} diff --git a/lesson_17/bank/bank_app/src/main/java/com/codedifferently/lesson17/bank/Customer.java b/lesson_17/bank/bank_app/src/main/java/com/codedifferently/lesson17/bank/Customer.java index af0847134..0a349c4e5 100644 --- a/lesson_17/bank/bank_app/src/main/java/com/codedifferently/lesson17/bank/Customer.java +++ b/lesson_17/bank/bank_app/src/main/java/com/codedifferently/lesson17/bank/Customer.java @@ -10,6 +10,7 @@ public class Customer { private final UUID id; private final String name; private final Set accounts = new HashSet<>(); + private boolean isBusiness; /** * Creates a new customer. @@ -17,9 +18,10 @@ public class Customer { * @param id The ID of the customer. * @param name The name of the customer. */ - public Customer(UUID id, String name) { + public Customer(UUID id, String name, boolean isBusiness) { this.id = id; this.name = name; + this.isBusiness = isBusiness; } /** diff --git a/lesson_17/bank/bank_app/src/main/java/com/codedifferently/lesson17/bank/MoneyOrder.java b/lesson_17/bank/bank_app/src/main/java/com/codedifferently/lesson17/bank/MoneyOrder.java new file mode 100644 index 000000000..f50d5903f --- /dev/null +++ b/lesson_17/bank/bank_app/src/main/java/com/codedifferently/lesson17/bank/MoneyOrder.java @@ -0,0 +1,23 @@ +package com.codedifferently.lesson17.bank; + +public class MoneyOrder { + private double amount; + private CheckingAccount account; + + + + /** + * Creates a new check. + * + * @param checkNumber The check number. + * @param amount The amount of the check. + * @param account The account the check is drawn on. + */ + public MoneyOrder(double amount, CheckingAccount account) { + if (amount < 0) { + throw new IllegalArgumentException("Money Order amount must be positive"); + } + this.amount = amount; + this.account = account; + } +} From 0fc4226521ca9c1f1985871ba8364d809304f061 Mon Sep 17 00:00:00 2001 From: XavierCruz5106 Date: Mon, 4 Nov 2024 01:26:16 +0000 Subject: [PATCH 4/7] feat: added currency converter, AuditLog unfinished --- .../lesson17/bank/AuditLog.java | 0 .../lesson17/bank/BankAtm.java | 8 +++++-- .../bank/BusinessCheckingAccount.java | 2 -- .../lesson17/bank/CurrencyConverter.java | 22 +++++++++++++++++++ .../lesson17/bank/Customer.java | 7 +++++- .../lesson17/bank/MoneyOrder.java | 2 ++ .../UnsupportedCurrencyException.java | 9 ++++++++ 7 files changed, 45 insertions(+), 5 deletions(-) create mode 100644 lesson_17/bank/bank_app/src/main/java/com/codedifferently/lesson17/bank/AuditLog.java create mode 100644 lesson_17/bank/bank_app/src/main/java/com/codedifferently/lesson17/bank/CurrencyConverter.java create mode 100644 lesson_17/bank/bank_app/src/main/java/com/codedifferently/lesson17/bank/exceptions/UnsupportedCurrencyException.java diff --git a/lesson_17/bank/bank_app/src/main/java/com/codedifferently/lesson17/bank/AuditLog.java b/lesson_17/bank/bank_app/src/main/java/com/codedifferently/lesson17/bank/AuditLog.java new file mode 100644 index 000000000..e69de29bb diff --git a/lesson_17/bank/bank_app/src/main/java/com/codedifferently/lesson17/bank/BankAtm.java b/lesson_17/bank/bank_app/src/main/java/com/codedifferently/lesson17/bank/BankAtm.java index 8cbcd3cc0..f926637f6 100644 --- a/lesson_17/bank/bank_app/src/main/java/com/codedifferently/lesson17/bank/BankAtm.java +++ b/lesson_17/bank/bank_app/src/main/java/com/codedifferently/lesson17/bank/BankAtm.java @@ -1,6 +1,8 @@ package com.codedifferently.lesson17.bank; import com.codedifferently.lesson17.bank.exceptions.AccountNotFoundException; +import com.codedifferently.lesson17.bank.exceptions.UnsupportedCurrencyException; + import java.util.HashMap; import java.util.Map; import java.util.Set; @@ -44,10 +46,12 @@ public Set findAccountsByCustomerId(UUID customerId) { * * @param accountNumber The account number. * @param amount The amount to deposit. + * @throws UnsupportedCurrencyException */ - public void depositFunds(String accountNumber, double amount) { + public void depositFunds(String accountNumber, double amount, String currencyType) throws UnsupportedCurrencyException { CheckingAccount account = getAccountOrThrow(accountNumber); - account.deposit(amount); + double convertedAmount = CurrencyConverter.convert(amount, currencyType, "USD"); + account.deposit(convertedAmount); } /** diff --git a/lesson_17/bank/bank_app/src/main/java/com/codedifferently/lesson17/bank/BusinessCheckingAccount.java b/lesson_17/bank/bank_app/src/main/java/com/codedifferently/lesson17/bank/BusinessCheckingAccount.java index c9e31d92d..48ece87f3 100644 --- a/lesson_17/bank/bank_app/src/main/java/com/codedifferently/lesson17/bank/BusinessCheckingAccount.java +++ b/lesson_17/bank/bank_app/src/main/java/com/codedifferently/lesson17/bank/BusinessCheckingAccount.java @@ -17,6 +17,4 @@ public BusinessCheckingAccount(String accountNumber, Set owners, doubl isActive = true; } - - } diff --git a/lesson_17/bank/bank_app/src/main/java/com/codedifferently/lesson17/bank/CurrencyConverter.java b/lesson_17/bank/bank_app/src/main/java/com/codedifferently/lesson17/bank/CurrencyConverter.java new file mode 100644 index 000000000..6602bce73 --- /dev/null +++ b/lesson_17/bank/bank_app/src/main/java/com/codedifferently/lesson17/bank/CurrencyConverter.java @@ -0,0 +1,22 @@ +package com.codedifferently.lesson17.bank; + +import java.util.Map; + +import com.codedifferently.lesson17.bank.exceptions.UnsupportedCurrencyException; + +public class CurrencyConverter { + private static final Map exchangeRates = Map.of( + "USD", 1.0, + "EUR", 0.9, + "GBP", 0.8, + "JPY", 110.0 + ); + + public static double convert(double amount, String fromCurrency, String toCurrency) throws UnsupportedCurrencyException { + if (!exchangeRates.containsKey(fromCurrency) || !exchangeRates.containsKey(toCurrency)) { + throw new UnsupportedCurrencyException("Unsupported currency type."); + } + double amountInUSD = amount / exchangeRates.get(fromCurrency); + return amountInUSD * exchangeRates.get(toCurrency); + } +} diff --git a/lesson_17/bank/bank_app/src/main/java/com/codedifferently/lesson17/bank/Customer.java b/lesson_17/bank/bank_app/src/main/java/com/codedifferently/lesson17/bank/Customer.java index 0a349c4e5..a33284d35 100644 --- a/lesson_17/bank/bank_app/src/main/java/com/codedifferently/lesson17/bank/Customer.java +++ b/lesson_17/bank/bank_app/src/main/java/com/codedifferently/lesson17/bank/Customer.java @@ -10,7 +10,7 @@ public class Customer { private final UUID id; private final String name; private final Set accounts = new HashSet<>(); - private boolean isBusiness; + private boolean isBusiness = false; /** * Creates a new customer. @@ -24,6 +24,11 @@ public Customer(UUID id, String name, boolean isBusiness) { this.isBusiness = isBusiness; } + public Customer(UUID id, String name) { + this.id = id; + this.name = name; + } + /** * Gets the ID of the customer. * diff --git a/lesson_17/bank/bank_app/src/main/java/com/codedifferently/lesson17/bank/MoneyOrder.java b/lesson_17/bank/bank_app/src/main/java/com/codedifferently/lesson17/bank/MoneyOrder.java index f50d5903f..3634f903e 100644 --- a/lesson_17/bank/bank_app/src/main/java/com/codedifferently/lesson17/bank/MoneyOrder.java +++ b/lesson_17/bank/bank_app/src/main/java/com/codedifferently/lesson17/bank/MoneyOrder.java @@ -19,5 +19,7 @@ public MoneyOrder(double amount, CheckingAccount account) { } this.amount = amount; this.account = account; + + account.withdraw(amount); } } diff --git a/lesson_17/bank/bank_app/src/main/java/com/codedifferently/lesson17/bank/exceptions/UnsupportedCurrencyException.java b/lesson_17/bank/bank_app/src/main/java/com/codedifferently/lesson17/bank/exceptions/UnsupportedCurrencyException.java new file mode 100644 index 000000000..1e46ea8eb --- /dev/null +++ b/lesson_17/bank/bank_app/src/main/java/com/codedifferently/lesson17/bank/exceptions/UnsupportedCurrencyException.java @@ -0,0 +1,9 @@ +package com.codedifferently.lesson17.bank.exceptions; + +public class UnsupportedCurrencyException extends Exception { + public UnsupportedCurrencyException() {} + + public UnsupportedCurrencyException(String message) { + super(message); + } +} From a424e76c128c0326dcc8ae12149badeb102e5ecd Mon Sep 17 00:00:00 2001 From: XavierCruz5106 Date: Mon, 4 Nov 2024 01:30:08 +0000 Subject: [PATCH 5/7] feat: add exception to test. Inital commit for AuditLog --- .../java/com/codedifferently/lesson17/bank/AuditLog.java | 5 +++++ .../com/codedifferently/lesson17/bank/BankAtmTest.java | 9 ++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/lesson_17/bank/bank_app/src/main/java/com/codedifferently/lesson17/bank/AuditLog.java b/lesson_17/bank/bank_app/src/main/java/com/codedifferently/lesson17/bank/AuditLog.java index e69de29bb..527950c3c 100644 --- a/lesson_17/bank/bank_app/src/main/java/com/codedifferently/lesson17/bank/AuditLog.java +++ b/lesson_17/bank/bank_app/src/main/java/com/codedifferently/lesson17/bank/AuditLog.java @@ -0,0 +1,5 @@ +package com.codedifferently.lesson17.bank; + +public class AuditLog { + +} diff --git a/lesson_17/bank/bank_app/src/test/java/com/codedifferently/lesson17/bank/BankAtmTest.java b/lesson_17/bank/bank_app/src/test/java/com/codedifferently/lesson17/bank/BankAtmTest.java index fa4a913a2..140b86abd 100644 --- a/lesson_17/bank/bank_app/src/test/java/com/codedifferently/lesson17/bank/BankAtmTest.java +++ b/lesson_17/bank/bank_app/src/test/java/com/codedifferently/lesson17/bank/BankAtmTest.java @@ -5,6 +5,8 @@ import com.codedifferently.lesson17.bank.exceptions.AccountNotFoundException; import com.codedifferently.lesson17.bank.exceptions.CheckVoidedException; +import com.codedifferently.lesson17.bank.exceptions.UnsupportedCurrencyException; + import java.util.Set; import java.util.UUID; import org.junit.jupiter.api.BeforeEach; @@ -59,7 +61,12 @@ void testFindAccountsByCustomerId() { @Test void testDepositFunds() { // Act - classUnderTest.depositFunds(account1.getAccountNumber(), 50.0); + try { + classUnderTest.depositFunds(account1.getAccountNumber(), 50.0, "USD"); + } catch (UnsupportedCurrencyException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } // Assert assertThat(account1.getBalance()).isEqualTo(150.0); From 47b9f979bb0a2e13329f0765eb5fcd84fdf33efd Mon Sep 17 00:00:00 2001 From: XavierCruz5106 Date: Mon, 4 Nov 2024 14:53:30 +0000 Subject: [PATCH 6/7] feat: added tests --- .../lesson17/bank/SavingsAccountTest.java | 107 ++++++++++++++++++ 1 file changed, 107 insertions(+) create mode 100644 lesson_17/bank/bank_app/src/test/java/com/codedifferently/lesson17/bank/SavingsAccountTest.java diff --git a/lesson_17/bank/bank_app/src/test/java/com/codedifferently/lesson17/bank/SavingsAccountTest.java b/lesson_17/bank/bank_app/src/test/java/com/codedifferently/lesson17/bank/SavingsAccountTest.java new file mode 100644 index 000000000..1da880eb8 --- /dev/null +++ b/lesson_17/bank/bank_app/src/test/java/com/codedifferently/lesson17/bank/SavingsAccountTest.java @@ -0,0 +1,107 @@ +package com.codedifferently.lesson17.bank; + +import java.util.HashSet; +import java.util.Set; +import java.util.UUID; + +import static org.assertj.core.api.Assertions.assertThatExceptionOfType; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import com.codedifferently.lesson17.bank.exceptions.InsufficientFundsException; + +class SavingsAccountTest { + + private SavingsAccount classUnderTest; + private Set owners; + + @BeforeEach + void setUp() { + owners = new HashSet<>(); + owners.add(new Customer(UUID.randomUUID(), "John Doe")); + owners.add(new Customer(UUID.randomUUID(), "Jane Smith")); + classUnderTest = new SavingsAccount("123456789", owners, 100.0); + } + + @Test + void getAccountNumber() { + assertEquals("123456789", classUnderTest.getAccountNumber()); + } + + @Test + void getOwners() { + assertEquals(owners, classUnderTest.getOwners()); + } + + @Test + void deposit() { + classUnderTest.deposit(50.0); + assertEquals(150.0, classUnderTest.getBalance()); + } + + @Test + void deposit_withNegativeAmount() { + assertThatExceptionOfType(IllegalArgumentException.class) + .isThrownBy(() -> classUnderTest.deposit(-50.0)); + } + + @Test + void withdraw() { + classUnderTest.withdraw(50.0); + assertEquals(50.0, classUnderTest.getBalance()); + } + + @Test + void withdraw_withNegativeAmount() { + assertThatExceptionOfType(IllegalStateException.class) + .isThrownBy(() -> classUnderTest.withdraw(-50.0)) + .withMessage("Withdrawal amount must be positive"); + } + + @Test + void withdraw_withInsufficientBalance() { + assertThatExceptionOfType(InsufficientFundsException.class) + .isThrownBy(() -> classUnderTest.withdraw(150.0)) + .withMessage("Account does not have enough funds for withdrawal"); + } + + @Test + void getBalance() { + assertEquals(100.0, classUnderTest.getBalance()); + } + + @Test + void closeAccount_withPositiveBalance() { + assertThatExceptionOfType(IllegalStateException.class) + .isThrownBy(() -> classUnderTest.closeAccount()); + } + + @Test + void isClosed() { + assertFalse(classUnderTest.isClosed()); + classUnderTest.withdraw(100); + classUnderTest.closeAccount(); + assertTrue(classUnderTest.isClosed()); + } + + @Test + void equals() { + SavingsAccount otherAccount = new SavingsAccount("123456789", owners, 200.0); + assertEquals(classUnderTest, otherAccount); + } + + @Test + void hashCodeTest() { + SavingsAccount otherAccount = new SavingsAccount("123456789", owners, 200.0); + assertEquals(classUnderTest.hashCode(), otherAccount.hashCode()); + } + + @Test + void toStringTest() { + String expected = "SavingsAccount{accountNumber='123456789', balance=100.0, isActive=true}"; + assertEquals(expected, classUnderTest.toString()); + } +} From e9931389f560379bc871b0a9a9f8a509dd8c3dc5 Mon Sep 17 00:00:00 2001 From: XavierCruz5106 Date: Mon, 4 Nov 2024 14:57:25 +0000 Subject: [PATCH 7/7] chore: spotlessApply --- .../lesson17/bank/AuditLog.java | 4 +-- .../lesson17/bank/BankAtm.java | 4 +-- .../bank/BusinessCheckingAccount.java | 4 +-- .../lesson17/bank/CurrencyConverter.java | 28 +++++++++---------- .../lesson17/bank/MoneyOrder.java | 2 -- .../lesson17/bank/BankAtmTest.java | 1 - .../lesson17/bank/SavingsAccountTest.java | 11 ++++---- 7 files changed, 24 insertions(+), 30 deletions(-) diff --git a/lesson_17/bank/bank_app/src/main/java/com/codedifferently/lesson17/bank/AuditLog.java b/lesson_17/bank/bank_app/src/main/java/com/codedifferently/lesson17/bank/AuditLog.java index 527950c3c..468ee81d9 100644 --- a/lesson_17/bank/bank_app/src/main/java/com/codedifferently/lesson17/bank/AuditLog.java +++ b/lesson_17/bank/bank_app/src/main/java/com/codedifferently/lesson17/bank/AuditLog.java @@ -1,5 +1,3 @@ package com.codedifferently.lesson17.bank; -public class AuditLog { - -} +public class AuditLog {} diff --git a/lesson_17/bank/bank_app/src/main/java/com/codedifferently/lesson17/bank/BankAtm.java b/lesson_17/bank/bank_app/src/main/java/com/codedifferently/lesson17/bank/BankAtm.java index f926637f6..53a83805f 100644 --- a/lesson_17/bank/bank_app/src/main/java/com/codedifferently/lesson17/bank/BankAtm.java +++ b/lesson_17/bank/bank_app/src/main/java/com/codedifferently/lesson17/bank/BankAtm.java @@ -2,7 +2,6 @@ import com.codedifferently.lesson17.bank.exceptions.AccountNotFoundException; import com.codedifferently.lesson17.bank.exceptions.UnsupportedCurrencyException; - import java.util.HashMap; import java.util.Map; import java.util.Set; @@ -48,7 +47,8 @@ public Set findAccountsByCustomerId(UUID customerId) { * @param amount The amount to deposit. * @throws UnsupportedCurrencyException */ - public void depositFunds(String accountNumber, double amount, String currencyType) throws UnsupportedCurrencyException { + public void depositFunds(String accountNumber, double amount, String currencyType) + throws UnsupportedCurrencyException { CheckingAccount account = getAccountOrThrow(accountNumber); double convertedAmount = CurrencyConverter.convert(amount, currencyType, "USD"); account.deposit(convertedAmount); diff --git a/lesson_17/bank/bank_app/src/main/java/com/codedifferently/lesson17/bank/BusinessCheckingAccount.java b/lesson_17/bank/bank_app/src/main/java/com/codedifferently/lesson17/bank/BusinessCheckingAccount.java index 48ece87f3..12d3567f7 100644 --- a/lesson_17/bank/bank_app/src/main/java/com/codedifferently/lesson17/bank/BusinessCheckingAccount.java +++ b/lesson_17/bank/bank_app/src/main/java/com/codedifferently/lesson17/bank/BusinessCheckingAccount.java @@ -12,9 +12,9 @@ public class BusinessCheckingAccount extends CheckingAccount { * @param owners The owners of the account. * @param initialBalance The initial balance of the account. */ - public BusinessCheckingAccount(String accountNumber, Set owners, double initialBalance) { + public BusinessCheckingAccount( + String accountNumber, Set owners, double initialBalance) { super(accountNumber, owners, initialBalance); isActive = true; } - } diff --git a/lesson_17/bank/bank_app/src/main/java/com/codedifferently/lesson17/bank/CurrencyConverter.java b/lesson_17/bank/bank_app/src/main/java/com/codedifferently/lesson17/bank/CurrencyConverter.java index 6602bce73..5a17692ce 100644 --- a/lesson_17/bank/bank_app/src/main/java/com/codedifferently/lesson17/bank/CurrencyConverter.java +++ b/lesson_17/bank/bank_app/src/main/java/com/codedifferently/lesson17/bank/CurrencyConverter.java @@ -1,22 +1,22 @@ package com.codedifferently.lesson17.bank; -import java.util.Map; - import com.codedifferently.lesson17.bank.exceptions.UnsupportedCurrencyException; +import java.util.Map; public class CurrencyConverter { - private static final Map exchangeRates = Map.of( - "USD", 1.0, - "EUR", 0.9, - "GBP", 0.8, - "JPY", 110.0 - ); + private static final Map exchangeRates = + Map.of( + "USD", 1.0, + "EUR", 0.9, + "GBP", 0.8, + "JPY", 110.0); - public static double convert(double amount, String fromCurrency, String toCurrency) throws UnsupportedCurrencyException { - if (!exchangeRates.containsKey(fromCurrency) || !exchangeRates.containsKey(toCurrency)) { - throw new UnsupportedCurrencyException("Unsupported currency type."); - } - double amountInUSD = amount / exchangeRates.get(fromCurrency); - return amountInUSD * exchangeRates.get(toCurrency); + public static double convert(double amount, String fromCurrency, String toCurrency) + throws UnsupportedCurrencyException { + if (!exchangeRates.containsKey(fromCurrency) || !exchangeRates.containsKey(toCurrency)) { + throw new UnsupportedCurrencyException("Unsupported currency type."); + } + double amountInUSD = amount / exchangeRates.get(fromCurrency); + return amountInUSD * exchangeRates.get(toCurrency); } } diff --git a/lesson_17/bank/bank_app/src/main/java/com/codedifferently/lesson17/bank/MoneyOrder.java b/lesson_17/bank/bank_app/src/main/java/com/codedifferently/lesson17/bank/MoneyOrder.java index 3634f903e..50222d4ce 100644 --- a/lesson_17/bank/bank_app/src/main/java/com/codedifferently/lesson17/bank/MoneyOrder.java +++ b/lesson_17/bank/bank_app/src/main/java/com/codedifferently/lesson17/bank/MoneyOrder.java @@ -4,8 +4,6 @@ public class MoneyOrder { private double amount; private CheckingAccount account; - - /** * Creates a new check. * diff --git a/lesson_17/bank/bank_app/src/test/java/com/codedifferently/lesson17/bank/BankAtmTest.java b/lesson_17/bank/bank_app/src/test/java/com/codedifferently/lesson17/bank/BankAtmTest.java index 140b86abd..d34a3b722 100644 --- a/lesson_17/bank/bank_app/src/test/java/com/codedifferently/lesson17/bank/BankAtmTest.java +++ b/lesson_17/bank/bank_app/src/test/java/com/codedifferently/lesson17/bank/BankAtmTest.java @@ -6,7 +6,6 @@ import com.codedifferently.lesson17.bank.exceptions.AccountNotFoundException; import com.codedifferently.lesson17.bank.exceptions.CheckVoidedException; import com.codedifferently.lesson17.bank.exceptions.UnsupportedCurrencyException; - import java.util.Set; import java.util.UUID; import org.junit.jupiter.api.BeforeEach; diff --git a/lesson_17/bank/bank_app/src/test/java/com/codedifferently/lesson17/bank/SavingsAccountTest.java b/lesson_17/bank/bank_app/src/test/java/com/codedifferently/lesson17/bank/SavingsAccountTest.java index 1da880eb8..934ea6b70 100644 --- a/lesson_17/bank/bank_app/src/test/java/com/codedifferently/lesson17/bank/SavingsAccountTest.java +++ b/lesson_17/bank/bank_app/src/test/java/com/codedifferently/lesson17/bank/SavingsAccountTest.java @@ -1,17 +1,16 @@ package com.codedifferently.lesson17.bank; -import java.util.HashSet; -import java.util.Set; -import java.util.UUID; - import static org.assertj.core.api.Assertions.assertThatExceptionOfType; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; import com.codedifferently.lesson17.bank.exceptions.InsufficientFundsException; +import java.util.HashSet; +import java.util.Set; +import java.util.UUID; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; class SavingsAccountTest {