v1/vendor/commerceguys/intl/tests/NumberFormat/NumberFormatTest.php

91 lines
3.5 KiB
PHP

<?php
namespace CommerceGuys\Intl\Tests\NumberFormat;
use CommerceGuys\Intl\NumberFormat\NumberFormat;
use PHPUnit\Framework\TestCase;
/**
* @coversDefaultClass \CommerceGuys\Intl\NumberFormat\NumberFormat
*/
final class NumberFormatTest extends TestCase
{
/**
* @covers ::__construct
*/
public function testMissingProperty()
{
$this->expectException(\InvalidArgumentException::class);
$this->expectExceptionMessage('Missing required property "locale".');
$numberFormat = new NumberFormat([]);
}
/**
* @covers ::__construct
*/
public function testInvalidNumberingSystem()
{
$this->expectException(\InvalidArgumentException::class);
$this->expectExceptionMessage('Invalid numbering system "FAKE".');
$numberFormat = new NumberFormat([
'locale' => 'sr-Latn',
'decimal_pattern' => '#,##0.###',
'percent_pattern' => '#,##0%',
'currency_pattern' => '#,##0.00 ¤',
'accounting_currency_pattern' => '#,##0.00 ¤;(#,##0.00 ¤)',
'numbering_system' => 'FAKE',
'decimal_separator' => ',',
'grouping_separator' => '.',
// Dummy values, intentionally different from the defaults.
'plus_sign' => '++',
'minus_sign' => '--',
'percent_sign' => '%%',
]);
}
/**
* @covers ::__construct
* @covers ::getLocale
* @covers ::getDecimalPattern
* @covers ::getPercentPattern
* @covers ::getCurrencyPattern
* @covers ::getAccountingCurrencyPattern
* @covers ::getNumberingSystem
* @covers ::getDecimalSeparator
* @covers ::getGroupingSeparator
* @covers ::getPlusSign
* @covers ::getMinusSign
* @covers ::getPercentSign
*/
public function testValid()
{
$definition = [
'locale' => 'sr-Latn',
'decimal_pattern' => '#,##0.###',
'percent_pattern' => '#,##0%',
'currency_pattern' => '#,##0.00 ¤',
'accounting_currency_pattern' => '#,##0.00 ¤;(#,##0.00 ¤)',
'numbering_system' => 'latn',
'decimal_separator' => ',',
'grouping_separator' => '.',
// Dummy values, intentionally different from the defaults.
'plus_sign' => '++',
'minus_sign' => '--',
'percent_sign' => '%%',
];
$numberFormat = new NumberFormat($definition);
$this->assertEquals($definition['locale'], $numberFormat->getLocale());
$this->assertEquals($definition['decimal_pattern'], $numberFormat->getDecimalPattern());
$this->assertEquals($definition['percent_pattern'], $numberFormat->getPercentPattern());
$this->assertEquals($definition['currency_pattern'], $numberFormat->getCurrencyPattern());
$this->assertEquals($definition['accounting_currency_pattern'], $numberFormat->getAccountingCurrencyPattern());
$this->assertEquals($definition['numbering_system'], $numberFormat->getNumberingSystem());
$this->assertEquals($definition['decimal_separator'], $numberFormat->getDecimalSeparator());
$this->assertEquals($definition['grouping_separator'], $numberFormat->getGroupingSeparator());
$this->assertEquals($definition['plus_sign'], $numberFormat->getPlusSign());
$this->assertEquals($definition['minus_sign'], $numberFormat->getMinusSign());
$this->assertEquals($definition['percent_sign'], $numberFormat->getPercentSign());
}
}