public async Task Then_An_Audit_Record_Is_Added(
            DateTime importStartTime,
            string frameworkFile,
            List <Framework> frameworks,
            List <FrameworkImport> frameworkImports,
            List <FrameworkFundingImport> frameworkFundingImports,
            [Frozen] Mock <IImportAuditRepository> importAuditRepository,
            [Frozen] Mock <IJsonFileHelper> jsonFileHelper,
            [Frozen] Mock <IFrameworkImportRepository> frameworkImportRepository,
            [Frozen] Mock <IFrameworkFundingImportRepository> frameworkFundingImportRepository,
            FrameworksImportService frameworksImportService)
        {
            jsonFileHelper.Setup(x => x.GetLatestFrameworkFileFromDataDirectory()).Returns(frameworkFile);
            jsonFileHelper.Setup(x => x.ParseJsonFile <Framework>(frameworkFile)).Returns(frameworks);
            frameworkImportRepository.Setup(x => x.GetAll()).ReturnsAsync(frameworkImports);
            frameworkFundingImportRepository.Setup(x => x.GetAll()).ReturnsAsync(frameworkFundingImports);

            await frameworksImportService.LoadDataFromStaging(importStartTime, frameworkFile);

            importAuditRepository.Verify(x =>
                                         x.Insert(It.Is <ImportAudit>(
                                                      c =>
                                                      c.ImportType.Equals(ImportType.FrameworkImport) &&
                                                      c.FileName.Equals(frameworkFile) &&
                                                      c.RowsImported.Equals(frameworkImports.Count + frameworkFundingImports.Count)
                                                      )));
        }
Exemplo n.º 2
0
        public async Task Then_The_Import_Tables_Are_Deleted_And_New_Data_Imported_Where_Frameworks_Have_FundingPeriods(
            string frameworkFile,
            List <Framework> frameworks,
            Framework framework,
            [Frozen] Mock <IImportAuditRepository> importAuditRepository,
            [Frozen] Mock <IJsonFileHelper> jsonFileHelper,
            [Frozen] Mock <IFrameworkImportRepository> frameworkImportRepository,
            [Frozen] Mock <IFrameworkFundingImportRepository> frameworkFundingImportRepository,
            FrameworksImportService frameworksImportService)
        {
            framework.FundingPeriods = null;
            frameworks.Add(framework);

            var countOfFundingPeriods = frameworks.Where(f => f.FundingPeriods != null).SelectMany(f => f.FundingPeriods).Count();

            importAuditRepository.Setup(x => x.GetLastImportByType(ImportType.FrameworkImport)).ReturnsAsync((ImportAudit)null);

            jsonFileHelper.Setup(x => x.GetLatestFrameworkFileFromDataDirectory()).Returns(frameworkFile);
            jsonFileHelper.Setup(x => x.ParseJsonFile <Framework>(It.IsAny <string>())).Returns(frameworks);

            var result = await frameworksImportService.ImportDataIntoStaging();

            result.Success.Should().BeTrue();
            result.LatestFile.Should().Be(frameworkFile);

            frameworkImportRepository.Verify(x => x.DeleteAll(), Times.Once);
            frameworkFundingImportRepository.Verify(x => x.DeleteAll(), Times.Once);
            frameworkImportRepository.Verify(x => x.InsertMany(It.Is <List <FrameworkImport> >(c => c.Count.Equals(frameworks.Count - 1))), Times.Once);
            frameworkFundingImportRepository.Verify(x => x.InsertMany(It.Is <List <FrameworkFundingImport> >(c => c.Count.Equals(countOfFundingPeriods))), Times.Once);
        }
Exemplo n.º 3
0
        public async Task Then_The_File_Is_Read_From_The_Data_Files_Location(
            string frameworkFile,
            [Frozen] Mock <IJsonFileHelper> jsonFileHelper,
            FrameworksImportService frameworksImportService)
        {
            jsonFileHelper.Setup(x => x.GetLatestFrameworkFileFromDataDirectory()).Returns(frameworkFile);

            await frameworksImportService.ImportDataIntoStaging();

            jsonFileHelper.Verify(x => x.ParseJsonFile <Framework>(frameworkFile), Times.Once);
        }
Exemplo n.º 4
0
        public async Task Then_If_There_Is_No_File_No_Data_Is_Imported(
            [Frozen] Mock <IJsonFileHelper> jsonFileHelper,
            [Frozen] Mock <IFrameworkImportRepository> frameworkImportRepository,
            [Frozen] Mock <IFrameworkFundingImportRepository> frameworkFundingImportRepository,
            FrameworksImportService frameworksImportService)
        {
            jsonFileHelper.Setup(x => x.GetLatestFrameworkFileFromDataDirectory()).Returns(string.Empty);

            var result = await frameworksImportService.ImportDataIntoStaging();

            result.Success.Should().BeFalse();
            result.LatestFile.Should().BeNull();

            frameworkImportRepository.Verify(x => x.DeleteAll(), Times.Never());
            frameworkImportRepository.Verify(x => x.InsertMany(It.IsAny <IEnumerable <Domain.Entities.FrameworkImport> >()), Times.Never);
            frameworkFundingImportRepository.Verify(x => x.DeleteAll(), Times.Never());
            frameworkFundingImportRepository.Verify(x => x.InsertMany(It.IsAny <IEnumerable <Domain.Entities.FrameworkFundingImport> >()), Times.Never);
        }
Exemplo n.º 5
0
        public async Task Then_If_The_File_Has_Already_Been_Imported_No_Other_Data_Is_Imported(
            string frameworkFile,
            ImportAudit auditFile,
            [Frozen] Mock <IImportAuditRepository> importAuditRepository,
            [Frozen] Mock <IJsonFileHelper> jsonFileHelper,
            [Frozen] Mock <IFrameworkImportRepository> frameworkImportRepository,
            [Frozen] Mock <IFrameworkFundingImportRepository> frameworkFundingImportRepository,
            FrameworksImportService frameworksImportService)
        {
            auditFile.FileName = frameworkFile;
            jsonFileHelper.Setup(x => x.GetLatestFrameworkFileFromDataDirectory()).Returns(frameworkFile);
            importAuditRepository.Setup(x => x.GetLastImportByType(ImportType.FrameworkImport)).ReturnsAsync(auditFile);

            var result = await frameworksImportService.ImportDataIntoStaging();

            result.Success.Should().BeFalse();
            result.LatestFile.Should().BeNull();

            frameworkImportRepository.Verify(x => x.DeleteAll(), Times.Never());
            frameworkImportRepository.Verify(x => x.InsertMany(It.IsAny <IEnumerable <Domain.Entities.FrameworkImport> >()), Times.Never);
            frameworkFundingImportRepository.Verify(x => x.DeleteAll(), Times.Never());
            frameworkFundingImportRepository.Verify(x => x.InsertMany(It.IsAny <IEnumerable <Domain.Entities.FrameworkFundingImport> >()), Times.Never);
        }
        public async Task Then_The_Framework_Tables_Are_Updated_From_The_Import_Tables(
            DateTime importStartTime,
            string importFile,
            List <Framework> frameworks,
            List <FrameworkImport> frameworkImports,
            List <FrameworkFundingImport> frameworkFundingImports,
            [Frozen] Mock <IJsonFileHelper> jsonFileHelper,
            [Frozen] Mock <IFrameworkImportRepository> frameworkImportRepository,
            [Frozen] Mock <IFrameworkFundingImportRepository> frameworkFundingImportRepository,
            [Frozen] Mock <IFrameworkRepository> frameworkRepository,
            [Frozen] Mock <IFrameworkFundingRepository> frameworkFundingRepository,
            FrameworksImportService frameworksImportService)
        {
            jsonFileHelper.Setup(x => x.ParseJsonFile <Framework>(It.IsAny <string>())).Returns(frameworks);
            frameworkImportRepository.Setup(x => x.GetAll()).ReturnsAsync(frameworkImports);
            frameworkFundingImportRepository.Setup(x => x.GetAll()).ReturnsAsync(frameworkFundingImports);

            await frameworksImportService.LoadDataFromStaging(importStartTime, importFile);

            frameworkRepository.Verify(x => x.DeleteAll(), Times.Once);
            frameworkFundingRepository.Verify(x => x.DeleteAll(), Times.Once);
            frameworkRepository.Verify(x => x.InsertMany(It.Is <List <Domain.Entities.Framework> >(c => c.Count.Equals(frameworkImports.Count))));
            frameworkFundingRepository.Verify(x => x.InsertMany(It.Is <List <FrameworkFunding> >(c => c.Count.Equals(frameworkFundingImports.Count))));
        }