diff --git a/Bank-BeispielMeins/src/de/hs_mannheim/informatik/bank/domain/Girokonto.java b/Bank-BeispielMeins/src/de/hs_mannheim/informatik/bank/domain/Girokonto.java index 0956f65..625416a 100644 --- a/Bank-BeispielMeins/src/de/hs_mannheim/informatik/bank/domain/Girokonto.java +++ b/Bank-BeispielMeins/src/de/hs_mannheim/informatik/bank/domain/Girokonto.java @@ -18,10 +18,30 @@ public class Girokonto extends Konto implements Serializable { return false; } + public long kreditEinfügen(Girokonto start, long betrag) { + if (super.getKontostand() - betrag <= 0 && super.getKontostand()-betrag >=-500) { + + } + return this.getKontostand(); + + } + @Override public String toString() { return "Giro-" + super.toString(); } + @Override + public boolean auszahlen(long betrag, String zweck, String art, String auftraggeber) { + if (super.getKontostand() - betrag >= -500) { + super.stand -= betrag; + kontobewegungen.add(new Kontobewegung(betrag * -1, zweck, art, auftraggeber)); + + return true; + } + + return false; + + } } diff --git a/Bank-BeispielMeins/src/de/hs_mannheim/informatik/bank/domain/GirokontoTest.java b/Bank-BeispielMeins/src/de/hs_mannheim/informatik/bank/domain/GirokontoTest.java new file mode 100644 index 0000000..eedebc5 --- /dev/null +++ b/Bank-BeispielMeins/src/de/hs_mannheim/informatik/bank/domain/GirokontoTest.java @@ -0,0 +1,30 @@ +package de.hs_mannheim.informatik.bank.domain; + +import static org.junit.jupiter.api.Assertions.*; + +import org.junit.jupiter.api.Test; + +class GirokontoTest { + + @Test + void testAuszahlen() { + Girokonto k = new Girokonto("name", 1); + long betrag = 50; + String zweck = ""; + String art = " "; + String auftraggeber =" "; + k.auszahlen(betrag, zweck, art, auftraggeber); + assertEquals(k.getKontostand(),-50 ); + } + + @Test + void testAuszahlenFail() { + Girokonto k = new Girokonto("name", 1); + long betrag = 550; + String zweck = ""; + String art = " "; + String auftraggeber =" "; + k.auszahlen(betrag, zweck, art, auftraggeber); + assertNotEquals(k.getKontostand(),-50 ); + } +} diff --git a/Bank-BeispielMeins/src/de/hs_mannheim/informatik/bank/domain/Konto.java b/Bank-BeispielMeins/src/de/hs_mannheim/informatik/bank/domain/Konto.java index dd38d64..7a2b3c4 100644 --- a/Bank-BeispielMeins/src/de/hs_mannheim/informatik/bank/domain/Konto.java +++ b/Bank-BeispielMeins/src/de/hs_mannheim/informatik/bank/domain/Konto.java @@ -3,12 +3,14 @@ package de.hs_mannheim.informatik.bank.domain; import java.io.Serializable; import java.util.ArrayList; +import infrastruktur.Persistenz; + public class Konto implements Serializable { private int nummer; - private long stand = 0; + protected long stand = 0; private String inhaber; - private ArrayList kontobewegungen; + protected ArrayList kontobewegungen; public Konto(String inhaber, int kontozähler) { nummer = 1000 + kontozähler; @@ -42,6 +44,7 @@ public class Konto implements Serializable { public boolean auszahlen(long betrag, String zweck, String art, String auftraggeber) { if (stand - betrag >= 0) { + // Schwierigkeiten bei Giro minus stand -= betrag; kontobewegungen.add(new Kontobewegung(betrag * -1, zweck, art, auftraggeber)); diff --git a/Bank-BeispielMeins/src/de/hs_mannheim/informatik/bank/facade/Banksystem.java b/Bank-BeispielMeins/src/de/hs_mannheim/informatik/bank/facade/Banksystem.java index 44c757e..4a6a2b6 100644 --- a/Bank-BeispielMeins/src/de/hs_mannheim/informatik/bank/facade/Banksystem.java +++ b/Bank-BeispielMeins/src/de/hs_mannheim/informatik/bank/facade/Banksystem.java @@ -81,4 +81,12 @@ public class Banksystem { return konto.getKontostand(); } + public boolean checkGiro(int kontonummer) { + Konto konto = bank.findeKonto(kontonummer); + if(konto instanceof Girokonto) { + return true; + } + return false; + } + } diff --git a/Bank-BeispielMeins/src/de/hs_mannheim/informatik/bank/facade/BanksystemTest.java b/Bank-BeispielMeins/src/de/hs_mannheim/informatik/bank/facade/BanksystemTest.java index 728d84b..a18c1bf 100644 --- a/Bank-BeispielMeins/src/de/hs_mannheim/informatik/bank/facade/BanksystemTest.java +++ b/Bank-BeispielMeins/src/de/hs_mannheim/informatik/bank/facade/BanksystemTest.java @@ -4,12 +4,10 @@ import static org.junit.jupiter.api.Assertions.*; import org.junit.jupiter.api.Test; +import de.hs_mannheim.informatik.bank.domain.Konto; + class BanksystemTest { - @Test - void test() { - fail("Not yet implemented"); - } @Test void smokeTest() throws Exception { Banksystem bs = new Banksystem("Testsystem"); @@ -18,5 +16,25 @@ class BanksystemTest { assertEquals(0, bs.getKontenliste().length); assertEquals("Testsystem", bs.getBankname()); } + @Test + void testGeldEinzahlen() throws Exception { + Banksystem bs = new Banksystem ("TEst"); + bs.kontoAnlegen("Hans", 1); + int kontonummer = 1000; + long betrag = 450; + bs.geldEinzahlen(kontonummer,betrag); + assertEquals(bs.getKontostand(kontonummer),450 ); + } + @Test + void testGeldAuszahlen() throws Exception { + Banksystem bs = new Banksystem ("TEst"); + bs.kontoAnlegen("frank", 1); + int kontonummer = 1001; + long betrag = 450; + bs.geldEinzahlen(1001,betrag); + bs.geldAuszahlen(1001,400); + assertEquals(bs.getKontostand(kontonummer), 50); + + } } diff --git a/Bank-BeispielMeins/src/de/hs_mannheim/informatik/bank/ui/UI.java b/Bank-BeispielMeins/src/de/hs_mannheim/informatik/bank/ui/UI.java index cba3429..a6af4d7 100644 --- a/Bank-BeispielMeins/src/de/hs_mannheim/informatik/bank/ui/UI.java +++ b/Bank-BeispielMeins/src/de/hs_mannheim/informatik/bank/ui/UI.java @@ -30,7 +30,7 @@ public class UI { System.out.println("9 -> Beenden"); System.out.println(); - + System.out.print("> "); int input = Integer.parseInt(sc.nextLine()); System.out.println(); @@ -107,6 +107,11 @@ public class UI { boolean erfolgreich = bs.geldAuszahlen(kontonummer, (long)betrag * 100); System.out.printf("Auszahlung" + ((!erfolgreich)? " nicht" : "" )+ " erfolgreich. "); + boolean girokonto = bs.checkGiro(kontonummer); + if(girokonto) { + int i = 1; + bs.geldAuszahlen(kontonummer, (long)betrag); + } System.out.printf("Neuer Kontostand = %.2f Euro.", (bs.getKontostand(kontonummer) / 100.0)); }