public async Task Then_maps_null_response_from_forecasting_api( GetAccountProjectionSummaryQuery query, [Frozen] Mock <IForecastingApiClient <ForecastingApiConfiguration> > mockApiClient, GetAccountProjectionSummaryQueryHandler handler) { mockApiClient .Setup(client => client.Get <GetProjectionCalculationResponse>(It.Is <GetProjectionCalculationRequest>(x => x.GetUrl.Contains(query.AccountId.ToString())))) .ReturnsAsync((GetProjectionCalculationResponse)null); mockApiClient .Setup(client => client.Get <GetExpiringFundsResponse>(It.Is <GetExpiringFundsRequest>(x => x.GetUrl.Contains(query.AccountId.ToString())))) .ReturnsAsync((GetExpiringFundsResponse)null); var result = await handler.Handle(query, CancellationToken.None); result.ExpiryAmounts.Should().BeEmpty(); result.NumberOfMonths.Should().Be(0); result.FundsIn.Should().Be(0); result.FundsOut.Should().Be(0); }
public async Task Then_combines_summary_from_forecasting_api( GetAccountProjectionSummaryQuery query, GetProjectionCalculationResponse projectionCalcApiResponse, GetExpiringFundsResponse expiringFundsApiResponse, [Frozen] Mock <IForecastingApiClient <ForecastingApiConfiguration> > mockApiClient, GetAccountProjectionSummaryQueryHandler handler) { projectionCalcApiResponse.AccountId = query.AccountId; mockApiClient .Setup(client => client.Get <GetProjectionCalculationResponse>(It.Is <GetProjectionCalculationRequest>(x => x.GetUrl.Contains(query.AccountId.ToString())))) .ReturnsAsync(projectionCalcApiResponse); mockApiClient .Setup(client => client.Get <GetExpiringFundsResponse>(It.Is <GetExpiringFundsRequest>(x => x.GetUrl.Contains(query.AccountId.ToString())))) .ReturnsAsync(expiringFundsApiResponse); var result = await handler.Handle(query, CancellationToken.None); result.Should().BeEquivalentTo(projectionCalcApiResponse, opts => opts.ExcludingMissingMembers()); result.ExpiryAmounts.Should().BeEquivalentTo(expiringFundsApiResponse.ExpiryAmounts); }
public void Arrange() { _query = new GetAccountProjectionSummaryQuery { AccountId = ExpectedAccountId, NumberOfMonths = NumberOfMonths }; _validator = new Mock <IValidator <GetAccountProjectionSummaryQuery> >(); _validator.Setup(x => x.ValidateAsync(It.IsAny <GetAccountProjectionSummaryQuery>())) .ReturnsAsync(new ValidationResult { ValidationDictionary = new Dictionary <string, string>() }); _cancellationToken = new CancellationToken(); _service = new Mock <IAccountProjectionService>(); var accountProjectionSummary = new AccountProjectionSummary( ExpectedAccountId, DateTime.Today, 12, 123.56M, 654.32M); _service.Setup(x => x.GetProjectionSummary(ExpectedAccountId, DateTime.Today, 12)).ReturnsAsync(accountProjectionSummary); _handler = new GetAccountProjectionSummaryQueryHandler(_validator.Object, _service.Object); }