1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109
|
<?php
/*
* This file is part of the Symfony package.
*
* (c) Fabien Potencier <fabien@symfony.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Symfony\Polyfill\Tests\Intl\Icu;
use Symfony\Polyfill\Intl\Icu\Collator;
use Symfony\Polyfill\Intl\Icu\Exception\MethodArgumentValueNotImplementedException;
use Symfony\Polyfill\Intl\Icu\Exception\MethodNotImplementedException;
use Symfony\Polyfill\Intl\Icu\Icu;
use Symfony\Polyfill\Tests\Intl\Icu\AbstractCollatorTestCase;
/**
* @group class-polyfill
*/
class CollatorTest extends AbstractCollatorTestCase
{
public function testConstructorWithUnsupportedLocale()
{
$this->expectException(MethodArgumentValueNotImplementedException::class);
$this->getCollator('pt_BR');
}
public function testCompare()
{
$this->expectException(MethodNotImplementedException::class);
$collator = $this->getCollator('en');
$collator->compare('a', 'b');
}
public function testGetAttribute()
{
$this->expectException(MethodNotImplementedException::class);
$collator = $this->getCollator('en');
$collator->getAttribute(Collator::NUMERIC_COLLATION);
}
public function testGetErrorCode()
{
$collator = $this->getCollator('en');
$this->assertEquals(Icu::U_ZERO_ERROR, $collator->getErrorCode());
}
public function testGetErrorMessage()
{
$collator = $this->getCollator('en');
$this->assertEquals('U_ZERO_ERROR', $collator->getErrorMessage());
}
public function testGetLocale()
{
$collator = $this->getCollator('en');
$this->assertEquals('en', $collator->getLocale());
}
public function testConstructWithoutLocale()
{
$collator = $this->getCollator(null);
$this->assertInstanceOf(Collator::class, $collator);
}
public function testGetSortKey()
{
$this->expectException(MethodNotImplementedException::class);
$collator = $this->getCollator('en');
$collator->getSortKey('Hello');
}
public function testGetStrength()
{
$this->expectException(MethodNotImplementedException::class);
$collator = $this->getCollator('en');
$collator->getStrength();
}
public function testSetAttribute()
{
$this->expectException(MethodNotImplementedException::class);
$collator = $this->getCollator('en');
$collator->setAttribute(Collator::NUMERIC_COLLATION, Collator::ON);
}
public function testSetStrength()
{
$this->expectException(MethodNotImplementedException::class);
$collator = $this->getCollator('en');
$collator->setStrength(Collator::PRIMARY);
}
public function testStaticCreate()
{
$collator = $this->getCollator('en');
$collator = $collator::create('en');
$this->assertInstanceOf(Collator::class, $collator);
}
protected function getCollator(?string $locale): Collator
{
return new class($locale) extends Collator {
};
}
}
|