public async Task GetQuoteForeignCurrencyWhenResponseIsSuccessTest() { var request = new QuoteForeignCurrencyRequest { Amount = 10, Currency = Currency.USD }; _exchangeRateServiceMock.Setup(setup => setup.GetQuoteForeignCurrencyAsync(request)) .ReturnsAsync(ExchangeRateResponseBuilder.ExchangeRateResponse); var controller = new ExchangeRateController(_exchangeRateServiceMock.Object); var service = await controller.GetQuoteForeignCurrencyAsync(request); Assert.IsType <OkObjectResult>(service.Result); }
public async Task <ExchangeRateResponse> GetQuoteForeignCurrencyAsync(QuoteForeignCurrencyRequest request) { var foreignExchangeRate = await _foreignExchangeRatesService.GetLatestExchangeRateAsync(request.Currency); if (foreignExchangeRate == null) { _domainNotification.AddNotification("QuoteForeignCurrency", "Foreign Exchange Rates API request error"); return(null); } var exchangeRate = new ExchangeRate(request.Amount, foreignExchangeRate.Rates.BrazilianReal); var calculateQuoteForeignCurrency = exchangeRate.CalculateQuoteForeignCurrency(); return(new ExchangeRateResponse(calculateQuoteForeignCurrency)); }
public async Task GetQuoteForeignCurrencyWhenResponseIsNotNullTest() { var request = new QuoteForeignCurrencyRequest { Amount = 10, Currency = Currency.USD }; _foreignExchangeRatesServiceMock.Setup( setup => setup.GetLatestExchangeRateAsync(request.Currency) ).ReturnsAsync(ForeignExchangeRatesResponseBuilder.ForeignExchangeRatesResponse(request.Currency)); var service = new ExchangeRateService( _foreignExchangeRatesServiceMock.Object, _domainNotificationMock.Object, _exchangeRatePerSegmentMock.Object ); var method = await service.GetQuoteForeignCurrencyAsync(request); Assert.IsType <ExchangeRateResponse>(method); }
public async Task GetQuoteForeignCurrencyWhenExternalForeignExchangeRatesIsNullTest() { var request = new QuoteForeignCurrencyRequest { Amount = 10, Currency = Currency.USD }; ForeignExchangeRatesResponse response = null; _foreignExchangeRatesServiceMock.Setup( setup => setup.GetLatestExchangeRateAsync(request.Currency) ).ReturnsAsync(response); var service = new ExchangeRateService( _foreignExchangeRatesServiceMock.Object, _domainNotificationMock.Object, _exchangeRatePerSegmentMock.Object ); var method = await service.GetQuoteForeignCurrencyAsync(request); Assert.Null(method); }
public async Task <ActionResult <ExchangeRateResponse> > GetQuoteForeignCurrencyAsync( [FromQuery] QuoteForeignCurrencyRequest request ) { return(Ok(await _exchangeRateService.GetQuoteForeignCurrencyAsync(request))); }