public function testLocalizedFormatMoney() { // check locale \Locale::setDefault('fr_FR'); $this->assertEquals('1 234 567,89 €', $this->formatter->localizedFormatMoney($this->inputMoney)); \Locale::setDefault('en_US'); $this->assertEquals('€1,234,567.89', $this->formatter->localizedFormatMoney($this->inputMoney)); $this->assertEquals('1 234 567,89 €', $this->formatter->localizedFormatMoney($this->inputMoney, 'fr')); // check new currency $money = new Money(123456789, new Currency('USD')); $this->assertEquals('1 234 567,89 $US', $this->formatter->localizedFormatMoney($money, 'fr')); $this->assertEquals('$1,234,567.89', $this->formatter->localizedFormatMoney($money, 'en')); // ckeck decimals $formatter = new MoneyFormatter(4); \Locale::setDefault('fr_FR'); $this->assertEquals('12 345,6789 €', $formatter->localizedFormatMoney($this->inputMoney)); // check with custom formatter $numberFormatter = new \NumberFormatter('fr', \NumberFormatter::CURRENCY); $numberFormatter->setTextAttribute(\NumberFormatter::CURRENCY_CODE, 'EUR'); $numberFormatter->setAttribute(\NumberFormatter::FRACTION_DIGITS, 3); $this->assertEquals('12 345,679 €', $formatter->localizedFormatMoney($this->inputMoney, null, $numberFormatter)); }