JTest für das gesamte Programm
parent
edd8fb4ccb
commit
b123254ea3
|
@ -0,0 +1,47 @@
|
||||||
|
package Parkhaus;
|
||||||
|
|
||||||
|
import static org.junit.jupiter.api.Assertions.*;
|
||||||
|
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
|
||||||
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
class Allgemeine_Test {
|
||||||
|
|
||||||
|
private Parkhaus system;
|
||||||
|
private SimpleDateFormat sdf;
|
||||||
|
|
||||||
|
@BeforeEach
|
||||||
|
void setUp() throws Exception {
|
||||||
|
system = new Parkhaus();
|
||||||
|
sdf = new SimpleDateFormat("dd.MM.yyyy, HH:mm");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void test_Parkhaus() throws Exception {
|
||||||
|
String kennzeichen = "MA-SH 4077";
|
||||||
|
String einfahrt = "01.10.2024, 14:30";
|
||||||
|
String ausfahrt = "01.10.2024, 14:50";
|
||||||
|
String GueltigeVISAKartennummer = "9823192757222993";
|
||||||
|
|
||||||
|
// Einfahren: True => Beide assertTrue Tests.
|
||||||
|
String einfahren = system.einfahren(kennzeichen, einfahrt);
|
||||||
|
assertTrue(einfahren.contains(kennzeichen));
|
||||||
|
assertTrue(einfahren.contains(einfahrt));
|
||||||
|
assertEquals(179,system.getMaxPlaetze());
|
||||||
|
|
||||||
|
// Parkgebühren berechnen: True => da nur eine Stunde
|
||||||
|
double betrag = system.berechneParkgebuehren(kennzeichen, ausfahrt);
|
||||||
|
assertEquals(1,betrag);
|
||||||
|
|
||||||
|
//Parkgebühren sofort Bezahlen mit Visa-karte: True => Beide assertTrue Tests.
|
||||||
|
assertTrue(system.checkVisakarteNummer(GueltigeVISAKartennummer));
|
||||||
|
assertTrue(system.setBezahlt(kennzeichen));
|
||||||
|
|
||||||
|
// Ausfahren: True => Beide assertTrue Tests.
|
||||||
|
assertTrue(system.ausfahren(kennzeichen, ausfahrt));
|
||||||
|
assertEquals(180,system.getMaxPlaetze());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -24,8 +24,6 @@ public class Fahrzeug {
|
||||||
this.kennzeichen = kennzeichenzufaelliggenerieren.kennzeichengenerieren();
|
this.kennzeichen = kennzeichenzufaelliggenerieren.kennzeichengenerieren();
|
||||||
this.einfahrt = new Date();
|
this.einfahrt = new Date();
|
||||||
this.betrag = 0.0;
|
this.betrag = 0.0;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Fahrzeug(String kennzeichen, Date einfahrt) {
|
Fahrzeug(String kennzeichen, Date einfahrt) {
|
||||||
|
|
|
@ -43,15 +43,16 @@ public class Parkhaus {
|
||||||
return "Das Fahrzeug mit dem Kennzeichen: " + fahrzeug.getKennzeichen() + "\n" + "wurde um: "
|
return "Das Fahrzeug mit dem Kennzeichen: " + fahrzeug.getKennzeichen() + "\n" + "wurde um: "
|
||||||
+ fahrzeug.getEinfahrtFormatted() + " im Parkhaus eingefahren.";
|
+ fahrzeug.getEinfahrtFormatted() + " im Parkhaus eingefahren.";
|
||||||
}
|
}
|
||||||
|
|
||||||
public double berechneParkgebuehren(String kennzeichen, String ausfahrtzeit) throws AutoNichtGefundenException, ParseException {
|
public double berechneParkgebuehren(String kennzeichen, String ausfahrtzeit)
|
||||||
|
throws AutoNichtGefundenException, ParseException {
|
||||||
if (kennzeichen.isEmpty())
|
if (kennzeichen.isEmpty())
|
||||||
throw new AutoNichtGefundenException("Sie müssen bitte das Kennzeichen Ihres Autos eingeben.");
|
throw new AutoNichtGefundenException("Sie müssen bitte das Kennzeichen Ihres Autos eingeben.");
|
||||||
|
|
||||||
boolean isEauto = false;
|
boolean isEauto = false;
|
||||||
if (kennzeichen.endsWith("E"))
|
if (kennzeichen.endsWith("E"))
|
||||||
isEauto = true;
|
isEauto = true;
|
||||||
|
|
||||||
fahrzeug = findeFahrzeug(kennzeichen);
|
fahrzeug = findeFahrzeug(kennzeichen);
|
||||||
Date einfahrt = fahrzeug.getEinfahrt();
|
Date einfahrt = fahrzeug.getEinfahrt();
|
||||||
Date ausfahrt;
|
Date ausfahrt;
|
||||||
|
@ -90,17 +91,18 @@ public class Parkhaus {
|
||||||
betragAktuellesAuto = maxTagBetrag;
|
betragAktuellesAuto = maxTagBetrag;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (isEauto)
|
if (isEauto)
|
||||||
betragAktuellesAuto -= rabattFuerEauto(betragAktuellesAuto);
|
betragAktuellesAuto -= rabattFuerEauto(betragAktuellesAuto);
|
||||||
|
|
||||||
fahrzeug.setBetrag(betragAktuellesAuto);
|
fahrzeug.setBetrag(betragAktuellesAuto);
|
||||||
return fahrzeug.getBetrag();
|
return fahrzeug.getBetrag();
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean ausfahren(String kennzeichen, String ausfahrtzeit) throws AutoNichtGefundenException, ParseException {
|
public boolean ausfahren(String kennzeichen, String ausfahrtzeit)
|
||||||
|
throws AutoNichtGefundenException, ParseException {
|
||||||
if (kennzeichen.isEmpty())
|
if (kennzeichen.isEmpty())
|
||||||
throw new AutoNichtGefundenException("Sie müssen bitte das Kennzeichen Ihres Autos eingeben.");
|
throw new AutoNichtGefundenException("Sie müssen bitte das Kennzeichen Ihres Autos eingeben.");
|
||||||
|
|
||||||
fahrzeug = findeFahrzeug(kennzeichen);
|
fahrzeug = findeFahrzeug(kennzeichen);
|
||||||
Date ausfahrt;
|
Date ausfahrt;
|
||||||
if (ausfahrtzeit.isEmpty()) {
|
if (ausfahrtzeit.isEmpty()) {
|
||||||
|
@ -108,28 +110,23 @@ public class Parkhaus {
|
||||||
ausfahrt = sdf.parse(aktuelleZeitString);
|
ausfahrt = sdf.parse(aktuelleZeitString);
|
||||||
} else
|
} else
|
||||||
ausfahrt = sdf.parse(ausfahrtzeit);
|
ausfahrt = sdf.parse(ausfahrtzeit);
|
||||||
|
|
||||||
if (fahrzeug.isBezahlt() == true || fahrzeug.IstVerschuldet() == true) {
|
if (fahrzeug.isBezahlt() == true || fahrzeug.IstVerschuldet() == true) {
|
||||||
fahrzeuge.remove(fahrzeug);
|
fahrzeuge.remove(fahrzeug);
|
||||||
maxPlaetze++;
|
maxPlaetze++;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public boolean setBezahlt(String kennzeichen) throws AutoNichtGefundenException {
|
public boolean setBezahlt(String kennzeichen) throws AutoNichtGefundenException {
|
||||||
fahrzeug = findeFahrzeug(kennzeichen);
|
fahrzeug = findeFahrzeug(kennzeichen);
|
||||||
fahrzeug.setBezahlt(true);
|
fahrzeug.setBezahlt(true);
|
||||||
fahrzeug.setIstVerschuldet(false);
|
fahrzeug.setIstVerschuldet(false);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public boolean setVerschuldet(String kennzeichen) throws AutoNichtGefundenException {
|
public boolean setVerschuldet(String kennzeichen) throws AutoNichtGefundenException {
|
||||||
fahrzeug = findeFahrzeug(kennzeichen);
|
fahrzeug = findeFahrzeug(kennzeichen);
|
||||||
fahrzeug.setIstVerschuldet(true);
|
fahrzeug.setIstVerschuldet(true);
|
||||||
|
@ -137,24 +134,20 @@ public class Parkhaus {
|
||||||
fahrzeugeMitSchulden.add(fahrzeug);
|
fahrzeugeMitSchulden.add(fahrzeug);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean gebuerenNehmen(double betrag) {
|
public boolean gebuerenNehmen(double betrag) {
|
||||||
|
|
||||||
return betragAktuellesAuto == betrag;
|
return betragAktuellesAuto == betrag;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public boolean checkVisakarteNummer(String visakarteNummer) throws Exception {
|
public boolean checkVisakarteNummer(String visakarteNummer) throws Exception {
|
||||||
return Zahlung.checkVisaKarte(visakarteNummer);
|
return Zahlung.checkVisaKarte(visakarteNummer);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public boolean checkParkplatze() {
|
public boolean checkParkplatze() {
|
||||||
return maxPlaetze > 0;
|
return maxPlaetze > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private Fahrzeug findeFahrzeug(String kennzeichen) throws AutoNichtGefundenException {
|
private Fahrzeug findeFahrzeug(String kennzeichen) throws AutoNichtGefundenException {
|
||||||
|
|
||||||
for (Fahrzeug auto : fahrzeuge)
|
for (Fahrzeug auto : fahrzeuge)
|
||||||
|
@ -165,11 +158,10 @@ public class Parkhaus {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private double rabattFuerEauto(double betrag) {
|
private double rabattFuerEauto(double betrag) {
|
||||||
return betrag * 0.2;
|
return betrag * 0.2;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean checkSchulden(String kennzeichen) {
|
public boolean checkSchulden(String kennzeichen) {
|
||||||
for (Fahrzeug sc : fahrzeugeMitSchulden)
|
for (Fahrzeug sc : fahrzeugeMitSchulden)
|
||||||
if (sc.getKennzeichen().equals(kennzeichen))
|
if (sc.getKennzeichen().equals(kennzeichen))
|
||||||
|
@ -181,7 +173,5 @@ public class Parkhaus {
|
||||||
public int getMaxPlaetze() {
|
public int getMaxPlaetze() {
|
||||||
return maxPlaetze;
|
return maxPlaetze;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
|
@ -5,12 +5,12 @@ import java.util.Scanner;
|
||||||
|
|
||||||
public class TextUI {
|
public class TextUI {
|
||||||
private Parkhaus system;
|
private Parkhaus system;
|
||||||
|
|
||||||
TextUI() throws ParseException, AutoNichtGefundenException, Exception{
|
TextUI() throws ParseException, AutoNichtGefundenException, Exception {
|
||||||
system = new Parkhaus();
|
system = new Parkhaus();
|
||||||
startprogramm();
|
startprogramm();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void startprogramm() throws Exception {
|
private void startprogramm() throws Exception {
|
||||||
Scanner eingabe = new Scanner(System.in);
|
Scanner eingabe = new Scanner(System.in);
|
||||||
boolean aktiv = true;
|
boolean aktiv = true;
|
||||||
|
@ -31,7 +31,7 @@ public class TextUI {
|
||||||
String ausfahrtzeit;
|
String ausfahrtzeit;
|
||||||
double betrag;
|
double betrag;
|
||||||
String visaKarteNummer;
|
String visaKarteNummer;
|
||||||
|
|
||||||
switch (auswhal) {
|
switch (auswhal) {
|
||||||
case "1": // Einfahren
|
case "1": // Einfahren
|
||||||
if (!system.checkParkplatze())
|
if (!system.checkParkplatze())
|
||||||
|
@ -40,14 +40,15 @@ public class TextUI {
|
||||||
System.out.println("geben Sie bitte das Kennzeichen Ihres Autos ein (optional): ");
|
System.out.println("geben Sie bitte das Kennzeichen Ihres Autos ein (optional): ");
|
||||||
kennzeichen = eingabe.nextLine();
|
kennzeichen = eingabe.nextLine();
|
||||||
if (system.checkSchulden(kennzeichen))
|
if (system.checkSchulden(kennzeichen))
|
||||||
System.out.println("Das Auto mit dem Kennzeichen: " + kennzeichen + " ist im Parkhaus mit Schulden eingefahren!" );
|
System.out.println("Das Auto mit dem Kennzeichen: " + kennzeichen+ " ist im Parkhaus mit Schulden eingefahren!");
|
||||||
System.out.println("geben Sie nun bitte die Einfahrtszeit ein (oder lassen Sie das für das System):");
|
System.out
|
||||||
|
.println("geben Sie nun bitte die Einfahrtszeit ein (oder lassen Sie das für das System):");
|
||||||
einfahrtzeit = eingabe.nextLine();
|
einfahrtzeit = eingabe.nextLine();
|
||||||
System.out.println(system.einfahren(kennzeichen, einfahrtzeit));
|
System.out.println(system.einfahren(kennzeichen, einfahrtzeit));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "2": // Parkgebühren berechnen lassen
|
case "2": // Parkgebühren berechnen lassen
|
||||||
System.out.println("Geben Sie erneut das Kennzeichnes Ihres Autos an");
|
System.out.println("Geben Sie erneut das Kennzeichnes Ihres Autos an");
|
||||||
kennzeichen = eingabe.nextLine();
|
kennzeichen = eingabe.nextLine();
|
||||||
System.out.println("Geben Sie bitte die Ausfahrtzeit ein (oder lassen Sie das für das System)");
|
System.out.println("Geben Sie bitte die Ausfahrtzeit ein (oder lassen Sie das für das System)");
|
||||||
|
@ -61,43 +62,46 @@ public class TextUI {
|
||||||
System.out.println("2.Betrag als Schulden hinterlassen");
|
System.out.println("2.Betrag als Schulden hinterlassen");
|
||||||
System.out.print(">");
|
System.out.print(">");
|
||||||
zahlungsOptions = eingabe.nextLine();
|
zahlungsOptions = eingabe.nextLine();
|
||||||
switch(zahlungsOptions) {
|
switch (zahlungsOptions) {
|
||||||
case "1":
|
case "1":
|
||||||
System.out.println("Geben Sie bitte Ihre 16-stellige Visa-karte Nummer ein: ");
|
System.out.println("Geben Sie bitte Ihre 16-stellige Visa-karte Nummer ein: ");
|
||||||
System.out.print(">");
|
System.out.print(">");
|
||||||
visaKarteNummer = eingabe.nextLine().trim();
|
visaKarteNummer = eingabe.nextLine().trim();
|
||||||
// Also wenn die Visakarte korrekt ist, markiert das System das Auto mit dem Kennzeichen als Bezahlt
|
// Also wenn die Visakarte korrekt ist, markiert das System das Auto mit dem
|
||||||
if (system.checkVisakarteNummer(visaKarteNummer))
|
// Kennzeichen als Bezahlt
|
||||||
if (system.gebuerenNehmen(betrag)) {
|
if (system.checkVisakarteNummer(visaKarteNummer))
|
||||||
system.setBezahlt(kennzeichen);
|
if (system.gebuerenNehmen(betrag)) {
|
||||||
System.out.println("Ihre Auszahlung war erfolgreich");
|
system.setBezahlt(kennzeichen);
|
||||||
System.out.println("Vielen Dank");
|
System.out.println("Ihre Auszahlung war erfolgreich");
|
||||||
}
|
} else
|
||||||
|
System.out.println("Die eingegebene Visa-Kartennummer ist ungültig.");
|
||||||
break;
|
|
||||||
|
break;
|
||||||
case "2":
|
|
||||||
// System markiert das Auto als verschuldet und speichert es dann im System
|
case "2":
|
||||||
system.setVerschuldet(kennzeichen);
|
// System markiert das Auto als verschuldet und speichert es dann im System
|
||||||
System.out.println("Vielen Dank");
|
system.setVerschuldet(kennzeichen);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
System.out.println("Das war leider keine gültige Eingabe");
|
System.out.println("Das war leider keine gültige Eingabe");
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case "3": // Ausfahren
|
case "3": // Ausfahren
|
||||||
System.out.println("Um ausfahren zu können, sollen Sie das Kennzeichen Ihres Auto sowie die Ausfahrtzeit eingeben" );
|
System.out.println("Um ausfahren zu können, sollen Sie das Kennzeichen Ihres Auto sowie die Ausfahrtzeit eingeben");
|
||||||
System.out.print(">");
|
System.out.print(">");
|
||||||
kennzeichen = eingabe.nextLine();
|
kennzeichen = eingabe.nextLine();
|
||||||
System.out.println("Geben Sie nun die Ausfahrtzeit an: ");
|
System.out.println("Geben Sie nun die Ausfahrtzeit an: ");
|
||||||
System.out.print(">");
|
System.out.print(">");
|
||||||
ausfahrtzeit = eingabe.nextLine();
|
ausfahrtzeit = eingabe.nextLine();
|
||||||
system.ausfahren(kennzeichen, ausfahrtzeit);
|
if (!system.ausfahren(kennzeichen, ausfahrtzeit))
|
||||||
|
System.err.println("Das Auto mit dem Kennzeichen fährt ohne Zahlung aus");
|
||||||
break;
|
break;
|
||||||
case "4":
|
case "4":
|
||||||
// TODO
|
System.out.println("Das Programm wird beendet.");
|
||||||
|
aktiv = false;
|
||||||
|
eingabe.close();
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
System.out.println("Das war leider keine gültige Eingabe");
|
System.out.println("Das war leider keine gültige Eingabe");
|
||||||
|
|
Loading…
Reference in New Issue