Вход Регистрация
Файл: symfony-2.7/src/Symfony/Component/Intl/Tests/Data/Provider/AbstractRegionDataProviderTest.php
Строк: 72
<?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 SymfonyComponentIntlTestsDataProvider;

use 
SymfonyComponentIntlDataProviderRegionDataProvider;
use 
SymfonyComponentIntlIntl;
use 
SymfonyComponentIntlLocale;

/**
 * @author Bernhard Schussek <bschussek@gmail.com>
 */
abstract class AbstractRegionDataProviderTest extends AbstractDataProviderTest
{
    
// The below arrays document the state of the ICU data bundled with this package.

    
protected static $territories = array(
        
'AC',
        
'AD',
        
'AE',
        
'AF',
        
'AG',
        
'AI',
        
'AL',
        
'AM',
        
'AN',
        
'AO',
        
'AQ',
        
'AR',
        
'AS',
        
'AT',
        
'AU',
        
'AW',
        
'AX',
        
'AZ',
        
'BA',
        
'BB',
        
'BD',
        
'BE',
        
'BF',
        
'BG',
        
'BH',
        
'BI',
        
'BJ',
        
'BL',
        
'BM',
        
'BN',
        
'BO',
        
'BQ',
        
'BR',
        
'BS',
        
'BT',
        
'BV',
        
'BW',
        
'BY',
        
'BZ',
        
'CA',
        
'CC',
        
'CD',
        
'CF',
        
'CG',
        
'CH',
        
'CI',
        
'CK',
        
'CL',
        
'CM',
        
'CN',
        
'CO',
        
'CP',
        
'CR',
        
'CU',
        
'CV',
        
'CW',
        
'CX',
        
'CY',
        
'CZ',
        
'DE',
        
'DG',
        
'DJ',
        
'DK',
        
'DM',
        
'DO',
        
'DZ',
        
'EA',
        
'EC',
        
'EE',
        
'EG',
        
'EH',
        
'ER',
        
'ES',
        
'ET',
        
'EU',
        
'FI',
        
'FJ',
        
'FK',
        
'FM',
        
'FO',
        
'FR',
        
'GA',
        
'GB',
        
'GD',
        
'GE',
        
'GF',
        
'GG',
        
'GH',
        
'GI',
        
'GL',
        
'GM',
        
'GN',
        
'GP',
        
'GQ',
        
'GR',
        
'GS',
        
'GT',
        
'GU',
        
'GW',
        
'GY',
        
'HK',
        
'HM',
        
'HN',
        
'HR',
        
'HT',
        
'HU',
        
'IC',
        
'ID',
        
'IE',
        
'IL',
        
'IM',
        
'IN',
        
'IO',
        
'IQ',
        
'IR',
        
'IS',
        
'IT',
        
'JE',
        
'JM',
        
'JO',
        
'JP',
        
'KE',
        
'KG',
        
'KH',
        
'KI',
        
'KM',
        
'KN',
        
'KP',
        
'KR',
        
'KW',
        
'KY',
        
'KZ',
        
'LA',
        
'LB',
        
'LC',
        
'LI',
        
'LK',
        
'LR',
        
'LS',
        
'LT',
        
'LU',
        
'LV',
        
'LY',
        
'MA',
        
'MC',
        
'MD',
        
'ME',
        
'MF',
        
'MG',
        
'MH',
        
'MK',
        
'ML',
        
'MM',
        
'MN',
        
'MO',
        
'MP',
        
'MQ',
        
'MR',
        
'MS',
        
'MT',
        
'MU',
        
'MV',
        
'MW',
        
'MX',
        
'MY',
        
'MZ',
        
'NA',
        
'NC',
        
'NE',
        
'NF',
        
'NG',
        
'NI',
        
'NL',
        
'NO',
        
'NP',
        
'NR',
        
'NU',
        
'NZ',
        
'OM',
        
'PA',
        
'PE',
        
'PF',
        
'PG',
        
'PH',
        
'PK',
        
'PL',
        
'PM',
        
'PN',
        
'PR',
        
'PS',
        
'PT',
        
'PW',
        
'PY',
        
'QA',
        
'RE',
        
'RO',
        
'RS',
        
'RU',
        
'RW',
        
'SA',
        
'SB',
        
'SC',
        
'SD',
        
'SE',
        
'SG',
        
'SH',
        
'SI',
        
'SJ',
        
'SK',
        
'SL',
        
'SM',
        
'SN',
        
'SO',
        
'SR',
        
'SS',
        
'ST',
        
'SV',
        
'SX',
        
'SY',
        
'SZ',
        
'TA',
        
'TC',
        
'TD',
        
'TF',
        
'TG',
        
'TH',
        
'TJ',
        
'TK',
        
'TL',
        
'TM',
        
'TN',
        
'TO',
        
'TR',
        
'TT',
        
'TV',
        
'TW',
        
'TZ',
        
'UA',
        
'UG',
        
'UM',
        
'US',
        
'UY',
        
'UZ',
        
'VA',
        
'VC',
        
'VE',
        
'VG',
        
'VI',
        
'VN',
        
'VU',
        
'WF',
        
'WS',
        
'XK',
        
'YE',
        
'YT',
        
'ZA',
        
'ZM',
        
'ZW',
    );

    
/**
     * @var RegionDataProvider
     */
    
protected $dataProvider;

    protected function 
setUp()
    {
        
parent::setUp();

        
$this->dataProvider = new RegionDataProvider(
            
$this->getDataDirectory().'/'.Intl::REGION_DIR,
            
$this->createEntryReader()
        );
    }

    abstract protected function 
getDataDirectory();

    public function 
testGetRegions()
    {
        
$this->assertSame(static::$territories$this->dataProvider->getRegions());
    }

    
/**
     * @dataProvider provideLocales
     */
    
public function testGetNames($displayLocale)
    {
        
$countries array_keys($this->dataProvider->getNames($displayLocale));

        
sort($countries);

        
$this->assertSame(static::$territories$countries);
    }

    public function 
testGetNamesDefaultLocale()
    {
        
Locale::setDefault('de_AT');

        
$this->assertSame(
            
$this->dataProvider->getNames('de_AT'),
            
$this->dataProvider->getNames()
        );
    }

    
/**
     * @dataProvider provideLocaleAliases
     */
    
public function testGetNamesSupportsAliases($alias$ofLocale)
    {
        
// Can't use assertSame(), because some aliases contain scripts with
        // different collation (=order of output) than their aliased locale
        // e.g. sr_Latn_ME => sr_ME
        
$this->assertEquals(
            
$this->dataProvider->getNames($ofLocale),
            
$this->dataProvider->getNames($alias)
        );
    }

    
/**
     * @dataProvider provideLocales
     */
    
public function testGetName($displayLocale)
    {
        
$names $this->dataProvider->getNames($displayLocale);

        foreach (
$names as $country => $name) {
            
$this->assertSame($name$this->dataProvider->getName($country$displayLocale));
        }
    }
}
Онлайн: 1
Реклама