/**
  * @depends testAttemptToOverrideISOCurrency
  */
 public function testAttemptToRemoveISOCurrency()
 {
     $euro = ISOCurrencyProvider::getInstance()->getCurrency('EUR');
     DefaultCurrencyProvider::getInstance()->removeCurrency($euro);
     $isoCurrencies = ISOCurrencyProvider::getInstance()->getAvailableCurrencies();
     $this->assertCurrencyProviderContains($isoCurrencies, DefaultCurrencyProvider::getInstance());
 }
Example #2
0
 /**
  * Private constructor. Use `getInstance()` to obtain the singleton instance.
  */
 private function __construct()
 {
     $this->configurableCurrencyProvider = new ConfigurableCurrencyProvider();
     $this->currencyProviderChain = new CurrencyProviderChain();
     $this->currencyProviderChain->addCurrencyProvider(ISOCurrencyProvider::getInstance());
     $this->currencyProviderChain->addCurrencyProvider($this->configurableCurrencyProvider);
 }
 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);
 }
Example #4
0
 public function testGetAvailableCurrencies()
 {
     $provider = ISOCurrencyProvider::getInstance();
     $eur = $provider->getCurrency('EUR');
     $gbp = $provider->getCurrency('GBP');
     $usd = $provider->getCurrency('USD');
     $availableCurrencies = $provider->getAvailableCurrencies();
     $this->assertGreaterThan(100, count($availableCurrencies));
     foreach ($availableCurrencies as $currency) {
         $this->assertInstanceOf(Currency::class, $currency);
     }
     $this->assertSame($eur, $availableCurrencies['EUR']);
     $this->assertSame($gbp, $availableCurrencies['GBP']);
     $this->assertSame($usd, $availableCurrencies['USD']);
 }