/**
  * {@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);
 }
Пример #2
0
 /**
  * @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());
 }
Пример #3
0
 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);
 }
Пример #4
0
 /**
  * {@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;
 }
Пример #5
0
 /**
  * @expectedException \InvalidArgumentException
  */
 public function testCreateWithNegativeFractionDigits()
 {
     Currency::create('BTC', 0, 'BitCoin', -1);
 }
Пример #6
0
 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);
 }