mirror of
https://github.com/elyby/accounts.git
synced 2024-12-05 04:58:56 +05:30
51 lines
1.2 KiB
PHP
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],
|
|
];
|
|
}
|
|
|
|
}
|