From 68fea16577b8494369a69ce882d075d2b670186e Mon Sep 17 00:00:00 2001 From: Tobias Date: Tue, 25 Oct 2022 14:59:06 +0200 Subject: [PATCH] =?UTF-8?q?Testat=C3=A4nderungen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../informatik/bank/domain/Girokonto.java | 2 +- .../informatik/bank/domain/Konto.java | 27 +++++++++- .../informatik/bank/domain/KontoTest.java | 21 ++++++++ .../informatik/bank/facade/Banksystem.java | 15 +++++- .../informatik/bank/facade/SystemTest.java | 52 ++++++++++++++++++- .../de/hs_mannheim/informatik/bank/ui/UI.java | 14 +++++ 6 files changed, 127 insertions(+), 4 deletions(-) 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..623810a 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 >= -100000) { this.auszahlen(betrag, zweck, "Überweisungsausgang", super.getInhaber()); ziel.einzahlen(betrag, zweck, "Überweisungseingang", super.getInhaber()); 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..75b6061 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 @@ -23,7 +23,7 @@ public class Konto implements Serializable { @Override public String toString() { - return "Konto [nummer=" + nummer + ", inhaber=" + inhaber + "]"; + return "Konto [nummer=" + nummer + ", inhaber=" + inhaber + ", stand=" + stand + "]"; } public String getInhaber() { @@ -51,6 +51,18 @@ public class Konto implements Serializable { return false; } + + public boolean dispoAuszahlen(long betrag, String zweck, String art, String auftraggeber) { + if (stand - betrag >= -100000) { + stand -= betrag; + kontobewegungen.add(new Kontobewegung(betrag * -1, zweck, art, auftraggeber)); + + return true; + } + + return false; + + } public String[] getKontobewegungen() { String[] auflistung = new String[kontobewegungen.size()]; @@ -61,6 +73,19 @@ public class Konto implements Serializable { } return auflistung; + } + + public long ermittleSaldo() { + + if (kontobewegungen.size() == 5) { + return stand; + } + return 0; + + + + + } } 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..0965277 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 @@ -31,5 +31,26 @@ class KontoTest { assertFalse(k2.auszahlen(500, "Test", "Auszahlung", "JUnit")); assertEquals(50, k2.getKontostand()); } + + @Test + void testGiro() { + Girokonto gk = new Girokonto("Müller", 0); + gk.einzahlen(200, "", "", ""); + gk.dispoAuszahlen(300, "","", ""); + assertEquals(-100, gk.getKontostand()); + + } + + @Test + void testSaldo() { + Konto k = new Konto("Müller", 0); + k.ermittleSaldo(); + k.einzahlen(200, null, null, null); + k.einzahlen(200, null, null, null); + assertEquals(400, k.getKontostand()); + + } + + } 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 5d72301..fb5e3fb 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 @@ -54,8 +54,15 @@ public class Banksystem { Konto konto = bank.findeKonto(kontonummer); Persistenz.speichereBankDaten(this.bank, bank.getName()); + + if(konto instanceof Girokonto) { + konto.dispoAuszahlen(betrag, "Auszahlung am Schalter", "Auszahlung", konto.getInhaber()); + } else { + return konto.auszahlen(betrag, "Auszahlung am Schalter", "Auszahlung", konto.getInhaber()); + } + + return false; - return konto.auszahlen(betrag, "Auszahlung am Schalter", "Auszahlung", konto.getInhaber()); } public String[] erstelleKontoauszug(int kontonummer) { @@ -80,5 +87,11 @@ public class Banksystem { return konto.getKontostand(); } + + public long erstelleSaldo(int kontonummer) { + Konto konto = bank.findeKonto(kontonummer); + return konto.ermittleSaldo(); + + } } 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..403d3ff 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,11 +1,20 @@ package de.hs_mannheim.informatik.bank.facade; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotEquals; +import static org.junit.Assert.assertTrue; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; +import java.io.File; + +import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Test; +import de.hs_mannheim.informatik.bank.infrastructure.Persistenz; + class SystemTest { + @Test void smokeTest() throws Exception { @@ -15,5 +24,46 @@ class SystemTest { assertEquals(0, bs.getKontenliste().length); assertEquals("Testsystem", bs.getBankname()); } + + @Test + void einzahlen() throws Exception { + Banksystem bs = new Banksystem("Testsystem"); + bs.kontoAnlegen("T", 1); + bs.geldEinzahlen(1000, 500); + assertEquals(500, bs.getKontostand(1000)); + assertNotEquals(1000, bs.getKontostand(1000)); -} + bs.geldEinzahlen(1000, -200); + assertEquals(300, bs.getKontostand(1000)); + } + + + @Test + void auszahlen() throws Exception { + Banksystem bs = new Banksystem("Testsystem"); + bs.kontoAnlegen("T", 1); + + assertEquals(0, bs.getKontostand(1000)); + assertFalse(bs.geldAuszahlen(1000, 500)); + + } + + @Test + void persistieren() throws Exception { + Banksystem bs = new Banksystem("Testsystem"); + + assertNotNull(bs); + assertEquals(0, bs.getKontenliste().length); + assertEquals("Testsystem", bs.getBankname()); + } + + @AfterEach + void löschen() throws Exception { + String datei = "C:\\Users\\Tobias\\git\\Bank-System-\\Bank-Beispiel\\Testsystem-bank-data.ser"; + File f = new File(datei); + f.delete(); + } + + + } + 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 001e321..b94e859 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 -> Saldo anzeigen"); 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: saldoAusgeben(); break; case 9: break mainloop; } @@ -58,6 +60,16 @@ public class UI { } // hauptmenü + private void saldoAusgeben() { + System.out.println("Bitte Kontonummer angeben: "); + int kontonummer = Integer.parseInt(sc.nextLine()); + System.out.println("Saldo nach 5 Kontobewegungen: "); + System.out.println(bs.erstelleSaldo(kontonummer) / 100); + + + + } + private void kontenAnzeigen() { String[] konten = bs.getKontenliste(); if (konten.length > 0) { @@ -145,5 +157,7 @@ public class UI { System.out.println("Überweisung" + ( (!erfolgreich) ? " nicht" : "") + " erfolgreich ausgeführt."); } + + }