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);
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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);
        }
Beispiel #4
0
        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);
        }