From 77a58ec9f50f6c92f105be76ebf51279b9731dd8 Mon Sep 17 00:00:00 2001 From: Peter Gapon Date: Tue, 25 Oct 2022 14:42:53 +0200 Subject: [PATCH] Testat --- .../informatik/bank/domain/Girokonto.java | 29 ++++++- .../informatik/bank/domain/GirokontoTest.java | 14 ++++ .../informatik/bank/domain/Konto.java | 4 +- .../informatik/bank/facade/Banksystem.java | 16 ++++ .../bank/facade/BanksystemTest.java | 82 ++++++++++++++++++- .../de/hs_mannheim/informatik/bank/ui/UI.java | 15 ++++ 6 files changed, 154 insertions(+), 6 deletions(-) create mode 100644 Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/GirokontoTest.java 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 49a8c07..cd610a7 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,25 +3,48 @@ package de.hs_mannheim.informatik.bank.domain; import java.io.Serializable; public class Girokonto extends Konto implements Serializable { +// private long dispo = 0; 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() - betrag >= 100) { this.auszahlen(betrag, zweck, "Überweisungsausgang", super.getInhaber()); ziel.einzahlen(betrag, zweck, "Überweisungseingang", super.getInhaber()); return true; - } + } // else if(super.stand - betrag >= -1000) { +// return false; +// } + // else if{betrag <= kontostand+dispo} return false; } +// public void setDispo(long dispo) { +// if (super.getKontostand() < 0) { +// +// } +// } + + @Override + public boolean auszahlen(long betrag, String zweck, String art, String auftraggeber) { + if (super.stand - betrag >= -100) { + super.stand -= betrag; + + super.kontobewegungen.add(new Kontobewegung(betrag * -1, zweck, art, auftraggeber)); + + return true; + } + + return false; + } + @Override public String toString() { return "Giro-" + super.toString(); } -} \ No newline at end of file +} diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/GirokontoTest.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/GirokontoTest.java new file mode 100644 index 0000000..14d7d32 --- /dev/null +++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/GirokontoTest.java @@ -0,0 +1,14 @@ +package de.hs_mannheim.informatik.bank.domain; + +import static org.junit.jupiter.api.Assertions.*; + +import org.junit.jupiter.api.Test; + +class GirokontoTest { + + @Test + void test() { + fail("Not yet implemented"); + } + +} 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 bae59ab..dfa911b 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 @@ -5,10 +5,10 @@ import java.util.ArrayList; 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; 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 bd0b471..194b100 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 @@ -1,5 +1,6 @@ package de.hs_mannheim.informatik.bank.facade; +import java.util.ArrayList; import java.util.Collection; import de.hs_mannheim.informatik.bank.domain.Bank; @@ -80,5 +81,20 @@ public class Banksystem { return konto.getKontostand(); } + + public ArrayList zeigeSaldo(int kontonummer) { + Konto konto = bank.findeKonto(kontonummer); + + String[] kontobewegungen = erstelleKontoauszug(kontonummer); + int counter = kontobewegungen.length; + ArrayList saldo = new ArrayList<>(); + + for (int i = counter - 5; i < kontobewegungen.length; i++) { + saldo.add(kontobewegungen[i]); + } + + return saldo; + + } } \ No newline at end of file diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/facade/BanksystemTest.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/facade/BanksystemTest.java index 361ae65..cef7348 100644 --- a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/facade/BanksystemTest.java +++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/facade/BanksystemTest.java @@ -1,19 +1,99 @@ 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 java.io.File; + import org.junit.jupiter.api.Test; -class SystemTest { +class BanksystemTest { @Test void smokeTest() throws Exception { + + File file = new File("Testsystem-bank-data.ser"); + + if (file.exists()) { + file.delete(); + } + Banksystem bs = new Banksystem("Testsystem"); assertNotNull(bs); assertEquals(0, bs.getKontenliste().length); assertEquals("Testsystem", bs.getBankname()); } + + @Test + void einzahlenTest() throws Exception { + + File file = new File("Testsystem-bank-data.ser"); + + if (file.exists()) { + file.delete(); + } + + Banksystem bs = new Banksystem("Testsystem"); + + bs.kontoAnlegen("Anna", 1); + bs.geldEinzahlen(1000, 1000); + + String[] arr = bs.erstelleKontoauszug(1000); + String[] arr2= bs.getKontenliste(); + + System.out.println(arr[0]); + System.out.println(arr2[0]); + assertTrue(arr[0].contains("betrag=1000")); + assertTrue(arr[0].contains("betreff=Einzahlung am Schalter")); + assertTrue(arr[0].contains("art=Einzahlung")); + assertTrue(arr[0].contains("auftraggeber=Anna")); + + } + + @Test + void auszahlenTest() throws Exception { + File file = new File("Testsystem-bank-data.ser"); + + if (file.exists()) { + file.delete(); + } + + Banksystem bs = new Banksystem("Testsystem"); + + bs.kontoAnlegen("Anna2", 1); + bs.geldEinzahlen(1000, 2000); + String[] arr = bs.erstelleKontoauszug(1000); + System.out.println(arr[0]); + assertTrue(arr[0].contains("betrag=1000")); + bs.geldAuszahlen(1000, 100); + + String[] arr2= bs.erstelleKontoauszug(1000); + + System.out.println(arr[0]); + System.out.println(arr2[0]); + assertTrue(arr2[0].contains("betrag=900")); + } + + @Test + void zeigeSaldoTest() throws Exception { + File file = new File("Testsystem-bank-data.ser"); + + if (file.exists()) { + file.delete(); + } + + Banksystem bs = new Banksystem("Testsystem"); + + bs.kontoAnlegen("Anna3", 2); + bs.geldEinzahlen(1000, 2000); + bs.geldEinzahlen(1000, 2000); + bs.geldEinzahlen(1000, 2000); + bs.geldEinzahlen(1000, 2000); + bs.geldEinzahlen(1000, 2000); + + assertEquals(5, bs.zeigeSaldo(1000).size()); + } } \ No newline at end of file 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 036df97..80d46f4 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 @@ -1,5 +1,6 @@ package de.hs_mannheim.informatik.bank.ui; +import java.util.ArrayList; import java.util.Scanner; import de.hs_mannheim.informatik.bank.facade.Banksystem; @@ -27,6 +28,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 -> Zeige Saldo"); System.out.println("9 -> Beenden"); System.out.println(); @@ -45,6 +47,7 @@ public class UI { case 4: geldAuszahlen(); break; case 5: kontoauszugDrucken(); break; case 6: überweisungBeauftragen(); break; + case 7: zeigeSaldo(); break; case 9: break mainloop; } @@ -145,5 +148,17 @@ public class UI { System.out.println("Überweisung" + ( (!erfolgreich) ? " nicht" : "") + " erfolgreich ausgeführt."); } + + private void zeigeSaldo() { + System.out.print("Bitte die gewünschte Kontonummer für den Auszug eingeben: "); + int kontonummer = Integer.parseInt(sc.nextLine()); + + ArrayList kontobewegungen = bs.zeigeSaldo(kontonummer); + + for (String string : kontobewegungen) { + System.out.println(string); + } + + } } \ No newline at end of file