Example #1
0
            public async Task <CurrencyExchangeRateInfoDto> Handle(Query request, CancellationToken cancellationToken)
            {
                var currencyExchangeRateInfo = await _currencyExchangeRepository.GetCurrencyExchangeRateInfoAsync(request.Dates, request.BaseCurrency, request.TargetCurrency, cancellationToken);

                if (currencyExchangeRateInfo == null)
                {
                    throw new RestException(HttpStatusCode.BadRequest, new { Message = "No result found with this query" });
                }

                // Todo: auto-mapper also can be used
                return(new CurrencyExchangeRateInfoDto
                {
                    Average = currencyExchangeRateInfo.Average,
                    Min = new ExchangeRateDto {
                        Date = currencyExchangeRateInfo.Min.Date, Rate = currencyExchangeRateInfo.Min.Rate
                    },
                    Max = new ExchangeRateDto {
                        Date = currencyExchangeRateInfo.Max.Date, Rate = currencyExchangeRateInfo.Max.Rate
                    }
                });
            }
        public async Task GetCurrencyExchangeRateInfo_WrongBaseCurrency_ReturnsNull()
        {
            // Act
            var result = await _ICurrencyExchangeRepository.GetCurrencyExchangeRateInfoAsync(new string[] { "2019-12-12" }, "XXX", "NOK", CancellationToken.None);

            // Assert
            Assert.Null(result);
        }