static void Main(string[] args) { var path = "C:\\Users\\kater\\Documents\\dot-net\\CurrencyExchangeRate\\CurrencyExchangeRate\\Data\\ExchangeRates.json"; ILogger logger = new ConsoleLogger(); DisplayMessageService displayMessageService = new DisplayMessageService(logger); displayMessageService.WriteCommand("Usage: Exchange <currency pair> <amount to exchange>"); var userResponse = displayMessageService.ReadCommand(); FetchData fetchData = new FetchData(); var exchangeRates = fetchData.LoadJson(path); InputProcessingService inputProcessingService = new InputProcessingService(); ParseInputService parseInput = new ParseInputService(inputProcessingService, exchangeRates); var userCurrencyInputObject = parseInput.ParseInput(userResponse); ExchangeRateCalculationService exchangeRateCalculationService = new ExchangeRateCalculationService(); var result = exchangeRateCalculationService.CalculateExchangeRate(userCurrencyInputObject); displayMessageService.WriteCommand($"The result is {result}"); displayMessageService.ReadCommand(); }
public void ExchangeRateCalculationService_GivenCurrencies_CalculateCorrectExchange(string currencyFrom, string currencyTo, int result) { //Arange var path = "C:\\Users\\kater\\Documents\\dot-net\\CurrencyExchangeRate\\CurrencyExchangeRate\\Data\\ExchangeRates.json"; FetchData fetchData = new FetchData(); var exchangeRates = fetchData.LoadJson(path); var currencyExchangeFrom = exchangeRates.Where(c => c.ISO == currencyFrom).FirstOrDefault(); var currencyExchangeTo = exchangeRates.Where(c => c.ISO == currencyTo).FirstOrDefault(); var amount = 2; var userInputObject = new UserCurrencyInput() { Amount = amount, ExchangeCurrencyFrom = currencyExchangeFrom, ExchangeCurrencyTo = currencyExchangeTo }; //Act var rateCalculation = new ExchangeRateCalculationService(); var rateResult = rateCalculation.CalculateExchangeRate(userInputObject); //Assert result.Should().Be(result); }