public async Task TestAimAndDeliverableReportGeneration() { var dateTime = DateTime.UtcNow; var filename = $"10005752/2/ESF Round 2 Aim and Deliverable Report Legacy {dateTime:yyyyMMdd-HHmmss}"; var dateTimeProviderMock = new Mock <IDateTimeProvider>(); dateTimeProviderMock.Setup(x => x.GetNowUtc()).Returns(dateTime); dateTimeProviderMock.Setup(x => x.ConvertUtcToUk(It.IsAny <DateTime>())).Returns(dateTime); var models = AimAndDeliverableBuilder.BuildAimAndDeliverableModels(); var aimAndDeliverableService1819Mock = new Mock <IAimAndDeliverableService1819>(); aimAndDeliverableService1819Mock .Setup(m => m.GetAimAndDeliverableModel(It.IsAny <int>(), It.IsAny <CancellationToken>())) .ReturnsAsync(models); var aimAndDeliverableService1920Mock = new Mock <IAimAndDeliverableService1920>(); aimAndDeliverableService1920Mock .Setup(m => m.GetAimAndDeliverableModel(It.IsAny <int>(), It.IsAny <CancellationToken>())) .ReturnsAsync(models); var csvServiceMock = new Mock <ICsvFileService>(); csvServiceMock.Setup(x => x.WriteAsync <AimAndDeliverableModel, AimAndDeliverableMapper>(models, $"{filename}.csv", It.IsAny <string>(), It.IsAny <CancellationToken>(), null, null)) .Returns(Task.CompletedTask); var aimAndDeliverableReport = new AimAndDeliverableReport( dateTimeProviderMock.Object, csvServiceMock.Object, aimAndDeliverableService1819Mock.Object, aimAndDeliverableService1920Mock.Object); var esfJobContextMock = new Mock <IEsfJobContext>(); esfJobContextMock.Setup(x => x.UkPrn).Returns(10005752); esfJobContextMock.Setup(x => x.JobId).Returns(2); esfJobContextMock.Setup(x => x.BlobContainerName).Returns("TestBlob"); esfJobContextMock.Setup(x => x.CollectionYear).Returns(1819); SourceFileModel sourceFile = GetEsfSourceFileModel(); var reportName = await aimAndDeliverableReport.GenerateReport(esfJobContextMock.Object, sourceFile, null, CancellationToken.None); csvServiceMock.VerifyAll(); }
public async Task TestAimAndDeliverableReportGeneration() { var csv = string.Empty; var dateTime = DateTime.UtcNow; var filename = $"10005752_2_ESF Aim and Deliverable Report {dateTime:yyyyMMdd-HHmmss}"; var dateTimeProviderMock = new Mock <IDateTimeProvider>(); dateTimeProviderMock.Setup(x => x.GetNowUtc()).Returns(dateTime); dateTimeProviderMock.Setup(x => x.ConvertUtcToUk(It.IsAny <DateTime>())).Returns(dateTime); var storage = new Mock <IStreamableKeyValuePersistenceService>(); storage.Setup(x => x.SaveAsync($"{filename}.csv", It.IsAny <string>(), It.IsAny <CancellationToken>())) .Callback <string, string, CancellationToken>((key, value, ct) => csv = value) .Returns(Task.CompletedTask); var refRepoMock = new Mock <IReferenceDataCache>(); refRepoMock.Setup(m => m.GetContractDeliverableCodeMapping(It.IsAny <IList <string> >(), It.IsAny <CancellationToken>())) .Returns(ReferenceDataBuilder.BuildContractDeliverableCodeMapping()); refRepoMock.Setup(m => m.GetLarsLearningDelivery(It.IsAny <IList <string> >(), It.IsAny <CancellationToken>())) .Returns(ReferenceDataBuilder.BuildLarsLearningDeliveries()); var validRepoMock = new Mock <IValidRepository>(); validRepoMock.Setup(m => m.GetLearners(It.IsAny <int>(), It.IsAny <CancellationToken>())) .ReturnsAsync(ValidLearnerModelsBuilder.BuildLearners()); validRepoMock.Setup(m => m.GetLearningDeliveries(It.IsAny <int>(), It.IsAny <CancellationToken>())) .ReturnsAsync(ValidLearnerModelsBuilder.BuildLearningDeliveries()); validRepoMock.Setup(m => m.GetLearningDeliveryFAMs(It.IsAny <int>(), It.IsAny <CancellationToken>())) .ReturnsAsync(ValidLearnerModelsBuilder.BuildLearningDeliveryFams()); validRepoMock.Setup(m => m.GetDPOutcomes(It.IsAny <int>(), It.IsAny <CancellationToken>())) .ReturnsAsync(new List <DPOutcome>()); validRepoMock.Setup(m => m.GetProviderSpecDeliveryMonitorings(It.IsAny <int>(), It.IsAny <CancellationToken>())) .ReturnsAsync(new List <ProviderSpecDeliveryMonitoring>()); validRepoMock .Setup(m => m.GetProviderSpecLearnerMonitorings(It.IsAny <int>(), It.IsAny <CancellationToken>())) .ReturnsAsync(new List <ProviderSpecLearnerMonitoring>()); var fm70RepoMock = new Mock <IFM70Repository>(); fm70RepoMock.Setup(m => m.GetLearningDeliveries(It.IsAny <int>(), It.IsAny <CancellationToken>())) .ReturnsAsync(FM70ModelsBuilder.BuildLearningDeliveries()); fm70RepoMock.Setup(m => m.GetLearningDeliveryDeliverables(It.IsAny <int>(), It.IsAny <CancellationToken>())) .ReturnsAsync(FM70ModelsBuilder.BuildLearningDeliveryDeliverables()); fm70RepoMock.Setup(m => m.GetLearningDeliveryDeliverablePeriods(It.IsAny <int>(), It.IsAny <CancellationToken>())) .ReturnsAsync(FM70ModelsBuilder.BuildDeliveryDeliverablePeriods()); fm70RepoMock.Setup(m => m.GetOutcomes(It.IsAny <int>(), It.IsAny <CancellationToken>())) .ReturnsAsync(new List <ESF_DPOutcome>()); var comparer = new AimAndDeliverableComparer(); var valueProvider = new ValueProvider(); var aimAndDeliverableReport = new AimAndDeliverableReport( dateTimeProviderMock.Object, storage.Object, refRepoMock.Object, validRepoMock.Object, fm70RepoMock.Object, valueProvider, comparer); var wrapper = new SupplementaryDataWrapper { SupplementaryDataModels = new List <SupplementaryDataModel>() }; SourceFileModel sourceFile = GetEsfSourceFileModel(); await aimAndDeliverableReport.GenerateReport(wrapper, sourceFile, null, CancellationToken.None); Assert.True(!string.IsNullOrEmpty(csv)); }