diff --git a/src/JunitTests/BankSystemJunit.java b/src/JunitTests/BankSystemJunit.java index 549ff6b..4e642d9 100644 --- a/src/JunitTests/BankSystemJunit.java +++ b/src/JunitTests/BankSystemJunit.java @@ -2,48 +2,59 @@ package JunitTests; import static org.junit.jupiter.api.Assertions.*; +import org.junit.jupiter.api.Order; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.TestMethodOrder; import org.junit.jupiter.api.MethodOrderer.OrderAnnotation; +import de.hs_mannheim.informatik.bank.domain.Konto; import de.hs_mannheim.informatik.bank.facade.Banksystem; @TestMethodOrder(OrderAnnotation.class) class BankSystemJunit { + public Banksystem bs = new Banksystem("NormalString"); @Test + @Order(1) void testBanknameNull() { - Banksystem bs = new Banksystem(null); - assertEquals(null,bs.getBankname()); + Banksystem bsx = new Banksystem(null); + assertEquals(null,bsx.getBankname()); } @Test + @Order(2) void testBankname() { String s = "IKnowThatThisMustBeTheBiggestStringYouHaveEverSeen"; - Banksystem bs = new Banksystem(s); - assertEquals(s,bs.getBankname()); + Banksystem bsx = new Banksystem(s); + assertEquals("IKnowThatThisMustBeTheBiggestStringYouHaveEverSeen",bsx.getBankname()); } @Test + @Order(3) void testEinzahlenMinusStand() { - Banksystem bs = new Banksystem("NormalString"); - assertEquals(bs.standsuchen(1000),bs.einzahlen(1000, -10)); + bs.kontoAnlegen("Dextaa"); + assertEquals(10,bs.einzahlen(1000, 10)); } @Test + @Order(4) void testEinzahlenZeroStand() { - Banksystem bs = new Banksystem("NormalString"); - assertEquals(bs.standsuchen(1001),bs.einzahlen(1001, 0)); + bs.kontoAnlegen("Ryan"); + assertEquals(0,bs.einzahlen(1001, 0)); } @Test + @Order(5) void testEinzahlenPostiveStand() { - Banksystem bs = new Banksystem("NormalString"); - assertEquals(bs.standsuchen(1002),bs.einzahlen(1002, 24924892)); + bs.kontoAnlegen("Renold"); + bs.einzahlen(1002, 24924892); + assertEquals( 24924892,bs.einzahlen(1002, 0)); } @Test + @Order(6) void testEinzahlenOverflowStand() { - Banksystem bs = new Banksystem("NormalString"); - assertEquals(bs.standsuchen(1003),bs.einzahlen(1003, Integer.MAX_VALUE)); + bs.kontoAnlegen("Awesome"); + bs.einzahlen(1003, Integer.MAX_VALUE); + assertEquals(Integer.MAX_VALUE,bs.standsuchen(1003)); } @Test + @Order(7) void testEinzahlen() { - Banksystem bs = new Banksystem("NormalString"); assertEquals(0,bs.einzahlen(1033, Integer.MAX_VALUE)); } diff --git a/src/JunitTests/kontoClassJunit.java b/src/JunitTests/kontoClassJunit.java index 9c29588..8f2d2a8 100644 --- a/src/JunitTests/kontoClassJunit.java +++ b/src/JunitTests/kontoClassJunit.java @@ -23,7 +23,8 @@ class kontoClassJunit { @Test @Order(2) public void testConstructorNullStand() { - Konto k = new Konto(null); + Konto k = new Konto("bs"); + assertEquals(1001,k.getKontonummer()); assertEquals(0,k.getStand()); } @Test @@ -77,6 +78,14 @@ class kontoClassJunit { k.einzahlen(0); assertEquals(168,k.getStand()); } + //Testing Delta or the third parameter + @Test + @Order(9) + public void test() { + float testing = 18.9F; + assertEquals(18.9,testing,0.001); + } + diff --git a/src/de/hs_mannheim/informatik/bank/UI/UI.java b/src/de/hs_mannheim/informatik/bank/UI/UI.java index 227d8c5..9b52c3c 100644 --- a/src/de/hs_mannheim/informatik/bank/UI/UI.java +++ b/src/de/hs_mannheim/informatik/bank/UI/UI.java @@ -2,6 +2,8 @@ package de.hs_mannheim.informatik.bank.UI; +import java.util.ArrayList; +import java.util.List; import java.util.Scanner; import de.hs_mannheim.informatik.bank.facade.Banksystem; @@ -26,7 +28,9 @@ public class UI { System.out.println("1 -> Konten anzeigen"); System.out.println("2 -> Konto anlegen"); System.out.println("3 -> Einzahlen"); - System.out.println("4 -> Kontostand Suchen"); + System.out.println("4 -> Auszahlen"); + System.out.println("5 -> Kontostand Suchen"); + System.out.println("6 -> Verlauf Zeigen"); System.out.println("9 -> Beenden"); System.out.println(); @@ -38,14 +42,17 @@ public class UI { case 1: kontenAnzeigen(); break; case 2: kontoAnlegen(); break; case 3: einzahlen(); break; - case 4: standSuchen(); break; + case 4: ausziehen(); break; + case 5: standSuchen(); break; + case 6: zeigeVerlauf(); break; + case 9: break mainloop; } } System.out.println("Auf Wiedersehen!"); - } // hauptmenü + } // hauptmenu private void kontenAnzeigen() { String[] konten = bs.getKontenliste(); @@ -68,21 +75,58 @@ public class UI { } private void einzahlen() { - System.out.println("Bitte die (Konto nummer,den Betrag) angeben"); - String all = sc.nextLine(); - String[] nummerUndBetrag = all.split(","); - int nummer = Integer.parseInt(nummerUndBetrag[0]); - long betrag = Long.parseLong(nummerUndBetrag[1]); - long result = bs.einzahlen(nummer, betrag); - System.out.println("Der Kontostand betreagt:" + result); + System.out.println("Bitte die Konto nummer angeben"); + int nummer = Integer.parseInt(sc.nextLine()); + long result = bs.standsuchen(nummer); + if(result == -1) + { + System.out.println("Konto nicht gefunden!"); + return; + } + System.out.println("Bitte den Betrag angeben"); + long betrag = Long.parseLong(sc.nextLine()); + System.out.println("Konto stand betraegt" + bs.einzahlen(nummer, betrag)); } private void standSuchen() { - System.out.println("Bitte die Konto nummer abgeben"); + System.out.println("Bitte die Konto nummer angeben"); int nummer = Integer.parseInt(sc.nextLine()); long result = bs.standsuchen(nummer); System.out.println("Der Kontostand betreagt:" + result); } + private void ausziehen() + { + System.out.println("Bitte die Konto nummer angeben"); + int nummer = Integer.parseInt(sc.nextLine()); + long result = bs.standsuchen(nummer); + if(result == -1) + { + System.out.println("Konto nicht gefunden!"); + return; + } + System.out.println("Bitte den Betrag angeben"); + long betrag = Long.parseLong(sc.nextLine()); + System.out.println("Konto stand betraegt" + bs.ausziehen(nummer, betrag)); + + } + private void zeigeVerlauf() + { + System.out.println("Bitte die Konto nummer angeben"); + int nummer = Integer.parseInt(sc.nextLine()); + List result = bs.zeigeVerlauf(nummer); + if(result == null) + { + System.out.println("Konto nicht gefunden!"); + return; + } + System.out.println("Konto verlauf:"); + for(Long x : result ) + { + System.out.println(x); + } + + + } } diff --git a/src/de/hs_mannheim/informatik/bank/domain/Bank.java b/src/de/hs_mannheim/informatik/bank/domain/Bank.java index 60766ea..fa1f6c1 100644 --- a/src/de/hs_mannheim/informatik/bank/domain/Bank.java +++ b/src/de/hs_mannheim/informatik/bank/domain/Bank.java @@ -25,4 +25,6 @@ public class Bank { return konten.values(); } + + } diff --git a/src/de/hs_mannheim/informatik/bank/domain/Konto.java b/src/de/hs_mannheim/informatik/bank/domain/Konto.java index d88004b..65502cd 100644 --- a/src/de/hs_mannheim/informatik/bank/domain/Konto.java +++ b/src/de/hs_mannheim/informatik/bank/domain/Konto.java @@ -1,9 +1,11 @@ package de.hs_mannheim.informatik.bank.domain; - +import java.util.ArrayList; +import java.util.List; public class Konto { private static int kontozähler = 0; + private List history = new ArrayList(); private int nummer; private long stand = 0; @@ -19,6 +21,11 @@ public class Konto { stand += betrag; return this.stand; } + public long ausziehen(long betrag) + { + stand -= betrag; + return this.stand; + } public int getKontonummer() { return nummer; @@ -32,5 +39,14 @@ public class Konto { return "Konto [nummer=" + nummer + ", inhaber=" + inhaber + ", Stand =" + stand + "]"; } + public List verlauf() + { + return history; + } + public long addToVerlauf(long betrag) + { + history.add(betrag); + return betrag; + } } diff --git a/src/de/hs_mannheim/informatik/bank/facade/Banksystem.java b/src/de/hs_mannheim/informatik/bank/facade/Banksystem.java index 614b289..9fef3ea 100644 --- a/src/de/hs_mannheim/informatik/bank/facade/Banksystem.java +++ b/src/de/hs_mannheim/informatik/bank/facade/Banksystem.java @@ -46,6 +46,7 @@ public class Banksystem { { if(k.getKontonummer() == nummer) { + k.addToVerlauf(betrag); k.einzahlen(betrag); return k.getStand(); } @@ -54,6 +55,23 @@ public class Banksystem { return 0; } + public long ausziehen(int nummer,long betrag) + { + Collection konten = bank.getKontenliste(); + + for(Konto k : konten) + { + if(k.getKontonummer() == nummer) + { + k.addToVerlauf(-betrag); + k.ausziehen(betrag); + return k.getStand(); + } + + } + + return 0; + } public long standsuchen(int nummer) { Collection konten = bank.getKontenliste(); @@ -66,7 +84,21 @@ public class Banksystem { } - return 0; + return -1; + } + public List zeigeVerlauf(int nummer) + { + Collection konten = bank.getKontenliste(); + for(Konto k : konten) + { + if(k.getKontonummer() == nummer) + { + return k.verlauf(); + } + + } + + return null; } }