/** Diese Klasse macht einen einfachen Blackboxtest von CheckingAccount. Jeder Konstruktor und jede Operation wird durch mindestens einen Aufruf getestet. Bei Fallunterscheidungen wird jeder Fall einmal getestet. Auserdem werden die Werte in den Grenzbereichen geprueft. @author info2 @version 1.1 */ public class CheckingAccountOpsTest { /** Die Operation main fuehrt die Blackboxtestfaelle aus. */ public static void main (String[] args) { //Test des Konstruktors CheckingAccount(double initialbalance) System.out.println("Test des Konstruktors CheckingAccount(amount):"+ " Erzeugung eines CheckingAcc-Objekts mit Kontostand 2000 f�r girokonto"); System.out.println("Erwartetes Ergebnis: balance = 2000.0, transactionCount = 0"); CheckingAccount girokonto = new CheckingAccount(2000); System.out.println("Zustand von girokonto: "+girokonto.toString()); //Test des Konstruktors CheckingAccount() System.out.println("Test des Konstruktors CheckingAccount():"+ " Erzeugung eines CheckingAcc-Objekts f�r girokonto1"); System.out.println("Erwartetes Ergebnis: balance = 0.0, transactionCount = 0"); CheckingAccount girokonto1 = new CheckingAccount(); System.out.println("Zustand von girokonto1: "+girokonto1.toString()); //Test von transferTo System.out.println("Zustand von girokonto: "+girokonto.toString()); System.out.println("Erwartetes Ergebnis: " + "girokonto: balance = 1500.0, transactionCount = 1" + '\n' + "girokonto1: balance = 500.0, transactionCount = 1"); girokonto.transferTo(girokonto1, 500); //dyn. Bindung! System.out.println("Zustand von girokonto1: "+girokonto1.toString()); System.out.println("Zustand von girokonto: "+girokonto.toString()); //Test von withdraw System.out.println("Aufruf von girokonto.withdraw(500)"); System.out.println("Erwartetes Ergebnis: balance = 1000.0, transactionCount = 2"); girokonto.withdraw(500); System.out.println("Zustand von girokonto: "+girokonto.toString()); //Test von deposit System.out.println("Aufruf von girokonto.deposit(200)"); System.out.println("Erwartetes Ergebnis: balance = 1200.0, transactionCount = 3"); girokonto.deposit(200); //dyn. Bindung! System.out.println("Zustand von girokonto: "+girokonto.toString()); //Test von deductFees System.out.println("Test von deductFees "+ " mit Kosten, ohne Kosten und an der Grenze"); //deductFees Testfall: transactionCount > FREE_TRANSACTIONS System.out.println("2 Aufrufe von girokonto.withdraw(500)"); girokonto.withdraw(500); //dyn. Bindung! girokonto.withdraw(500); //dyn. Bindung! System.out.println("Zustand von girokonto: "+girokonto.toString()); System.out.println("Aufruf von girokonto.deductFees()nach insgesamt 5 Transaktionen"); System.out.println("Erwartetes Ergebnis: balance = 198.5, transactionCount = 0"); girokonto.deductFees(); System.out.println("Zustand von girokonto: "+girokonto.toString()); //deductFees Testfall: transactionCount < FREE_TRANSACTIONS System.out.println("Aufruf von girokonto.deductFees()nach insgesamt 0 Transaktionen"); System.out.println("Erwartetes Ergebnis: balance = 198.5, transactionCount = 0"); girokonto.deductFees(); System.out.println("Zustand von girokonto: "+girokonto.toString()); //deductFees Grenztestfall: transactionCount = FREE_TRANSACTIONS System.out.println("2 Aufrufe von girokonto.deposit(500)"); girokonto.deposit(500); //dyn. Bindung! girokonto.deposit(500); //dyn. Bindung! System.out.println("Zustand von girokonto: "+girokonto.toString()); System.out.println("Aufruf von girokonto.deductFees()nach insgesamt 2 Transaktionen"); System.out.println("Erwartetes Ergebnis: balance =1198.5, transactionCount = 0"); girokonto.deductFees(); System.out.println("Zustand von girokonto: "+girokonto.toString()); //deductFees Grenztestfall: transactionCount = FREE_TRANSACTIONS+1 System.out.println("3 Aufrufe von girokonto.deposit(500)"); girokonto.deposit(500); //dyn. Bindung! girokonto.deposit(500); //dyn. Bindung! girokonto.deposit(500); //dyn. Bindung! System.out.println("Zustand von girokonto: "+girokonto.toString()); System.out.println("Aufruf von girokonto.deductFees()nach insgesamt 3 Transaktionen"); System.out.println("Erwartetes Ergebnis: balance =2698.0, transactionCount = 0"); girokonto.deductFees(); System.out.println("Zustand von girokonto: "+girokonto.toString()); //Test von toString; eigentlich ueberfluessig, da in den vorherigen Tests enthalten System.out.println("Aufruf von girokonto.toString(): "+ '\n' + "Erwartetes Ergebnis: CheckingAccount[balance =2698.0, transactionCount = 0]"); System.out.println(girokonto.toString()); } }