diff --git a/.project b/.project new file mode 100644 index 0000000..9f7e87d --- /dev/null +++ b/.project @@ -0,0 +1,11 @@ + + + Bank-System_forking + + + + + + + + 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..0745eeb 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 @@ -3,13 +3,14 @@ package de.hs_mannheim.informatik.bank.domain; import java.io.Serializable; public class Girokonto extends Konto implements Serializable { + private int dispo; public Girokonto(String inhaber, int kontozähler) { super(inhaber, kontozähler); } public boolean überweise(Girokonto ziel, long betrag, String zweck) { - if (super.getKontostand() - betrag >= 0) { + if ((super.getKontostand() + dispo) - betrag >= 0) { this.auszahlen(betrag, zweck, "Überweisungsausgang", super.getInhaber()); ziel.einzahlen(betrag, zweck, "Überweisungseingang", super.getInhaber()); @@ -23,5 +24,26 @@ public class Girokonto extends Konto implements Serializable { public String toString() { return "Giro-" + super.toString(); } + + public void setDispo(int betrag) { + dispo = betrag; + } + + public int getDispo() { + return dispo; + } + + @Override + public boolean auszahlen(long betrag, String zweck, String art, String auftraggeber) { + if ((super.getKontostand() + dispo) - betrag >= 0) { + super.auszahlen(betrag, zweck, art, auftraggeber); + + super.kontobewegungen.add(new Kontobewegung(betrag * -1, zweck, art, auftraggeber)); + + return true; + } + + return false; + } } 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..b7b706f 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 @@ -8,7 +8,7 @@ public class Konto implements Serializable { private long stand = 0; private String inhaber; - private ArrayList kontobewegungen; + protected ArrayList kontobewegungen; public Konto(String inhaber, int kontozähler) { nummer = 1000 + kontozähler; @@ -38,6 +38,9 @@ public class Konto implements Serializable { stand += betrag; kontobewegungen.add(new Kontobewegung(betrag, zweck, art, auftraggeber)); + if (kontobewegungen.size() % 10 == 0) { + System.out.println(stand); + } } public boolean auszahlen(long betrag, String zweck, String art, String auftraggeber) { @@ -45,6 +48,9 @@ public class Konto implements Serializable { stand -= betrag; kontobewegungen.add(new Kontobewegung(betrag * -1, zweck, art, auftraggeber)); + if (kontobewegungen.size() % 10 == 0) { + System.out.println(stand); + } return true; } 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..fedf298 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 @@ -11,20 +11,20 @@ class KontoTest { Konto k = new Konto("Müller", 0); assertEquals("Müller", k.getInhaber()); assertEquals(1000, k.getKontonummer()); - assertEquals(0, k.getKontostand()); + assertEquals(0, k.getKontostand()); } - + @Test void testKontoEinUndAuszahlung() { Konto k = new Konto("Müller", 0); Konto k2 = new Konto("Mayer", 1); - + assertEquals("Mayer", k2.getInhaber()); assertNotEquals(k.getKontonummer(), k2.getKontonummer()); - + k2.einzahlen(100, "Test", "Einzahlung", "JUnit"); assertEquals(100, k2.getKontostand()); - + assertTrue(k2.auszahlen(50, "Test", "Auszahlung", "JUnit")); assertEquals(50, k2.getKontostand()); @@ -32,4 +32,38 @@ class KontoTest { assertEquals(50, k2.getKontostand()); } + @Test + void testDispo() { + Girokonto k = new Girokonto("Müller", 0); + k.setDispo(300); + k.einzahlen(500, "egal", "egal", "egal"); + + assertTrue(k.auszahlen(700, "egal", "egal", "egal")); + assertFalse(k.auszahlen(900, "egal", "egal", "egal")); + + } + + @Test + void kontosperre() { + Girokonto g = new Girokonto("Müller", 0); + Konto k = new Konto("Müllesr", 1); + g.setDispo(300); + + g.einzahlen(500, "egal", "egal", "egal"); + k.einzahlen(500, "egal", "egal", "egal"); + + assertFalse(k.auszahlen(600, "egal", "egal", "egal")); + assertTrue(g.auszahlen(600, "egal", "egal", "egal")); + + } + + @Test + void saldoTest() { + Konto k = new Konto("Müllesr", 1); + + for(int i = 1; i <= 20; i++) { + k.einzahlen(10,"egal", "egal", "egal"); + } + } + } 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..99d5c03 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 @@ -1,19 +1,44 @@ package de.hs_mannheim.informatik.bank.facade; +import static org.junit.Assert.assertTrue; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; import org.junit.jupiter.api.Test; +import de.hs_mannheim.informatik.bank.domain.Bank; +import de.hs_mannheim.informatik.bank.domain.Konto; +import de.hs_mannheim.informatik.bank.infrastructure.Persistenz; + class SystemTest { @Test void smokeTest() throws Exception { Banksystem bs = new Banksystem("Testsystem"); - + assertNotNull(bs); assertEquals(0, bs.getKontenliste().length); assertEquals("Testsystem", bs.getBankname()); } + @Test + void testKontoPersistenz() throws Exception { + + Banksystem bs = new Banksystem("Testsystem"); + + bs.kontoAnlegen("k1", 1); + bs.geldEinzahlen(1000, 1000); + + assertEquals(bs.getKontostand(1000), 1000); + assertTrue(Persistenz.sindDatenGespeichert("Testsystem")); + + bs.geldAuszahlen(1000, 450); + bs.geldEinzahlen(1000, 50); + + Banksystem bs2 = new Banksystem("Testsystem"); + long test = bs2.getKontostand(1000); + assertEquals(test, 600); + + } + }