LogikFehler in der Klasse Zahlung
parent
b123254ea3
commit
03d5b1294b
|
@ -23,7 +23,7 @@ class Allgemeine_Test {
|
||||||
String kennzeichen = "MA-SH 4077";
|
String kennzeichen = "MA-SH 4077";
|
||||||
String einfahrt = "01.10.2024, 14:30";
|
String einfahrt = "01.10.2024, 14:30";
|
||||||
String ausfahrt = "01.10.2024, 14:50";
|
String ausfahrt = "01.10.2024, 14:50";
|
||||||
String GueltigeVISAKartennummer = "9823192757222993";
|
String GueltigeVISAKartennummer = "4509472140549006";
|
||||||
|
|
||||||
// Einfahren: True => Beide assertTrue Tests.
|
// Einfahren: True => Beide assertTrue Tests.
|
||||||
String einfahren = system.einfahren(kennzeichen, einfahrt);
|
String einfahren = system.einfahren(kennzeichen, einfahrt);
|
||||||
|
|
|
@ -29,13 +29,14 @@ class JTest_checkVisakarte {
|
||||||
parkhaus.einfahren(kennzeichen, einfahrt);
|
parkhaus.einfahren(kennzeichen, einfahrt);
|
||||||
parkhaus.berechneParkgebuehren(kennzeichen, ausfahrt);
|
parkhaus.berechneParkgebuehren(kennzeichen, ausfahrt);
|
||||||
|
|
||||||
String GueltigeVISAKartennummer = "9823192757222993";
|
String GueltigeVISAKartennummer = "4509472140549006";
|
||||||
// Gültige Nummer => True
|
// Gültige Nummer => True
|
||||||
assertTrue(parkhaus.checkVisakarteNummer(GueltigeVISAKartennummer));
|
assertTrue(parkhaus.checkVisakarteNummer(GueltigeVISAKartennummer));
|
||||||
|
|
||||||
// Ungültige Nummer => True (da der Test False testet)
|
// Ungültige Nummer => True (da der Test False testet)
|
||||||
String ungueltigeVISAKartennummer = "1462 8275 1074 2151";
|
String ungueltigeVISAKartennummer = "4509472140549002";
|
||||||
assertFalse(parkhaus.checkVisakarteNummer(ungueltigeVISAKartennummer));
|
assertFalse(parkhaus.checkVisakarteNummer(ungueltigeVISAKartennummer), "Das war falsch");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -3,32 +3,41 @@ package Parkhaus;
|
||||||
public class Zahlung {
|
public class Zahlung {
|
||||||
|
|
||||||
public static boolean checkVisaKarte(String visakarteNummer) throws Exception {
|
public static boolean checkVisaKarte(String visakarteNummer) throws Exception {
|
||||||
if (visakarteNummer.length() < 16)
|
if (visakarteNummer.length() != 16)
|
||||||
throw new Exception("Die Nummer Ihre Visakart ist falsch");
|
throw new Exception("Die Nummer Ihre Visakart ist falsch");
|
||||||
|
|
||||||
char[] arr = visakarteNummer.toCharArray();
|
char[] arr = visakarteNummer.toCharArray();
|
||||||
|
|
||||||
int index = 0;
|
int index = 0;
|
||||||
int summe = 0;
|
int summe = 0;
|
||||||
|
int faktor = 2;
|
||||||
|
int Differenz = 10;
|
||||||
|
String letzteZiffer = visakarteNummer.substring(visakarteNummer.length() - 1, visakarteNummer.length());
|
||||||
|
int p = Integer.parseInt(letzteZiffer);
|
||||||
// Umwandle jede charZiffer alse integer Ziffer
|
// Umwandle jede charZiffer alse integer Ziffer
|
||||||
// Verdopple jede zweite Ziffer
|
// Verdopple jede zweite Ziffer
|
||||||
for (int i = arr.length - 1; i >= 0; i--) {
|
for (int i = arr.length - 2; i >= 0; i--) {
|
||||||
arr[i] -= '0';
|
arr[i] -= '0';
|
||||||
|
|
||||||
if (index == 0)
|
if (index == 0) {
|
||||||
index++;
|
index++;
|
||||||
|
arr[i] *= faktor;
|
||||||
else {
|
// Wenn ziffer > 9, ziehe 9 einfach ab (Quersumme)
|
||||||
index--;
|
|
||||||
arr[i] *= 2;
|
|
||||||
// Wenn ziffer > 9, ziehe 9 einfach ab
|
|
||||||
if (arr[i] > 9)
|
if (arr[i] > 9)
|
||||||
arr[i] -= 9;
|
arr[i] -= 9;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
else
|
||||||
|
index--;
|
||||||
|
|
||||||
summe += arr[i];
|
summe += arr[i];
|
||||||
}
|
}
|
||||||
|
|
||||||
return (summe / 10) % 2 == 0;
|
summe %= 10;
|
||||||
|
summe = Differenz - summe;
|
||||||
|
|
||||||
|
return summe == p;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue