public void GetRate_EmptyResponse_ExceptionThrown() { var client = new Mock <INationalBankKzClient>(); NbRatesResponse response = new NbRatesResponse(); client.Setup(p => p.GetRates(It.IsAny <DateTime>())).ReturnsAsync(response); KztCurrencyRateService service = new KztCurrencyRateService(client.Object); Assert.ThrowsAsync <Exception>(() => service.GetRate(DateTime.Now)); }
public async void ConvertSum_CorrectInput_ReturnResult(DateTime date, NbRatesResponse response) { var client = new Mock <INationalBankKzClient>(); client.Setup(p => p.GetRates(It.IsAny <DateTime>())).ReturnsAsync(response); KztCurrencyRateService service = new KztCurrencyRateService(client.Object); decimal expected = 87; decimal actual = await service.ConvertSum(15, date); Assert.Equal(expected, actual, 1); }
public override async Task <decimal> GetRate(DateTime date) { ValidateDate(date); NbRatesResponse response = await _client.GetRates(date); if (response == null) { throw new Exception("Нет данных на указанную дату"); } NbItemResponse nbItem = response.Items.FirstOrDefault(x => x.Title == "RUB"); if (nbItem == null) { throw new Exception("Нет курса на указанную дату"); } return(nbItem.Description / nbItem.Quant); }
public static IEnumerable <object[]> CorrectData() { NbRatesResponse result = new NbRatesResponse() { Items = new List <NbItemResponse>() { new NbItemResponse() { Title = "RUB", Description = 58, Quant = 10 } } }; return(new List <object[]> { new object[] { DateTime.Now, result }, new object[] { DateTime.Now.AddDays(-7), result }, new object[] { DateTime.Now.AddMonths(-5), result } }); }