engelsystem/tests/Unit/Http/Validation/Rules/StringInputLengthTest.php

50 lines
1.3 KiB
PHP

<?php
declare(strict_types=1);
namespace Engelsystem\Test\Unit\Http\Validation\Rules;
use Engelsystem\Test\Unit\Http\Validation\Rules\Stub\UsesStringInputLength;
use Engelsystem\Test\Unit\TestCase;
class StringInputLengthTest extends TestCase
{
/**
* @covers \Engelsystem\Http\Validation\Rules\StringInputLength::validate
* @covers \Engelsystem\Http\Validation\Rules\StringInputLength::isDateTime
* @dataProvider validateProvider
*/
public function testValidate(mixed $input, mixed $expectedInput): void
{
$rule = new UsesStringInputLength();
$rule->validate($input);
$this->assertEquals($expectedInput, $rule->lastInput);
}
/**
* @return array[]
*/
public function validateProvider(): array
{
return [
['TEST', 4],
['?', 1],
['', 0],
['2042-01-01 00:00', '2042-01-01 00:00'],
['2042-01-01', '2042-01-01'],
['12:42', '12:42'],
['3', '3'],
['...', 3],
['Test Tester', 11],
['com', 3],
['Test', 4],
['H', 1],
['Europe/Berlin', 13],
['3', 3],
[42, 42],
[99.3, 99.3],
];
}
}