public async Task HandleAsync_VariousParameters_ReturnsFileContent() { var request = new GetPcsAatfComparisonData(fixture.Create <int>(), fixture.Create <int>(), fixture.Create <string>()); var data = await handler.HandleAsync(request); data.FileContent.Should().NotBeEmpty(); }
public async Task HandleAsync_NoComplianceYear_ThrowsArgumentException() { const int complianceYear = 0; var request = new GetPcsAatfComparisonData(complianceYear, fixture.Create <int>(), fixture.Create <string>()); Func <Task> action = async() => await handler.HandleAsync(request); await Assert.ThrowsAsync <ArgumentException>(action); }
public async Task HandleAsync_NotInternalUser_ThrowsSecurityException() { var authorization = new AuthorizationBuilder().DenyInternalAreaAccess().Build(); var handler = new GetPcsAatfComparisonDataHandler(authorization, context, csvWriterFactory, commonDataAccess); var request = new GetPcsAatfComparisonData(fixture.Create <int>(), fixture.Create <int>(), fixture.Create <string>()); Func <Task> action = async() => await handler.HandleAsync(request); await Assert.ThrowsAsync <SecurityException>(action); }
public async Task HandleAsync_GivenOnlyYearParameters_FileNameShouldBeCorrect() { var request = new GetPcsAatfComparisonData(fixture.Create <int>(), null, null); var date = new DateTime(2019, 05, 18, 11, 12, 0); SystemTime.Freeze(date); var data = await handler.HandleAsync(request); data.FileName.Should().Be($"{request.ComplianceYear}_PCS v AATF WEEE data comparison_{date:ddMMyyyy_HHmm}.csv"); SystemTime.Unfreeze(); }
public async Task <ActionResult> DownloadPcsAatfDataDifference(int complianceYear, int?quarter, string obligationType) { CSVFileData fileData; var request = new GetPcsAatfComparisonData(complianceYear, quarter, obligationType); using (var client = apiClient()) { fileData = await client.SendAsync(User.GetAccessToken(), request); } var data = new UTF8Encoding().GetBytes(fileData.FileContent); return(File(data, "text/csv", CsvFilenameFormat.FormatFileName(fileData.FileName))); }
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}"); }