Ausfahren Metghode mit einem JTest
parent
2c607bedf0
commit
edd8fb4ccb
|
@ -0,0 +1,39 @@
|
||||||
|
package Parkhaus;
|
||||||
|
|
||||||
|
|
||||||
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
|
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||||
|
|
||||||
|
import java.text.ParseException;
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
|
||||||
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
|
import org.junit.jupiter.api.Disabled;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
class JTest_ausfahren {
|
||||||
|
private Parkhaus parkhaus;
|
||||||
|
private SimpleDateFormat sdf;
|
||||||
|
@BeforeEach
|
||||||
|
void start() throws ParseException {
|
||||||
|
parkhaus = new Parkhaus();
|
||||||
|
sdf = new SimpleDateFormat("dd.MM.yyyy, HH:mm");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void test_ausfahren() throws Exception {
|
||||||
|
String kennzeichen = "MA-SH 4077";
|
||||||
|
String einfahrt = "01.10.2024, 14:30";
|
||||||
|
String ausfahrt = "01.10.2024, 15:30";
|
||||||
|
parkhaus.einfahren(kennzeichen, einfahrt);
|
||||||
|
|
||||||
|
parkhaus.berechneParkgebuehren(kennzeichen, ausfahrt);
|
||||||
|
|
||||||
|
|
||||||
|
assertTrue(parkhaus.checkVisakarteNummer("9823192757222993"));
|
||||||
|
assertTrue(parkhaus.setBezahlt(kennzeichen));
|
||||||
|
assertTrue(parkhaus.gebuerenNehmen(1));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -17,6 +17,7 @@ public class Parkhaus {
|
||||||
private int maxPlaetze;
|
private int maxPlaetze;
|
||||||
private SimpleDateFormat sdf;
|
private SimpleDateFormat sdf;
|
||||||
private Fahrzeug fahrzeug;
|
private Fahrzeug fahrzeug;
|
||||||
|
private double betragAktuellesAuto;
|
||||||
|
|
||||||
Parkhaus() {
|
Parkhaus() {
|
||||||
fahrzeuge = new ArrayList<>();
|
fahrzeuge = new ArrayList<>();
|
||||||
|
@ -65,7 +66,7 @@ public class Parkhaus {
|
||||||
int inStunden = (int) Math.ceil(inMinuten / 60.0);
|
int inStunden = (int) Math.ceil(inMinuten / 60.0);
|
||||||
int maxNachtBetrag = 5;
|
int maxNachtBetrag = 5;
|
||||||
int maxTagBetrag = 15;
|
int maxTagBetrag = 15;
|
||||||
double betrag = 0;
|
betragAktuellesAuto = 0;
|
||||||
|
|
||||||
// Erstellung von Calendar-Objekten für Einfahrt und Ausfahrt
|
// Erstellung von Calendar-Objekten für Einfahrt und Ausfahrt
|
||||||
Calendar calEinfahrt = Calendar.getInstance();
|
Calendar calEinfahrt = Calendar.getInstance();
|
||||||
|
@ -78,39 +79,68 @@ public class Parkhaus {
|
||||||
int ausfahrtStunde = calAusfahrt.get(Calendar.HOUR_OF_DAY);
|
int ausfahrtStunde = calAusfahrt.get(Calendar.HOUR_OF_DAY);
|
||||||
|
|
||||||
if (inMinuten <= 15)
|
if (inMinuten <= 15)
|
||||||
betrag = 0;
|
betragAktuellesAuto = 0;
|
||||||
|
|
||||||
else if ((einfahrtStunde < 6 || einfahrtStunde >= 20) || (ausfahrtStunde < 6 || ausfahrtStunde >= 20))
|
else if ((einfahrtStunde < 6 || einfahrtStunde >= 20) || (ausfahrtStunde < 6 || ausfahrtStunde >= 20))
|
||||||
betrag = (inStunden <= maxNachtBetrag) ? inStunden : maxNachtBetrag;
|
betragAktuellesAuto = (inStunden <= maxNachtBetrag) ? inStunden : maxNachtBetrag;
|
||||||
|
|
||||||
else {
|
else {
|
||||||
betrag = inStunden;
|
betragAktuellesAuto = inStunden;
|
||||||
if (betrag > maxTagBetrag) {
|
if (betragAktuellesAuto > maxTagBetrag) {
|
||||||
betrag = maxTagBetrag;
|
betragAktuellesAuto = maxTagBetrag;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (isEauto)
|
if (isEauto)
|
||||||
betrag -= rabattFuerEauto(betrag);
|
betragAktuellesAuto -= rabattFuerEauto(betragAktuellesAuto);
|
||||||
|
|
||||||
fahrzeug.setBetrag(betrag);
|
fahrzeug.setBetrag(betragAktuellesAuto);
|
||||||
return fahrzeug.getBetrag();
|
return fahrzeug.getBetrag();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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.");
|
||||||
|
|
||||||
|
|
||||||
public void setBezahlt(String kennzeichen) throws AutoNichtGefundenException {
|
|
||||||
fahrzeug = findeFahrzeug(kennzeichen);
|
fahrzeug = findeFahrzeug(kennzeichen);
|
||||||
fahrzeug.setBezahlt(true);
|
Date ausfahrt;
|
||||||
fahrzeug.setIstVerschuldet(false);
|
if (ausfahrtzeit.isEmpty()) {
|
||||||
|
String aktuelleZeitString = sdf.format(new Date());
|
||||||
|
ausfahrt = sdf.parse(aktuelleZeitString);
|
||||||
|
} else
|
||||||
|
ausfahrt = sdf.parse(ausfahrtzeit);
|
||||||
|
|
||||||
|
if (fahrzeug.isBezahlt() == true || fahrzeug.IstVerschuldet() == true) {
|
||||||
|
fahrzeuge.remove(fahrzeug);
|
||||||
|
maxPlaetze++;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public void setVerschuldet(String kennzeichen) throws AutoNichtGefundenException {
|
public boolean setBezahlt(String kennzeichen) throws AutoNichtGefundenException {
|
||||||
|
fahrzeug = findeFahrzeug(kennzeichen);
|
||||||
|
fahrzeug.setBezahlt(true);
|
||||||
|
fahrzeug.setIstVerschuldet(false);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public boolean setVerschuldet(String kennzeichen) throws AutoNichtGefundenException {
|
||||||
fahrzeug = findeFahrzeug(kennzeichen);
|
fahrzeug = findeFahrzeug(kennzeichen);
|
||||||
fahrzeug.setIstVerschuldet(true);
|
fahrzeug.setIstVerschuldet(true);
|
||||||
fahrzeug.setBezahlt(false);
|
fahrzeug.setBezahlt(false);
|
||||||
fahrzeugeMitSchulden.add(fahrzeug);
|
fahrzeugeMitSchulden.add(fahrzeug);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean gebuerenNehmen(double betrag) {
|
||||||
|
|
||||||
|
return betragAktuellesAuto == betrag;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -148,23 +178,10 @@ public class Parkhaus {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Getter methoden:
|
|
||||||
public ArrayList<Fahrzeug> getFahrzeuge() {
|
|
||||||
return fahrzeuge;
|
|
||||||
}
|
|
||||||
|
|
||||||
public ArrayList<Fahrzeug> getFahrzeugeMitSchulden() {
|
|
||||||
return fahrzeugeMitSchulden;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getMaxPlaetze() {
|
public int getMaxPlaetze() {
|
||||||
return maxPlaetze;
|
return maxPlaetze;
|
||||||
}
|
}
|
||||||
|
|
||||||
public SimpleDateFormat getSdf() {
|
|
||||||
return sdf;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
|
@ -53,6 +53,7 @@ public class TextUI {
|
||||||
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)");
|
||||||
ausfahrtzeit = eingabe.nextLine();
|
ausfahrtzeit = eingabe.nextLine();
|
||||||
betrag = system.berechneParkgebuehren(kennzeichen, ausfahrtzeit);
|
betrag = system.berechneParkgebuehren(kennzeichen, ausfahrtzeit);
|
||||||
|
System.out.println("Ihr Betrag ist: " + betrag + "€");
|
||||||
if (betrag > 0.0) {
|
if (betrag > 0.0) {
|
||||||
String zahlungsOptions;
|
String zahlungsOptions;
|
||||||
System.out.println("Bitte wählen Sie ein Option aus, was Sie mit dem Ihrem Betrag machen möchten: ");
|
System.out.println("Bitte wählen Sie ein Option aus, was Sie mit dem Ihrem Betrag machen möchten: ");
|
||||||
|
@ -67,12 +68,18 @@ public class TextUI {
|
||||||
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 Kennzeichen als Bezahlt
|
||||||
if (system.checkVisakarteNummer(visaKarteNummer))
|
if (system.checkVisakarteNummer(visaKarteNummer))
|
||||||
|
if (system.gebuerenNehmen(betrag)) {
|
||||||
system.setBezahlt(kennzeichen);
|
system.setBezahlt(kennzeichen);
|
||||||
|
System.out.println("Ihre Auszahlung war erfolgreich");
|
||||||
|
System.out.println("Vielen Dank");
|
||||||
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "2":
|
case "2":
|
||||||
// System markiert das Auto als verschuldet und speichert es dann im System
|
// System markiert das Auto als verschuldet und speichert es dann im System
|
||||||
system.setVerschuldet(kennzeichen);
|
system.setVerschuldet(kennzeichen);
|
||||||
|
System.out.println("Vielen Dank");
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
System.out.println("Das war leider keine gültige Eingabe");
|
System.out.println("Das war leider keine gültige Eingabe");
|
||||||
|
@ -80,8 +87,14 @@ public class TextUI {
|
||||||
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case "3":
|
case "3": // Ausfahren
|
||||||
// TODO
|
System.out.println("Um ausfahren zu können, sollen Sie das Kennzeichen Ihres Auto sowie die Ausfahrtzeit eingeben" );
|
||||||
|
System.out.print(">");
|
||||||
|
kennzeichen = eingabe.nextLine();
|
||||||
|
System.out.println("Geben Sie nun die Ausfahrtzeit an: ");
|
||||||
|
System.out.print(">");
|
||||||
|
ausfahrtzeit = eingabe.nextLine();
|
||||||
|
system.ausfahren(kennzeichen, ausfahrtzeit);
|
||||||
break;
|
break;
|
||||||
case "4":
|
case "4":
|
||||||
// TODO
|
// TODO
|
||||||
|
|
Loading…
Reference in New Issue