tao-test/app/vendor/respect/validation/tests/unit/Rules/LengthTest.php

121 lines
3.4 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\Length
* @covers Respect\Validation\Exceptions\LengthException
*/
class LengthTest extends TestCase
{
/**
* @dataProvider providerForValidLengthInclusive
*/
public function testLengthInsideBoundsForInclusiveCasesReturnTrue($string, $min, $max)
{
$validator = new Length($min, $max, true);
$this->assertTrue($validator->validate($string));
}
/**
* @dataProvider providerForValidLengthNonInclusive
*/
public function testLengthInsideBoundsForNonInclusiveCasesShouldReturnTrue($string, $min, $max)
{
$validator = new Length($min, $max, false);
$this->assertTrue($validator->validate($string));
}
/**
* @dataProvider providerForInvalidLengthInclusive
*/
public function testLengthOutsideBoundsForInclusiveCasesReturnFalse($string, $min, $max)
{
$validator = new Length($min, $max, true);
$this->assertfalse($validator->validate($string));
}
/**
* @dataProvider providerForInvalidLengthNonInclusive
*/
public function testLengthOutsideBoundsForNonInclusiveCasesReturnFalse($string, $min, $max)
{
$validator = new Length($min, $max, false);
$this->assertfalse($validator->validate($string));
}
/**
* @dataProvider providerForComponentException
* @expectedException Respect\Validation\Exceptions\ComponentException
*/
public function testComponentExceptionsForInvalidParameters($min, $max)
{
$buggyValidator = new Length($min, $max);
}
public function providerForValidLengthInclusive()
{
return [
['alganet', 1, 15],
['ççççç', 4, 6],
[range(1, 20), 1, 30],
[(object) ['foo' => 'bar', 'bar' => 'baz'], 0, 2],
['alganet', 1, null], //null is a valid max length, means "no maximum",
['alganet', null, 15], //null is a valid min length, means "no minimum"
];
}
public function providerForValidLengthNonInclusive()
{
return [
['alganet', 1, 15],
['ççççç', 4, 6],
[range(1, 20), 1, 30],
[(object) ['foo' => 'bar', 'bar' => 'baz'], 1, 3],
['alganet', 1, null], //null is a valid max length, means "no maximum",
['alganet', null, 15], //null is a valid min length, means "no minimum"
];
}
public function providerForInvalidLengthInclusive()
{
return [
['', 1, 15],
['alganet', 1, 6],
[range(1, 20), 1, 19],
['alganet', 8, null], //null is a valid max length, means "no maximum",
['alganet', null, 6], //null is a valid min length, means "no minimum"
];
}
public function providerForInvalidLengthNonInclusive()
{
return [
['alganet', 1, 7],
[(object) ['foo' => 'bar', 'bar' => 'baz'], 3, 5],
[range(1, 50), 1, 30],
];
}
public function providerForComponentException()
{
return [
['a', 15],
[1, 'abc d'],
[10, 1],
];
}
}