respect-validation/tests/unit/Rules/LessThanOrEqualTest.php
Henrique Moody 2f12b6c8d8
Rename "Max" to "LessThanOrEqual"
Although the name is much longer, it's more explicit what it does. I
confess that after a while without using Validation, even I get confused
about that. Besides, I would like to create another rule with the same
name, but that will behave differently.

Signed-off-by: Henrique Moody <henriquemoody@gmail.com>
2024-02-27 21:12:13 +01:00

50 lines
1.6 KiB
PHP

<?php
/*
* Copyright (c) Alexandre Gomes Gaigalas <alganet@gmail.com>
* SPDX-License-Identifier: MIT
*/
declare(strict_types=1);
namespace Respect\Validation\Rules;
use DateTime;
use DateTimeImmutable;
use PHPUnit\Framework\Attributes\CoversClass;
use PHPUnit\Framework\Attributes\Group;
use Respect\Validation\Test\RuleTestCase;
use Respect\Validation\Test\Stubs\CountableStub;
#[Group('rule')]
#[CoversClass(LessThanOrEqual::class)]
final class LessThanOrEqualTest extends RuleTestCase
{
/** @return iterable<array{LessThanOrEqual, mixed}> */
public static function providerForValidInput(): iterable
{
return [
[new LessThanOrEqual(10), 9],
[new LessThanOrEqual(10), 10],
[new LessThanOrEqual('2010-01-01'), '2000-01-01'],
[new LessThanOrEqual(new DateTime('today')), new DateTimeImmutable('yesterday')],
[new LessThanOrEqual('18 years ago'), '1988-09-09'],
[new LessThanOrEqual('z'), 'a'],
[new LessThanOrEqual(new CountableStub(3)), 2],
];
}
/** @return iterable<array{LessThanOrEqual, mixed}> */
public static function providerForInvalidInput(): iterable
{
return [
[new LessThanOrEqual(10), 11],
[new LessThanOrEqual(new DateTimeImmutable('today')), new DateTime('tomorrow')],
[new LessThanOrEqual('now'), '+1 minute'],
[new LessThanOrEqual('B'), 'C'],
[new LessThanOrEqual(new CountableStub(3)), 4],
[new LessThanOrEqual(1900), '2018-01-25'],
[new LessThanOrEqual(10.5), '2018-01-25'],
];
}
}