private HistoricalRateResponse GetHistoricalRateResponsesForSevenDaysInThePast(string currency) { int daysToLoop = 7; DateTime loopDateTime = DateTime.UtcNow; HistoricalRateResponse result = new HistoricalRateResponse(); for (int i = 0; i < daysToLoop; i++) { HistoricalRateApiResult apiResult = this._currencyLayerApiProvider.GetHistoricalRatesForGivenCurrency(currency, loopDateTime); if (apiResult.Success == false) { throw new Exception("Currency Layer Api returned error!"); } var List = new List <double>(); var unixTimestamp = ((DateTimeOffset)loopDateTime).ToUnixTimeMilliseconds(); List.Add(unixTimestamp); List.Add((double)apiResult.Quotes.First().Value); result.Quotes.Add(List); loopDateTime = loopDateTime.AddDays(-1); } result.Success = true; result.Message = "Successful Operation"; return(result); }
public void GetHistoricalRateEndpointShouldReturnSuccessFalseOnNullQuotes() { //ARRANGE var currencyLayerApiProviderMock = new Mock <ICurrencyLayerApiProvider>(MockBehavior.Strict); var apiResponseMock = new HistoricalRateApiResult(); apiResponseMock.Success = true; currencyLayerApiProviderMock.Setup(x => x.GetHistoricalRatesForGivenCurrency(It.IsAny <string>(), It.IsAny <DateTime>())).Returns(apiResponseMock); string currency = "USD"; //ACT var controller = new HistoricalRateProcessor(currencyLayerApiProviderMock.Object); var result = controller.GetHistoricalRatesForGivenCurrency(currency); //ASSERT Assert.Equal(false, result.Success); }
public void GetHistoricalRateEndpointShouldNotReturnSuccessMessageOnFailure() { //ARRANGE var currencyLayerApiProviderMock = new Mock <ICurrencyLayerApiProvider>(MockBehavior.Strict); var apiResponseMock = new HistoricalRateApiResult(); apiResponseMock.Success = false; apiResponseMock.Quotes = new Dictionary <string, decimal>(); apiResponseMock.Quotes.Add("teste", 9.0m); currencyLayerApiProviderMock.Setup(x => x.GetHistoricalRatesForGivenCurrency(It.IsAny <string>(), It.IsAny <DateTime>())).Returns(apiResponseMock); string currency = "USD"; //ACT var controller = new HistoricalRateProcessor(currencyLayerApiProviderMock.Object); var result = controller.GetHistoricalRatesForGivenCurrency(currency); //ASSERT Assert.NotEqual("Successful Operation", result.Message); }
public void GetHistoricalRateEndpointShouldReturnAllSevenQuotesOnSuccess() { //ARRANGE var currencyLayerApiProviderMock = new Mock <ICurrencyLayerApiProvider>(MockBehavior.Strict); var apiResponseMock = new HistoricalRateApiResult(); apiResponseMock.Success = true; apiResponseMock.Quotes = new Dictionary <string, decimal>(); apiResponseMock.Quotes.Add("teste", 9.0m); currencyLayerApiProviderMock.Setup(x => x.GetHistoricalRatesForGivenCurrency(It.IsAny <string>(), It.IsAny <DateTime>())).Returns(apiResponseMock); string currency = "USD"; //ACT var controller = new HistoricalRateProcessor(currencyLayerApiProviderMock.Object); var result = controller.GetHistoricalRatesForGivenCurrency(currency); //ASSERT Assert.Equal(7, result.Quotes.Count); }