accounts/common/tests/unit/validators/LanguageValidatorTest.php
2019-02-23 02:27:38 +03:00

51 lines
1.2 KiB
PHP

<?php
declare(strict_types=1);
namespace common\tests\unit\validators;
use common\tests\unit\TestCase;
use common\validators\LanguageValidator;
/**
* @covers \common\validators\LanguageValidator
*/
class LanguageValidatorTest extends TestCase {
/**
* @param string $locale
* @param bool $shouldBeValid
*
* @dataProvider getTestCases
*/
public function testValidate(string $locale, bool $shouldBeValid): void {
$validator = new LanguageValidator();
$result = $validator->validate($locale, $error);
$this->assertSame($shouldBeValid, $result, $locale);
if (!$shouldBeValid) {
$this->assertSame($validator->message, $error);
}
}
public function getTestCases(): array {
return [
// valid
['de', true],
['de_DE', true],
['deu', true],
['en', true],
['en_US', true],
['fil', true],
['fil_PH', true],
['zh', true],
['zh_Hans_CN', true],
['zh_Hant_HK', true],
// invalid
['de_FR', false],
['fr_US', false],
['foo_bar', false],
['foo_bar_baz', false],
];
}
}