* SPDX-FileContributor: Carlos André Ferrari * SPDX-FileContributor: Danilo Correa * SPDX-FileContributor: Gabriel Caruso * SPDX-FileContributor: Henrique Moody * SPDX-FileContributor: William Espindola */ declare(strict_types=1); namespace Respect\Validation\Validators; use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\Group; use PHPUnit\Framework\Attributes\Test; use Respect\Validation\Exceptions\InvalidValidatorException; use Respect\Validation\Test\RuleTestCase; #[Group('validator')] #[CoversClass(Base::class)] final class BaseTest extends RuleTestCase { #[Test] public function itShouldThrowsExceptionWhenBaseIsNotValid(): void { $this->expectException(InvalidValidatorException::class); $this->expectExceptionMessage('a base between 1 and 62 is required'); new Base(63); } /** @return iterable */ public static function providerForValidInput(): iterable { return [ [new Base(2), '011010001'], [new Base(3), '0120122001'], [new Base(8), '01234567520'], [new Base(16), '012a34f5675c20d'], [new Base(20), '012ah34f5675hic20dj'], [new Base(50), '012ah34f56A75FGhic20dj'], [new Base(62), 'Z01xSsg5675hic20dj'], [new Base(2, 'xy'), 'xyyxyxxy'], [new Base(3, 'pfg'), 'gfpffp'], ]; } /** @return iterable */ public static function providerForInvalidInput(): iterable { return [ [new Base(2), ''], [new Base(3), ''], [new Base(8), ''], [new Base(16), ''], [new Base(20), ''], [new Base(50), ''], [new Base(62), ''], [new Base(2), '01210103001'], [new Base(3), '0120125f2001'], [new Base(8), '01234dfZ567520'], [new Base(16), '012aXS34f5675c20d'], [new Base(20), '012ahZX34f5675hic20dj'], [new Base(50), '012ahGZ34f56A75FGhic20dj'], [new Base(61), 'Z01xSsg5675hic20dj'], ]; } }