131 lines
3.1 KiB
PHP
131 lines
3.1 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.
|
|
*/
|
|
|
|
namespace Respect\Validation\Rules;
|
|
|
|
use Respect\Validation\TestCase;
|
|
|
|
/**
|
|
* @group rule
|
|
* @covers Respect\Validation\Rules\Cpf
|
|
* @covers Respect\Validation\Exceptions\CpfException
|
|
*/
|
|
class CpfTest extends TestCase
|
|
{
|
|
protected $cpfValidator;
|
|
|
|
protected function setUp()
|
|
{
|
|
$this->cpfValidator = new Cpf();
|
|
}
|
|
|
|
/**
|
|
* @dataProvider providerValidFormattedCpf
|
|
*/
|
|
public function testFormattedCpfsShouldValidate($input)
|
|
{
|
|
$this->assertTrue($this->cpfValidator->assert($input));
|
|
}
|
|
|
|
/**
|
|
* @dataProvider providerValidUnformattedCpf
|
|
*/
|
|
public function testUnformattedCpfsShouldValidates($input)
|
|
{
|
|
$this->assertTrue($this->cpfValidator->assert($input));
|
|
}
|
|
|
|
/**
|
|
* @dataProvider providerInvalidFormattedCpf
|
|
* @expectedException Respect\Validation\Exceptions\CpfException
|
|
*/
|
|
public function testInvalidCpfShouldFailWhenFormatted($input)
|
|
{
|
|
$this->assertFalse($this->cpfValidator->assert($input));
|
|
}
|
|
|
|
/**
|
|
* @dataProvider providerInvalidUnformattedCpf
|
|
* @expectedException Respect\Validation\Exceptions\CpfException
|
|
*/
|
|
public function testInvalidCpfShouldFailWhenNotFormatted($input)
|
|
{
|
|
$this->assertFalse($this->cpfValidator->assert($input));
|
|
}
|
|
|
|
/**
|
|
* @dataProvider providerInvalidFormattedAndUnformattedCpfLength
|
|
* @expectedException Respect\Validation\Exceptions\CpfException
|
|
*/
|
|
public function testCpfsWithIncorrectLengthShouldFail($input)
|
|
{
|
|
$this->assertFalse($this->cpfValidator->assert($input));
|
|
}
|
|
|
|
public function providerValidFormattedCpf()
|
|
{
|
|
return [
|
|
['342.444.198-88'],
|
|
['342.444.198.88'],
|
|
['350.45261819'],
|
|
['693-319-118-40'],
|
|
['3.6.8.8.9.2.5.5.4.8.8'],
|
|
];
|
|
}
|
|
|
|
public function providerValidUnformattedCpf()
|
|
{
|
|
return [
|
|
['11598647644'],
|
|
['86734718697'],
|
|
['86223423284'],
|
|
['24845408333'],
|
|
['95574461102'],
|
|
];
|
|
}
|
|
|
|
public function providerInvalidFormattedCpf()
|
|
{
|
|
return [
|
|
[''],
|
|
['000.000.000-00'],
|
|
['111.222.444-05'],
|
|
['999999999.99'],
|
|
['8.8.8.8.8.8.8.8.8.8.8'],
|
|
['693-319-110-40'],
|
|
['698.111-111.00'],
|
|
];
|
|
}
|
|
|
|
public function providerInvalidUnformattedCpf()
|
|
{
|
|
return [
|
|
['01234567890'],
|
|
['11111111111'],
|
|
['22222222222'],
|
|
['12345678900'],
|
|
['99299929384'],
|
|
['84434895894'],
|
|
['44242340000'],
|
|
];
|
|
}
|
|
|
|
public function providerInvalidFormattedAndUnformattedCpfLength()
|
|
{
|
|
return [
|
|
['1'],
|
|
['22'],
|
|
['123'],
|
|
['992999999999929384'],
|
|
];
|
|
}
|
|
}
|