public async Task HandleAsync_GivenStoredProcedureReturnItems_MatchingFileContent() { var complianceYear = fixture.Create <int>(); var quarter = fixture.Create <int>(); var obligationType = fixture.Create <string>(); var csvData1 = new PcsAatfComparisonDataCsvData { ComplianceYear = fixture.Create <int>(), QuarterValue = fixture.Create <string>(), ObligationType = fixture.Create <string>(), Category = fixture.Create <string>(), SchemeNameValue = fixture.Create <string>(), PcsApprovalNumber = fixture.Create <string>(), PcsAbbreviation = fixture.Create <string>(), AatfName = fixture.Create <string>(), AatfApprovalNumber = fixture.Create <string>(), AatfAbbreviation = fixture.Create <string>(), PcsTonnage = fixture.Create <decimal>(), AatfTonnage = fixture.Create <decimal>(), DifferenceTonnage = fixture.Create <decimal>() }; var csvData2 = new PcsAatfComparisonDataCsvData { ComplianceYear = fixture.Create <int>(), QuarterValue = fixture.Create <string>(), ObligationType = fixture.Create <string>(), Category = fixture.Create <string>(), SchemeNameValue = fixture.Create <string>(), PcsApprovalNumber = fixture.Create <string>(), PcsAbbreviation = fixture.Create <string>(), AatfName = fixture.Create <string>(), AatfApprovalNumber = fixture.Create <string>(), AatfAbbreviation = fixture.Create <string>(), PcsTonnage = fixture.Create <decimal>(), AatfTonnage = fixture.Create <decimal>(), DifferenceTonnage = fixture.Create <decimal>() }; var csvData3 = new PcsAatfComparisonDataCsvData { ComplianceYear = fixture.Create <int>(), QuarterValue = fixture.Create <string>(), ObligationType = fixture.Create <string>(), Category = fixture.Create <string>(), SchemeNameValue = fixture.Create <string>(), PcsApprovalNumber = fixture.Create <string>(), PcsAbbreviation = fixture.Create <string>(), AatfName = fixture.Create <string>(), AatfApprovalNumber = fixture.Create <string>(), AatfAbbreviation = fixture.Create <string>(), PcsTonnage = fixture.Create <decimal>(), AatfTonnage = fixture.Create <decimal>(), DifferenceTonnage = fixture.Create <decimal>() }; A.CallTo(() => storedProcedures.GetPcsAatfComparisonDataCsvData(complianceYear, quarter, obligationType)) .Returns(new List <PcsAatfComparisonDataCsvData> { csvData1, csvData2, csvData3 }); var request = new GetPcsAatfComparisonData(complianceYear, quarter, obligationType); var data = await handler.HandleAsync(request); data.FileContent.Should().Contain("Compliance year,Quarter,Obligation type,Category,PCS name,PCS approval number,PCS appropriate authority,AATF name,AATF approval number,AATF appropriate authority,PCS report (t),AATF report(t),Discrepancy between PCS and AATF reports (t)"); data.FileContent.Should().Contain($"{csvData1.ComplianceYear},{csvData1.QuarterValue},{csvData1.ObligationType},{csvData1.Category},{csvData1.SchemeNameValue},{csvData1.PcsApprovalNumber},{csvData1.PcsAbbreviation},{csvData1.AatfName},{csvData1.AatfApprovalNumber},{csvData1.AatfAbbreviation},{csvData1.PcsTonnage},{csvData1.AatfTonnage},{csvData1.DifferenceTonnage}"); data.FileContent.Should().Contain($"{csvData2.ComplianceYear},{csvData2.QuarterValue},{csvData2.ObligationType},{csvData2.Category},{csvData2.SchemeNameValue},{csvData2.PcsApprovalNumber},{csvData2.PcsAbbreviation},{csvData2.AatfName},{csvData2.AatfApprovalNumber},{csvData2.AatfAbbreviation},{csvData2.PcsTonnage},{csvData2.AatfTonnage},{csvData2.DifferenceTonnage}"); data.FileContent.Should().Contain($"{csvData3.ComplianceYear},{csvData3.QuarterValue},{csvData3.ObligationType},{csvData3.Category},{csvData3.SchemeNameValue},{csvData3.PcsApprovalNumber},{csvData3.PcsAbbreviation},{csvData3.AatfName},{csvData3.AatfApprovalNumber},{csvData3.AatfAbbreviation},{csvData3.PcsTonnage},{csvData3.AatfTonnage},{csvData3.DifferenceTonnage}"); }