From 51af35d41ab17dc5734f166b731bcb8b221890f5 Mon Sep 17 00:00:00 2001 From: Peter Gapon Date: Sat, 15 Oct 2022 17:45:03 +0200 Subject: [PATCH] =?UTF-8?q?speichern/laden=20ins=20Hauptmen=C3=BC=20eingef?= =?UTF-8?q?=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Bank-Beispiel/object.ser | Bin 0 -> 366 bytes .../informatik/bank/domain/Konto.java | 4 ++ .../informatik/bank/domain/KontoTest.java | 46 +++++++++++++ .../informatik/bank/facade/Banksystem.java | 23 ++++++- .../bank/facade/BanksystemTest.java | 65 ++++++++++++++++++ .../de/hs_mannheim/informatik/bank/ui/UI.java | 8 ++- .../persistence/PersistenzSerialisiert.java | 13 ++-- 7 files changed, 151 insertions(+), 8 deletions(-) create mode 100644 Bank-Beispiel/object.ser create mode 100644 Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/KontoTest.java create mode 100644 Bank-Beispiel/src/de/hs_mannheim/informatik/bank/facade/BanksystemTest.java diff --git a/Bank-Beispiel/object.ser b/Bank-Beispiel/object.ser new file mode 100644 index 0000000000000000000000000000000000000000..70c52894c85c48076176bb8f2c256b8fbf285c81 GIT binary patch literal 366 zcmYL@J5Izf5QZn4Ec75sB=<ocYJlhnSxi#N73E@fP3$C z+m^O6!HfDrq1J_vic5V}8HFV0e1>|?vr3`V{It?k*-AIg2)rq*=te1FPV8$!oh7g; zb%8Ts2-cF$#4l0jeo98_e3HPpv^s)dV{z;>{iWulvvNNde8>n!c~jrQ)8bz*>ktG- zNR5hFip0(?iG@2X+>OI9-ri$}$LTqXf+%7Kf(+&{3xlBT86%7S`a^?7n*j|y8iw5W OkQ?WXou$QpwEYE(d0xQ) literal 0 HcmV?d00001 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 c47abff..0dad742 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 @@ -57,6 +57,10 @@ public class Konto implements Serializable{ } } + public static void setKontozähler(int kontozähler) { + Konto.kontozähler = kontozähler; + } + @Override public String toString() { return "Konto [nummer=" + nummer + ", inhaber=" + inhaber + ", stand=" + stand + "]"; 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 new file mode 100644 index 0000000..af82c47 --- /dev/null +++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/KontoTest.java @@ -0,0 +1,46 @@ +package de.hs_mannheim.informatik.bank.domain; + +import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.*; + +import org.junit.Before; +import org.junit.jupiter.api.Test; + +class KontoTest { + + Konto k1; + Konto k2; + Konto k3; + + @Before + public void vorTest() { +// k1 = new Konto("Anna"); +// k2 = new Konto("Paul"); +// k3 = new Konto("Max"); + + } + + @Test + public void getKontonummerTest() { + k1 = new Konto("Anna"); + k2 = new Konto("Paul"); + k3 = new Konto("Max"); + assertEquals(1003, k1.getKontonummer()); + assertEquals(1004, k2.getKontonummer()); + assertNotEquals(1000, k3.getKontonummer()); + } + + @Test + public void einzahlenTest() { + k1 = new Konto("Anna"); + k2 = new Konto("Paul"); + k3 = new Konto("Max"); + k1.einzahlenKonto(1000); + k2.einzahlenKonto(100); + k3.einzahlenKonto(0); + assertEquals(1000, k1.getStand()); + assertEquals(100, k2.getStand()); + assertEquals(0, k3.getStand()); + } + +} 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 69ddfd5..fd916a6 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,6 +1,7 @@ package de.hs_mannheim.informatik.bank.facade; import java.io.IOException; +import java.util.ArrayList; import java.util.Collection; import de.hs_mannheim.informatik.bank.domain.Bank; @@ -57,7 +58,27 @@ public class Banksystem { bank.getKonten().get(kNummer).kontoauszugAnzeigenKonto(); } + public void kontenSpeichern() throws ClassNotFoundException, IOException { + Collection konten = bank.getKontenliste(); + ArrayList liste = new ArrayList<>(); + + + for (Konto k : konten) { + liste.add(k); + } + + PersistenzSerialisiert.objectSpeichern(liste); +// bank.addKonto(PersistenzSerialisiert.objectLesen()); +// PersistenzSerialisiert.objectLesen(); + } + public void kontenLaden() throws ClassNotFoundException, IOException { - bank.addKonto(PersistenzSerialisiert.objectLesen()); + ArrayList liste = PersistenzSerialisiert.objectLesen(); + + for (int i = 0; i < liste.size(); i++) { + bank.addKonto(liste.get(i)); + } + + Konto.setKontozähler(bank.getKontenliste().size()); } } 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 new file mode 100644 index 0000000..b939eed --- /dev/null +++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/facade/BanksystemTest.java @@ -0,0 +1,65 @@ +package de.hs_mannheim.informatik.bank.facade; + +import static org.junit.jupiter.api.Assertions.*; + +import org.junit.Before; +import org.junit.jupiter.api.Test; + +import de.hs_mannheim.informatik.bank.domain.Konto; + +class BanksystemTest { + + Banksystem bs; + Konto k1; + Konto k2; + Konto k3; + + @Before + public void vorTest() { + bs = new Banksystem("Bank"); + k1 = new Konto("Anna"); + k2 = new Konto("Paul"); + k3 = new Konto("Max"); + } + + @Test + public void kontoAnlegenTest() { + bs = new Banksystem("Bank"); + + + assertEquals(1002, bs.kontoAnlegen("Anna")); + assertNotEquals(1000, bs.kontoAnlegen("Paul")); + assertEquals(1004, bs.kontoAnlegen("Max")); + } + + @Test + public void getKontenlisteTest() { + bs = new Banksystem("Bank"); + bs.kontoAnlegen("Anna"); + bs.kontoAnlegen("Paul"); + + String[] arr = bs.getKontenliste(); + + assertEquals("Konto [nummer=1000, inhaber=Anna, stand=0]", arr[0]); + + } + + @Test + public void getBanknameTest() { + bs = new Banksystem("Bank"); + + assertEquals("Bank", bs.getBankname()); + } + + @Test + public void einzahlenTest() { + bs = new Banksystem("Bank"); + bs.kontoAnlegen("Anna"); + bs.einzahlenBanksystem(1005, 100); + + String[] arr = bs.getKontenliste(); + + assertEquals("Konto [nummer=1005, inhaber=Anna, stand=100]", arr[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 f9573ad..87ffe33 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 @@ -17,7 +17,7 @@ public class UI { private void hauptmenü() throws IOException, ClassNotFoundException { System.out.println("Willkommen bei der " + bs.getBankname() + "!"); - bs.kontenLaden(); +// bs.kontenLaden(); mainloop: while (true) { @@ -30,6 +30,8 @@ public class UI { System.out.println("4 -> Konto auszahlen"); System.out.println("5 -> Konto anzeigen"); System.out.println("6 -> Kontoauszug anzeigen"); + System.out.println("7 -> Konten speichern?"); + System.out.println("8 -> Konten laden?"); System.out.println("9 -> Beenden"); System.out.println(); @@ -44,6 +46,8 @@ public class UI { case 4: auszahlen(); break; case 5: kontoAnzeigen(); break; case 6: kontoauszugAnzeigen(); break; + case 7: bs.kontenSpeichern(); break; + case 8: bs.kontenLaden(); break; case 9: break mainloop; } } @@ -85,7 +89,7 @@ public class UI { int kontonummer = bs.kontoAnlegen(name); System.out.println("Konto mit der Nummer " + kontonummer + " neu angelegt."); - PersistenzSerialisiert.objectSpeichern(bs.getKontoBanksystem(kontonummer)); +// PersistenzSerialisiert.objectSpeichern(bs.getKontoBanksystem(kontonummer)); } private void einzahlen() { diff --git a/Bank-Beispiel/src/persistence/PersistenzSerialisiert.java b/Bank-Beispiel/src/persistence/PersistenzSerialisiert.java index 1794bfb..53a8c73 100644 --- a/Bank-Beispiel/src/persistence/PersistenzSerialisiert.java +++ b/Bank-Beispiel/src/persistence/PersistenzSerialisiert.java @@ -5,6 +5,8 @@ import java.io.FileOutputStream; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; +import java.util.ArrayList; +import java.util.List; import de.hs_mannheim.informatik.bank.domain.Konto; @@ -14,21 +16,22 @@ public class PersistenzSerialisiert { } - public static void objectSpeichern(Object o) throws IOException { + public static void objectSpeichern(ArrayList liste) throws IOException { ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("object.ser")); - oos.writeObject(o); + oos.writeObject(liste); oos.close(); } - public static Konto objectLesen() throws IOException, ClassNotFoundException { + public static ArrayList objectLesen() throws IOException, ClassNotFoundException { ObjectInputStream ois = new ObjectInputStream(new FileInputStream("object.ser")); - Konto k = (Konto) ois.readObject(); + ArrayList liste = (ArrayList) ois.readObject(); + ois.close(); - return k; + return liste; } } \ No newline at end of file