Files
Chamilo/vendor/symfony/intl/Tests/NumberFormatter/NumberFormatterTest.php
2025-08-14 22:41:49 +02:00

192 lines
6.6 KiB
PHP

<?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\Component\Intl\Tests\NumberFormatter;
use Symfony\Component\Intl\Globals\IntlGlobals;
use Symfony\Component\Intl\NumberFormatter\NumberFormatter;
/**
* Note that there are some values written like -2147483647 - 1. This is the lower 32bit int max and is a known
* behavior of PHP.
*/
class NumberFormatterTest extends AbstractNumberFormatterTest
{
public function testConstructorWithUnsupportedLocale()
{
$this->expectException('Symfony\Component\Intl\Exception\MethodArgumentValueNotImplementedException');
new NumberFormatter('pt_BR');
}
public function testConstructorWithUnsupportedStyle()
{
$this->expectException('Symfony\Component\Intl\Exception\MethodArgumentValueNotImplementedException');
new NumberFormatter('en', NumberFormatter::PATTERN_DECIMAL);
}
public function testConstructorWithPatternDifferentThanNull()
{
$this->expectException('Symfony\Component\Intl\Exception\MethodArgumentNotImplementedException');
new NumberFormatter('en', NumberFormatter::DECIMAL, '');
}
public function testSetAttributeWithUnsupportedAttribute()
{
$this->expectException('Symfony\Component\Intl\Exception\MethodArgumentValueNotImplementedException');
$formatter = $this->getNumberFormatter('en', NumberFormatter::DECIMAL);
$formatter->setAttribute(NumberFormatter::LENIENT_PARSE, null);
}
public function testSetAttributeInvalidRoundingMode()
{
$this->expectException('Symfony\Component\Intl\Exception\MethodArgumentValueNotImplementedException');
$formatter = $this->getNumberFormatter('en', NumberFormatter::DECIMAL);
$formatter->setAttribute(NumberFormatter::ROUNDING_MODE, null);
}
public function testConstructWithoutLocale()
{
$this->assertInstanceOf(
'\Symfony\Component\Intl\NumberFormatter\NumberFormatter',
$this->getNumberFormatter(null, NumberFormatter::DECIMAL)
);
}
public function testCreate()
{
$this->assertInstanceOf(
'\Symfony\Component\Intl\NumberFormatter\NumberFormatter',
NumberFormatter::create('en', NumberFormatter::DECIMAL)
);
}
public function testFormatWithCurrencyStyle()
{
$this->expectException('RuntimeException');
parent::testFormatWithCurrencyStyle();
}
/**
* @dataProvider formatTypeInt32Provider
*/
public function testFormatTypeInt32($formatter, $value, $expected, $message = '')
{
$this->expectException('Symfony\Component\Intl\Exception\MethodArgumentValueNotImplementedException');
parent::testFormatTypeInt32($formatter, $value, $expected, $message);
}
/**
* @dataProvider formatTypeInt32WithCurrencyStyleProvider
*/
public function testFormatTypeInt32WithCurrencyStyle($formatter, $value, $expected, $message = '')
{
$this->expectException('Symfony\Component\Intl\Exception\NotImplementedException');
parent::testFormatTypeInt32WithCurrencyStyle($formatter, $value, $expected, $message);
}
/**
* @dataProvider formatTypeInt64Provider
*/
public function testFormatTypeInt64($formatter, $value, $expected)
{
$this->expectException('Symfony\Component\Intl\Exception\MethodArgumentValueNotImplementedException');
parent::testFormatTypeInt64($formatter, $value, $expected);
}
/**
* @dataProvider formatTypeInt64WithCurrencyStyleProvider
*/
public function testFormatTypeInt64WithCurrencyStyle($formatter, $value, $expected)
{
$this->expectException('Symfony\Component\Intl\Exception\NotImplementedException');
parent::testFormatTypeInt64WithCurrencyStyle($formatter, $value, $expected);
}
/**
* @dataProvider formatTypeDoubleProvider
*/
public function testFormatTypeDouble($formatter, $value, $expected)
{
$this->expectException('Symfony\Component\Intl\Exception\MethodArgumentValueNotImplementedException');
parent::testFormatTypeDouble($formatter, $value, $expected);
}
/**
* @dataProvider formatTypeDoubleWithCurrencyStyleProvider
*/
public function testFormatTypeDoubleWithCurrencyStyle($formatter, $value, $expected)
{
$this->expectException('Symfony\Component\Intl\Exception\NotImplementedException');
parent::testFormatTypeDoubleWithCurrencyStyle($formatter, $value, $expected);
}
public function testGetPattern()
{
$this->expectException('Symfony\Component\Intl\Exception\MethodNotImplementedException');
$formatter = $this->getNumberFormatter('en', NumberFormatter::DECIMAL);
$formatter->getPattern();
}
public function testGetErrorCode()
{
$formatter = $this->getNumberFormatter('en', NumberFormatter::DECIMAL);
$this->assertEquals(IntlGlobals::U_ZERO_ERROR, $formatter->getErrorCode());
}
public function testParseCurrency()
{
$this->expectException('Symfony\Component\Intl\Exception\MethodNotImplementedException');
$formatter = $this->getNumberFormatter('en', NumberFormatter::DECIMAL);
$formatter->parseCurrency(null, $currency);
}
public function testSetPattern()
{
$this->expectException('Symfony\Component\Intl\Exception\MethodNotImplementedException');
$formatter = $this->getNumberFormatter('en', NumberFormatter::DECIMAL);
$formatter->setPattern(null);
}
public function testSetSymbol()
{
$this->expectException('Symfony\Component\Intl\Exception\MethodNotImplementedException');
$formatter = $this->getNumberFormatter('en', NumberFormatter::DECIMAL);
$formatter->setSymbol(null, null);
}
public function testSetTextAttribute()
{
$this->expectException('Symfony\Component\Intl\Exception\MethodNotImplementedException');
$formatter = $this->getNumberFormatter('en', NumberFormatter::DECIMAL);
$formatter->setTextAttribute(null, null);
}
protected function getNumberFormatter($locale = 'en', $style = null, $pattern = null)
{
return new NumberFormatter($locale, $style, $pattern);
}
protected function getIntlErrorMessage()
{
return IntlGlobals::getErrorMessage();
}
protected function getIntlErrorCode()
{
return IntlGlobals::getErrorCode();
}
protected function isIntlFailure($errorCode)
{
return IntlGlobals::isFailure($errorCode);
}
}