Skip to content

Commit aaf606b

Browse files
committed
feat: adds new enhancement and updates to only have necessary tests
1 parent ff9156d commit aaf606b

File tree

8 files changed

+82
-301
lines changed

8 files changed

+82
-301
lines changed
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package com.codedifferently.lesson17.bank;
2+
3+
import java.util.Set;
4+
5+
/** Represents a business checking account. Requires at least one owner to be a BusinessCustomer. */
6+
public class BusinessCheckingAccount extends CheckingAccount {
7+
8+
public BusinessCheckingAccount(
9+
String accountNumber, Set<Customer> owners, double initialBalance) {
10+
super(accountNumber, owners, initialBalance);
11+
12+
boolean hasBusinessOwner = owners.stream().anyMatch(o -> o instanceof BusinessCustomer);
13+
if (!hasBusinessOwner) {
14+
throw new IllegalArgumentException(
15+
"BusinessCheckingAccount requires at least one BusinessCustomer as an owner");
16+
}
17+
}
18+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package com.codedifferently.lesson17.bank;
2+
3+
import java.util.UUID;
4+
5+
/** Represents a business customer of the bank. */
6+
public class BusinessCustomer extends Customer {
7+
public BusinessCustomer(UUID id, String name) {
8+
super(id, name);
9+
}
10+
}

lesson_17/bank/bank_app/src/test/java/com/codedifferently/lesson17/bank/AccountTest.java

Lines changed: 0 additions & 53 deletions
This file was deleted.

lesson_17/bank/bank_app/src/test/java/com/codedifferently/lesson17/bank/BankAtmTest.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,4 +126,24 @@ void testWithdrawFunds_AccountNotFound() {
126126
void testSavingsAccountCannotWriteChecks() {
127127
assertThat(savingsAccount.canWriteChecks()).isFalse();
128128
}
129+
130+
@Test
131+
void testDepositFundsIntoSavingsAccountWorks() {
132+
// Act
133+
classUnderTest.depositFunds(savingsAccount.getAccountNumber(), 200.0);
134+
135+
// Assert
136+
assertThat(savingsAccount.getBalance()).isEqualTo(700.0);
137+
}
138+
139+
@Test
140+
void testDepositCheckIntoSavingsAccountFails() {
141+
// Arrange
142+
Check check = new Check("CHK001", 50.0, (CheckingAccount) account1);
143+
144+
// Act & Assert
145+
assertThatExceptionOfType(IllegalArgumentException.class)
146+
.isThrownBy(() -> classUnderTest.depositFunds(savingsAccount.getAccountNumber(), check))
147+
.withMessage("Can only deposit checks into checking accounts");
148+
}
129149
}
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
package com.codedifferently.lesson17.bank;
2+
3+
import static org.assertj.core.api.Assertions.assertThat;
4+
import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
5+
6+
import java.util.Set;
7+
import java.util.UUID;
8+
import org.junit.jupiter.api.Test;
9+
10+
class BusinessCheckingAccountTest {
11+
12+
@Test
13+
void testBusinessAccountWithBusinessOwnerSucceeds() {
14+
// Arrange
15+
BusinessCustomer biz = new BusinessCustomer(UUID.randomUUID(), "Acme Corp");
16+
17+
// Act
18+
BusinessCheckingAccount account = new BusinessCheckingAccount("BIZ123", Set.of(biz), 1000.0);
19+
20+
// Assert
21+
assertThat(account.getBalance()).isEqualTo(1000.0);
22+
}
23+
24+
@Test
25+
void testBusinessAccountWithoutBusinessOwnerFails() {
26+
// Arrange
27+
Customer person = new Customer(UUID.randomUUID(), "John Doe");
28+
29+
// Act + Assert
30+
assertThatExceptionOfType(IllegalArgumentException.class)
31+
.isThrownBy(() -> new BusinessCheckingAccount("BIZ456", Set.of(person), 500.0))
32+
.withMessage("BusinessCheckingAccount requires at least one BusinessCustomer as an owner");
33+
}
34+
}

lesson_17/bank/bank_app/src/test/java/com/codedifferently/lesson17/bank/CheckTest.java

Lines changed: 0 additions & 78 deletions
This file was deleted.

lesson_17/bank/bank_app/src/test/java/com/codedifferently/lesson17/bank/CheckingAccountTest.java

Lines changed: 0 additions & 123 deletions
This file was deleted.

lesson_17/bank/bank_app/src/test/java/com/codedifferently/lesson17/bank/CustomerTest.java

Lines changed: 0 additions & 47 deletions
This file was deleted.

0 commit comments

Comments
 (0)