isValid($iban)); } /** * @return array */ public static function validIbans(): array { return [ 'germany' => ['DE89370400440532013000'], 'grouped' => ['DE89 3704 0044 0532 0130 00'], 'lowercase' => ['de89370400440532013000'], 'austria' => ['AT611904300234573201'], 'netherlands with letters' => ['NL91ABNA0417164300'], ]; } /** * @dataProvider invalidIbans */ public function testAnInvalidIban(string $iban): void { static::assertFalse((new IbanValidator())->isValid($iban)); } /** * @return array */ public static function invalidIbans(): array { return [ 'wrong checksum' => ['DE88370400440532013000'], 'too short' => ['DE8937040044053201300'], 'unknown country' => ['XX89370400440532013000'], 'invalid character' => ['DE89370400440532013!00'], 'empty' => [''], ]; } public function testNormalizeStripsSeparatorsAndUppercases(): void { static::assertSame('DE89370400440532013000', (new IbanValidator())->normalize(' de89 3704-0044 0532 0130 00 ')); } }