//[Fact] public async Task SystemTest() { var container = "Output"; var cancellationToken = CancellationToken.None; var ukprn = 10005788; var fcsService = new Mock <IFCSProviderService>(); fcsService.Setup(f => f.GetContractAllocationNumberFSPCodeLookupAsync(ukprn, cancellationToken)).ReturnsAsync(new Dictionary <string, string>()); var reportServiceContextMock = new Mock <IReportServiceContext>(); var periodisedValuesLookupProvider = new Mock <IPeriodisedValuesLookupProviderService>(); periodisedValuesLookupProvider.Setup(p => p.ProvideAsync(reportServiceContextMock.Object, cancellationToken)).ReturnsAsync(new PeriodisedValuesLookup()); var referenceDataServiceMock = new Mock <IReferenceDataService>(); var dateTimeProviderMock = new Mock <IDateTimeProvider>(); var persistReportDataMock = new Mock <IPersistReportData>(); referenceDataServiceMock .Setup(m => m.GetLatestIlrSubmissionFileNameAsync(10005788, It.IsAny <CancellationToken>())) .ReturnsAsync("10005788/ILR-10005788-1920-20190801-000001-01.xml"); var fundingSummaryReportModelBuilder = new FundingSummaryReportModelBuilder(referenceDataServiceMock.Object, dateTimeProviderMock.Object); var submissionDateTime = new DateTime(2019, 3, 1); reportServiceContextMock.Setup(c => c.Ukprn).Returns(10005788); reportServiceContextMock.Setup(c => c.Container).Returns(container); reportServiceContextMock.Setup(c => c.SubmissionDateTimeUtc).Returns(submissionDateTime); var excelService = new ExcelService(new FileServiceStub()); dateTimeProviderMock.Setup(p => p.ConvertUtcToUk(submissionDateTime)).Returns(submissionDateTime); var fundingSummaryReportRenderService = new FundingSummaryReportRenderService(); var report = NewReport( Mock.Of <ILogger>(), Mock.Of <IStreamableKeyValuePersistenceService>(), dateTimeProviderMock.Object, fundingSummaryReportModelBuilder, excelService, fundingSummaryReportRenderService, periodisedValuesLookupProvider.Object, fcsService.Object, persistReportDataMock.Object); excelService.ApplyLicense(); using (var memoryStream = new MemoryStream()) { using (var zipArchive = new ZipArchive(memoryStream, ZipArchiveMode.Update)) { await report.GenerateReport(reportServiceContextMock.Object, zipArchive, cancellationToken); } } }
public async Task SystemTest() { var container = "Output"; var ukprn = 123456789; var reportGeneratedAt = new DateTime(2019, 03, 03); var easLastUpdatedAt = new DateTime(2019, 04, 04); var refDataRoot = new ReferenceDataRoot() { Organisations = new List <Organisation>() { new Organisation() { UKPRN = ukprn, Name = "OrganisationName" } }, MetaDatas = new MetaData() { ReferenceDataVersions = new ReferenceDataVersion() { OrganisationsVersion = new OrganisationsVersion { Version = "orgVersion" }, EasFileDetails = new EasFileDetails { UploadDateTime = easLastUpdatedAt }, LarsVersion = new LarsVersion { Version = "larsVersion" }, PostcodesVersion = new PostcodesVersion { Version = "postcodeVersion" }, Employers = new EmployersVersion { Version = "employersVersion" } } } }; var message = new Message() { Header = new MessageHeader() { CollectionDetails = new MessageHeaderCollectionDetails() { FilePreparationDate = new DateTime(2019, 01, 02) } } }; var reportServiceDependentDataMock = new Mock <IReportServiceDependentData>(); reportServiceDependentDataMock.Setup(x => x.Get <ReferenceDataRoot>()).Returns(refDataRoot); reportServiceDependentDataMock.Setup(x => x.Get <IMessage>()).Returns(message); var periodisedValuesLookupProvider = new Mock <IPeriodisedValuesLookupProvider>(); periodisedValuesLookupProvider.Setup(p => p.Provide(It.IsAny <IEnumerable <FundingDataSources> >(), reportServiceDependentDataMock.Object)).Returns(new PeriodisedValuesLookup()); var dateTimeProviderMock = new Mock <IDateTimeProvider>(); dateTimeProviderMock.Setup(x => x.GetNowUtc()).Returns(reportGeneratedAt); dateTimeProviderMock.Setup(x => x.ConvertUtcToUk(reportGeneratedAt)).Returns(reportGeneratedAt); dateTimeProviderMock.Setup(x => x.ConvertUtcToUk(easLastUpdatedAt)).Returns(easLastUpdatedAt); var fundingSummaryReportModelBuilder = new FundingSummaryReportModelBuilder(periodisedValuesLookupProvider.Object, dateTimeProviderMock.Object); var reportServiceContextMock = new Mock <IReportServiceContext>(); reportServiceContextMock.Setup(c => c.Container).Returns(container); reportServiceContextMock.Setup(c => c.Ukprn).Returns(ukprn); reportServiceContextMock.Setup(c => c.IlrReportingFilename).Returns("ILR-11111111-1920-20190507-152000-01"); reportServiceContextMock.Setup(c => c.ServiceReleaseVersion).Returns("ServiceReleaseVersion"); var workBook = new Workbook(); workBook.Worksheets.Add("FundingSummaryReport"); var excelService = new Mock <IExcelFileService>(); excelService.Setup(es => es.NewWorkbook()).Returns(workBook); excelService.Setup(es => es.GetWorksheetFromWorkbook(workBook, "FundingSummaryReport")).Returns(workBook.Worksheets["FundingSummaryReport"]); var fileNameServiceMock = new Mock <IFileNameService>(); var fileName = $"FundingSummaryReport {Guid.NewGuid()}.xlsx"; fileNameServiceMock.Setup(s => s.GetFilename(reportServiceContextMock.Object, "Funding Summary Report", OutputTypes.Excel, true)).Returns(fileName); var fundingSummaryReportRenderService = new FundingSummaryReportRenderService(); var report = NewReport( fileNameServiceMock.Object, fundingSummaryReportModelBuilder, excelService.Object, fundingSummaryReportRenderService); var cancellationToken = CancellationToken.None; await report.GenerateAsync(reportServiceContextMock.Object, reportServiceDependentDataMock.Object, cancellationToken); fileNameServiceMock.VerifyAll(); excelService.VerifyAll(); }