public async Task HandleAsync_GivenStoredProcedureReturnItems_MatchingFileContent() { var complianceYear = fixture.Create <int>(); var quarter = fixture.Create <int>(); var facilityType = fixture.Create <FacilityType>(); var returnStatus = fixture.Create <ReportReturnStatus>(); var authority = fixture.Create <Guid>(); var area = fixture.Create <Guid>(); var pat = fixture.Create <Guid>(); var resubmission = fixture.Create <bool>(); var aatf = fixture.Create <string>(); var csvData1 = new AatfAeReturnData { Name = fixture.Create <string>(), ApprovalNumber = fixture.Create <string>(), OrganisationName = fixture.Create <string>(), ReturnStatus = fixture.Create <string>(), CreatedDate = fixture.Create <DateTime>(), SubmittedBy = fixture.Create <string>(), SubmittedDate = fixture.Create <DateTime>(), CompetentAuthorityAbbr = fixture.Create <string>(), ReSubmission = fixture.Create <string>() }; var csvData2 = new AatfAeReturnData { Name = fixture.Create <string>(), ApprovalNumber = fixture.Create <string>(), OrganisationName = fixture.Create <string>(), ReturnStatus = fixture.Create <string>(), CreatedDate = fixture.Create <DateTime>(), SubmittedBy = fixture.Create <string>(), SubmittedDate = fixture.Create <DateTime>(), CompetentAuthorityAbbr = fixture.Create <string>(), ReSubmission = fixture.Create <string>() }; var csvData3 = new AatfAeReturnData { Name = fixture.Create <string>(), ApprovalNumber = fixture.Create <string>(), OrganisationName = fixture.Create <string>(), ReturnStatus = fixture.Create <string>(), CreatedDate = fixture.Create <DateTime>(), SubmittedBy = fixture.Create <string>(), SubmittedDate = fixture.Create <DateTime>(), CompetentAuthorityAbbr = fixture.Create <string>(), ReSubmission = fixture.Create <string>() }; A.CallTo(() => storedProcedures.GetAatfAeReturnDataCsvData(complianceYear, quarter, (int)facilityType, (int)returnStatus, authority, area, pat, resubmission)) .Returns(new List <AatfAeReturnData> { csvData1, csvData2, csvData3 }); var request = new GetAatfAeReturnDataCsv(complianceYear, quarter, facilityType, returnStatus, authority, pat, area, aatf, resubmission); var data = await handler.HandleAsync(request); data.FileContent.Should().Contain("Name of AATF / AE,Approval number,Organisation name,Submission status,Date created (GMT),Date submitted (GMT),Submitted by,Appropriate authority,First submission / resubmission,"); data.FileContent.Should().Contain($"{csvData1.Name},{csvData1.ApprovalNumber},{csvData1.OrganisationName},{csvData1.ReturnStatus},{csvData1.CreatedDate},{csvData1.SubmittedDate},{csvData1.SubmittedBy},{csvData1.CompetentAuthorityAbbr},{csvData1.ReSubmission}"); data.FileContent.Should().Contain($"{csvData2.Name},{csvData2.ApprovalNumber},{csvData2.OrganisationName},{csvData2.ReturnStatus},{csvData2.CreatedDate},{csvData2.SubmittedDate},{csvData2.SubmittedBy},{csvData2.CompetentAuthorityAbbr},{csvData2.ReSubmission}"); data.FileContent.Should().Contain($"{csvData3.Name},{csvData3.ApprovalNumber},{csvData3.OrganisationName},{csvData3.ReturnStatus},{csvData3.CreatedDate},{csvData3.SubmittedDate},{csvData3.SubmittedBy},{csvData3.CompetentAuthorityAbbr},{csvData3.ReSubmission}"); }