From eab07962741eb927fb145ab513e454b0bc321c09 Mon Sep 17 00:00:00 2001 From: zlohbierdcul <82916072+zlohbierdcul@users.noreply.github.com> Date: Wed, 12 Oct 2022 11:33:35 +0200 Subject: [PATCH] updated repo --- .../informatik/bank/domain/Konto.java | 8 ++ .../informatik/bank/facade/Banksystem.java | 17 +++- .../informatik/bank/test/BanksystemTest.java | 55 ++++++++++++ .../informatik/bank/test/KontoTest.java | 31 +++++++ .../de/hs_mannheim/informatik/bank/ui/UI.java | 83 +++++++++++++++++-- 5 files changed, 188 insertions(+), 6 deletions(-) create mode 100644 Bank-Beispiel/src/de/hs_mannheim/informatik/bank/test/BanksystemTest.java create mode 100644 Bank-Beispiel/src/de/hs_mannheim/informatik/bank/test/KontoTest.java 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 654d503..71d5d73 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 @@ -16,6 +16,14 @@ public class Konto { return nummer; } + public long getGuthaben() { + return this.stand; + } + + public void addGuthaben(int value) { + this.stand += value; + } + @Override public String toString() { return "Konto [nummer=" + nummer + ", inhaber=" + inhaber + "]"; 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 821c2a9..41a5760 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 @@ -25,7 +25,8 @@ public class Banksystem { int i = 0; for (Konto k : konten) { - liste[i++] = k.toString(); + liste[i] = k.toString(); + i++; } return liste; @@ -34,4 +35,18 @@ public class Banksystem { public String getBankname() { return bank.getName(); } + + public Konto getKonto(int kontoNummer) { + Collection konten = bank.getKontenliste(); + Konto[] kontenArray = konten.toArray(Konto[]::new); + for (Konto konto : kontenArray) { + if (konto.getKontonummer() == kontoNummer) { + return konto; + } + } + System.out.println("Die angegebene Kontonummer existiert nicht, bitte versuchen Sie es erneut!"); + return null; + } + + } diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/test/BanksystemTest.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/test/BanksystemTest.java new file mode 100644 index 0000000..72409c4 --- /dev/null +++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/test/BanksystemTest.java @@ -0,0 +1,55 @@ +package de.hs_mannheim.informatik.bank.test; + +import de.hs_mannheim.informatik.bank.domain.Konto; +import de.hs_mannheim.informatik.bank.facade.Banksystem; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.*; + + +public class BanksystemTest { + + @Test + void getKontoTest() { + Banksystem bs = new Banksystem("Testbank"); + int kontoNummer = bs.kontoAnlegen("Hans"); + Konto testKonto = bs.getKonto(kontoNummer); + + assertEquals(testKonto.getKontonummer(), kontoNummer); + } + + @Test + void eineAufladungTest() { + Banksystem bs = new Banksystem("Testbank"); + int kontonummer = bs.kontoAnlegen("Hans"); + Konto testKonto = bs.getKonto(kontonummer); + + long tempGuthaben = testKonto.getGuthaben(); + testKonto.addGuthaben(1000); + assertEquals(1000 + tempGuthaben , testKonto.getGuthaben()); + } + + @Test + void zweiAufladungenTest() { + Banksystem bs = new Banksystem("Testbank"); + int kontonummer = bs.kontoAnlegen("Hans"); + Konto testKonto = bs.getKonto(kontonummer); + + long tempGuthaben = testKonto.getGuthaben(); + testKonto.addGuthaben(1000); + testKonto.addGuthaben(1000); + assertEquals(1000 + 1000 + tempGuthaben , testKonto.getGuthaben()); + } + + @Test + void negativAufladungenTest() { + Banksystem bs = new Banksystem("Testbank"); + int kontonummer = bs.kontoAnlegen("Hans"); + Konto testKonto = bs.getKonto(kontonummer); + + long tempGuthaben = testKonto.getGuthaben(); + testKonto.addGuthaben(- 1000); + assertEquals(-1000 + tempGuthaben , testKonto.getGuthaben()); + } + +} diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/test/KontoTest.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/test/KontoTest.java new file mode 100644 index 0000000..52fa03b --- /dev/null +++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/test/KontoTest.java @@ -0,0 +1,31 @@ +package de.hs_mannheim.informatik.bank.test; + +import de.hs_mannheim.informatik.bank.domain.Konto; +import de.hs_mannheim.informatik.bank.facade.Banksystem; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.*; + +public class KontoTest { + + @Test + void tausendEuroHinzufügen() { + Konto testKonto = new Konto("Hans"); + testKonto.addGuthaben(1000); + assertEquals(1000, testKonto.getGuthaben()); + } + + @Test + void zweiMalTausendEuroHinzufügen() { + Konto testKonto = new Konto("Hans"); + testKonto.addGuthaben(1000); + testKonto.addGuthaben(1000); + assertEquals(2000, testKonto.getGuthaben()); + } + + @Test + void guthabenGetterTest() { + Konto testKonto = new Konto("test"); + assertEquals(testKonto.getGuthaben(), 0); + } +} 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 d6eb6e9..ec90768 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,8 +1,12 @@ package de.hs_mannheim.informatik.bank.ui; +import java.util.ArrayList; +import java.util.Collection; import java.util.Scanner; +import de.hs_mannheim.informatik.bank.domain.Konto; import de.hs_mannheim.informatik.bank.facade.Banksystem; +import de.hs_mannheim.informatik.bank.domain.Bank; public class UI { private Banksystem bs; @@ -23,17 +27,29 @@ public class UI { System.out.println("Hauptmenü"); System.out.println("1 -> Konten anzeigen"); System.out.println("2 -> Konto anlegen"); + System.out.println("3 -> Geld einzahlen"); + System.out.println("4 -> Guthaben ausgeben"); System.out.println("9 -> Beenden"); System.out.println(); System.out.print("> "); - int input = Integer.parseInt(sc.nextLine()); + + int input = 0; + try { + input = Integer.parseInt(sc.nextLine()); + } catch (Exception e) { + System.out.println(e); + } System.out.println(); switch(input) { - case 1: kontenAnzeigen(); break; - case 2: kontoAnlegen(); break; - case 9: break mainloop; + case 1 -> kontenAnzeigen(); + case 2 -> kontoAnlegen(); + case 3 -> kontoAufladen(); + case 4 -> guthabenAusgeben(); + case 9 -> { + break mainloop; + } } } @@ -41,12 +57,69 @@ public class UI { } // hauptmenü + private void guthabenAusgeben() { + Konto konto = selectKonto(); + + System.out.println("\nIhr aktuelles Guthaben ist: "); + System.out.print(konto.getGuthaben()); + System.out.println("€"); + } + + private void kontoAufladen() { + Konto konto = selectKonto(); + + System.out.println("Wieviel möchten sie aufladen? (nur ganze Beträge)!"); + System.out.print("> "); + + int input = 0; + + try { + input = Integer.parseInt(sc.nextLine()); + } catch (Exception e) { + System.out.println("Bitte geben Sie einen gültigen Betrag ein!"); + kontoAufladen(); + } + + if (input != 0) { + konto.addGuthaben(input); + System.out.println("\n" + input + "€ wurden aufgeladen!"); + System.out.println("Ihr aktueller Kontostand beträgt " + konto.getGuthaben() + "€"); + System.out.println("Drücken Sie ENTER um zum Hauptmenu zurück zu kehren!"); + sc.nextLine(); + } + } + + private Konto selectKonto() { + System.out.println("Bitte geben Sie die Kontonummer ihres Kontos an: "); + +// kontenAnzeigen(); + + System.out.print("\n> "); + int input = 0; + try { + input = Integer.parseInt(sc.nextLine()); + + } catch (Exception e) { +// System.out.println("An Error occured: " + e); + }; + + Konto konto = bs.getKonto(input); + + if (konto == null) { + selectKonto(); + } + + return konto; + } + private void kontenAnzeigen() { String[] konten = bs.getKontenliste(); if (konten.length > 0) { System.out.println("Folgende Konten sind aktuell verfügbar:"); + int i = 1; for (String s : konten) { - System.out.println(s); + System.out.println(i + ": " + s); + i++; } } else { System.out.println("Bisher keine Konten angelegt.");