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); }
/** * @depends testRegisterSecondCurrency * * @param ConfigurableCurrencyProvider $provider * * @return ConfigurableCurrencyProvider */ public function testRegisterCurrencyOverride(ConfigurableCurrencyProvider $provider) { $provider->addCurrency(self::$competingFooCurrency); $this->assertCurrencyProviderContains(['FOO' => self::$competingFooCurrency, 'BAR' => self::$barCurrency], $provider); return $provider; }
/** * Adds a currency to the default currency provider. * * If a currency with the same currency code is already registered, * and that currency is not an ISO currency, it will be overridden. * * @param Currency $currency The currency to add. * * @return DefaultCurrencyProvider This instance, for chaining. */ public function addCurrency(Currency $currency) { $this->configurableCurrencyProvider->addCurrency($currency); return $this; }