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);
+
+ }
+
}