respect-validation/tests/unit/Rules/GraphTest.php
Henrique Moody c99f3818b7
Use variadics "AbstractFilterRule" rule
Since the library doesn't need to give support to version 5.4 or less of
PHP using variadics in the constructor of "AbstractFilterRule" seems
better than doing the whole validation.

This commit will also apply the contribution guidelines to
"AbstractFilterRule" and use a better naming for it.

Signed-off-by: Henrique Moody <henriquemoody@gmail.com>
2018-10-15 09:41:01 +02:00

91 lines
2.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.
*/
declare(strict_types=1);
namespace Respect\Validation\Rules;
use PHPUnit\Framework\TestCase;
/**
* @group rule
* @covers \Respect\Validation\Exceptions\GraphException
* @covers \Respect\Validation\Rules\AbstractFilterRule
* @covers \Respect\Validation\Rules\Graph
*/
class GraphTest extends TestCase
{
/**
* @dataProvider providerForValidGraph
*
* @test
*/
public function validDataWithGraphCharsShouldReturnTrue($validGraph, $additional = ''): void
{
$validator = new Graph($additional);
self::assertTrue($validator->validate($validGraph));
}
/**
* @dataProvider providerForInvalidGraph
* @expectedException \Respect\Validation\Exceptions\GraphException
*
* @test
*/
public function invalidGraphShouldFailAndThrowGraphException($invalidGraph, $additional = ''): void
{
$validator = new Graph($additional);
self::assertFalse($validator->validate($invalidGraph));
$validator->assert($invalidGraph);
}
/**
* @dataProvider providerAdditionalChars
*
* @test
*/
public function additionalCharsShouldBeRespected($additional, $query): void
{
$validator = new Graph($additional);
self::assertTrue($validator->validate($query));
}
public function providerAdditionalChars()
{
return [
[' ', '!@#$%^&*(){} abc 123'],
[" \t\n", "[]?+=/\\-_|\"',<>. \t \n abc 123"],
];
}
public function providerForValidGraph()
{
return [
['LKA#@%.54'],
['foobar'],
['16-50'],
['123'],
['#$%&*_'],
];
}
public function providerForInvalidGraph()
{
return [
[''],
[null],
["foo\nbar"],
["foo\tbar"],
['foo bar'],
[' '],
];
}
}