public async Task GivenValidRequest_ThenReturnsAssetAggregationResponse(int uniqueRecords, decimal?agencyEquityValue, decimal?agencyFairValue, decimal?movementInFairValue) { //arrange var assetAggregatesOutputModel = new AssetAggregatesOutputModel { UniqueRecords = uniqueRecords, MoneyPaidOut = agencyEquityValue, AssetValue = agencyFairValue, MovementInAssetValue = movementInFairValue }; _mockUseCase.Setup(s => s.ExecuteAsync(It.IsAny <CalculateAssetAggregateRequest>(), It.IsAny <CancellationToken>())) .ReturnsAsync(new CalculateAssetAggregateResponse { AssetAggregates = assetAggregatesOutputModel }); var request = new CalculateAssetAggregateRequest(); //act var response = await _classUnderTest.Get(request); //assert response.Should().NotBeNull(); var result = response as ObjectResult; result.Should().NotBeNull(); result.Value.Should().BeOfType <ResponseData <CalculateAssetAggregateResponse> >(); var apiResponse = result.Value as ResponseData <CalculateAssetAggregateResponse>; response.Should().NotBeNull(); apiResponse.Data.AssetAggregates.Should().BeEquivalentTo(assetAggregatesOutputModel); }
public async Task GivenValidRequestWithAcceptTextCsvHeader_ThenReturnsListOfAssetAggregatesOutputModel(int uniqueRecords, decimal?agencyEquityValue, decimal?agencyFairValue, decimal?movementInFairValue) { //arrange var assetAggregatesOutputModel = new AssetAggregatesOutputModel { UniqueRecords = uniqueRecords, MoneyPaidOut = agencyEquityValue, AssetValue = agencyFairValue, MovementInAssetValue = movementInFairValue }; _mockUseCase.Setup(s => s.ExecuteAsync(It.Is <CalculateAssetAggregateRequest>(a => a.Address.Equals("test")), It.IsAny <CancellationToken>())) .ReturnsAsync(new CalculateAssetAggregateResponse { AssetAggregates = assetAggregatesOutputModel }); _classUnderTest.ControllerContext = new ControllerContext { HttpContext = new DefaultHttpContext() }; _classUnderTest.ControllerContext.HttpContext.Request.Headers.Add(new KeyValuePair <string, StringValues>("accept", "text/csv")); var request = new CalculateAssetAggregateRequest { Address = "test" }; //act var response = await _classUnderTest.Get(request).ConfigureAwait(false); //assert response.Should().NotBeNull(); var result = response as ObjectResult; result.Should().NotBeNull(); result.Value.Should().BeOfType <List <AssetAggregatesOutputModel> >(); var list = result.Value as List <AssetAggregatesOutputModel>; list.Should().NotBeNullOrEmpty(); list.ElementAtOrDefault(0).Should().BeEquivalentTo(assetAggregatesOutputModel); }