respect-validation/tests/unit/Rules/DigitTest.php
Henrique Moody 66f5475463
Update PHP support
Due to the current status of the development of the library, it seems
like we will be supporting version 1.1 for a long time. Even when we
release version 2.0 we will still give support for version 1.1 for a
while.

This commit will make sure that version 1.1 is fully supported for PHP
7.2 and 7.3. Also, it will remove the support for HHVM since it will not
keep the compatibility with PHP anymore [1].

In order to make that happen, this commit will create a TestCase from
Validation so we can use the same API to create mocks in both PHPUnit
versions 4.0 and 5.0.

During the development of this commit, I noticed that PHPUnit 4.0 had
issues to mock "SplFileInfo" and for that reason, this commit will also
replace those mocks by "SplFileInfo" instances.

[1]: https://hhvm.com/blog/2018/09/12/end-of-php-support-future-of-hack.html

Signed-off-by: Henrique Moody <henriquemoody@gmail.com>
2018-12-02 11:09:24 +01:00

77 lines
2.5 KiB
PHP

<?php
/*
* This file is part of Respect/Validation.
*
* (c) Alexandre Gomes Gaigalas <alexandre@gaigalas.net>
*
* For the full copyright and license information, please view the "LICENSE.md"
* file that was distributed with this source code.
*/
declare(strict_types=1);
namespace Respect\Validation\Rules;
use Respect\Validation\Test\RuleTestCase;
/**
* @group rule
*
* @covers \Respect\Validation\Rules\AbstractFilterRule
* @covers \Respect\Validation\Rules\Digit
*
* @author Alexandre Gomes Gaigalas <alexandre@gaigalas.net>
* @author Gabriel Caruso <carusogabriel34@gmail.com>
* @author Henrique Moody <henriquemoody@gmail.com>
* @author Nick Lombard <github@jigsoft.co.za>
* @author Pascal Borreli <pascal@borreli.com>
*/
final class DigitTest extends RuleTestCase
{
/**
* @throws \Respect\Validation\Exceptions\ComponentException
*
* @return array
*/
public function providerForValidInput(): array
{
return [
'positive integer' => [new Digit(), 165],
'positive string-integer' => [new Digit(), '01650'],
'positive string-integer with one exception' => [new Digit('-'), '16-50'],
'positive string-integer with multiple exceptions' => [new Digit('.-'), '16-5.0'],
'only exceptions' => [new Digit('!@#$%^&*(){}'), '!@#$%^&*(){}'],
'multiple exceptions' => [new Digit('.', '-'), '012.071.070-69'],
'float' => [new Digit(), 1.0],
'boolean true' => [new Digit(), true],
'octal' => [new Digit(), 01],
'string-octal' => [new Digit(), '01'],
];
}
/**
* {@inheritdoc}
*
* @throws \Respect\Validation\Exceptions\ComponentException
*/
public function providerForInvalidInput(): array
{
return [
'empty' => [new Digit(), ''],
'with spaces' => [new Digit(), '16 50'],
'with tabs' => [new Digit(), "1\t1"],
'with newlines' => [new Digit(), "1\n1"],
'null' => [new Digit(), null],
'with non-numeric' => [new Digit(), '16-50'],
'alphabetic' => [new Digit(), 'a'],
'alphanumeric' => [new Digit(), 'a1'],
'negative integer' => [new Digit(), -12],
'negative string-integer' => [new Digit(), '-12'],
'float-string' => [new Digit(), '1.0'],
'negative float' => [new Digit(), -1.1],
'negative string-float' => [new Digit(), '-1.1'],
'boolean false' => [new Digit(), false],
];
}
}