public void CheckComparerCorrectlySortsByAimSequenceNumber() { var comparer = new AimAndDeliverableComparer(); var model1 = new AimAndDeliverableModel { LearnRefNumber = "2", ConRefNumber = "2", LearnStartDate = new DateTime(2018, 11, 10), AimSeqNumber = 4 }; var model2 = new AimAndDeliverableModel { LearnRefNumber = "2", ConRefNumber = "2", LearnStartDate = new DateTime(2018, 11, 10), AimSeqNumber = 3 }; var model3 = new AimAndDeliverableModel { LearnRefNumber = "2", ConRefNumber = "2", LearnStartDate = new DateTime(2018, 11, 10), AimSeqNumber = 2 }; var model4 = new AimAndDeliverableModel { LearnRefNumber = "2", ConRefNumber = "2", LearnStartDate = new DateTime(2018, 11, 10), AimSeqNumber = 1 }; var models = new List <AimAndDeliverableModel> { model1, model2, model2, model3, model4 }; models.Sort(comparer); Assert.True(models[0].AimSeqNumber == 1); Assert.True(models[4].AimSeqNumber == 4); }
public AimAndDeliverableReport( IDateTimeProvider dateTimeProvider, IStreamableKeyValuePersistenceService storage, IReferenceDataCache referenceDataCache, IValidRepository validRepository, IFM70Repository fm70Repository, IValueProvider valueProvider, IAimAndDeliverableComparer comparer) : base(dateTimeProvider, valueProvider) { _storage = storage; _referenceDataCache = referenceDataCache; _validRepository = validRepository; _fm70Repository = fm70Repository; _comparer = comparer as AimAndDeliverableComparer; ReportFileName = "ESF Aim and Deliverable Report"; }
public void CheckComparerCorrectlySortsByContractReference() { var comparer = new AimAndDeliverableComparer(); var model1 = new AimAndDeliverableModel { LearnRefNumber = "2", ConRefNumber = "4" }; var model2 = new AimAndDeliverableModel { LearnRefNumber = "2", ConRefNumber = "3" }; var model3 = new AimAndDeliverableModel { LearnRefNumber = "2", ConRefNumber = "2" }; var model4 = new AimAndDeliverableModel { LearnRefNumber = "2", ConRefNumber = "1" }; var models = new List <AimAndDeliverableModel> { model1, model2, model2, model3, model4 }; models.Sort(comparer); Assert.True(models[0].ConRefNumber == "1"); Assert.True(models[4].ConRefNumber == "4"); }
public void CheckComparerCorrectlySortsByLearnerReference() { var comparer = new AimAndDeliverableComparer(); var model1 = new AimAndDeliverableModel { LearnRefNumber = string.Empty }; var model2 = new AimAndDeliverableModel { LearnRefNumber = "1" }; var model3 = new AimAndDeliverableModel { LearnRefNumber = "2" }; var model4 = new AimAndDeliverableModel { LearnRefNumber = null }; var models = new List <AimAndDeliverableModel> { model4, model3, model2, model1 }; models.Sort(comparer); Assert.True(models[0].LearnRefNumber == null); Assert.True(models[3].LearnRefNumber == "2"); }
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)); }