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