JTest für das gesamte Programm

main
3009594 2024-10-05 19:05:31 +02:00
parent edd8fb4ccb
commit b123254ea3
4 changed files with 107 additions and 68 deletions

View File

@ -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());
}
}

View File

@ -24,8 +24,6 @@ public class Fahrzeug {
this.kennzeichen = kennzeichenzufaelliggenerieren.kennzeichengenerieren();
this.einfahrt = new Date();
this.betrag = 0.0;
}
Fahrzeug(String kennzeichen, Date einfahrt) {

View File

@ -44,7 +44,8 @@ public class Parkhaus {
+ 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())
throw new AutoNichtGefundenException("Sie müssen bitte das Kennzeichen Ihres Autos eingeben.");
@ -97,7 +98,8 @@ public class Parkhaus {
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())
throw new AutoNichtGefundenException("Sie müssen bitte das Kennzeichen Ihres Autos eingeben.");
@ -115,12 +117,9 @@ public class Parkhaus {
return true;
}
return false;
}
public boolean setBezahlt(String kennzeichen) throws AutoNichtGefundenException {
fahrzeug = findeFahrzeug(kennzeichen);
fahrzeug.setBezahlt(true);
@ -128,8 +127,6 @@ public class Parkhaus {
return true;
}
public boolean setVerschuldet(String kennzeichen) throws AutoNichtGefundenException {
fahrzeug = findeFahrzeug(kennzeichen);
fahrzeug.setIstVerschuldet(true);
@ -143,18 +140,14 @@ public class Parkhaus {
return betragAktuellesAuto == betrag;
}
public boolean checkVisakarteNummer(String visakarteNummer) throws Exception {
return Zahlung.checkVisaKarte(visakarteNummer);
}
public boolean checkParkplatze() {
return maxPlaetze > 0;
}
private Fahrzeug findeFahrzeug(String kennzeichen) throws AutoNichtGefundenException {
for (Fahrzeug auto : fahrzeuge)
@ -165,7 +158,6 @@ public class Parkhaus {
}
private double rabattFuerEauto(double betrag) {
return betrag * 0.2;
}
@ -182,6 +174,4 @@ public class Parkhaus {
return maxPlaetze;
}
}

View File

@ -41,7 +41,8 @@ public class TextUI {
kennzeichen = eingabe.nextLine();
if (system.checkSchulden(kennzeichen))
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();
System.out.println(system.einfahren(kennzeichen, einfahrtzeit));
}
@ -66,20 +67,20 @@ public class TextUI {
System.out.println("Geben Sie bitte Ihre 16-stellige Visa-karte Nummer ein: ");
System.out.print(">");
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
// Kennzeichen als Bezahlt
if (system.checkVisakarteNummer(visaKarteNummer))
if (system.gebuerenNehmen(betrag)) {
system.setBezahlt(kennzeichen);
System.out.println("Ihre Auszahlung war erfolgreich");
System.out.println("Vielen Dank");
}
} else
System.out.println("Die eingegebene Visa-Kartennummer ist ungültig.");
break;
case "2":
// System markiert das Auto als verschuldet und speichert es dann im System
system.setVerschuldet(kennzeichen);
System.out.println("Vielen Dank");
break;
default:
System.out.println("Das war leider keine gültige Eingabe");
@ -94,10 +95,13 @@ public class TextUI {
System.out.println("Geben Sie nun die Ausfahrtzeit an: ");
System.out.print(">");
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;
case "4":
// TODO
System.out.println("Das Programm wird beendet.");
aktiv = false;
eingabe.close();
break;
default:
System.out.println("Das war leider keine gültige Eingabe");