/**
* @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);
}