package Parkhaus;

import static org.junit.jupiter.api.Assertions.*;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;

class JTest_berechneParkgebuehren {

	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_EautoBetrag() throws ParseException, AutoNichtGefundenException {
		String kennzeichen = "MA-SH 4077E";
		String einfahrt = "01.10.2024, 14:30";
		String ausfahrt = "01.10.2024, 14:45";
		parkhaus.einfahren(kennzeichen, einfahrt);
		
		// 15 Minuten => True
		assertEquals(0,parkhaus.berechneParkgebuehren(kennzeichen, ausfahrt)); 
		
		// 16 Minuten => True
		einfahrt = "01.10.2024, 14:30";
		ausfahrt = "01.10.2024, 14:50";
		parkhaus.einfahren(kennzeichen, einfahrt);
		assertEquals(0.8,parkhaus.berechneParkgebuehren(kennzeichen, ausfahrt)); 
		
		
	}
	
	@Disabled
	public void test_berechneParkgebuehren() throws ParseException, AutoNichtGefundenException {
		String kennzeichen = "MA-SH 4077";
		String einfahrt = "01.10.2024, 14:30";
		String ausfahrt = "01.10.2024, 14:45";
		parkhaus.einfahren(kennzeichen, einfahrt);
		
		// 15 Minuten => True
		assertEquals(0,parkhaus.berechneParkgebuehren(kennzeichen, ausfahrt)); 
		
		// 16 Minuten => True
		einfahrt = "01.10.2024, 14:30";
		ausfahrt = "01.10.2024, 14:46";
		parkhaus.einfahren(kennzeichen, einfahrt);
		assertEquals(1,parkhaus.berechneParkgebuehren(kennzeichen, ausfahrt)); 
		
		// 1 Stunde => True
		einfahrt = "01.10.2024, 14:30";
		ausfahrt = "01.10.2024, 15:30";
		parkhaus.einfahren(kennzeichen, einfahrt);
		assertEquals(1, parkhaus.berechneParkgebuehren(kennzeichen, ausfahrt));
		

		// 2 Stunden => True
		einfahrt = "01.10.2024, 14:00";
		ausfahrt = "01.10.2024, 16:00";
		parkhaus.einfahren(kennzeichen, einfahrt);
		assertEquals(2, parkhaus.berechneParkgebuehren(kennzeichen, ausfahrt));

		// Zwischen 20 bis 6 Uhr => True
		einfahrt = "01.10.2024, 22:00";
		ausfahrt = "02.10.2024, 04:00";
		parkhaus.einfahren(kennzeichen, einfahrt);
		assertEquals(5, parkhaus.berechneParkgebuehren(kennzeichen, ausfahrt));

		// 24 Stunden
		einfahrt = "01.10.2024, 14:00";
		ausfahrt = "02.10.2024, 14:00";
		parkhaus.einfahren(kennzeichen, einfahrt);
		assertEquals(15, parkhaus.berechneParkgebuehren(kennzeichen, ausfahrt));
	}
	
	

}
