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 cefc02c..39d5d72 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 >= -2000) { this.auszahlen(betrag, zweck, "Ãœberweisungsausgang", super.getInhaber()); ziel.einzahlen(betrag, zweck, "Ãœberweisungseingang", super.getInhaber()); @@ -23,5 +23,18 @@ public class Girokonto extends Konto implements Serializable { public String toString() { return "Giro-" + super.toString(); } + + @Override + public boolean auszahlen(long betrag, String zweck, String art, String auftraggeber) { + if (super.getKontostand() - betrag >= -2000) { + setStand( - betrag); + this.getKontobewegungen(); + + //super.getKontobewegungen().add(new Kontobewegungen(betrag * -1, zweck, art, auftraggeber)); + return true; + } + + return false; + } } diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/GirokontoTest.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/GirokontoTest.java new file mode 100644 index 0000000..3b94ce3 --- /dev/null +++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/GirokontoTest.java @@ -0,0 +1,29 @@ +package de.hs_mannheim.informatik.bank.domain; + +import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.*; + +import org.junit.jupiter.api.Test; + +import de.hs_mannheim.informatik.bank.facade.Banksystem; + +class GirokontoTest { + + @Test + public void dispoKredit() throws Exception { + Banksystem bs = new Banksystem("Test3"); + bs.kontoAnlegen("Hans Peter", 0); + bs.kontoAnlegen("piet", 0); + bs.ÜberweisungBeauftragen(1000, 1001, 50, "Test"); + assertTrue(bs.getKontostand(1000) == -50); + assertTrue(bs.getKontostand(1001) == 50); + } + + @Test + public void dispoAuszahlen() throws Exception { + Banksystem bs = new Banksystem("Test4"); + bs.kontoAnlegen("Hans Peter", 0); + bs.geldAuszahlen(1000, 100); + assertTrue(bs.getKontostand(1000) == -100); + } +} 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 d1560bb..0e1b5e3 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 @@ -7,6 +7,7 @@ public class Konto implements Serializable { private int nummer; private long stand = 0; private String inhaber; + private int kontobewZähler = 0; private ArrayList kontobewegungen; @@ -20,6 +21,10 @@ public class Konto implements Serializable { public int getKontonummer() { return nummer; } + + public int getkontobewZähler() { + return kontobewZähler; + } @Override public String toString() { @@ -31,14 +36,19 @@ public class Konto implements Serializable { } public long getKontostand() { - return stand; + return getStand(); } public void einzahlen(long betrag, String zweck, String art, String auftraggeber) { - stand += betrag; - + + if (stand + betrag >= 0) { + stand += betrag; + kontobewegungen.add(new Kontobewegungen(betrag, zweck, art, auftraggeber)); - } + kontobewZähler ++; + } + + } public boolean auszahlen(long betrag, String zweck, String art, String auftraggeber) { if (stand - betrag >= 0) { @@ -46,6 +56,7 @@ public class Konto implements Serializable { kontobewegungen.add(new Kontobewegungen(betrag * -1, zweck, art, auftraggeber)); + kontobewZähler ++; return true; } @@ -63,4 +74,14 @@ public class Konto implements Serializable { return auflistung; } + + + public long getStand() { + return stand; + } + + public long setStand(long stand) { + this.stand = stand; + return stand; + } } diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Kontobewegungen.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Kontobewegungen.java index 9564e4d..5170e57 100644 --- a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Kontobewegungen.java +++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Kontobewegungen.java @@ -10,6 +10,7 @@ public class Kontobewegungen implements Serializable { private String art; private String auftraggeber; + public Kontobewegungen (long betrag, String betreff, String art, String auftraggeber) { this.betrag = betrag; this.betreff = betreff; 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 cc25881..a4cb23f 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,12 @@ public class Banksystem { return konto.getKontostand(); } - +/* + public long letzteKontobewegungen(int kontonummer) { + Konto konto = bank.findeKonto(kontonummer); + if ( konto.getKontobewegungen() >= 3); + + return konto.getKontostand(); + } + */ } diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/facade/BanksystemTest.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/facade/BanksystemTest.java index c2ce11c..9d8888d 100644 --- a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/facade/BanksystemTest.java +++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/facade/BanksystemTest.java @@ -7,29 +7,43 @@ import org.junit.Test; public class BanksystemTest { - private Banksystem bs; - - - @Before - public void vorDemTest() throws Exception { - bs = new Banksystem("Meine Bank"); - bs.kontoAnlegen("Hans Peter", 1000); - - - } - - @Test public void testEinzahlen() throws Exception { - bs.geldEinzahlen(50 , 1000); - assertTrue(bs.getKontostand(1000)== 50); + Banksystem bs = new Banksystem("Test"); + bs.kontoAnlegen("Hans Peter", 1); + bs.geldEinzahlen(1000, 50); + assertTrue(bs.getKontostand(1000) == 50); } @Test public void testAuszahlen() throws Exception { - bs.kontoAnlegen("fs", 1001); - bs.geldEinzahlen(100, 1001); - bs.geldAuszahlen(10, 1001); - assertTrue(bs.getKontostand(1001) == 90); + Banksystem bs = new Banksystem("Test2"); + bs.kontoAnlegen("Hans Peter", 1); + bs.geldEinzahlen(1000, 100); + bs.geldAuszahlen(1000, 10); + assertTrue(bs.getKontostand(1000) == 90); } + + @Test + public void testPersistenz() throws Exception { + Banksystem bs1 = new Banksystem("Pers"); + bs1.kontoAnlegen("Hans Peter", 1); + bs1.geldEinzahlen(1000, 20); + bs1.geldEinzahlen(1000, 40); + + bs1 = new Banksystem("Pers"); + assertTrue(bs1.getKontostand(1000) == 60); + + } + + @Test + public void dispoKredit() throws Exception { + Banksystem bs = new Banksystem("Test3"); + bs.kontoAnlegen("Hans Peter", 0); + bs.kontoAnlegen("piet", 1); + bs.ÜberweisungBeauftragen(1000, 1001, 50, "Test"); + assertTrue(bs.getKontostand(1000) == -50); + assertTrue(bs.getKontostand(1001) == 50); + } + } 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 4393b7a..ed30268 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 -> letzte Überweisungen"); 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: case 9: break mainloop; } @@ -109,6 +111,13 @@ public class UI { System.out.printf("Auszahlung" + ((!erfolgreich)? " nicht" : "" )+ " erfolgreich. "); System.out.printf("Neuer Kontostand = %.2f Euro.", (bs.getKontostand(kontonummer) / 100.0)); } + + private void saldo() { + System.out.println("Bitte geben Sie die gewünschte Kontonummer ein"); + int kontonummer = Integer.parseInt(sc.nextLine()); + + System.out.println(); + } private void kontoauszugDrucken() { System.out.print("Bitte die gewünschte Kontonummer für den Auszug eingeben: ");