/** A class to test the Bank class and the classes it depends on. */ public class BankTester { /** Prints the condition of a bank (to the console) by printing the total balances in vested interest-bearing accounts, nonvested interest-bearing accounts, and non-interest bearing accounts @param the bank */ private static void printCondition(Bank b) { System.out.print("total balances in vested"); System.out.print(" interest-bearing accounts: "); System.out.println(b.totalVestedBalances()); System.out.print("total balances in nonvested"); System.out.print(" interest-bearing accounts: "); System.out.println(b.totalNonVestedBalances()); System.out.print("total balances in non-"); System.out.print("interest-bearing accounts: "); System.out.println(b.totalNonInterestBearingBalances()); } /** Prints (to the console) a message stating whether an operation has been performed or not performed. @param isError is true if and only if the operation was performed. */ private static void printResult(Boolean isError) { if (isError) System.out.println("operation performed"); else System.out.println("operation not performed"); } /** Tests the Bank class @param args is ignored */ public static void main(String[] args) { // simulated year 1 Bank myBank = new Bank(0.05); printResult(myBank.addAccount( new InterestBearingAccount("Alice", 10000))); printResult(myBank.addAccount( new InterestBearingAccount("Bob", 20000))); printResult(myBank.addAccount( new InterestBearingAccount("Alice", 9999))); printResult(myBank.removeNonInterestBearingAccount("Kim")); printResult(myBank.addAccount( new NonInterestBearingAccount("Kim", 1000))); printResult(myBank.removeInterestBearingAccount("Kim")); printResult(myBank.removeInterestBearingAccount(null)); printResult(myBank.removeNonInterestBearingAccount(null)); Bank myBank2 = new Bank(0.04); NonInterestBearingAccount checkingDummy = new NonInterestBearingAccount("Dummy",2222); myBank2.addAccount(checkingDummy); printCondition(myBank); myBank.payInterest(); printCondition(myBank); System.out.println(); // simulated year 2 InterestBearingAccount dummySavingsAccount = null; NonInterestBearingAccount dummyCheckingAccount = null; printResult(myBank.addAccount( new InterestBearingAccount("Kim", 40000))); printResult(myBank.addAccount( new NonInterestBearingAccount("Lee", 2000))); printResult(myBank.addAccount( new NonInterestBearingAccount("Lee", 2999))); printResult( myBank.removeNonInterestBearingAccount("Alice")); printResult(myBank.addAccount(dummySavingsAccount)); printResult(myBank.addAccount(dummyCheckingAccount)); printCondition(myBank); myBank.payInterest(); printCondition(myBank); System.out.println(); // simulated year 3 printResult(myBank.addAccount( new InterestBearingAccount("Lee", 100000))); printResult(myBank.addAccount( new NonInterestBearingAccount("Bob", 10000))); myBank.changeInterestRate(0.10); printCondition(myBank); myBank.payInterest(); printCondition(myBank); System.out.println(); // simulated year 4 printResult( myBank.removeInterestBearingAccount("Bob")); printResult( myBank.removeNonInterestBearingAccount("Kim")); myBank.changeInterestRate(0.10); printCondition(myBank); myBank.payInterest(); printCondition(myBank); System.out.println(); printCondition(myBank2); System.out.println(); } }