/** * @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; }
/** * @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)); }
/** * @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; }