commit
0af3f09681
|
@ -0,0 +1,52 @@
|
||||||
|
package JunitTests;
|
||||||
|
|
||||||
|
import static org.junit.jupiter.api.Assertions.*;
|
||||||
|
|
||||||
|
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.facade.Banksystem;
|
||||||
|
@TestMethodOrder(OrderAnnotation.class)
|
||||||
|
class BankSystemJunit {
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void testBanknameNull() {
|
||||||
|
Banksystem bs = new Banksystem(null);
|
||||||
|
assertEquals(null,bs.getBankname());
|
||||||
|
}
|
||||||
|
@Test
|
||||||
|
void testBankname() {
|
||||||
|
String s = "IKnowThatThisMustBeTheBiggestStringYouHaveEverSeen";
|
||||||
|
Banksystem bs = new Banksystem(s);
|
||||||
|
assertEquals(s,bs.getBankname());
|
||||||
|
}
|
||||||
|
@Test
|
||||||
|
void testEinzahlenMinusStand() {
|
||||||
|
Banksystem bs = new Banksystem("NormalString");
|
||||||
|
assertEquals(bs.standsuchen(1000),bs.einzahlen(1000, -10));
|
||||||
|
}
|
||||||
|
@Test
|
||||||
|
void testEinzahlenZeroStand() {
|
||||||
|
Banksystem bs = new Banksystem("NormalString");
|
||||||
|
assertEquals(bs.standsuchen(1001),bs.einzahlen(1001, 0));
|
||||||
|
}
|
||||||
|
@Test
|
||||||
|
void testEinzahlenPostiveStand() {
|
||||||
|
Banksystem bs = new Banksystem("NormalString");
|
||||||
|
assertEquals(bs.standsuchen(1002),bs.einzahlen(1002, 24924892));
|
||||||
|
}
|
||||||
|
@Test
|
||||||
|
void testEinzahlenOverflowStand() {
|
||||||
|
Banksystem bs = new Banksystem("NormalString");
|
||||||
|
assertEquals(bs.standsuchen(1003),bs.einzahlen(1003, Integer.MAX_VALUE));
|
||||||
|
}
|
||||||
|
@Test
|
||||||
|
void testEinzahlen() {
|
||||||
|
Banksystem bs = new Banksystem("NormalString");
|
||||||
|
assertEquals(0,bs.einzahlen(1033, Integer.MAX_VALUE));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,96 @@
|
||||||
|
package JunitTests;
|
||||||
|
|
||||||
|
import static org.junit.jupiter.api.Assertions.*;
|
||||||
|
|
||||||
|
import org.junit.jupiter.api.AfterAll;
|
||||||
|
import org.junit.jupiter.api.MethodOrderer.OrderAnnotation;
|
||||||
|
import org.junit.jupiter.api.Order;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
import org.junit.jupiter.api.TestMethodOrder;
|
||||||
|
|
||||||
|
import de.hs_mannheim.informatik.bank.domain.Konto;
|
||||||
|
//Junit is runs test alphabetic, so we will make it run by order
|
||||||
|
@TestMethodOrder(OrderAnnotation.class)
|
||||||
|
class kontoClassJunit {
|
||||||
|
//@Oder Annotation
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@Order(1)
|
||||||
|
public void testConstructorNullKontoNummer() {
|
||||||
|
Konto k = new Konto(null);
|
||||||
|
assertEquals(1000,k.getKontonummer());
|
||||||
|
}
|
||||||
|
@Test
|
||||||
|
@Order(2)
|
||||||
|
public void testConstructorNullStand() {
|
||||||
|
Konto k = new Konto(null);
|
||||||
|
assertEquals(0,k.getStand());
|
||||||
|
}
|
||||||
|
@Test
|
||||||
|
@Order(3)
|
||||||
|
public void ConstructorBigNameStand() {
|
||||||
|
Konto k = new Konto("ThisTextISverYBigThatItwontContainitAtAll");
|
||||||
|
assertEquals(0,k.getStand());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@Order(4)
|
||||||
|
public void ConstructorBigNameKonto() {
|
||||||
|
Konto k = new Konto("ThisTextISverYBigThatItwontContainitAtAll");
|
||||||
|
assertEquals(1003,k.getKontonummer());
|
||||||
|
}
|
||||||
|
@Test
|
||||||
|
@Order(5)
|
||||||
|
public void ConstructorEinzahlen() {
|
||||||
|
Konto k = new Konto("Ryan Ronalds");
|
||||||
|
k.einzahlen(100);
|
||||||
|
assertEquals(100,k.getStand());
|
||||||
|
}
|
||||||
|
@Test
|
||||||
|
@Order(6)
|
||||||
|
public void ConstructorMehrereEinzahlen() {
|
||||||
|
Konto k = new Konto("Ryan Ronalds");
|
||||||
|
k.einzahlen(100);
|
||||||
|
k.einzahlen(11);
|
||||||
|
k.einzahlen(7);
|
||||||
|
k.einzahlen(135);
|
||||||
|
assertEquals(253,k.getStand());
|
||||||
|
}
|
||||||
|
@Test
|
||||||
|
@Order(7)
|
||||||
|
public void ConstructorMehrereEinzahlenMitMinus() {
|
||||||
|
Konto k = new Konto("Ryan Ronalds");
|
||||||
|
k.einzahlen(100);
|
||||||
|
k.einzahlen(11);
|
||||||
|
k.einzahlen(57);
|
||||||
|
k.einzahlen(-135);
|
||||||
|
assertEquals(33,k.getStand());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@Order(8)
|
||||||
|
public void ConstructorMehrere() {
|
||||||
|
Konto k = new Konto("Ryan Ronalds");
|
||||||
|
k.einzahlen(100);
|
||||||
|
k.einzahlen(11);
|
||||||
|
k.einzahlen(57);
|
||||||
|
k.einzahlen(0);
|
||||||
|
assertEquals(168,k.getStand());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,14 @@
|
||||||
|
package de.hs_mannheim.informatik.bank;
|
||||||
|
|
||||||
|
|
||||||
|
import de.hs_mannheim.informatik.bank.UI.UI;
|
||||||
|
import de.hs_mannheim.informatik.bank.facade.Banksystem;
|
||||||
|
|
||||||
|
public class Main {
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
Banksystem bs = new Banksystem("Spaßkasse Mannheim");
|
||||||
|
UI ui = new UI(bs);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,88 @@
|
||||||
|
package de.hs_mannheim.informatik.bank.UI;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
import java.util.Scanner;
|
||||||
|
|
||||||
|
import de.hs_mannheim.informatik.bank.facade.Banksystem;
|
||||||
|
|
||||||
|
public class UI {
|
||||||
|
private Banksystem bs;
|
||||||
|
Scanner sc = new Scanner(System.in);
|
||||||
|
|
||||||
|
public UI(Banksystem bs) {
|
||||||
|
this.bs = bs;
|
||||||
|
hauptmenü();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void hauptmenü() {
|
||||||
|
System.out.println("Willkommen bei der " + bs.getBankname() + "!");
|
||||||
|
|
||||||
|
mainloop:
|
||||||
|
while (true) {
|
||||||
|
System.out.println();
|
||||||
|
System.out.println("--------");
|
||||||
|
System.out.println("Hauptmenü");
|
||||||
|
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("9 -> Beenden");
|
||||||
|
System.out.println();
|
||||||
|
|
||||||
|
System.out.print("> ");
|
||||||
|
int input = Integer.parseInt(sc.nextLine());
|
||||||
|
System.out.println();
|
||||||
|
|
||||||
|
switch(input) {
|
||||||
|
case 1: kontenAnzeigen(); break;
|
||||||
|
case 2: kontoAnlegen(); break;
|
||||||
|
case 3: einzahlen(); break;
|
||||||
|
case 4: standSuchen(); break;
|
||||||
|
case 9: break mainloop;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
System.out.println("Auf Wiedersehen!");
|
||||||
|
|
||||||
|
} // hauptmenü
|
||||||
|
|
||||||
|
private void kontenAnzeigen() {
|
||||||
|
String[] konten = bs.getKontenliste();
|
||||||
|
if (konten.length > 0) {
|
||||||
|
System.out.println("Folgende Konten sind aktuell verfügbar:");
|
||||||
|
for (String s : konten) {
|
||||||
|
System.out.println(s);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
System.out.println("Bisher keine Konten angelegt.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void kontoAnlegen() {
|
||||||
|
System.out.println("Bitte den Namen des Kontoinhabers angeben: ");
|
||||||
|
String name = sc.nextLine();
|
||||||
|
|
||||||
|
int kontonummer = bs.kontoAnlegen(name);
|
||||||
|
System.out.println("Konto mit der Nummer " + kontonummer + " neu angelegt.");
|
||||||
|
}
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
private void standSuchen()
|
||||||
|
{
|
||||||
|
System.out.println("Bitte die Konto nummer abgeben");
|
||||||
|
int nummer = Integer.parseInt(sc.nextLine());
|
||||||
|
long result = bs.standsuchen(nummer);
|
||||||
|
System.out.println("Der Kontostand betreagt:" + result);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,28 @@
|
||||||
|
package de.hs_mannheim.informatik.bank.domain;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
import java.util.Collection;
|
||||||
|
import java.util.HashMap;
|
||||||
|
|
||||||
|
public class Bank {
|
||||||
|
private String name;
|
||||||
|
private HashMap<Integer, Konto> konten = new HashMap<>();
|
||||||
|
|
||||||
|
public Bank(String name) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void addKonto(Konto k) {
|
||||||
|
konten.put(k.getKontonummer(), k);
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Collection<Konto> getKontenliste() {
|
||||||
|
return konten.values();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,36 @@
|
||||||
|
package de.hs_mannheim.informatik.bank.domain;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public class Konto {
|
||||||
|
private static int kontozähler = 0;
|
||||||
|
|
||||||
|
private int nummer;
|
||||||
|
private long stand = 0;
|
||||||
|
private String inhaber;
|
||||||
|
|
||||||
|
public Konto(String inhaber) {
|
||||||
|
nummer = 1000 + kontozähler++;
|
||||||
|
this.inhaber = inhaber;
|
||||||
|
}
|
||||||
|
|
||||||
|
public long einzahlen(long betrag)
|
||||||
|
{
|
||||||
|
stand += betrag;
|
||||||
|
return this.stand;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getKontonummer() {
|
||||||
|
return nummer;
|
||||||
|
}
|
||||||
|
public long getStand()
|
||||||
|
{
|
||||||
|
return stand;
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "Konto [nummer=" + nummer + ", inhaber=" + inhaber +
|
||||||
|
", Stand =" + stand + "]";
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,70 @@
|
||||||
|
package de.hs_mannheim.informatik.bank.facade;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
import java.util.Collection;
|
||||||
|
|
||||||
|
import de.hs_mannheim.informatik.bank.domain.Bank;
|
||||||
|
import de.hs_mannheim.informatik.bank.domain.Konto;
|
||||||
|
|
||||||
|
public class Banksystem {
|
||||||
|
private Bank bank;
|
||||||
|
|
||||||
|
public Banksystem(String bankname) {
|
||||||
|
this.bank = new Bank(bankname);
|
||||||
|
}
|
||||||
|
|
||||||
|
public int kontoAnlegen(String name) {
|
||||||
|
Konto k = new Konto(name);
|
||||||
|
bank.addKonto(k);
|
||||||
|
|
||||||
|
return k.getKontonummer();
|
||||||
|
}
|
||||||
|
|
||||||
|
public String[] getKontenliste() {
|
||||||
|
Collection<Konto> konten = bank.getKontenliste();
|
||||||
|
String[] liste = new String[konten.size()];
|
||||||
|
|
||||||
|
int i = 0;
|
||||||
|
for (Konto k : konten) {
|
||||||
|
liste[i++] = k.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
return liste;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getBankname() {
|
||||||
|
return bank.getName();
|
||||||
|
}
|
||||||
|
public long einzahlen(int nummer,long betrag)
|
||||||
|
{
|
||||||
|
Collection<Konto> konten = bank.getKontenliste();
|
||||||
|
long stand = 0;
|
||||||
|
for(Konto k : konten)
|
||||||
|
{
|
||||||
|
if(k.getKontonummer() == nummer)
|
||||||
|
{
|
||||||
|
k.einzahlen(betrag);
|
||||||
|
return k.getStand();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
public long standsuchen(int nummer)
|
||||||
|
{
|
||||||
|
Collection<Konto> konten = bank.getKontenliste();
|
||||||
|
for(Konto k : konten)
|
||||||
|
{
|
||||||
|
if(k.getKontonummer() == nummer)
|
||||||
|
{
|
||||||
|
return k.getStand();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue