/** * {@inheritdoc} */ public static function setUpBeforeClass() { self::$fooCurrency = Currency::create('FOO', 1, 'Foo currency', 0); self::$barCurrency = Currency::create('BAR', 2, 'Bar currency', 2); self::$bazCurrency = Currency::create('BAZ', 3, 'Baz currency', 3); self::$competingFooCurrency = Currency::create('FOO', 999, 'A competing foo currency', 2); }
/** * @depends testRemoveCustomCurrency */ public function testAttemptToOverrideISOCurrency() { $euro = Currency::create('EUR', 0, 'Another Euro', 6); DefaultCurrencyProvider::getInstance()->addCurrency($euro); $isoCurrencies = ISOCurrencyProvider::getInstance()->getAvailableCurrencies(); $this->assertCurrencyProviderContains($isoCurrencies, DefaultCurrencyProvider::getInstance()); }
public function testGetAvailableCurrencies() { $providerChain = $this->createCurrencyProviderChain(); // Add a different GBP instance, that comes after the first one. // The first instance available in the chain takes precedence. $provider = new ConfigurableCurrencyProvider(); $provider->addCurrency(Currency::create('GBP', 999, 'A competing GBP instance', 6)); $providerChain->addCurrencyProvider($provider); $isoCurrencyProvider = ISOCurrencyProvider::getInstance(); $this->assertCurrencyProviderContains(['EUR' => $isoCurrencyProvider->getCurrency('EUR'), 'GBP' => $isoCurrencyProvider->getCurrency('GBP'), 'USD' => $isoCurrencyProvider->getCurrency('USD'), 'CAD' => $isoCurrencyProvider->getCurrency('CAD')], $providerChain); }
/** * {@inheritdoc} */ public function getAvailableCurrencies() { if ($this->isPartial) { foreach ($this->currencyData as $currencyCode => $data) { if (!isset($this->currencies[$currencyCode])) { $this->currencies[$currencyCode] = Currency::create(...$data); } } $this->isPartial = false; } return $this->currencies; }
/** * @expectedException \InvalidArgumentException */ public function testCreateWithNegativeFractionDigits() { Currency::create('BTC', 0, 'BitCoin', -1); }
public function testParseWithCustomCurrency() { $bitCoin = Currency::create('BTC', 0, 'BitCoin', 8); DefaultCurrencyProvider::getInstance()->addCurrency($bitCoin); try { $money = Money::parse('BTC 1.23456789'); } finally { DefaultCurrencyProvider::getInstance()->removeCurrency($bitCoin); } $this->assertMoneyEquals('1.23456789', 'BTC', $money); }