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

89 lines
2.3 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\Charset
* @covers Respect\Validation\Exceptions\CharsetException
*/
class CharsetTest extends TestCase
{
/**
* @dataProvider providerForValidCharset
*/
public function testValidDataWithCharsetShouldReturnTrue($charset, $input)
{
$validator = new Charset($charset);
$this->assertTrue($validator->__invoke($input));
}
/**
* @dataProvider providerForInvalidCharset
* @expectedException Respect\Validation\Exceptions\CharsetException
*/
public function testInvalidCharsetShouldFailAndThrowCharsetException($charset, $input)
{
$validator = new Charset($charset);
$this->assertFalse($validator->__invoke($input));
$this->assertFalse($validator->assert($input));
}
/**
* @dataProvider providerForInvalidParams
* @expectedException Respect\Validation\Exceptions\ComponentException
*/
public function testInvalidConstructorParamsShouldThrowComponentExceptionUponInstantiation($charset)
{
$validator = new Charset($charset);
}
public function providerForInvalidParams()
{
return [
[new \stdClass()],
[[]],
[null],
['16'],
['aeiou'],
['a'],
['Foo'],
['basic'],
[10],
];
}
public function providerForValidCharset()
{
return [
['UTF-8', ''],
['ISO-8859-1', mb_convert_encoding('açaí', 'ISO-8859-1')],
[['UTF-8', 'ASCII'], 'strawberry'],
['ASCII', mb_convert_encoding('strawberry', 'ASCII')],
['UTF-8', '日本国'],
[['ISO-8859-1', 'EUC-JP'], '日本国'],
['UTF-8', 'açaí'],
['ISO-8859-1', 'açaí'],
];
}
public function providerForInvalidCharset()
{
return [
['ASCII', '日本国'],
['ASCII', 'açaí'],
];
}
}