This repository has been archived on 2023-08-20. You can view files and clone it, but cannot push or open issues or pull requests.
symfony/src/Symfony/Component/Intl/Tests/NumberFormatter/NumberFormatterTest.php
Fabien Potencier 2966cd2b89 minor #15412 Remove skipping of tests based on ICU data version whenever possible (stof)
This PR was merged into the 2.3 branch.

Discussion
----------

Remove skipping of tests based on ICU data version whenever possible

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | n/a
| License       | MIT
| Doc PR        | n/a

Many tests being skipped based on the ICU data version don't actually need it. They might be testing code paths not relying on Intl, or not performing assertions on the values depending on the ICU data and so not dependant on the exact ICU version being used.

this is somewhat related to https://github.com/symfony/symfony/issues/14259 as it allows to reduce the number of tests not running on Travis.

Commits
-------

7994513 Remove skipping of tests based on ICU data version whenever possible
2015-08-01 09:51:56 +02:00

214 lines
6.7 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
{
/**
* @expectedException \Symfony\Component\Intl\Exception\MethodArgumentValueNotImplementedException
*/
public function testConstructorWithUnsupportedLocale()
{
new NumberFormatter('pt_BR');
}
/**
* @expectedException \Symfony\Component\Intl\Exception\MethodArgumentValueNotImplementedException
*/
public function testConstructorWithUnsupportedStyle()
{
new NumberFormatter('en', NumberFormatter::PATTERN_DECIMAL);
}
/**
* @expectedException \Symfony\Component\Intl\Exception\MethodArgumentNotImplementedException
*/
public function testConstructorWithPatternDifferentThanNull()
{
new NumberFormatter('en', NumberFormatter::DECIMAL, '');
}
/**
* @expectedException \Symfony\Component\Intl\Exception\MethodArgumentValueNotImplementedException
*/
public function testSetAttributeWithUnsupportedAttribute()
{
$formatter = $this->getNumberFormatter('en', NumberFormatter::DECIMAL);
$formatter->setAttribute(NumberFormatter::LENIENT_PARSE, null);
}
/**
* @expectedException \Symfony\Component\Intl\Exception\MethodArgumentValueNotImplementedException
*/
public function testSetAttributeInvalidRoundingMode()
{
$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)
);
}
/**
* @expectedException \RuntimeException
*/
public function testFormatWithCurrencyStyle()
{
parent::testFormatWithCurrencyStyle();
}
/**
* @dataProvider formatTypeInt32Provider
* @expectedException \Symfony\Component\Intl\Exception\MethodArgumentValueNotImplementedException
*/
public function testFormatTypeInt32($formatter, $value, $expected, $message = '')
{
parent::testFormatTypeInt32($formatter, $value, $expected, $message);
}
/**
* @dataProvider formatTypeInt32WithCurrencyStyleProvider
* @expectedException \Symfony\Component\Intl\Exception\NotImplementedException
*/
public function testFormatTypeInt32WithCurrencyStyle($formatter, $value, $expected, $message = '')
{
parent::testFormatTypeInt32WithCurrencyStyle($formatter, $value, $expected, $message);
}
/**
* @dataProvider formatTypeInt64Provider
* @expectedException \Symfony\Component\Intl\Exception\MethodArgumentValueNotImplementedException
*/
public function testFormatTypeInt64($formatter, $value, $expected)
{
parent::testFormatTypeInt64($formatter, $value, $expected);
}
/**
* @dataProvider formatTypeInt64WithCurrencyStyleProvider
* @expectedException \Symfony\Component\Intl\Exception\NotImplementedException
*/
public function testFormatTypeInt64WithCurrencyStyle($formatter, $value, $expected)
{
parent::testFormatTypeInt64WithCurrencyStyle($formatter, $value, $expected);
}
/**
* @dataProvider formatTypeDoubleProvider
* @expectedException \Symfony\Component\Intl\Exception\MethodArgumentValueNotImplementedException
*/
public function testFormatTypeDouble($formatter, $value, $expected)
{
parent::testFormatTypeDouble($formatter, $value, $expected);
}
/**
* @dataProvider formatTypeDoubleWithCurrencyStyleProvider
* @expectedException \Symfony\Component\Intl\Exception\NotImplementedException
*/
public function testFormatTypeDoubleWithCurrencyStyle($formatter, $value, $expected)
{
parent::testFormatTypeDoubleWithCurrencyStyle($formatter, $value, $expected);
}
/**
* @expectedException \Symfony\Component\Intl\Exception\MethodNotImplementedException
*/
public function testGetPattern()
{
$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());
}
/**
* @expectedException \Symfony\Component\Intl\Exception\MethodNotImplementedException
*/
public function testParseCurrency()
{
$formatter = $this->getNumberFormatter('en', NumberFormatter::DECIMAL);
$formatter->parseCurrency(null, $currency);
}
/**
* @expectedException \Symfony\Component\Intl\Exception\MethodNotImplementedException
*/
public function testSetPattern()
{
$formatter = $this->getNumberFormatter('en', NumberFormatter::DECIMAL);
$formatter->setPattern(null);
}
/**
* @expectedException \Symfony\Component\Intl\Exception\MethodNotImplementedException
*/
public function testSetSymbol()
{
$formatter = $this->getNumberFormatter('en', NumberFormatter::DECIMAL);
$formatter->setSymbol(null, null);
}
/**
* @expectedException \Symfony\Component\Intl\Exception\MethodNotImplementedException
*/
public function testSetTextAttribute()
{
$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);
}
}