/** * @return int */ public function getFractionDigits() { return Currency::getDefaultFractionDigits($this->currency); }
public function testDefaultFractionDigitsLessThanZeroShouldThrowUnexpectedValueException() { $refl = new \ReflectionClass(Currency::class); $property = $refl->getProperty('currencies'); $property->setAccessible(true); $originalCurrencies = $property->getValue(); $newCurrencies = ['ABC' => ['display_name' => 'ABC fake currency', 'numeric_code' => 123, 'default_fraction_digits' => -1, 'sub_unit' => 100]]; $property->setValue($newCurrencies); try { Currency::getDefaultFractionDigits('ABC'); $this->fail(UnexpectedValueException::class . ' not thrown'); } catch (UnexpectedValueException $exc) { $this->assertInstanceOf(UnexpectedValueException::class, $exc); $this->assertSame(sprintf('The currency default fraction digits value must be greater than 0; "%s" given', $newCurrencies['ABC']['default_fraction_digits']), $exc->getMessage()); } $property->setValue($originalCurrencies); $property->setAccessible(false); }