/**
  * @param int $roundingMode
  *
  * @return CurrencyConverter
  */
 private function createCurrencyConverter($roundingMode)
 {
     $exchangeRateProvider = new ConfigurableExchangeRateProvider();
     $exchangeRateProvider->setExchangeRate('EUR', 'USD', '1.1');
     $exchangeRateProvider->setExchangeRate('USD', 'EUR', '10/11');
     $exchangeRateProvider->setExchangeRate('BSD', 'USD', 1);
     return new CurrencyConverter($exchangeRateProvider, new DefaultContext($roundingMode));
 }
 /**
  * @return ExchangeRateProvider
  */
 private function getExchangeRateProvider()
 {
     $provider = new ConfigurableExchangeRateProvider();
     $provider->setExchangeRate('USD', 'EUR', 0.9);
     $provider->setExchangeRate('USD', 'GBP', 0.8);
     $provider->setExchangeRate('USD', 'CAD', 1.1);
     return new BaseCurrencyExchangeRateProvider($provider, 'USD');
 }
 public static function setUpBeforeClass()
 {
     $provider = new ConfigurableExchangeRateProvider();
     $provider->setExchangeRate('USD', 'GBP', 0.7);
     $provider->setExchangeRate('USD', 'EUR', 0.9);
     self::$provider1 = $provider;
     $provider = new ConfigurableExchangeRateProvider();
     $provider->setExchangeRate('USD', 'EUR', 0.8);
     $provider->setExchangeRate('EUR', 'USD', 1.2);
     self::$provider2 = $provider;
 }
Exemple #4
0
 /**
  * @depends testAddSubtractMoney
  *
  * @param MoneyBag $moneyBag
  */
 public function testTotal(MoneyBag $moneyBag)
 {
     $exchangeRateProvider = new ConfigurableExchangeRateProvider();
     $exchangeRateProvider->setExchangeRate('EUR', 'USD', '1.23456789');
     $exchangeRateProvider->setExchangeRate('JPY', 'USD', '0.00987654321');
     $context = new DefaultContext(RoundingMode::DOWN);
     $currencyConverter = new CurrencyConverter($exchangeRateProvider, $context);
     $this->assertMoneyIs('USD 437.57', $moneyBag->getTotal(Currency::of('USD'), $currencyConverter));
     $context = new DefaultContext(RoundingMode::UP);
     $currencyConverter = new CurrencyConverter($exchangeRateProvider, $context);
     $this->assertMoneyIs('USD 437.59', $moneyBag->getTotal(Currency::of('USD'), $currencyConverter));
 }
Exemple #5
0
 /**
  * @return ConfigurableExchangeRateProvider
  */
 private function getExchangeRateProvider()
 {
     $provider = new ConfigurableExchangeRateProvider();
     $provider->setExchangeRate('EUR', 'USD', 1.1);
     $provider->setExchangeRate('USD', 'EUR', 0.9);
     $provider->setExchangeRate('USD', 'BSD', 1);
     $provider->setExchangeRate('BSD', 'USD', 1);
     $provider->setExchangeRate('EUR', 'GBP', 0.8);
     $provider->setExchangeRate('GBP', 'EUR', 1.2);
     return $provider;
 }