jedesErgebnisHatEinenDeutschenSatz();
$this->derBanktextWirdKlartext();
$this->ohneWartendenVorgangGehtNichts();
}
private function jedesErgebnisHatEinenDeutschenSatz(): void
{
$ergebnisse = [
VopVerificationResult::CompletedFullMatch,
VopVerificationResult::CompletedCloseMatch,
VopVerificationResult::CompletedNoMatch,
VopVerificationResult::CompletedPartialMatch,
VopVerificationResult::NotApplicable,
];
$saetze = [];
foreach ($ergebnisse as $ergebnis) {
$satz = FinTsUeberweisung::vopUrteil($ergebnis);
$this->assertNotEmpty($satz, 'Ergebnis ' . $ergebnis . ' hat einen Satz');
$this->assert(
!str_contains($satz, 'Completed') && !str_contains($satz, 'Match'),
'Ergebnis ' . $ergebnis . ' steht auf Deutsch da'
);
$saetze[] = $satz;
}
$this->assertEquals(count($ergebnisse), count(array_unique($saetze)), 'Jedes Ergebnis hat seinen eigenen Satz');
// Auch ein unbekanntes oder fehlendes Ergebnis darf den Dialog nicht leer lassen.
$this->assertNotEmpty(FinTsUeberweisung::vopUrteil(null), 'Ohne Ergebnis steht trotzdem ein Satz da');
$this->assertNotEmpty(FinTsUeberweisung::vopUrteil('Unbekannt'), 'Unbekanntes Ergebnis ebenso');
}
private function derBanktextWirdKlartext(): void
{
// So liefern die Banken den Aufklärungstext: HTML mit Auszeichnung.
$html = 'Der Name stimmt nicht überein.
Bitte prüfen.'
. '
Wichtiger Hinweis: Die Überweisung wird ohne Korrektur ausgeführt.
'; $text = FinTsUeberweisung::vopHinweis($html); $this->assert(!str_contains($text, '<'), 'Die Auszeichnung ist weg'); $this->assert(str_contains($text, 'Der Name stimmt nicht überein.'), 'Der Satz bleibt vollständig'); $this->assert(str_contains($text, 'Bitte prüfen.'), 'Entities werden aufgelöst'); $this->assert(str_contains($text, "überein.\nBitte prüfen."), 'Aus