/** * {@inheritdoc} */ public function format(Money $money) : string { $amount = $money->amount(); $minor = $money->currency()->minor(); $digits = $money->currency()->digits(); $code = $money->currency()->code(); $float = round($amount / $minor, $digits); return $this->formatter->formatCurrency($float, $code); }
/** * Converts a value from its database representation to its PHP representation * * @param mixed $value The value to convert * @param AbstractPlatform $platform The currently used database platform * * @return mixed * * @throws ConversionException When the conversion fails */ public function convertToPHPValue($value, AbstractPlatform $platform) { if (empty($value)) { return null; } if ($value instanceof Money) { return $value; } try { $money = Money::fromString($value); } catch (Exception $exception) { throw ConversionException::conversionFailed($value, static::TYPE_NAME); } return $money; }
public function test_that_format_returns_expected_output_for_locale() { $formatter = LocaleFormatter::fromLocale('en_US'); $this->assertSame('$1,100.75', $formatter->format(Money::USD(110075))); }
/** * @expectedException Novuso\System\Exception\DomainException */ public function test_that_compare_to_throws_exception_for_different_currency() { $money1 = Money::USD(1725); $money2 = Money::EUR(1725); $money1->compareTo($money2); }
/** * @expectedException \AssertionError */ public function test_that_compare_to_throws_exception_for_invalid_argument() { $money = Money::USD(1725); $money->compareTo(1725); }