public async Task GetHistoryRatesForGivenPeriodsAsync_WhenDateIsInFuture_ShouldReturnBadRequest() { var loggerMock = new Mock <ILogger <ExchangeRatesController> >(); var exchangeRatesManagement = new ExchangeRatesManagement(new Mock <HttpClient>().Object); var sut = new ExchangeRatesController(loggerMock.Object, exchangeRatesManagement); var result = await sut.GetHistoryRatesForGivenPeriodsAsync(new HistoryRatesRequest(new [] { DateTime.Now.AddDays(1) }, "EUR", "EUR")); Assert.IsType <BadRequestObjectResult>(result); }
public async Task GetHistoryRatesForGivenPeriodsAsync_WhenTargetCurrencyIsInvalid_ShouldReturnBadRequest(string targetCurrency) { var loggerMock = new Mock <ILogger <ExchangeRatesController> >(); var exchangeRatesManagement = new ExchangeRatesManagement(new Mock <HttpClient>().Object); var sut = new ExchangeRatesController(loggerMock.Object, exchangeRatesManagement); var result = await sut.GetHistoryRatesForGivenPeriodsAsync(new HistoryRatesRequest(new [] { DateTime.Now }, "EUR", targetCurrency )); Assert.IsType <BadRequestObjectResult>(result); }
public async Task ExchangeRates_SEK_To_NOK_Returns_0970839476467_AsAverage() { var sut = new ExchangeRatesManagement(new HttpClient()); var result = await sut.GetRatesForGivenPeriodsAsync( new HistoryRatesRequest( new[] { new DateTime(2018, 2, 1), new DateTime(2018, 2, 15), new DateTime(2018, 3, 1) }, "SEK", "NOK")); Assert.Equal(0.970839476467m, result.AverageRate, precision: 12); }
public async Task ExchangeRates_WhenDateBefore_1999_01_04_ShouldThrowDateException() { var sut = new ExchangeRatesManagement(new HttpClient()); await Assert.ThrowsAsync <DateException>(async() => await sut.GetRatesForGivenPeriodsAsync( new HistoryRatesRequest( new[] { new DateTime(1998, 2, 1), new DateTime(2018, 2, 15), new DateTime(2018, 3, 1) }, "SEK", "NOK"))); }
public async Task ExchangeRates_WhenBaseCurrencyAndTargetCurrencySame_ShouldThrowCurrencyException() { var sut = new ExchangeRatesManagement(new HttpClient()); await Assert.ThrowsAsync <CurrencyException>(async() => await sut.GetRatesForGivenPeriodsAsync( new HistoryRatesRequest( new[] { new DateTime(2018, 2, 1), new DateTime(2018, 2, 15), new DateTime(2018, 3, 1) }, "NOK", "NOK"))); }
public ExchangeRatesManagementTest() { var httpClientMock = new Mock <HttpClient>(); _sut = new ExchangeRatesManagement(httpClientMock.Object); }