diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Girokonto.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Girokonto.java index d9b1d77..dbadf86 100644 --- a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Girokonto.java +++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Girokonto.java @@ -9,7 +9,7 @@ public class Girokonto extends Konto implements Serializable { } public boolean überweise(Girokonto ziel, long betrag, String zweck) { - if (super.getKontostand() - betrag >= 0) { + if (super.getKontostand() - betrag >= -300) { this.auszahlen(betrag, zweck, "Überweisungsausgang", super.getInhaber()); ziel.einzahlen(betrag, zweck, "Überweisungseingang", super.getInhaber()); diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Konto.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Konto.java index 31220e1..203af2d 100644 --- a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Konto.java +++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Konto.java @@ -6,7 +6,9 @@ import java.util.ArrayList; public class Konto implements Serializable { private int nummer; private long stand = 0; + private int x = 0; private String inhaber; + private long saldo; private ArrayList kontobewegungen; @@ -41,7 +43,8 @@ public class Konto implements Serializable { } public boolean auszahlen(long betrag, String zweck, String art, String auftraggeber) { - if (stand - betrag >= 0) { + long x = -300; + if (stand - betrag >= x) { stand -= betrag; kontobewegungen.add(new Kontobewegung(betrag * -1, zweck, art, auftraggeber)); @@ -54,13 +57,20 @@ public class Konto implements Serializable { public String[] getKontobewegungen() { String[] auflistung = new String[kontobewegungen.size()]; - - int i = 0; + + int i1 = 0; for (Kontobewegung kb : kontobewegungen) { - auflistung[i++] = kb.toString(); + auflistung[i1++] = kb.toString(); } return auflistung; } + + public long getSaldo(){ + for (int i = 0; i < kontobewegungen.size(); i++) { + saldo=saldo+kontobewegungen.get(i).getBetrag(); + } + return saldo; + } } diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/KontoTest.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/KontoTest.java index 04e96ae..b33c7b0 100644 --- a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/KontoTest.java +++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/KontoTest.java @@ -25,11 +25,20 @@ class KontoTest { k2.einzahlen(100, "Test", "Einzahlung", "JUnit"); assertEquals(100, k2.getKontostand()); - assertTrue(k2.auszahlen(50, "Test", "Auszahlung", "JUnit")); - assertEquals(50, k2.getKontostand()); + assertTrue(k2.auszahlen(50L, "Test", "Auszahlung", "JUnit")); + assertEquals(50L, k2.getKontostand()); - assertFalse(k2.auszahlen(500, "Test", "Auszahlung", "JUnit")); - assertEquals(50, k2.getKontostand()); + assertFalse(k2.auszahlen(500L, "Test", "Auszahlung", "JUnit")); + assertEquals(50L, k2.getKontostand()); + } + + void testGiroKontoDispo() { + Konto k3 = new Girokonto("Laurent3", 1006); + assertEquals(0, k3.getKontostand()); + k3.auszahlen(200, "test", "test", "LaurentTest"); + assertEquals(-200, k3.getKontostand()); + k3.auszahlen(200L, "test", "test", "LaurentTest"); + assertEquals(-200, k3.getKontostand()); } } diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Kontobewegung.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Kontobewegung.java index d6b15dd..963d045 100644 --- a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Kontobewegung.java +++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Kontobewegung.java @@ -25,4 +25,8 @@ public class Kontobewegung implements Serializable { + ", auftraggeber=" + auftraggeber + "]"; } + public long getBetrag() { + return betrag; + } + } diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/facade/Banksystem.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/facade/Banksystem.java index 5d72301..b934c59 100644 --- a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/facade/Banksystem.java +++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/facade/Banksystem.java @@ -80,5 +80,10 @@ public class Banksystem { return konto.getKontostand(); } + + public long saldostand(int kontonummer) { + Konto konto = bank.findeKonto(kontonummer); + return konto.getSaldo(); + } } diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/facade/SystemTest.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/facade/SystemTest.java index 0ce5674..0fe76a4 100644 --- a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/facade/SystemTest.java +++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/facade/SystemTest.java @@ -5,6 +5,9 @@ import static org.junit.jupiter.api.Assertions.assertNotNull; import org.junit.jupiter.api.Test; +import de.hs_mannheim.informatik.bank.domain.Konto; + + class SystemTest { @Test @@ -15,5 +18,23 @@ class SystemTest { assertEquals(0, bs.getKontenliste().length); assertEquals("Testsystem", bs.getBankname()); } + + void testKontoEinUndAuszahlung() throws Exception { + Banksystem bs = new Banksystem("Testsystem"); + Konto k = new Konto("Laurent1",1005); + + // Einzahlen + + bs.geldEinzahlen(1005, 500); + assertEquals(500, bs.getKontostand(1005)); + + // Auszahlen + + bs.geldAuszahlen(1005, 200); + assertEquals(300, bs.getKontostand(1005)); + + } + + } diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/ui/UI.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/ui/UI.java index 001e321..1e7e0aa 100644 --- a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/ui/UI.java +++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/ui/UI.java @@ -27,6 +27,7 @@ public class UI { System.out.println("4 -> Geld auszahlen"); System.out.println("5 -> Kontoauszug drucken"); System.out.println("6 -> Überweisung beauftragen"); + System.out.println("7 -> Saldo Anzeigen"); System.out.println("9 -> Beenden"); System.out.println(); @@ -45,6 +46,7 @@ public class UI { case 4: geldAuszahlen(); break; case 5: kontoauszugDrucken(); break; case 6: überweisungBeauftragen(); break; + case 7: saldoAnzeigen(); break; case 9: break mainloop; } @@ -105,6 +107,7 @@ public class UI { double betrag = Double.parseDouble(sc.nextLine()); boolean erfolgreich = bs.geldAuszahlen(kontonummer, (long)betrag * 100); + System.out.println(betrag); System.out.printf("Auszahlung" + ((!erfolgreich)? " nicht" : "" )+ " erfolgreich. "); System.out.printf("Neuer Kontostand = %.2f Euro.", (bs.getKontostand(kontonummer) / 100.0)); @@ -145,5 +148,12 @@ public class UI { System.out.println("Überweisung" + ( (!erfolgreich) ? " nicht" : "") + " erfolgreich ausgeführt."); } + private void saldoAnzeigen() { + System.out.println("Kontonummer enigeben"); + int kontonummer = Integer.parseInt(sc.nextLine()); + long aktuellerSaldo = bs.saldostand(kontonummer); + System.out.println("Saldo: "+aktuellerSaldo/100); + + } }