/** * @param CartId $cartId * @param string $currency * * @throws InvalidArgumentException */ public function __construct(CartId $cartId, string $currency) { if (!Currencies::isValid($currency)) { throw InvalidArgumentException::invalidCurrency($currency); } $this->id = $cartId; $this->items = []; $this->currency = $currency; }
/** * @param int $amount Amount, expressed in the smallest units of $currency (eg cents) * @param string $currency * @param int $precision used to calculate float value, 10000 cents / 100 = 100.00 * * @throws InvalidArgumentException */ public function __construct(int $amount, string $currency, int $precision = self::DEFAULT_PRECISION) { if ($amount < 0) { throw InvalidArgumentException::negativePriceAmount($amount); } if ($precision < 0) { throw InvalidArgumentException::negativePricePrecision($precision); } if (!Currencies::isValid($currency)) { throw InvalidArgumentException::invalidCurrency($currency); } $this->amount = $amount; $this->currency = $currency; $this->precision = $precision; }
function test_ignoring_lowercase_in_currency_code_validation() { $this->assertTrue(Currencies::isValid("pln")); }