Aufgabe Testat 25.10.2022

Lott- 2022-10-25 15:00:51 +02:00
parent 666fd4909a
commit 0ed4f11e98
5 changed files with 106 additions and 8 deletions

11
.project 100644
View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>Bank-System_forking</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
</buildSpec>
<natures>
</natures>
</projectDescription>

View File

@ -3,13 +3,14 @@ package de.hs_mannheim.informatik.bank.domain;
import java.io.Serializable; import java.io.Serializable;
public class Girokonto extends Konto implements Serializable { public class Girokonto extends Konto implements Serializable {
private int dispo;
public Girokonto(String inhaber, int kontozähler) { public Girokonto(String inhaber, int kontozähler) {
super(inhaber, kontozähler); super(inhaber, kontozähler);
} }
public boolean überweise(Girokonto ziel, long betrag, String zweck) { 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()); this.auszahlen(betrag, zweck, "Überweisungsausgang", super.getInhaber());
ziel.einzahlen(betrag, zweck, "Überweisungseingang", super.getInhaber()); ziel.einzahlen(betrag, zweck, "Überweisungseingang", super.getInhaber());
@ -24,4 +25,25 @@ public class Girokonto extends Konto implements Serializable {
return "Giro-" + super.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;
}
} }

View File

@ -8,7 +8,7 @@ public class Konto implements Serializable {
private long stand = 0; private long stand = 0;
private String inhaber; private String inhaber;
private ArrayList<Kontobewegung> kontobewegungen; protected ArrayList<Kontobewegung> kontobewegungen;
public Konto(String inhaber, int kontozähler) { public Konto(String inhaber, int kontozähler) {
nummer = 1000 + kontozähler; nummer = 1000 + kontozähler;
@ -38,6 +38,9 @@ public class Konto implements Serializable {
stand += betrag; stand += betrag;
kontobewegungen.add(new Kontobewegung(betrag, zweck, art, auftraggeber)); 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) { public boolean auszahlen(long betrag, String zweck, String art, String auftraggeber) {
@ -45,6 +48,9 @@ public class Konto implements Serializable {
stand -= betrag; stand -= betrag;
kontobewegungen.add(new Kontobewegung(betrag * -1, zweck, art, auftraggeber)); kontobewegungen.add(new Kontobewegung(betrag * -1, zweck, art, auftraggeber));
if (kontobewegungen.size() % 10 == 0) {
System.out.println(stand);
}
return true; return true;
} }

View File

@ -32,4 +32,38 @@ class KontoTest {
assertEquals(50, k2.getKontostand()); 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");
}
}
} }

View File

@ -1,10 +1,15 @@
package de.hs_mannheim.informatik.bank.facade; 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.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertNotNull;
import org.junit.jupiter.api.Test; 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 { class SystemTest {
@Test @Test
@ -16,4 +21,24 @@ class SystemTest {
assertEquals("Testsystem", bs.getBankname()); 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);
}
} }