public async Task CreateZipAsync_SystemTest_NewZip()
        {
            var zipPath = @"TestContainer\Create.zip";

            if (File.Exists(zipPath))
            {
                File.Delete(zipPath);
            }

            var cancellationToken = CancellationToken.None;
            var outputFileName    = "Create.zip";
            var container         = "TestContainer";

            var fileNames = new List <string>
            {
                "TestFile1.csv",
                "TestFile2.csv",
                "TestFile3.csv"
            };

            var fileService        = new FileSystemFileService();
            var zipArchivieService = new ZipArchiveService();

            await NewService(fileService, zipArchivieService).CreateZipAsync(outputFileName, fileNames, container, cancellationToken);

            using (Stream stream = new FileStream(zipPath, FileMode.Open))
            {
                var count = new ZipArchive(stream, ZipArchiveMode.Read).Entries.Count;
                count.Should().Be(3);
            }
        }
示例#2
0
        public async Task GenerateAsync()
        {
            // Arrange
            var cancellationToken = CancellationToken.None;

            var contextMock = new Mock <IReportServiceContext>();

            contextMock.SetupGet(c => c.Container).Returns(@"C:\Temp");
            contextMock.SetupGet(c => c.CollectionYear).Returns(1920);
            contextMock.SetupGet(c => c.ReturnPeriod).Returns(1);

            var dateTimeProvider = new Mock <IDateTimeProvider>();

            dateTimeProvider.Setup(sm => sm.GetNowUtc()).Returns(DateTime.Now);

            IFileNameService fileNameService = new FileNameService(dateTimeProvider.Object);

            IFileService    fileService = new FileSystemFileService();
            ICsvFileService csvService  = new CsvFileService(fileService);
            var             loggerMock  = new Mock <ILogger>();

            IFcsRepositoryService fcsRepositoryService = new FcsRepositoryService("(local);Database=FCS;User Id=User;Password=Password1;Encrypt=True;");
            ISummarisedActualsRepositoryService summarisedActualsRepositoryService = new SummarisedActualsRepositoryService("data source=(local);initial catalog=SummarisedActuals;User Id=User;Password=Password1;Encrypt=True;");

            IPeriodSummaryDataProvider periodSummaryDataProvider = new PeriodSummaryDataProvider(summarisedActualsRepositoryService, fcsRepositoryService, loggerMock.Object);

            var periodSummaryReport = new PeriodSummaryReport(fileNameService, csvService, null, periodSummaryDataProvider, loggerMock.Object);

            // Act
            var result = await periodSummaryReport.GenerateAsync(contextMock.Object, cancellationToken);

            // Assert
            result.Should().NotBeNull();
        }
        public async Task CreateZipAsync_SystemTest_UpdateZip()
        {
            var cancellationToken = CancellationToken.None;
            var outputFileName    = "Update.zip";
            var container         = "TestContainer";

            var fileNames = new List <string>
            {
                "TestFile1.csv",
                "TestFile2.csv",
                "TestFile3.csv"
            };

            var fileService        = new FileSystemFileService();
            var zipArchivieService = new ZipArchiveService();

            int countBefore;
            int countAfter;

            using (Stream stream = new FileStream(@"TestContainer\Update.zip", FileMode.Open))
            {
                countBefore = new ZipArchive(stream, ZipArchiveMode.Read).Entries.Count;
            }

            await NewService(fileService, zipArchivieService).CreateZipAsync(outputFileName, fileNames, container, cancellationToken);

            using (Stream stream = new FileStream(@"TestContainer\Update.zip", FileMode.Open))
            {
                countAfter = new ZipArchive(stream, ZipArchiveMode.Read).Entries.Count;
            }

            countBefore.Should().Be(1);
            countAfter.Should().Be(3);
        }
示例#4
0
        public async Task GenerateReport_ThreeFundingYears()
        {
            var ukprn        = 12345678;
            var jobid        = 1;
            var reportFolder = "FundingSummaryTestThreeYears";

            TestFixture(reportFolder, ukprn, jobid);

            var esfJobContext     = new Mock <IEsfJobContext>();
            var sourceFile        = new Mock <ISourceFileModel>();
            var wrapper           = new SupplementaryDataWrapper();
            var cancellationToken = CancellationToken.None;

            var testModels = new List <IFundingSummaryReportTab>
            {
                new FundingSummaryReportTab
                {
                    Title   = FundingSummaryReportConstants.BodyTitle,
                    TabName = "ConRef1",
                    Header  = TestHeader("ConRef1", 3),
                    Body    = TestBodyModels(3),
                    Footer  = TestFooter()
                },
                new FundingSummaryReportTab
                {
                    Title   = FundingSummaryReportConstants.BodyTitle,
                    TabName = "ConRef2",
                    Header  = TestHeader("ConRef2", 3),
                    Body    = TestBodyModels(3),
                    Footer  = TestFooter()
                }
            };

            esfJobContext.Setup(x => x.UkPrn).Returns(ukprn);
            esfJobContext.Setup(x => x.JobId).Returns(jobid);
            esfJobContext.Setup(x => x.StartCollectionYearAbbreviation).Returns("20");
            esfJobContext.Setup(x => x.CollectionYear).Returns(2021);
            esfJobContext.Setup(x => x.ReturnPeriod).Returns("R05");
            esfJobContext.Setup(x => x.CurrentPeriod).Returns(5);
            esfJobContext.Setup(x => x.BlobContainerName).Returns(reportFolder);

            var modelBuilder     = new Mock <IFundingSummaryReportModelBuilder>();
            var renderService    = new FundingSummaryReportRenderService();
            var dateTimeProvider = new Mock <IDateTimeProvider>();
            var fileService      = new FileSystemFileService();
            var excelFileService = new ExcelFileService(fileService);

            modelBuilder.Setup(x => x.Build(esfJobContext.Object, cancellationToken)).ReturnsAsync(testModels);

            await NewReport(modelBuilder.Object, renderService, dateTimeProvider.Object, excelFileService)
            .GenerateReport(esfJobContext.Object, sourceFile.Object, wrapper, cancellationToken);
        }