//TODO use currencies int this method instead of currencynames public decimal Exchange(string currencyIsoNameFrom, string currencyIsoNameTo, decimal amount) { //DKK var baseCurrency = _currencyRateService.GetBaseCurrency(); var currencyFrom = _currencyRateService.GetCurrencyRate(currencyIsoNameFrom); var currencyTo = _currencyRateService.GetCurrencyRate(currencyIsoNameTo); IExchangeCase exchangeCase = new ExchangeCaseFactory().GetExchangeCase(currencyFrom, currencyTo, baseCurrency); return(exchangeCase.Exchange(amount)); }
public void GetCase_ReturnsCurrencyFromAndCurrencyToAreNotBaseCase_WhenToAndFromCurrenciesAreNotBase() { var currencyFrom = new CurrencyRate { IsoName = "EUR" }; var currencyTo = new CurrencyRate { IsoName = "USD" }; var currencyBase = new CurrencyRate { IsoName = "DKK" }; var factory = new ExchangeCaseFactory(); var result = factory.GetExchangeCase(currencyFrom, currencyTo, currencyBase); Assert.IsInstanceOf <CurrencyFromAndCurrencyToAreNotBaseCase>(result); }