public async Task TestFundingReportGeneration() { var ukprn = 12345678; var jobId = 100; var reportName = "EAS Funding Report"; var filename = $"12345678_100_EAS Funding Report-12345678-20200801-090000.csv"; var container = "container"; var submissionDate = new DateTime(2020, 8, 1, 9, 0, 0); var jobContextMock = new Mock <IEasJobContext>(); jobContextMock.Setup(jc => jc.FileReference).Returns("Filename"); jobContextMock.Setup(jc => jc.Ukprn).Returns(ukprn); jobContextMock.Setup(jc => jc.Container).Returns(container); jobContextMock.Setup(jc => jc.JobId).Returns(jobId); jobContextMock.Setup(jc => jc.SubmissionDateTimeUtc).Returns(submissionDate); var fileNameServiceMock = new Mock <IFileNameService>(); var csvServiceMock = new Mock <ICsvFileService>(); fileNameServiceMock.Setup(fns => fns.GetFilename(ukprn, jobId, reportName, It.IsAny <DateTime>(), OutputTypes.Csv)).Returns(filename); var report = new FundingReport(fileNameServiceMock.Object, csvServiceMock.Object); var result = await report.GenerateReportAsync(jobContextMock.Object, new EasCsvRecordBuilder().GetValidRecords(), new List <ValidationErrorModel>(), CancellationToken.None); result.First().Should().Be(filename); result.Should().HaveCount(1); fileNameServiceMock.VerifyAll(); csvServiceMock.VerifyAll(); }
public async Task TestFundingReportGeneration(string sourceFileName, string collectionName, int expectedZipEntryCount) { var dateTime = DateTime.UtcNow; var filename = $"10005752/1/ESF-2108 ESF (Round 2) Supplementary Data Funding Report {dateTime:yyyyMMdd-HHmmss}"; var supplementaryDataWrapper = new SupplementaryDataWrapper() { SupplementaryDataLooseModels = GetSupplementaryDataLooseModels(), SupplementaryDataModels = GetSupplementaryDataModels(), ValidErrorModels = new List <ValidationErrorModel>() }; Mock <IDateTimeProvider> dateTimeProviderMock = new Mock <IDateTimeProvider>(); dateTimeProviderMock.Setup(x => x.GetNowUtc()).Returns(dateTime); dateTimeProviderMock.Setup(x => x.ConvertUtcToUk(It.IsAny <DateTime>())).Returns(dateTime); var testStream = new MemoryStream(); var csvServiceMock = new Mock <ICsvFileService>(); csvServiceMock.Setup(x => x.WriteAsync <FundingReportModel, FundingReportMapper>(It.IsAny <List <FundingReportModel> >(), $"{filename}.csv", It.IsAny <string>(), It.IsAny <CancellationToken>(), null, null)) .Returns(Task.CompletedTask); Mock <IReferenceDataService> referenceDataService = new Mock <IReferenceDataService>(); referenceDataService.Setup(m => m.GetLarsVersion(It.IsAny <CancellationToken>())).ReturnsAsync("123456"); referenceDataService.Setup(m => m.GetOrganisationVersion(It.IsAny <CancellationToken>())).ReturnsAsync("234567"); referenceDataService.Setup(m => m.GetPostcodeVersion(It.IsAny <CancellationToken>())).ReturnsAsync("345678"); referenceDataService.Setup(m => m.GetProviderName(It.IsAny <int>(), It.IsAny <CancellationToken>())).Returns("Foo College"); referenceDataService.Setup(m => m.GetDeliverableUnitCosts(It.IsAny <string>(), It.IsAny <IList <string> >())) .Returns(new List <DeliverableUnitCost>()); Mock <IVersionInfo> versionInfo = new Mock <IVersionInfo>(); versionInfo.Setup(m => m.ServiceReleaseVersion).Returns("1.2.3.4"); var valueProvider = new ValueProvider(); var fundigReport = new FundingReport( dateTimeProviderMock.Object, csvServiceMock.Object, referenceDataService.Object); SourceFileModel sourceFile = GetEsfSourceFileModel(); sourceFile.FileName = sourceFileName; var esfJobContextMock = new Mock <IEsfJobContext>(); esfJobContextMock.Setup(x => x.UkPrn).Returns(10005752); esfJobContextMock.Setup(x => x.JobId).Returns(1); esfJobContextMock.Setup(x => x.BlobContainerName).Returns("TestContainer"); esfJobContextMock.Setup(x => x.CollectionYear).Returns(1819); esfJobContextMock.Setup(x => x.CollectionName).Returns(collectionName); await fundigReport.GenerateReport(esfJobContextMock.Object, sourceFile, supplementaryDataWrapper, CancellationToken.None); csvServiceMock.VerifyAll(); }
public void BuildModels_Counts() { var wrapper = new SupplementaryDataWrapper(); wrapper.SupplementaryDataModels = new List <SupplementaryDataModel> { new SupplementaryDataModel() { CalendarMonth = 7, CalendarYear = 2019, ConRefNumber = "ABC123", CostType = "CType1", DeliverableCode = "DCode", LearnAimRef = "XYZ1234", ProviderSpecifiedReference = "A", Reference = "TestReference", SupplementaryDataPanelDate = new DateTime(2019, 7, 1), ULN = 12345678, Value = 100 }, new SupplementaryDataModel() { CalendarMonth = 7, CalendarYear = 2019, ConRefNumber = "ABC123", CostType = "CType2", DeliverableCode = "DCode", LearnAimRef = "XYZ1234", ProviderSpecifiedReference = "A", Reference = "TestReference", SupplementaryDataPanelDate = new DateTime(2019, 7, 1), ULN = 12345678, Value = 100 } }; wrapper.ValidErrorModels = new List <ValidationErrorModel> { new ValidationErrorModel() { IsWarning = true, CalendarMonth = "7", CalendarYear = "2019", ConRefNumber = "ABC123", CostType = "CType1", DeliverableCode = "DCode", LearnAimRef = "XYZ1234", ProviderSpecifiedReference = "A", Reference = "TestReference", SupplementaryDataPanelDate = "01/07/2019", ULN = "12345678", Value = "100" }, new ValidationErrorModel() { IsWarning = false, CalendarMonth = "7", CalendarYear = "2019", ConRefNumber = "ABC123", CostType = "CType2", DeliverableCode = "DCode", LearnAimRef = "XYZ1234", ProviderSpecifiedReference = "A", Reference = "TestReference", SupplementaryDataPanelDate = "01/07/2019", ULN = "12345678", Value = "100" } }; var reportModels = new FundingReport( Mock.Of <IDateTimeProvider>(), Mock.Of <ICsvFileService>(), Mock.Of <IReferenceDataService>()).BuildModels(wrapper); reportModels.Should().HaveCount(1); }