assertSame('DE02120300000000202051', Iban::normalize('de02 1203 0000 0000 2020 51')); $this->assertSame('DE02120300000000202051', Iban::normalize(" DE02\t1203000000002020 51 ")); } public function test_formats_in_groups_of_four(): void { $this->assertSame('DE02 1203 0000 0000 2020 51', Iban::format('DE02120300000000202051')); } public function test_accepts_valid_ibans(): void { // Offizielle Testnummern der Deutschen Bundesbank bzw. der jeweiligen Zentralbanken. foreach ([ 'DE02120300000000202051', 'DE02500105170137075030', 'AT026000000001349870', 'CH0209000000100013997', 'FR1420041010050500013M02606', 'NL02ABNA0123456789', ] as $iban) { $this->assertTrue(Iban::isValid($iban), $iban . ' sollte gültig sein'); } } public function test_rejects_a_wrong_check_digit(): void { // Zahlendreher in den letzten beiden Stellen -- Struktur und Länge stimmen weiterhin. $this->assertFalse(Iban::isValid('DE02120300000000202015')); } public function test_rejects_wrong_length_for_the_country(): void { $this->assertFalse(Iban::isValid('DE0212030000000020205')); $this->assertFalse(Iban::isValid('DE021203000000002020511')); } public function test_rejects_malformed_input(): void { foreach (['', ' ', 'kein IBAN', '1202120300000000202051', 'DEAB120300000000202051'] as $iban) { $this->assertFalse(Iban::isValid($iban), $iban . ' sollte ungültig sein'); } } public function test_validates_the_normalized_form(): void { $this->assertTrue(Iban::isValid('de02 1203 0000 0000 2020 51')); } }