aboutsummaryrefslogtreecommitdiffstats
path: root/library/intl/tests
diff options
context:
space:
mode:
Diffstat (limited to 'library/intl/tests')
-rw-r--r--library/intl/tests/Country/CountryRepositoryTest.php114
-rw-r--r--library/intl/tests/Country/CountryTest.php83
-rw-r--r--library/intl/tests/Currency/CurrencyRepositoryTest.php113
-rw-r--r--library/intl/tests/Currency/CurrencyTest.php83
-rw-r--r--library/intl/tests/DummyRepository.php23
-rw-r--r--library/intl/tests/Formatter/NumberFormatterTest.php378
-rw-r--r--library/intl/tests/Language/LanguageRepositoryTest.php92
-rw-r--r--library/intl/tests/Language/LanguageTest.php53
-rw-r--r--library/intl/tests/LocaleResolverTest.php51
-rw-r--r--library/intl/tests/NumberFormat/NumberFormatRepositoryTest.php69
-rw-r--r--library/intl/tests/NumberFormat/NumberFormatTest.php131
11 files changed, 0 insertions, 1190 deletions
diff --git a/library/intl/tests/Country/CountryRepositoryTest.php b/library/intl/tests/Country/CountryRepositoryTest.php
deleted file mode 100644
index 23e1509d8..000000000
--- a/library/intl/tests/Country/CountryRepositoryTest.php
+++ /dev/null
@@ -1,114 +0,0 @@
-<?php
-
-namespace CommerceGuys\Intl\Tests\Country;
-
-use CommerceGuys\Intl\Country\CountryRepository;
-use org\bovigo\vfs\vfsStream;
-
-/**
- * @coversDefaultClass \CommerceGuys\Intl\Country\CountryRepository
- */
-class CountryRepositoryTest extends \PHPUnit_Framework_TestCase
-{
- /**
- * Base country definitions.
- *
- * @var array
- */
- protected $baseDefinitions = array(
- 'FR' => array(
- 'code' => 'FR',
- 'three_letter_code' => 'FRA',
- 'numeric_code' => '250',
- 'telephone_code' => '33',
- ),
- 'US' => array(
- 'code' => 'US',
- 'three_letter_code' => 'USA',
- 'numeric_code' => '840',
- 'telephone_code' => '1',
- ),
- );
-
- /**
- * English country definitions.
- *
- * @var array
- */
- protected $englishDefinitions = array(
- 'FR' => array(
- 'name' => 'France',
- ),
- 'US' => array(
- 'name' => 'United States',
- ),
- );
-
- /**
- * @covers ::__construct
- */
- public function testConstructor()
- {
- // Mock the existence of JSON definitions on the filesystem.
- $root = vfsStream::setup('resources');
- vfsStream::newFile('country/base.json')->at($root)->setContent(json_encode($this->baseDefinitions));
- vfsStream::newFile('country/en.json')->at($root)->setContent(json_encode($this->englishDefinitions));
-
- // Instantiate the country repository and confirm that the definition path
- // was properly set.
- $countryRepository = new CountryRepository('vfs://resources/country/');
- $definitionPath = $this->getObjectAttribute($countryRepository, 'definitionPath');
- $this->assertEquals('vfs://resources/country/', $definitionPath);
-
- return $countryRepository;
- }
-
- /**
- * @covers ::get
- * @covers ::loadDefinitions
- * @covers ::createCountryFromDefinition
- * @uses \CommerceGuys\Intl\Country\Country
- * @uses \CommerceGuys\Intl\LocaleResolverTrait
- * @depends testConstructor
- */
- public function testGet($countryRepository)
- {
- $country = $countryRepository->get('FR');
- $this->assertInstanceOf('CommerceGuys\\Intl\\Country\\Country', $country);
- $this->assertEquals('FR', $country->getCountryCode());
- $this->assertEquals('France', $country->getName());
- $this->assertEquals('FRA', $country->getThreeLetterCode());
- $this->assertEquals('250', $country->getNumericCode());
- $this->assertEquals('33', $country->getTelephoneCode());
- $this->assertEquals('en', $country->getLocale());
- }
-
- /**
- * @covers ::get
- * @covers ::loadDefinitions
- * @uses \CommerceGuys\Intl\LocaleResolverTrait
- * @expectedException \CommerceGuys\Intl\Exception\UnknownCountryException
- * @depends testConstructor
- */
- public function testGetInvalidCountry($countryRepository)
- {
- $countryRepository->get('DE');
- }
-
- /**
- * @covers ::getAll
- * @covers ::loadDefinitions
- * @covers ::createCountryFromDefinition
- * @uses \CommerceGuys\Intl\Country\Country
- * @uses \CommerceGuys\Intl\LocaleResolverTrait
- * @depends testConstructor
- */
- public function testGetAll($countryRepository)
- {
- $countries = $countryRepository->getAll();
- $this->assertArrayHasKey('FR', $countries);
- $this->assertArrayHasKey('US', $countries);
- $this->assertEquals('FR', $countries['FR']->getCountryCode());
- $this->assertEquals('US', $countries['US']->getCountryCode());
- }
-}
diff --git a/library/intl/tests/Country/CountryTest.php b/library/intl/tests/Country/CountryTest.php
deleted file mode 100644
index a0b2dc116..000000000
--- a/library/intl/tests/Country/CountryTest.php
+++ /dev/null
@@ -1,83 +0,0 @@
-<?php
-
-namespace CommerceGuys\Intl\Tests\Country;
-
-use CommerceGuys\Intl\Country\Country;
-
-/**
- * @coversDefaultClass \CommerceGuys\Intl\Country\Country
- */
-class CountryTest extends \PHPUnit_Framework_TestCase
-{
- /**
- * @var Country
- */
- protected $country;
-
- public function setUp()
- {
- $this->country = new Country();
- }
-
- /**
- * @covers ::getCountryCode
- * @covers ::setCountryCode
- * @covers ::__toString
- */
- public function testCountryCode()
- {
- $this->country->setCountryCode('US');
- $this->assertEquals('US', $this->country->getCountryCode());
- $this->assertEquals('US', (string) $this->country);
- }
-
- /**
- * @covers ::getName
- * @covers ::setName
- */
- public function testName()
- {
- $this->country->setName('United States');
- $this->assertEquals('United States', $this->country->getName());
- }
-
- /**
- * @covers ::getThreeLetterCode
- * @covers ::setThreeLetterCode
- */
- public function testThreeLetterCode()
- {
- $this->country->setThreeLetterCode('USA');
- $this->assertEquals('USA', $this->country->getThreeLetterCode());
- }
-
- /**
- * @covers ::getNumericCode
- * @covers ::setNumericCode
- */
- public function testNumericCode()
- {
- $this->country->setNumericCode('840');
- $this->assertEquals('840', $this->country->getNumericCode());
- }
-
- /**
- * @covers ::getTelephoneCode
- * @covers ::setTelephoneCode
- */
- public function testTelephoneCode()
- {
- $this->country->setTelephoneCode('1');
- $this->assertEquals('1', $this->country->getTelephoneCode());
- }
-
- /**
- * @covers ::getLocale
- * @covers ::setLocale
- */
- public function testLocale()
- {
- $this->country->setLocale('en');
- $this->assertEquals('en', $this->country->getLocale());
- }
-}
diff --git a/library/intl/tests/Currency/CurrencyRepositoryTest.php b/library/intl/tests/Currency/CurrencyRepositoryTest.php
deleted file mode 100644
index 4270dc70f..000000000
--- a/library/intl/tests/Currency/CurrencyRepositoryTest.php
+++ /dev/null
@@ -1,113 +0,0 @@
-<?php
-
-namespace CommerceGuys\Intl\Tests\Currency;
-
-use CommerceGuys\Intl\Currency\CurrencyRepository;
-use org\bovigo\vfs\vfsStream;
-
-/**
- * @coversDefaultClass \CommerceGuys\Intl\Currency\CurrencyRepository
- */
-class CurrencyRepositoryTest extends \PHPUnit_Framework_TestCase
-{
- /**
- * Base currency definitions.
- *
- * @var array
- */
- protected $baseDefinitions = array(
- 'USD' => array(
- 'code' => 'USD',
- 'numeric_code' => '840',
- ),
- 'EUR' => array(
- 'code' => 'EUR',
- 'numeric_code' => '840',
- 'fraction_digits' => '2',
- ),
- );
-
- /**
- * English currency definitions.
- *
- * @var array
- */
- protected $englishDefinitions = array(
- 'USD' => array(
- 'name' => 'US Dollar',
- 'symbol' => '$',
- ),
- 'EUR' => array(
- 'name' => 'Euro',
- 'symbol' => '€',
- ),
- );
-
- /**
- * @covers ::__construct
- */
- public function testConstructor()
- {
- // Mock the existence of JSON definitions on the filesystem.
- $root = vfsStream::setup('resources');
- vfsStream::newFile('currency/base.json')->at($root)->setContent(json_encode($this->baseDefinitions));
- vfsStream::newFile('currency/en.json')->at($root)->setContent(json_encode($this->englishDefinitions));
-
- // Instantiate the currency repository and confirm that the definition path
- // was properly set.
- $currencyRepository = new CurrencyRepository('vfs://resources/currency/');
- $definitionPath = $this->getObjectAttribute($currencyRepository, 'definitionPath');
- $this->assertEquals('vfs://resources/currency/', $definitionPath);
-
- return $currencyRepository;
- }
-
- /**
- * @covers ::get
- * @covers ::loadDefinitions
- * @covers ::createCurrencyFromDefinition
- * @uses \CommerceGuys\Intl\Currency\Currency
- * @uses \CommerceGuys\Intl\LocaleResolverTrait
- * @depends testConstructor
- */
- public function testGet($currencyRepository)
- {
- $currency = $currencyRepository->get('USD');
- $this->assertInstanceOf('CommerceGuys\\Intl\\Currency\\Currency', $currency);
- $this->assertEquals('USD', $currency->getCurrencyCode());
- $this->assertEquals('US Dollar', $currency->getName());
- $this->assertEquals('840', $currency->getNumericCode());
- $this->assertEquals('2', $currency->getFractionDigits());
- $this->assertEquals('$', $currency->getSymbol());
- $this->assertEquals('en', $currency->getLocale());
- }
-
- /**
- * @covers ::get
- * @covers ::loadDefinitions
- * @uses \CommerceGuys\Intl\LocaleResolverTrait
- * @expectedException \CommerceGuys\Intl\Exception\UnknownCurrencyException
- * @depends testConstructor
- */
- public function testGetInvalidCurrency($currencyRepository)
- {
- $currencyRepository->get('RSD');
- }
-
- /**
- * @covers ::getAll
- * @covers ::loadDefinitions
- * @covers ::createCurrencyFromDefinition
- * @uses \CommerceGuys\Intl\Currency\Currency
- * @uses \CommerceGuys\Intl\LocaleResolverTrait
- * @depends testConstructor
- */
- public function testGetAll($currencyRepository)
- {
- $currencies = $currencyRepository->getAll();
- $this->assertArrayHasKey('USD', $currencies);
- $this->assertArrayHasKey('EUR', $currencies);
- $this->assertEquals('USD', $currencies['USD']->getCurrencyCode());
- $this->assertEquals('EUR', $currencies['EUR']->getCurrencyCode());
- }
-}
diff --git a/library/intl/tests/Currency/CurrencyTest.php b/library/intl/tests/Currency/CurrencyTest.php
deleted file mode 100644
index 837e4d07a..000000000
--- a/library/intl/tests/Currency/CurrencyTest.php
+++ /dev/null
@@ -1,83 +0,0 @@
-<?php
-
-namespace CommerceGuys\Intl\Tests\Currency;
-
-use CommerceGuys\Intl\Currency\Currency;
-
-/**
- * @coversDefaultClass \CommerceGuys\Intl\Currency\Currency
- */
-class CurrencyTest extends \PHPUnit_Framework_TestCase
-{
- /**
- * @var Currency
- */
- protected $currency;
-
- public function setUp()
- {
- $this->currency = new Currency();
- }
-
- /**
- * @covers ::getCurrencyCode
- * @covers ::setCurrencyCode
- * @covers ::__toString
- */
- public function testCurrencyCode()
- {
- $this->currency->setCurrencyCode('USD');
- $this->assertEquals('USD', $this->currency->getCurrencyCode());
- $this->assertEquals('USD', (string) $this->currency);
- }
-
- /**
- * @covers ::getName
- * @covers ::setName
- */
- public function testName()
- {
- $this->currency->setName('US Dollar');
- $this->assertEquals('US Dollar', $this->currency->getName());
- }
-
- /**
- * @covers ::getNumericCode
- * @covers ::setNumericCode
- */
- public function testNumericCode()
- {
- $this->currency->setNumericCode('840');
- $this->assertEquals('840', $this->currency->getNumericCode());
- }
-
- /**
- * @covers ::getFractionDigits
- * @covers ::setFractionDigits
- */
- public function testFractionDigits()
- {
- $this->currency->setFractionDigits('2');
- $this->assertEquals('2', $this->currency->getFractionDigits());
- }
-
- /**
- * @covers ::getSymbol
- * @covers ::setSymbol
- */
- public function testSymbol()
- {
- $this->currency->setSymbol('$');
- $this->assertEquals('$', $this->currency->getSymbol());
- }
-
- /**
- * @covers ::getLocale
- * @covers ::setLocale
- */
- public function testLocale()
- {
- $this->currency->setLocale('en');
- $this->assertEquals('en', $this->currency->getLocale());
- }
-}
diff --git a/library/intl/tests/DummyRepository.php b/library/intl/tests/DummyRepository.php
deleted file mode 100644
index 0d9ca760b..000000000
--- a/library/intl/tests/DummyRepository.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-
-namespace CommerceGuys\Intl\Tests;
-
-use CommerceGuys\Intl\LocaleResolverTrait;
-
-/**
- * Dummy repository used for testing the LocaleResolverTrait.
- */
-class DummyRepository
-{
- use LocaleResolverTrait;
-
- public function __construct()
- {
- $this->definitionPath = 'vfs://resources/dummy/';
- }
-
- public function runResolveLocale($locale, $fallbackLocale = null)
- {
- return $this->resolveLocale($locale, $fallbackLocale);
- }
-}
diff --git a/library/intl/tests/Formatter/NumberFormatterTest.php b/library/intl/tests/Formatter/NumberFormatterTest.php
deleted file mode 100644
index 83574873b..000000000
--- a/library/intl/tests/Formatter/NumberFormatterTest.php
+++ /dev/null
@@ -1,378 +0,0 @@
-<?php
-
-namespace CommerceGuys\Intl\Tests\Formatter;
-
-use CommerceGuys\Intl\Currency\Currency;
-use CommerceGuys\Intl\Formatter\NumberFormatter;
-use CommerceGuys\Intl\NumberFormat\NumberFormat;
-
-/**
- * @coversDefaultClass \CommerceGuys\Intl\Formatter\NumberFormatter
- */
-class NumberFormatterTest extends \PHPUnit_Framework_TestCase
-{
- /**
- * Prepare two number formats.
- */
- protected $numberFormats = array(
- 'latn' => array(
- 'numbering_system' => 'latn',
- 'decimal_pattern' => '#,##0.###',
- 'percent_pattern' => '#,##0%',
- 'currency_pattern' => '¤#,##0.00',
- 'accounting_currency_pattern' => '¤#,##0.00;(¤#,##0.00)',
- ),
- 'beng' => array(
- 'numbering_system' => 'beng',
- 'decimal_pattern' => '#,##,##0.###',
- 'percent_pattern' => '#,##,##0%',
- 'currency_pattern' => '#,##,##0.00¤',
- 'accounting_currency_pattern' => '#,##,##0.00¤;(#,##,##0.00¤)',
- ),
- );
-
- /**
- * Prepare two currency formats.
- */
- protected $currencies = array(
- 'USD' => array(
- 'code' => 'USD',
- 'name' => 'US Dollar',
- 'numeric_code' => '840',
- 'symbol' => '$',
- ),
- 'BND' => array(
- 'code' => 'BND',
- 'name' => 'dollar Brunei',
- 'numeric_code' => '096',
- 'symbol' => 'BND',
- ),
- );
-
- /**
- * @covers ::__construct
- * @uses \CommerceGuys\Intl\Formatter\NumberFormatter::getNumberFormat
- * @uses \CommerceGuys\Intl\NumberFormat\NumberFormat
- */
- public function testConstructor()
- {
- $numberFormat = new NumberFormat();
- $formatter = new NumberFormatter($numberFormat, NumberFormatter::DECIMAL);
- $this->assertSame($numberFormat, $formatter->getNumberFormat());
- }
-
- /**
- * @covers ::__construct
- * @uses \CommerceGuys\Intl\NumberFormat\NumberFormat
- *
- * @expectedException \CommerceGuys\Intl\Exception\InvalidArgumentException
- * @expectedExceptionMessage Unknown format style provided to NumberFormatter::__construct().
- */
- public function testConstructorWithInvalidStyle()
- {
- $numberFormat = new NumberFormat();
- new NumberFormatter($numberFormat, 'foo');
- }
-
- /**
- * @covers ::format
- * @covers ::replaceDigits
- * @covers ::replaceSymbols
- * @uses \CommerceGuys\Intl\Formatter\NumberFormatter::__construct
- * @uses \CommerceGuys\Intl\NumberFormat\NumberFormat
- *
- * @dataProvider numberValueProvider
- */
- public function testFormat($number_format, $style, $value, $expected_value)
- {
- $formatter = new NumberFormatter($number_format, $style);
-
- $formattedNumber = $formatter->format($value);
- $this->assertSame($expected_value, $formattedNumber);
- }
-
- /**
- * @covers ::SetMinimumFractionDigits
- * @covers ::SetMaximumFractionDigits
- * @covers ::format
- * @uses \CommerceGuys\Intl\Formatter\NumberFormatter::__construct
- * @uses \CommerceGuys\Intl\Formatter\NumberFormatter::replaceDigits
- * @uses \CommerceGuys\Intl\Formatter\NumberFormatter::replaceSymbols
- * @uses \CommerceGuys\Intl\NumberFormat\NumberFormat
- */
- public function testFormatFractionDigits()
- {
- $numberFormat = $this->createNumberFormat($this->numberFormats['latn']);
-
- $formatter = new NumberFormatter($numberFormat);
- $formatter->setMinimumFractionDigits(2);
- $formattedNumber = $formatter->format('12.5');
- $this->assertSame('12.50', $formattedNumber);
-
- $formatter = new NumberFormatter($numberFormat);
- $formatter->setMaximumFractionDigits(1);
- $formattedNumber = $formatter->format('12.50');
- $this->assertSame('12.5', $formattedNumber);
-
- $formatter = new NumberFormatter($numberFormat);
- $formatter->setMinimumFractionDigits(4);
- $formatter->setMaximumFractionDigits(5);
- $formattedNumber = $formatter->format('12.50000');
- $this->assertSame('12.5000', $formattedNumber);
- }
-
- /**
- * @covers ::format
- * @uses \CommerceGuys\Intl\Formatter\NumberFormatter::__construct
- * @uses \CommerceGuys\Intl\Formatter\NumberFormatter::format
- * @uses \CommerceGuys\Intl\NumberFormat\NumberFormat
- *
- * @expectedException \CommerceGuys\Intl\Exception\InvalidArgumentException
- */
- public function testFormatOnlyAllowsNumbers()
- {
- $numberFormat = $this->createNumberFormat($this->numberFormats['latn']);
- $formatter = new NumberFormatter($numberFormat);
- $formatter->format('a12.34');
- }
-
- /**
- * @covers ::formatCurrency
- * @covers ::replaceSymbols
- * @uses \CommerceGuys\Intl\Currency\Currency
- * @uses \CommerceGuys\Intl\Formatter\NumberFormatter::__construct
- * @uses \CommerceGuys\Intl\Formatter\NumberFormatter::format
- * @uses \CommerceGuys\Intl\Formatter\NumberFormatter::replaceDigits
- * @uses \CommerceGuys\Intl\NumberFormat\NumberFormat
- *
- * @dataProvider currencyValueProvider
- */
- public function testFormatCurrency($number_format, $currency, $style, $value, $expected_value)
- {
- $formatter = new NumberFormatter($number_format, $style);
-
- $formattedNumber = $formatter->formatCurrency($value, $currency);
- $this->assertSame($expected_value, $formattedNumber);
- }
-
- /**
- * @covers ::parseCurrency
- * @uses \CommerceGuys\Intl\Currency\Currency
- * @uses \CommerceGuys\Intl\Formatter\NumberFormatter::__construct
- * @uses \CommerceGuys\Intl\NumberFormat\NumberFormat
- *
- * @dataProvider formattedCurrencyProvider
- */
- public function testParseCurrency($number_format, $currency, $style, $value, $expected_value)
- {
- $formatter = new NumberFormatter($number_format, $style);
-
- $parsedNumber = $formatter->parseCurrency($value, $currency);
- $this->assertSame($expected_value, $parsedNumber);
- }
-
- /**
- * @covers ::getNumberFormat
- * @uses \CommerceGuys\Intl\Formatter\NumberFormatter::__construct
- * @uses \CommerceGuys\Intl\NumberFormat\NumberFormat
- */
- public function testGetNumberFormat()
- {
- $numberFormat = $this->createNumberFormat($this->numberFormats['latn']);
- $formatter = new NumberFormatter($numberFormat, NumberFormatter::DECIMAL);
- $this->assertSame($numberFormat, $formatter->getNumberFormat());
- }
-
- /**
- * @covers ::getMinimumFractionDigits
- * @uses \CommerceGuys\Intl\Formatter\NumberFormatter::__construct
- * @uses \CommerceGuys\Intl\NumberFormat\NumberFormat
- */
- public function testMinimumFractionDigits()
- {
- $numberFormat = $this->createNumberFormat($this->numberFormats['latn']);
-
- // Defaults to 0 for decimal and percentage formats.
- $formatter = new NumberFormatter($numberFormat, NumberFormatter::DECIMAL);
- $this->assertEquals(0, $formatter->getMinimumFractionDigits());
- $formatter = new NumberFormatter($numberFormat, NumberFormatter::PERCENT);
- $this->assertEquals(0, $formatter->getMinimumFractionDigits());
-
- // Should default to null for currency formats.
- $formatter = new NumberFormatter($numberFormat, NumberFormatter::CURRENCY);
- $this->assertNull($formatter->getMinimumFractionDigits());
- $formatter = new NumberFormatter($numberFormat, NumberFormatter::CURRENCY_ACCOUNTING);
- $this->assertNull($formatter->getMinimumFractionDigits());
- }
-
- /**
- * @covers ::getMaximumFractionDigits
- * @uses \CommerceGuys\Intl\Formatter\NumberFormatter::__construct
- * @uses \CommerceGuys\Intl\NumberFormat\NumberFormat
- */
- public function testMaximumFractionDigits()
- {
- $numberFormat = $this->createNumberFormat($this->numberFormats['latn']);
-
- // Defaults to 3 for decimal and percentage formats.
- $formatter = new NumberFormatter($numberFormat, NumberFormatter::DECIMAL);
- $this->assertEquals(3, $formatter->getMaximumFractionDigits());
- $formatter = new NumberFormatter($numberFormat, NumberFormatter::PERCENT);
- $this->assertEquals(3, $formatter->getMaximumFractionDigits());
-
- // Should default to null for currency formats.
- $formatter = new NumberFormatter($numberFormat, NumberFormatter::CURRENCY);
- $this->assertNull($formatter->getMaximumFractionDigits());
- $formatter = new NumberFormatter($numberFormat, NumberFormatter::CURRENCY_ACCOUNTING);
- $this->assertNull($formatter->getMaximumFractionDigits());
- }
-
- /**
- * @covers ::isGroupingUsed
- * @covers ::setGroupingUsed
- * @uses \CommerceGuys\Intl\Formatter\NumberFormatter::__construct
- * @uses \CommerceGuys\Intl\Formatter\NumberFormatter::format
- * @uses \CommerceGuys\Intl\Formatter\NumberFormatter::replaceDigits
- * @uses \CommerceGuys\Intl\Formatter\NumberFormatter::replaceSymbols
- * @uses \CommerceGuys\Intl\NumberFormat\NumberFormat
- */
- public function testGroupingUsed()
- {
- $numberFormat = $this->createNumberFormat($this->numberFormats['latn']);
-
- // The formatter groups correctly.
- $formatter = new NumberFormatter($numberFormat, NumberFormatter::DECIMAL);
- $this->assertTrue($formatter->isGroupingUsed());
- $this->assertSame('10,000.9', $formatter->format('10000.90'));
-
- // The formatter respects grouping turned off.
- $formatter = new NumberFormatter($numberFormat, NumberFormatter::DECIMAL);
- $formatter->setGroupingUsed(false);
- $this->assertFalse($formatter->isGroupingUsed());
- $this->assertSame('10000.9', $formatter->format('10000.90'));
- }
-
- /**
- * @covers ::getCurrencyDisplay
- * @covers ::setCurrencyDisplay
- * @covers ::formatCurrency
- * @uses \CommerceGuys\Intl\Currency\Currency
- * @uses \CommerceGuys\Intl\Formatter\NumberFormatter::__construct
- * @uses \CommerceGuys\Intl\Formatter\NumberFormatter::format
- * @uses \CommerceGuys\Intl\Formatter\NumberFormatter::replaceDigits
- * @uses \CommerceGuys\Intl\Formatter\NumberFormatter::replaceSymbols
- * @uses \CommerceGuys\Intl\NumberFormat\NumberFormat
- */
- public function testCurrencyDisplay()
- {
- $numberFormat = $this->createNumberFormat($this->numberFormats['latn']);
- $currency = $this->createCurrency($this->currencies['USD']);
-
- // Currency display defaults to symbol.
- $formatter = new NumberFormatter($numberFormat, NumberFormatter::CURRENCY);
- $this->assertSame(NumberFormatter::CURRENCY_DISPLAY_SYMBOL, $formatter->getCurrencyDisplay());
- $formattedNumber = $formatter->formatCurrency('100', $currency);
- $this->assertSame('$100.00', $formattedNumber);
-
- // Currency display respects setting the value to currency code.
- $formatter = new NumberFormatter($numberFormat, NumberFormatter::CURRENCY);
- $formatter->setCurrencyDisplay(NumberFormatter::CURRENCY_DISPLAY_CODE);
- $this->assertSame(NumberFormatter::CURRENCY_DISPLAY_CODE, $formatter->getCurrencyDisplay());
- $formattedNumber = $formatter->formatCurrency('100', $currency);
- $this->assertSame('USD100.00', $formattedNumber);
- }
-
- /**
- * Provides the number format, number style, value and expected formatted value.
- */
- public function numberValueProvider()
- {
- return array(
- array($this->createNumberFormat($this->numberFormats['latn']), NumberFormatter::DECIMAL, '-50.5', '-50.5'),
- array($this->createNumberFormat($this->numberFormats['latn']), NumberFormatter::PERCENT, '50.5', '50.5%'),
- array($this->createNumberFormat($this->numberFormats['latn']), NumberFormatter::DECIMAL, '5000000.5', '5,000,000.5'),
- array($this->createNumberFormat($this->numberFormats['beng'], 'bn'), NumberFormatter::DECIMAL, '-50.5', '-৫০.৫'),
- array($this->createNumberFormat($this->numberFormats['beng'], 'bn'), NumberFormatter::PERCENT, '50.5', '৫০.৫%'),
- array($this->createNumberFormat($this->numberFormats['beng'], 'bn'), NumberFormatter::DECIMAL, '5000000.5', '৫০,০০,০০০.৫')
- );
- }
-
- /**
- * Provides the number format, currency format, number style, value and expected formatted value.
- */
- public function currencyValueProvider()
- {
- return array(
- array($this->createNumberFormat($this->numberFormats['latn']), $this->createCurrency($this->currencies['USD']), NumberFormatter::CURRENCY, '-5.05', '-$5.05'),
- array($this->createNumberFormat($this->numberFormats['latn']), $this->createCurrency($this->currencies['USD']), NumberFormatter::CURRENCY_ACCOUNTING, '-5.05', '($5.05)'),
- array($this->createNumberFormat($this->numberFormats['latn']), $this->createCurrency($this->currencies['USD']), NumberFormatter::CURRENCY, '500100.05', '$500,100.05'),
- array($this->createNumberFormat($this->numberFormats['beng'], 'bn'), $this->createCurrency($this->currencies['BND'], 'bn'), NumberFormatter::CURRENCY, '-50.5', '-৫০.৫০BND'),
- array($this->createNumberFormat($this->numberFormats['beng'], 'bn'), $this->createCurrency($this->currencies['BND'], 'bn'), NumberFormatter::CURRENCY_ACCOUNTING, '-50.5', '(৫০.৫০BND)'),
- array($this->createNumberFormat($this->numberFormats['beng'], 'bn'), $this->createCurrency($this->currencies['BND'], 'bn'), NumberFormatter::CURRENCY, '500100.05', '৫,০০,১০০.০৫BND'),
- );
- }
-
- /**
- * Provides values for the formatted currency parser.
- */
- public function formattedCurrencyProvider()
- {
- return array(
- array($this->createNumberFormat($this->numberFormats['latn']), $this->createCurrency($this->currencies['USD']), NumberFormatter::CURRENCY, '$500,100.05', '500100.05'),
- array($this->createNumberFormat($this->numberFormats['latn']), $this->createCurrency($this->currencies['USD']), NumberFormatter::CURRENCY, '-$1,059.59', '-1059.59'),
- array($this->createNumberFormat($this->numberFormats['latn']), $this->createCurrency($this->currencies['USD']), NumberFormatter::CURRENCY_ACCOUNTING, '($1,059.59)', '-1059.59'),
- array($this->createNumberFormat($this->numberFormats['beng'], 'bn'), $this->createCurrency($this->currencies['BND'], 'bn'), NumberFormatter::CURRENCY, '৫,০০,১০০.০৫BND', '500100.05'),
- );
- }
-
- /**
- * Helper for initiating a new NumberFormat object.
- */
- protected function createNumberFormat(array $definition, $locale = 'en')
- {
- $default = array(
- 'decimal_separator' => '.',
- 'grouping_separator' => ',',
- 'plus_sign' => '+',
- 'minus_sign' => '-',
- 'percent_sign' => '%'
- );
- $format = array_merge($default, $definition);
-
- $numberFormat = new NumberFormat();
- $numberFormat->setLocale($locale);
- $numberFormat->setNumberingSystem($format['numbering_system']);
- $numberFormat->setDecimalSeparator($format['decimal_separator']);
- $numberFormat->setGroupingSeparator($format['grouping_separator']);
- $numberFormat->setPlusSign($format['plus_sign']);
- $numberFormat->setMinusSign($format['minus_sign']);
- $numberFormat->setPercentSign($format['percent_sign']);
- $numberFormat->setDecimalPattern($format['decimal_pattern']);
- $numberFormat->setPercentPattern($format['percent_pattern']);
- $numberFormat->setCurrencyPattern($format['currency_pattern']);
- $numberFormat->setAccountingCurrencyPattern($format['accounting_currency_pattern']);
-
- return $numberFormat;
- }
-
- /**
- * Helper for initiating a new Currency object.
- */
- protected function createCurrency(array $definition, $locale = 'en')
- {
- $default = array(
- 'fraction_digits' => 2
- );
- $format = array_merge($default, $definition);
-
- $currency = new Currency();
- $currency->setCurrencyCode($format['code']);
- $currency->setName($format['name']);
- $currency->setNumericCode($format['numeric_code']);
- $currency->setFractionDigits($format['fraction_digits']);
- $currency->setSymbol($format['symbol']);
- $currency->setLocale($locale);
-
- return $currency;
- }
-}
diff --git a/library/intl/tests/Language/LanguageRepositoryTest.php b/library/intl/tests/Language/LanguageRepositoryTest.php
deleted file mode 100644
index ea52cbf4c..000000000
--- a/library/intl/tests/Language/LanguageRepositoryTest.php
+++ /dev/null
@@ -1,92 +0,0 @@
-<?php
-
-namespace CommerceGuys\Intl\Tests\Language;
-
-use CommerceGuys\Intl\Language\LanguageRepository;
-use org\bovigo\vfs\vfsStream;
-
-/**
- * @coversDefaultClass \CommerceGuys\Intl\Language\LanguageRepository
- */
-class LanguageRepositoryTest extends \PHPUnit_Framework_TestCase
-{
- /**
- * English language definitions.
- *
- * @var array
- */
- protected $englishDefinitions = array(
- 'en' => array(
- 'code' => 'en',
- 'name' => 'English',
- ),
- 'fr' => array(
- 'code' => 'fr',
- 'name' => 'French',
- ),
- );
-
- /**
- * @covers ::__construct
- */
- public function testConstructor()
- {
- // Mock the existence of JSON definitions on the filesystem.
- $root = vfsStream::setup('resources');
- vfsStream::newFile('language/en.json')->at($root)->setContent(json_encode($this->englishDefinitions));
-
- // Instantiate the language repository and confirm that the definition path
- // was properly set.
- $languageRepository = new LanguageRepository('vfs://resources/language/');
- $definitionPath = $this->getObjectAttribute($languageRepository, 'definitionPath');
- $this->assertEquals('vfs://resources/language/', $definitionPath);
-
- return $languageRepository;
- }
-
- /**
- * @covers ::get
- * @covers ::loadDefinitions
- * @covers ::createLanguageFromDefinition
- * @uses \CommerceGuys\Intl\Language\Language
- * @uses \CommerceGuys\Intl\LocaleResolverTrait
- * @depends testConstructor
- */
- public function testGet($languageRepository)
- {
- $language = $languageRepository->get('en');
- $this->assertInstanceOf('CommerceGuys\\Intl\\Language\\Language', $language);
- $this->assertEquals('en', $language->getLanguageCode());
- $this->assertEquals('English', $language->getName());
- $this->assertEquals('en', $language->getLocale());
- }
-
- /**
- * @covers ::get
- * @covers ::loadDefinitions
- * @uses \CommerceGuys\Intl\LocaleResolverTrait
- * @expectedException \CommerceGuys\Intl\Exception\UnknownLanguageException
- * @depends testConstructor
- */
- public function testGetInvalidLanguage($languageRepository)
- {
- $languageRepository->get('de');
- }
-
- /**
- * @covers ::getAll
- * @covers ::loadDefinitions
- * @covers ::createLanguageFromDefinition
- * @uses \CommerceGuys\Intl\Language\Language
- * @uses \CommerceGuys\Intl\LocaleResolverTrait
- * @depends testConstructor
- */
- public function testGetAll($languageRepository)
- {
- $languages = $languageRepository->getAll();
- $this->assertArrayHasKey('en', $languages);
- $this->assertArrayHasKey('fr', $languages);
- $this->assertEquals('en', $languages['en']->getLanguageCode());
- $this->assertEquals('fr', $languages['fr']->getLanguageCode());
- }
-}
diff --git a/library/intl/tests/Language/LanguageTest.php b/library/intl/tests/Language/LanguageTest.php
deleted file mode 100644
index 037483c88..000000000
--- a/library/intl/tests/Language/LanguageTest.php
+++ /dev/null
@@ -1,53 +0,0 @@
-<?php
-
-namespace CommerceGuys\Intl\Tests\Language;
-
-use CommerceGuys\Intl\Language\Language;
-
-/**
- * @coversDefaultClass \CommerceGuys\Intl\Language\Language
- */
-class LanguageTest extends \PHPUnit_Framework_TestCase
-{
- /**
- * @var Language
- */
- protected $language;
-
- public function setUp()
- {
- $this->language = new Language();
- }
-
- /**
- * @covers ::getLanguageCode
- * @covers ::setLanguageCode
- * @covers ::__toString
- */
- public function testLanguageCode()
- {
- $this->language->setLanguageCode('en');
- $this->assertEquals('en', $this->language->getLanguageCode());
- $this->assertEquals('en', (string) $this->language);
- }
-
- /**
- * @covers ::getName
- * @covers ::setName
- */
- public function testName()
- {
- $this->language->setName('English');
- $this->assertEquals('English', $this->language->getName());
- }
-
- /**
- * @covers ::getLocale
- * @covers ::setLocale
- */
- public function testLocale()
- {
- $this->language->setLocale('en');
- $this->assertEquals('en', $this->language->getLocale());
- }
-}
diff --git a/library/intl/tests/LocaleResolverTest.php b/library/intl/tests/LocaleResolverTest.php
deleted file mode 100644
index a52dea353..000000000
--- a/library/intl/tests/LocaleResolverTest.php
+++ /dev/null
@@ -1,51 +0,0 @@
-<?php
-
-namespace CommerceGuys\Intl\Tests;
-
-use org\bovigo\vfs\vfsStream;
-
-/**
- * @coversDefaultClass \CommerceGuys\Intl\LocaleResolverTrait
- */
-class LocaleResolverTest extends \PHPUnit_Framework_TestCase
-{
- /**
- * @var DummyRepository
- */
- protected $repository;
-
- public function setUp()
- {
- // Simulate the presence of various definitions.
- $root = vfsStream::setup('resources');
- vfsStream::newFile('dummy/bs-Cyrl.json')->at($root)->setContent('');
- vfsStream::newFile('dummy/bs.json')->at($root)->setContent('');
- vfsStream::newFile('dummy/en.json')->at($root)->setContent('');
-
- $this->repository = new DummyRepository();
- }
-
- /**
- * @covers ::resolveLocale
- * @covers ::getLocaleVariants
- */
- public function testLocaleFallback()
- {
- $locale = $this->repository->runResolveLocale('bs-Cyrl-BA');
- $this->assertEquals('bs-Cyrl', $locale);
- $locale = $this->repository->runResolveLocale('bs-Latn-BA');
- $this->assertEquals('bs', $locale);
- $locale = $this->repository->runResolveLocale('de', 'en');
- $this->assertEquals('en', $locale);
- }
-
- /**
- * @covers ::resolveLocale
- * @covers ::getLocaleVariants
- * @expectedException \CommerceGuys\Intl\Exception\UnknownLocaleException
- */
- public function testInvalidLocale()
- {
- $locale = $this->repository->runResolveLocale('de');
- }
-}
diff --git a/library/intl/tests/NumberFormat/NumberFormatRepositoryTest.php b/library/intl/tests/NumberFormat/NumberFormatRepositoryTest.php
deleted file mode 100644
index 41e45805d..000000000
--- a/library/intl/tests/NumberFormat/NumberFormatRepositoryTest.php
+++ /dev/null
@@ -1,69 +0,0 @@
-<?php
-
-namespace CommerceGuys\Intl\Tests\NumberFormat;
-
-use CommerceGuys\Intl\NumberFormat\NumberFormatRepository;
-use org\bovigo\vfs\vfsStream;
-
-/**
- * @coversDefaultClass \CommerceGuys\Intl\NumberFormat\NumberFormatRepository
- */
-class NumberFormatRepositoryTest extends \PHPUnit_Framework_TestCase
-{
- /**
- * English number format definition.
- *
- * @var array
- */
- protected $englishDefinition = array(
- 'numbering_system' => 'latn',
- 'decimal_pattern' => '#,##0.###',
- 'percent_pattern' => '#,##0%',
- 'currency_pattern' => '¤#,##0.00',
- 'accounting_currency_pattern' => '¤#,##0.00;(¤#,##0.00)',
- );
-
- /**
- * @covers ::__construct
- */
- public function testConstructor()
- {
- // Mock the existence of JSON definitions on the filesystem.
- $root = vfsStream::setup('resources');
- vfsStream::newFile('number_format/en.json')->at($root)->setContent(json_encode($this->englishDefinition));
-
- // Instantiate the number format repository and confirm that the definition
- // path was properly set.
- $numberFormatRepository = new NumberFormatRepository('vfs://resources/number_format/');
- $definitionPath = $this->getObjectAttribute($numberFormatRepository, 'definitionPath');
- $this->assertEquals('vfs://resources/number_format/', $definitionPath);
-
- return $numberFormatRepository;
- }
-
- /**
- * @covers ::get
- * @covers ::createNumberFormatFromDefinition
- * @uses \CommerceGuys\Intl\NumberFormat\NumberFormat
- * @uses \CommerceGuys\Intl\LocaleResolverTrait
- * @depends testConstructor
- */
- public function testGet($numberFormatRepository)
- {
- $numberFormat = $numberFormatRepository->get('en');
- $this->assertInstanceOf('CommerceGuys\\Intl\\NumberFormat\\NumberFormat', $numberFormat);
- $this->assertEquals('en', $numberFormat->getLocale());
- $this->assertEquals('latn', $numberFormat->getNumberingSystem());
- $this->assertEquals('.', $numberFormat->getDecimalSeparator());
- $this->assertEquals(',', $numberFormat->getGroupingSeparator());
- $this->assertEquals('+', $numberFormat->getPlusSign());
- $this->assertEquals('-', $numberFormat->getMinusSign());
- $this->assertEquals('%', $numberFormat->getPercentSign());
- $this->assertEquals('#,##0.###', $numberFormat->getDecimalPattern());
- $this->assertEquals('#,##0%', $numberFormat->getPercentPattern());
- $this->assertEquals('¤#,##0.00', $numberFormat->getCurrencyPattern());
- $this->assertEquals('¤#,##0.00;(¤#,##0.00)', $numberFormat->getAccountingCurrencyPattern());
-
- return $numberFormat;
- }
-}
diff --git a/library/intl/tests/NumberFormat/NumberFormatTest.php b/library/intl/tests/NumberFormat/NumberFormatTest.php
deleted file mode 100644
index 299dc41cb..000000000
--- a/library/intl/tests/NumberFormat/NumberFormatTest.php
+++ /dev/null
@@ -1,131 +0,0 @@
-<?php
-
-namespace CommerceGuys\Intl\Tests\NumberFormat;
-
-use CommerceGuys\Intl\NumberFormat\NumberFormat;
-
-/**
- * @coversDefaultClass CommerceGuys\Intl\NumberFormat\NumberFormat
- */
-class NumberFormatTest extends \PHPUnit_Framework_TestCase
-{
- /**
- * @var NumberFormat
- */
- protected $numberFormat;
-
- public function setUp()
- {
- $this->numberFormat = new NumberFormat();
- }
-
- /**
- * @covers ::getLocale
- * @covers ::setLocale
- */
- public function testLocale()
- {
- $this->numberFormat->setLocale('en');
- $this->assertEquals('en', $this->numberFormat->getLocale());
- }
-
- /**
- * @covers ::getNumberingSystem
- * @covers ::setNumberingSystem
- */
- public function testNumberingSystem()
- {
- $this->numberFormat->setNumberingSystem('latn');
- $this->assertEquals('latn', $this->numberFormat->getNumberingSystem());
- }
-
- /**
- * @covers ::getDecimalSeparator
- * @covers ::setDecimalSeparator
- */
- public function testDecimalSeparator()
- {
- $this->numberFormat->setDecimalSeparator('.');
- $this->assertEquals('.', $this->numberFormat->getDecimalSeparator());
- }
-
- /**
- * @covers ::getGroupingSeparator
- * @covers ::setGroupingSeparator
- */
- public function testGroupingSeparator()
- {
- $this->numberFormat->setGroupingSeparator(',');
- $this->assertEquals(',', $this->numberFormat->getGroupingSeparator());
- }
-
- /**
- * @covers ::getPlusSign
- * @covers ::setPlusSign
- */
- public function testPlusSign()
- {
- $this->numberFormat->setPlusSign('+');
- $this->assertEquals('+', $this->numberFormat->getPlusSign());
- }
-
- /**
- * @covers ::getMinusSign
- * @covers ::setMinusSign
- */
- public function testMinusSign()
- {
- $this->numberFormat->setMinusSign('-');
- $this->assertEquals('-', $this->numberFormat->getMinusSign());
- }
-
- /**
- * @covers ::getPercentSign
- * @covers ::setPercentSign
- */
- public function testPercentSign()
- {
- $this->numberFormat->setPercentSign('%');
- $this->assertEquals('%', $this->numberFormat->getPercentSign());
- }
-
- /**
- * @covers ::getDecimalPattern
- * @covers ::setDecimalPattern
- */
- public function testDecimalPattern()
- {
- $this->numberFormat->setDecimalPattern('#,##0.###');
- $this->assertEquals('#,##0.###', $this->numberFormat->getDecimalPattern());
- }
-
- /**
- * @covers ::getPercentPattern
- * @covers ::setPercentPattern
- */
- public function testPercentPattern()
- {
- $this->numberFormat->setPercentPattern('#,##0%');
- $this->assertEquals('#,##0%', $this->numberFormat->getPercentPattern());
- }
-
- /**
- * @covers ::getCurrencyPattern
- * @covers ::setCurrencyPattern
- */
- public function testCurrencyPattern()
- {
- $this->numberFormat->setCurrencyPattern('¤#,##0.00');
- $this->assertEquals('¤#,##0.00', $this->numberFormat->getCurrencyPattern());
- }
-
- /**
- * @covers ::getAccountingCurrencyPattern
- * @covers ::setAccountingCurrencyPattern
- */
- public function testAccountingCurrencyPattern()
- {
- $this->numberFormat->setAccountingCurrencyPattern('¤#,##0.00;(¤#,##0.00)');
- $this->assertEquals('¤#,##0.00;(¤#,##0.00)', $this->numberFormat->getAccountingCurrencyPattern());
- }
-}