Hinzufügen der Möglichkeit zum Geld einzahlen und dem ablesen des

kontostands.

erstellen von Junit test für die neu erstellten Methoden in der Konto
und Banksystem klasse
Meins
Marc Ziegler 2022-10-10 12:44:37 +02:00
parent ba349af6c3
commit 03d0126de4
8 changed files with 205 additions and 19 deletions

View File

@ -1,10 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<classpath> <classpath>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-17"> <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-17">
<attributes> <attributes>
<attribute name="module" value="true"/> <attribute name="module" value="true"/>
</attributes> </attributes>
</classpathentry> </classpathentry>
<classpathentry kind="src" path="src"/> <classpathentry kind="src" path="src"/>
<classpathentry kind="output" path="bin"/> <classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/>
</classpath> <classpathentry kind="output" path="bin"/>
</classpath>

View File

@ -6,7 +6,7 @@ import de.hs_mannheim.informatik.bank.ui.UI;
public class Main { public class Main {
public static void main(String[] args) { public static void main(String[] args) {
Banksystem bs = new Banksystem("Spaßkasse Mannheim"); Banksystem bs = new Banksystem("Spaßkasse Mannheim");
UI ui = new UI(bs); UI ui = new UI(bs);
} }

View File

@ -3,6 +3,7 @@ package de.hs_mannheim.informatik.bank.domain;
import java.util.Collection; import java.util.Collection;
import java.util.HashMap; import java.util.HashMap;
public class Bank { public class Bank {
private String name; private String name;
private HashMap<Integer, Konto> konten = new HashMap<>(); private HashMap<Integer, Konto> konten = new HashMap<>();
@ -22,5 +23,12 @@ public class Bank {
public Collection<Konto> getKontenliste() { public Collection<Konto> getKontenliste() {
return konten.values(); return konten.values();
} }
public long getKontostand(int Kontonummer) {
return konten.get(Kontonummer).getStand();
}
public long GeldEinzahlen(int Kontonummer,long Betrag) {
return konten.get(Kontonummer).Einzahlen(Betrag);
}
} }

View File

@ -1,14 +1,14 @@
package de.hs_mannheim.informatik.bank.domain; package de.hs_mannheim.informatik.bank.domain;
public class Konto { public class Konto {
private static int kontozähler = 0; private static int kontozähler = 0;
private int nummer; private int nummer;
private long stand = 0; private long stand = 0;
private String inhaber; private String inhaber;
public Konto(String inhaber) { public Konto(String inhaber) {
nummer = 1000 + kontozähler++; nummer = 1000 + kontozähler++;
this.inhaber = inhaber; this.inhaber = inhaber;
} }
@ -20,5 +20,12 @@ public class Konto {
public String toString() { public String toString() {
return "Konto [nummer=" + nummer + ", inhaber=" + inhaber + "]"; return "Konto [nummer=" + nummer + ", inhaber=" + inhaber + "]";
} }
public long Einzahlen(long Betrag) {
if(Betrag>=0)
this.stand+=Betrag;
return getStand();
}
public long getStand() {
return this.stand;
}
} }

View File

@ -0,0 +1,27 @@
package de.hs_mannheim.informatik.bank.domain;
import static org.junit.Assert.*;
import org.junit.Assert;
import org.junit.Test;
public class KontoTest {
@Test
public void Testcase7() {
Konto k=new Konto("Marc");
Assert.assertEquals("einzahlen min",k.Einzahlen(1),1L);
}
@Test
public void Testcase8() {
Konto k=new Konto("Marc");
Assert.assertEquals("hohe Zahl",k.Einzahlen(999999),999999L);
}
@Test
public void Testcase9() {
Konto k=new Konto("Marc");
Assert.assertEquals("negative Zahl",k.Einzahlen(-1),0);
}
}

View File

@ -34,4 +34,10 @@ public class Banksystem {
public String getBankname() { public String getBankname() {
return bank.getName(); return bank.getName();
} }
public long Einzahlen(int Kontonummer,long Betrag) {
return this.bank.GeldEinzahlen(Kontonummer, Betrag);
}
public long getKontostand(int Kontonummer) {
return bank.getKontostand(Kontonummer);
}
} }

View File

@ -0,0 +1,88 @@
package de.hs_mannheim.informatik.bank.facade;
import static org.junit.Assert.*;
import org.junit.Assert;
import org.junit.Test;
public class BanksystemTest {
@Test
public void Testcase1() {
Banksystem bs=new Banksystem("Testbank");
int kontonummer=bs.kontoAnlegen("Marc");
System.out.println(kontonummer);
Assert.assertEquals("erster Testcase einzahlen des mindestWerts",bs.Einzahlen(kontonummer, 1L),1L);
}
@Test
public void Testcase2() {
Banksystem bs=new Banksystem("Testbank");
bs.kontoAnlegen("Marc");
int kontonummer=bs.kontoAnlegen("Marc1");
System.out.println(kontonummer);
Assert.assertEquals("höchst Wert",bs.Einzahlen(kontonummer, 9999999999999999L),9999999999999999L);
}
@Test
public void Testcase3() {
Banksystem bs=new Banksystem("Testbank");
bs.kontoAnlegen("Marc");
bs.kontoAnlegen("Marc1");
int kontonummer = bs.kontoAnlegen("Marc2");
System.out.println(kontonummer);
Assert.assertEquals("Test zum nichtbeachten Zahlen kleiner 0",bs.Einzahlen(kontonummer, -1L),0L);
}
@Test
public void Testcase4() {
Banksystem bs=new Banksystem("Testbank");
bs.kontoAnlegen("Marc");
bs.kontoAnlegen("Marc1");
bs.kontoAnlegen("Marc2");
bs.kontoAnlegen("Marc3");
bs.kontoAnlegen("Marc4");
bs.kontoAnlegen("Marc5");
bs.kontoAnlegen("Marc6");
bs.kontoAnlegen("Marc7");
bs.kontoAnlegen("Marc8");
int kontonummer=bs.kontoAnlegen("Marc9");
System.out.println(kontonummer);
Assert.assertEquals("Höchstwert der Kontonummer testen",bs.Einzahlen(kontonummer, 1L),1L);
}
@Test(expected = NullPointerException.class)
public void Testcase5() {
Banksystem bs=new Banksystem("Testbank");
bs.kontoAnlegen("Marc");
bs.kontoAnlegen("Marc1");
bs.kontoAnlegen("Marc2");
bs.kontoAnlegen("Marc3");
bs.kontoAnlegen("Marc4");
bs.kontoAnlegen("Marc5");
bs.kontoAnlegen("Marc6");
bs.kontoAnlegen("Marc7");
bs.kontoAnlegen("Marc8");
bs.kontoAnlegen("Marc9");
Assert.assertEquals("Fehlermeldung bei zukleiner Kontonummer",bs.Einzahlen(999, 1L),1L);
}
@Test(expected = NullPointerException.class)
public void Testcase6() {
Banksystem bs=new Banksystem("Testbank");
bs.kontoAnlegen("Marc");
bs.kontoAnlegen("Marc1");
bs.kontoAnlegen("Marc2");
bs.kontoAnlegen("Marc3");
bs.kontoAnlegen("Marc4");
bs.kontoAnlegen("Marc5");
bs.kontoAnlegen("Marc6");
bs.kontoAnlegen("Marc7");
bs.kontoAnlegen("Marc8");
bs.kontoAnlegen("Marc9");
Assert.assertEquals("Fehlermeldung bei zu großer Kontonummer",bs.Einzahlen(1100, 1L),1L);
}
}

View File

@ -10,19 +10,21 @@ public class UI {
public UI(Banksystem bs) { public UI(Banksystem bs) {
this.bs = bs; this.bs = bs;
hauptmenü(); hauptmenü();
} }
private void hauptmenü() { private void hauptmenü() {
System.out.println("Willkommen bei der " + bs.getBankname() + "!"); System.out.println("Willkommen bei der " + bs.getBankname() + "!");
mainloop: mainloop:
while (true) { while (true) {
System.out.println(); System.out.println();
System.out.println("--------"); System.out.println("--------");
System.out.println("Hauptmenü"); System.out.println("Hauptmenü");
System.out.println("1 -> Konten anzeigen"); System.out.println("1 -> Konten anzeigen");
System.out.println("2 -> Konto anlegen"); System.out.println("2 -> Konto anlegen");
System.out.println("3 -> Geld einzahlen");
System.out.println("4 -> Kontostand abfragen");
System.out.println("9 -> Beenden"); System.out.println("9 -> Beenden");
System.out.println(); System.out.println();
@ -33,24 +35,27 @@ public class UI {
switch(input) { switch(input) {
case 1: kontenAnzeigen(); break; case 1: kontenAnzeigen(); break;
case 2: kontoAnlegen(); break; case 2: kontoAnlegen(); break;
case 3: kontoEinzahlen();break;
case 4: kontoStandAbfragen();break;
case 9: break mainloop; case 9: break mainloop;
} }
} }
System.out.println("Auf Wiedersehen!"); System.out.println("Auf Wiedersehen!");
} // hauptmenü } // hauptmenü
private void kontenAnzeigen() { private void kontenAnzeigen() {
String[] konten = bs.getKontenliste(); String[] konten = bs.getKontenliste();
if (konten.length > 0) { if (konten.length > 0) {
System.out.println("Folgende Konten sind aktuell verfügbar:"); System.out.println("Folgende Konten sind aktuell verfügbar:");
for (String s : konten) { for (String s : konten) {
System.out.println(s); System.out.println(s);
} }
} else { } else {
System.out.println("Bisher keine Konten angelegt."); System.out.println("Bisher keine Konten angelegt.");
} }
sc.nextLine();
} }
private void kontoAnlegen() { private void kontoAnlegen() {
@ -59,6 +64,50 @@ public class UI {
int kontonummer = bs.kontoAnlegen(name); int kontonummer = bs.kontoAnlegen(name);
System.out.println("Konto mit der Nummer " + kontonummer + " neu angelegt."); System.out.println("Konto mit der Nummer " + kontonummer + " neu angelegt.");
sc.nextLine();
} }
public void kontoEinzahlen() {
System.out.println("Kontonummer: ");
int Kontonummer=Integer.parseInt(sc.nextLine());
long Betrag=0L;
try {
System.out.println("Betrag angeben");
Betrag=Long.parseLong(sc.nextLine());
if(Betrag<0) {
System.out.println("Man kann keine negativen Beträge einzahlen ");
}
}
catch(Exception InputMismatchException){
System.out.println("Bitte daran denken das nur ganze Zahlen mit Long angenommen werden");
}
try {
long Kontostand=bs.Einzahlen(Kontonummer, Betrag);
System.out.println("Der aktuelle Kontostand beträgt: "+Kontostand+" Euro");
sc.nextLine();
}catch(Exception NullPointerException) {
System.out.println("Nicht excistierendes Konto");
sc.nextLine();
}
}
public void kontoStandAbfragen() {
System.out.println("bitte geben Sie ihre Kontonummer an: ");
int Kontonummer=Integer.parseInt(sc.nextLine());
try {
System.out.println("der Kontostand beträgt: "+ bs.getKontostand(Kontonummer));
}
catch(Exception NullPointerException) {
System.out.println("Nicht excistierendes Konto");
}
sc.nextLine();
}
} }