public void Validate_NoError_NullAppFinRecords() { var learningDeliveryOne = new TestLearningDelivery(); var learningDeliveryTwo = new TestLearningDelivery(); var learner = new TestLearner() { LearningDeliveries = new List <TestLearningDelivery> { learningDeliveryOne, learningDeliveryTwo } }; var appFinRecordQueryServiceMock = new Mock <ILearningDeliveryAppFinRecordQueryService>(); appFinRecordQueryServiceMock.Setup(x => x.GetAppFinRecordsForTypeAndCode(learningDeliveryOne.AppFinRecords, "TNP", 2)).Returns(Enumerable.Empty <IAppFinRecord>()); appFinRecordQueryServiceMock.Setup(x => x.GetAppFinRecordsForTypeAndCode(learningDeliveryTwo.AppFinRecords, "TNP", 4)).Returns(Enumerable.Empty <IAppFinRecord>()); using (var validationErrorHandlerMock = BuildValidationErrorHandlerMockForNoError()) { NewRule(appFinRecordQueryServiceMock.Object, validationErrorHandlerMock.Object).Validate(learner); } }
public void HasMatch_False(int?ukprn) { var learner = new TestLearner { LearnRefNumber = "LearnRefNumber1", PrevLearnRefNumber = "LearnRefNumber2", PMUKPRNNullable = ukprn, ULN = 1, }; var learningDelivery = new TestLearningDelivery { LearnAimRef = "LearnAimRef", LearnStartDate = new DateTime(2020, 8, 1), FundModel = 35, ProgTypeNullable = 1, }; var previousLearnerData = new LearnerReferenceData { LearnRefNumber = "LearnRefNumber1", PrevUKPRN = 5555, PMUKPRN = 5555, ULN = 1, LearnAimRef = "LearnAimRef", LearnStartDate = new DateTime(2020, 8, 1), FundModel = 35, ProgTypeNullable = 1, }; var ukprnList = new List <long> { 1, 2, 3 }; NewDD().HasMatch(ukprnList, 1, learningDelivery, previousLearnerData).Should().BeFalse(); }
public void EarliestLearningDeliveryLearnStartDateFor_OrderedMatch_WithNull() { var earliestLearnStartDate = new DateTime(2017, 1, 1); var latestLearnStartDate = new DateTime(2018, 1, 1); var learningDeliveries = new TestLearningDelivery[] { new TestLearningDelivery() { AimTypeNullable = 1, ProgTypeNullable = 1, FworkCodeNullable = 1, PwayCodeNullable = 1, LearnStartDateNullable = earliestLearnStartDate }, new TestLearningDelivery() { AimTypeNullable = 1, ProgTypeNullable = 1, FworkCodeNullable = 1, PwayCodeNullable = 1, LearnStartDateNullable = latestLearnStartDate }, new TestLearningDelivery() { AimTypeNullable = 1, ProgTypeNullable = 1, FworkCodeNullable = 1, PwayCodeNullable = 1, } }; var dd04 = new DD04(); dd04.EarliestLearningDeliveryLearnStartDateFor(learningDeliveries, 1, 1, 1, 1).Should().Be(earliestLearnStartDate); }
public void Build_SingleRow() { var reportServiceContext = Mock.Of <IReportServiceContext>(); var dependentDataMock = new Mock <IReportServiceDependentData>(); var adlLearningDeliveryFam = new Mock <ILearningDeliveryFAM>(); adlLearningDeliveryFam.SetupGet(fam => fam.LearnDelFAMType).Returns("ADL"); adlLearningDeliveryFam.SetupGet(fam => fam.LearnDelFAMCode).Returns("1"); var albLearningDeliveryFam = new Mock <ILearningDeliveryFAM>(); albLearningDeliveryFam.SetupGet(fam => fam.LearnDelFAMType).Returns("ALB"); var learningDeliveryFams = new List <ILearningDeliveryFAM>() { albLearningDeliveryFam.Object, adlLearningDeliveryFam.Object, }; var providerSpecDeliveryMonitorings = new List <IProviderSpecDeliveryMonitoring>() { new TestProviderSpecDeliveryMonitoring(), }; var learningDelivery = new TestLearningDelivery() { FundModel = 99, LearnAimRef = "learnAimRef", AimSeqNumber = 1, LearningDeliveryFAMs = learningDeliveryFams, ProviderSpecDeliveryMonitorings = providerSpecDeliveryMonitorings }; var providerSpecLearnerMonitorings = new List <IProviderSpecLearnerMonitoring>() { new TestProviderSpecLearnerMonitoring(), }; var learner = new TestLearner() { LearnRefNumber = "LearnRefNumber", LearningDeliveries = new List <ILearningDelivery>() { learningDelivery }, ProviderSpecLearnerMonitorings = providerSpecLearnerMonitorings, }; var message = new TestMessage() { Learners = new List <ILearner>() { learner } }; var larsLearningDelivery = new LARSLearningDelivery() { LearnAimRef = "learnAimRef" }; var referenceDataRoot = new ReferenceDataRoot() { LARSLearningDeliveries = new List <LARSLearningDelivery>() { larsLearningDelivery } }; var albLearningDeliveryValue = new LearningDeliveryValue(); var albLearningDelivery = new LearningDelivery() { AimSeqNumber = 1, LearningDeliveryValue = albLearningDeliveryValue, LearningDeliveryPeriodisedValues = new List <LearningDeliveryPeriodisedValue>() { BuildPeriodisedValuesForAttribute(AttributeConstants.Fm35OnProgPayment), BuildPeriodisedValuesForAttribute(AttributeConstants.Fm35AchievePayPct), BuildPeriodisedValuesForAttribute(AttributeConstants.Fm35AchievePayment), BuildPeriodisedValuesForAttribute(AttributeConstants.Fm35EmpOutcomePay), BuildPeriodisedValuesForAttribute(AttributeConstants.Fm35BalancePayment), BuildPeriodisedValuesForAttribute(AttributeConstants.Fm35LearnSuppFundCash), } }; var fm35Global = new ALBGlobal() { Learners = new List <ALBLearner>() { new ALBLearner() { LearnRefNumber = "LearnRefNumber", LearningDeliveries = new List <LearningDelivery>() { albLearningDelivery, } } } }; dependentDataMock.Setup(d => d.Get <IMessage>()).Returns(message); dependentDataMock.Setup(d => d.Get <ReferenceDataRoot>()).Returns(referenceDataRoot); dependentDataMock.Setup(d => d.Get <ALBGlobal>()).Returns(fm35Global); var providerSpecDeliveryMonitoringModel = new ProviderSpecDeliveryMonitoringModel(); var providerSpecLearnerMonitoringModel = new ProviderSpecLearnerMonitoringModel(); var learningDeliveryFamsModel = new LearningDeliveryFAMsModel(); var ilrModelMapperMock = new Mock <IIlrModelMapper>(); ilrModelMapperMock.Setup(m => m.MapLearningDeliveryFAMs(learningDeliveryFams)).Returns(learningDeliveryFamsModel); ilrModelMapperMock.Setup(m => m.MapProviderSpecDeliveryMonitorings(providerSpecDeliveryMonitorings)).Returns(providerSpecDeliveryMonitoringModel); ilrModelMapperMock.Setup(m => m.MapProviderSpecLearnerMonitorings(providerSpecLearnerMonitorings)).Returns(providerSpecLearnerMonitoringModel); var result = NewBuilder(ilrModelMapperMock.Object).Build(reportServiceContext, dependentDataMock.Object).ToList(); result.Should().HaveCount(1); var row = result[0]; row.Learner.Should().Be(learner); row.LearningDelivery.Should().Be(learningDelivery); row.LarsLearningDelivery.Should().Be(larsLearningDelivery); row.Fm99LearningDelivery.Should().Be(albLearningDeliveryValue); row.ProviderSpecDeliveryMonitoring.Should().Be(providerSpecDeliveryMonitoringModel); row.ProviderSpecLearnerMonitoring.Should().Be(providerSpecLearnerMonitoringModel); row.PeriodisedValues.Should().NotBeNull(); row.LearningDeliveryFAMs.Should().Be(learningDeliveryFamsModel); }
private List <ILearner> BuildLearners(TestLearningDelivery learningDelivery) { var directFundedLearnRef1 = new TestLearner() { LearnRefNumber = "DirectFundedLearnRef1", LearningDeliveries = new List <ILearningDelivery>() { learningDelivery } }; var directFundedLearnRef2 = new TestLearner() { LearnRefNumber = "DirectFundedLearnRef2", LearningDeliveries = new List <ILearningDelivery>() { learningDelivery } }; var fundingLineBLearnRef1 = new TestLearner() { LearnRefNumber = "FundingLineBLearnRef1", LearningDeliveries = new List <ILearningDelivery>() { learningDelivery } }; var fundingLineBLearnRef2 = new TestLearner() { LearnRefNumber = "FundingLineBLearnRef2", LearningDeliveries = new List <ILearningDelivery>() { learningDelivery } }; var fundingLineCLearnRef1 = new TestLearner() { LearnRefNumber = "FundingLineCLearnRef1", LearningDeliveries = new List <ILearningDelivery>() { learningDelivery } }; var fundingLineCLearnRef2 = new TestLearner() { LearnRefNumber = "FundingLineCLearnRef2", LearningDeliveries = new List <ILearningDelivery>() { learningDelivery } }; var fundingLineDLearnRef1 = new TestLearner() { LearnRefNumber = "FundingLineDLearnRef1", LearningDeliveries = new List <ILearningDelivery>() { learningDelivery } }; var fundingLineDLearnRef2 = new TestLearner() { LearnRefNumber = "FundingLineDLearnRef2", LearningDeliveries = new List <ILearningDelivery>() { learningDelivery } }; return(new List <ILearner>() { directFundedLearnRef1, directFundedLearnRef2, fundingLineBLearnRef1, fundingLineBLearnRef2, fundingLineCLearnRef1, fundingLineCLearnRef2, fundingLineDLearnRef1, fundingLineDLearnRef2, }); }
public void BuildTest() { var dependentDataMock = new Mock <IReportServiceDependentData>(); var learningDeliveryFam = new Mock <ILearningDeliveryFAM>(); learningDeliveryFam.SetupGet(fam => fam.LearnDelFAMType).Returns("SOF"); learningDeliveryFam.SetupGet(fam => fam.LearnDelFAMCode).Returns("107"); var albLearningDeliveryFam = new Mock <ILearningDeliveryFAM>(); albLearningDeliveryFam.SetupGet(fam => fam.LearnDelFAMType).Returns("ALB"); var learningDeliveryFams = new List <ILearningDeliveryFAM>() { learningDeliveryFam.Object, albLearningDeliveryFam.Object }; var learningDelivery = new TestLearningDelivery() { FundModel = 25, LearnAimRef = "learnAimRef", AimSeqNumber = 1, LearningDeliveryFAMs = learningDeliveryFams, StdCodeNullable = 1, }; var message = new TestMessage() { Learners = BuildLearners(learningDelivery), HeaderEntity = new TestHeader() { CollectionDetailsEntity = new MessageHeaderCollectionDetails() { FilePreparationDate = new DateTime(2019, 11, 06) } } }; var referenceDataRoot = new ReferenceDataRoot() { Organisations = new List <Organisation>() { new Organisation() { UKPRN = 987654321, Name = "Provider XYZ", OrganisationCoFRemovals = new List <OrganisationCoFRemoval>() { new OrganisationCoFRemoval() { EffectiveFrom = new DateTime(2019, 01, 01), CoFRemoval = (decimal)4500.12 } }, } }, MetaDatas = new MetaData() { ReferenceDataVersions = new ReferenceDataVersion() { OrganisationsVersion = new OrganisationsVersion { Version = "1.1.1.1" }, Employers = new EmployersVersion { Version = "2.2.2.2" }, LarsVersion = new LarsVersion { Version = "3.3.3.3" }, PostcodesVersion = new PostcodesVersion { Version = "4.4.4.4" }, CoFVersion = new CoFVersion() { Version = "5.5.5.5" } } } }; var fm25Global = new FM25Global() { Learners = BuildFm25Learners() }; dependentDataMock.Setup(d => d.Get <IMessage>()).Returns(message); dependentDataMock.Setup(d => d.Get <ReferenceDataRoot>()).Returns(referenceDataRoot); dependentDataMock.Setup(d => d.Get <FM25Global>()).Returns(fm25Global); var submissionDateTime = new DateTime(2019, 1, 1, 1, 1, 1); var ukDateTime = new DateTime(2020, 1, 1, 1, 1, 1); var dateTimeProvider = new Mock <IDateTimeProvider>(); var reportServiceContextMock = new Mock <IReportServiceContext>(); reportServiceContextMock.SetupGet(c => c.Ukprn).Returns(987654321); reportServiceContextMock.SetupGet(c => c.SubmissionDateTimeUtc).Returns(submissionDateTime); reportServiceContextMock.SetupGet(c => c.ServiceReleaseVersion).Returns("11.22.3300.4321"); reportServiceContextMock.SetupGet(c => c.IlrReportingFilename).Returns("ILR-12345678-1920-20191005-151322-01.xml"); dateTimeProvider.Setup(p => p.ConvertUtcToUk(submissionDateTime)).Returns(ukDateTime); dateTimeProvider.Setup(p => p.GetNowUtc()).Returns(submissionDateTime); var result = NewBuilder(dateTimeProvider.Object).Build(reportServiceContextMock.Object, dependentDataMock.Object); result.ApplicationVersion.Should().Be("11.22.3300.4321"); result.ComponentSetVersion.Should().Be("NA"); result.FilePreparationDate.Should().Be("06/11/2019"); result.IlrFile.Should().Be("ILR-12345678-1920-20191005-151322-01.xml"); result.LargeEmployerData.Should().Be("2.2.2.2"); result.LarsData.Should().Be("3.3.3.3"); result.OrganisationData.Should().Be("1.1.1.1"); result.PostcodeData.Should().Be("4.4.4.4"); result.CofRemovalData.Should().Be("5.5.5.5"); result.ProviderName.Should().Be("Provider XYZ"); result.ReportGeneratedAt.Should().Be("Report generated at: 01:01:01 on 01/01/2020"); result.Ukprn.Should().Be("987654321"); result.Year.Should().Be("2020/21"); result.CofRemoval.Should().Be((decimal) - 4500.12); result.ReferenceDate.Should().Be("(ALL)"); result.FundingFactor.PrvRetentFactHist.Should().Be("0.79600"); result.FundingFactor.ProgWeightHist.Should().Be("1.06100"); result.FundingFactor.AreaCostFact1618Hist.Should().Be("1.00000"); result.FundingFactor.PrvDisadvPropnHist.Should().Be("0.34500"); result.FundingFactor.PrvHistLrgProgPropn.Should().Be("0.21300"); result.FundingFactor.PrvHistL3ProgMathEngProp.Should().Be("0.21300"); result.DirectFundingStudents.Band1StudentNumbers.Should().Be(0); result.DirectFundingStudents.Band2StudentNumbers.Should().Be(0); result.DirectFundingStudents.Band3StudentNumbers.Should().Be(0); result.DirectFundingStudents.Band4aStudentNumbers.Should().Be(1); result.DirectFundingStudents.Band4bStudentNumbers.Should().Be(0); result.DirectFundingStudents.Band5StudentNumbers.Should().Be(1); result.DirectFundingStudents.Band6StudentNumbers.Should().Be(0); result.DirectFundingStudents.Band7StudentNumbers.Should().Be(0); result.DirectFundingStudents.Band8StudentNumbers.Should().Be(0); result.DirectFundingStudents.Band9StudentNumbers.Should().Be(0); result.DirectFundingStudents.Band1To5StudentNumbersTLevel.Should().Be(0); result.StudentsIncludingHNS.Band1StudentNumbers.Should().Be(0); result.StudentsIncludingHNS.Band1TotalFunding.Should().Be(0); result.StudentsIncludingHNS.Band2StudentNumbers.Should().Be(0); result.StudentsIncludingHNS.Band2TotalFunding.Should().Be(0); result.StudentsIncludingHNS.Band3StudentNumbers.Should().Be(1); result.StudentsIncludingHNS.Band3TotalFunding.Should().Be((decimal)25815.43); result.StudentsIncludingHNS.Band4aStudentNumbers.Should().Be(0); result.StudentsIncludingHNS.Band4aTotalFunding.Should().Be(0); result.StudentsIncludingHNS.Band4bStudentNumbers.Should().Be(1); result.StudentsIncludingHNS.Band4bTotalFunding.Should().Be((decimal)2589915.43); result.StudentsIncludingHNS.Band5StudentNumbers.Should().Be(0); result.StudentsIncludingHNS.Band5TotalFunding.Should().Be(0); result.StudentsIncludingHNS.Band6StudentNumbers.Should().Be(0); result.StudentsIncludingHNS.Band6TotalFunding.Should().Be(0); result.StudentsIncludingHNS.Band7StudentNumbers.Should().Be(0); result.StudentsIncludingHNS.Band7TotalFunding.Should().Be(0); result.StudentsIncludingHNS.Band8StudentNumbers.Should().Be(0); result.StudentsIncludingHNS.Band8TotalFunding.Should().Be(0); result.StudentsIncludingHNS.Band9StudentNumbers.Should().Be(0); result.StudentsIncludingHNS.Band9TotalFunding.Should().Be(0); result.StudentsIncludingHNS.Band1To5StudentNumbersTLevel.Should().Be(0); result.StudentsIncludingHNS.Band1To5TotalFundingTLevel.Should().Be(0); result.StudentsWithEHCPlan.Band1StudentNumbers.Should().Be(1); result.StudentsWithEHCPlan.Band1TotalFunding.Should().Be((decimal)125.67); result.StudentsWithEHCPlan.Band2StudentNumbers.Should().Be(1); result.StudentsWithEHCPlan.Band2TotalFunding.Should().Be((decimal)555.12); result.StudentsWithEHCPlan.Band3StudentNumbers.Should().Be(0); result.StudentsWithEHCPlan.Band3TotalFunding.Should().Be(0); result.StudentsWithEHCPlan.Band4aStudentNumbers.Should().Be(0); result.StudentsWithEHCPlan.Band4aTotalFunding.Should().Be(0); result.StudentsWithEHCPlan.Band4bStudentNumbers.Should().Be(0); result.StudentsWithEHCPlan.Band4bTotalFunding.Should().Be(0); result.StudentsWithEHCPlan.Band5StudentNumbers.Should().Be(0); result.StudentsWithEHCPlan.Band5TotalFunding.Should().Be(0); result.StudentsWithEHCPlan.Band6StudentNumbers.Should().Be(0); result.StudentsWithEHCPlan.Band6TotalFunding.Should().Be(0); result.StudentsWithEHCPlan.Band7StudentNumbers.Should().Be(1); result.StudentsWithEHCPlan.Band7TotalFunding.Should().Be((decimal)125.67); result.StudentsWithEHCPlan.Band8StudentNumbers.Should().Be(0); result.StudentsWithEHCPlan.Band8TotalFunding.Should().Be(0); result.StudentsWithEHCPlan.Band9StudentNumbers.Should().Be(0); result.StudentsWithEHCPlan.Band9TotalFunding.Should().Be(0); result.StudentsWithEHCPlan.Band1To5StudentNumbersTLevel.Should().Be(0); result.StudentsWithEHCPlan.Band1To5TotalFundingTLevel.Should().Be(0); result.ContinuingStudentsExcludingEHCPlan.Band1StudentNumbers.Should().Be(0); result.ContinuingStudentsExcludingEHCPlan.Band1TotalFunding.Should().Be(0); result.ContinuingStudentsExcludingEHCPlan.Band2StudentNumbers.Should().Be(0); result.ContinuingStudentsExcludingEHCPlan.Band2TotalFunding.Should().Be(0); result.ContinuingStudentsExcludingEHCPlan.Band3StudentNumbers.Should().Be(0); result.ContinuingStudentsExcludingEHCPlan.Band3TotalFunding.Should().Be(0); result.ContinuingStudentsExcludingEHCPlan.Band4aStudentNumbers.Should().Be(1); result.ContinuingStudentsExcludingEHCPlan.Band4aTotalFunding.Should().Be((decimal)855.55); result.ContinuingStudentsExcludingEHCPlan.Band4bStudentNumbers.Should().Be(0); result.ContinuingStudentsExcludingEHCPlan.Band4bTotalFunding.Should().Be(0); result.ContinuingStudentsExcludingEHCPlan.Band5StudentNumbers.Should().Be(1); result.ContinuingStudentsExcludingEHCPlan.Band5TotalFunding.Should().Be((decimal)56425.99); result.ContinuingStudentsExcludingEHCPlan.Band6StudentNumbers.Should().Be(0); result.ContinuingStudentsExcludingEHCPlan.Band6TotalFunding.Should().Be(0); result.ContinuingStudentsExcludingEHCPlan.Band7StudentNumbers.Should().Be(0); result.ContinuingStudentsExcludingEHCPlan.Band7TotalFunding.Should().Be(0); result.ContinuingStudentsExcludingEHCPlan.Band8StudentNumbers.Should().Be(1); result.ContinuingStudentsExcludingEHCPlan.Band8TotalFunding.Should().Be((decimal)56425.99); result.ContinuingStudentsExcludingEHCPlan.Band9StudentNumbers.Should().Be(1); result.ContinuingStudentsExcludingEHCPlan.Band9TotalFunding.Should().Be((decimal)855.55); result.ContinuingStudentsExcludingEHCPlan.Band1To5StudentNumbersTLevel.Should().Be(0); result.ContinuingStudentsExcludingEHCPlan.Band1To5TotalFundingTLevel.Should().Be(0); }
public void Build() { var dependentDataMock = new Mock <IReportServiceDependentData>(); var learningDeliveryFam = new Mock <ILearningDeliveryFAM>(); learningDeliveryFam.SetupGet(fam => fam.LearnDelFAMType).Returns("SOF"); learningDeliveryFam.SetupGet(fam => fam.LearnDelFAMCode).Returns("107"); var albLearningDeliveryFam = new Mock <ILearningDeliveryFAM>(); albLearningDeliveryFam.SetupGet(fam => fam.LearnDelFAMType).Returns("ALB"); var learningDeliveryFams = new List <ILearningDeliveryFAM>() { learningDeliveryFam.Object, albLearningDeliveryFam.Object }; var learningDelivery = new TestLearningDelivery() { FundModel = 25, LearnAimRef = "learnAimRef", AimSeqNumber = 1, LearningDeliveryFAMs = learningDeliveryFams, StdCodeNullable = 1 }; var message = new TestMessage() { Learners = BuildLearners(learningDelivery), HeaderEntity = new TestHeader() { CollectionDetailsEntity = new MessageHeaderCollectionDetails() { FilePreparationDate = new DateTime(2019, 11, 06) } } }; var referenceDataRoot = new ReferenceDataRoot() { Organisations = new List <Organisation>() { new Organisation() { UKPRN = 987654321, Name = "Provider XYZ" } }, MetaDatas = new MetaData() { ReferenceDataVersions = new ReferenceDataVersion() { OrganisationsVersion = new OrganisationsVersion { Version = "1.1.1.1" }, Employers = new EmployersVersion { Version = "2.2.2.2" }, LarsVersion = new LarsVersion { Version = "3.3.3.3" }, PostcodesVersion = new PostcodesVersion { Version = "4.4.4.4" } } } }; var fm25Global = new FM25Global() { Learners = BuildFm25Learners() }; dependentDataMock.Setup(d => d.Get <IMessage>()).Returns(message); dependentDataMock.Setup(d => d.Get <ReferenceDataRoot>()).Returns(referenceDataRoot); dependentDataMock.Setup(d => d.Get <FM25Global>()).Returns(fm25Global); var submissionDateTime = new DateTime(2019, 1, 1, 1, 1, 1); var ukDateTime = new DateTime(2020, 1, 1, 1, 1, 1); var dateTimeProvider = new Mock <IDateTimeProvider>(); var reportServiceContextMock = new Mock <IReportServiceContext>(); reportServiceContextMock.SetupGet(c => c.Ukprn).Returns(987654321); reportServiceContextMock.SetupGet(c => c.SubmissionDateTimeUtc).Returns(submissionDateTime); reportServiceContextMock.SetupGet(c => c.ServiceReleaseVersion).Returns("11.22.3300.4321"); reportServiceContextMock.SetupGet(c => c.IlrReportingFilename).Returns("ILR-12345678-1920-20191005-151322-01.xml"); dateTimeProvider.Setup(p => p.ConvertUtcToUk(submissionDateTime)).Returns(ukDateTime); dateTimeProvider.Setup(p => p.GetNowUtc()).Returns(submissionDateTime); var result = NewBuilder(dateTimeProvider.Object).Build(reportServiceContextMock.Object, dependentDataMock.Object); result.ApplicationVersion.Should().Be("11.22.3300.4321"); result.ComponentSetVersion.Should().Be("NA"); result.FilePreparationDate.Should().Be("06/11/2019"); result.IlrFile.Should().Be("ILR-12345678-1920-20191005-151322-01.xml"); result.LargeEmployerData.Should().Be("2.2.2.2"); result.LarsData.Should().Be("3.3.3.3"); result.OrganisationData.Should().Be("1.1.1.1"); result.PostcodeData.Should().Be("4.4.4.4"); result.ProviderName.Should().Be("Provider XYZ"); result.ReportGeneratedAt.Should().Be("Report generated at: 01:01:01 on 01/01/2020"); result.StudyProgramme.DirectFunded1416StudentsTotal.WithEHCP.Should().Be(1); result.StudyProgramme.DirectFunded1416StudentsTotal.WithoutEHCP.Should().Be(0); result.StudyProgramme.DirectFunded1416StudentsTotal.HNSWithoutEHCP.Should().Be(0); result.StudyProgramme.DirectFunded1416StudentsTotal.EHCPWithHNS.Should().Be(1); result.StudyProgramme.DirectFunded1416StudentsTotal.EHCPWithoutHNS.Should().Be(0); result.StudyProgramme.DirectFunded1416StudentsTotal.TotalFundineStudents.Should().Be(1); result.StudyProgramme.IncludingHNS1619StudentsTotal.WithEHCP.Should().Be(2); result.StudyProgramme.IncludingHNS1619StudentsTotal.WithoutEHCP.Should().Be(0); result.StudyProgramme.IncludingHNS1619StudentsTotal.HNSWithoutEHCP.Should().Be(0); result.StudyProgramme.IncludingHNS1619StudentsTotal.EHCPWithHNS.Should().Be(1); result.StudyProgramme.IncludingHNS1619StudentsTotal.EHCPWithoutHNS.Should().Be(1); result.StudyProgramme.IncludingHNS1619StudentsTotal.TotalFundineStudents.Should().Be(2); result.StudyProgramme.EHCP1924StudentsTotal.WithEHCP.Should().Be(0); result.StudyProgramme.EHCP1924StudentsTotal.WithoutEHCP.Should().Be(0); result.StudyProgramme.EHCP1924StudentsTotal.HNSWithoutEHCP.Should().Be(0); result.StudyProgramme.EHCP1924StudentsTotal.EHCPWithHNS.Should().Be(0); result.StudyProgramme.EHCP1924StudentsTotal.EHCPWithoutHNS.Should().Be(0); result.StudyProgramme.EHCP1924StudentsTotal.TotalFundineStudents.Should().Be(0); result.StudyProgramme.Continuing19PlusExcludingEHCPStudentsTotal.WithEHCP.Should().Be(0); result.StudyProgramme.Continuing19PlusExcludingEHCPStudentsTotal.WithoutEHCP.Should().Be(0); result.StudyProgramme.Continuing19PlusExcludingEHCPStudentsTotal.HNSWithoutEHCP.Should().Be(0); result.StudyProgramme.Continuing19PlusExcludingEHCPStudentsTotal.EHCPWithHNS.Should().Be(0); result.StudyProgramme.Continuing19PlusExcludingEHCPStudentsTotal.EHCPWithoutHNS.Should().Be(0); result.StudyProgramme.Continuing19PlusExcludingEHCPStudentsTotal.TotalFundineStudents.Should().Be(0); result.TLevel.DirectFunded1416StudentsTotal.WithEHCP.Should().Be(1); result.TLevel.DirectFunded1416StudentsTotal.WithoutEHCP.Should().Be(0); result.TLevel.DirectFunded1416StudentsTotal.HNSWithoutEHCP.Should().Be(0); result.TLevel.DirectFunded1416StudentsTotal.EHCPWithHNS.Should().Be(0); result.TLevel.DirectFunded1416StudentsTotal.EHCPWithoutHNS.Should().Be(1); result.TLevel.DirectFunded1416StudentsTotal.TotalFundineStudents.Should().Be(1); result.TLevel.IncludingHNS1619StudentsTotal.WithEHCP.Should().Be(0); result.TLevel.IncludingHNS1619StudentsTotal.WithoutEHCP.Should().Be(0); result.TLevel.IncludingHNS1619StudentsTotal.HNSWithoutEHCP.Should().Be(0); result.TLevel.IncludingHNS1619StudentsTotal.EHCPWithHNS.Should().Be(0); result.TLevel.IncludingHNS1619StudentsTotal.EHCPWithoutHNS.Should().Be(0); result.TLevel.IncludingHNS1619StudentsTotal.TotalFundineStudents.Should().Be(0); result.TLevel.EHCP1924StudentsTotal.WithEHCP.Should().Be(2); result.TLevel.EHCP1924StudentsTotal.WithoutEHCP.Should().Be(0); result.TLevel.EHCP1924StudentsTotal.HNSWithoutEHCP.Should().Be(0); result.TLevel.EHCP1924StudentsTotal.EHCPWithHNS.Should().Be(1); result.TLevel.EHCP1924StudentsTotal.EHCPWithoutHNS.Should().Be(1); result.TLevel.EHCP1924StudentsTotal.TotalFundineStudents.Should().Be(2); result.TLevel.Continuing19PlusExcludingEHCPStudentsTotal.WithEHCP.Should().Be(2); result.TLevel.Continuing19PlusExcludingEHCPStudentsTotal.WithoutEHCP.Should().Be(0); result.TLevel.Continuing19PlusExcludingEHCPStudentsTotal.HNSWithoutEHCP.Should().Be(0); result.TLevel.Continuing19PlusExcludingEHCPStudentsTotal.EHCPWithHNS.Should().Be(1); result.TLevel.Continuing19PlusExcludingEHCPStudentsTotal.EHCPWithoutHNS.Should().Be(1); result.TLevel.Continuing19PlusExcludingEHCPStudentsTotal.TotalFundineStudents.Should().Be(2); result.Ukprn.Should().Be("987654321"); result.Year.Should().Be("2020/21"); }
private List <ILearner> BuildLearners(TestLearningDelivery learningDelivery) { var directFundedLearnRef1 = new TestLearner() { LearnRefNumber = "DirectFundedLearnRef1", LearningDeliveries = new List <ILearningDelivery>() { learningDelivery }, LearnerFAMs = new ILearnerFAM[] { new TestLearnerFAM() { LearnFAMType = "EHC", LearnFAMCode = 1 }, new TestLearnerFAM() { LearnFAMType = "HNS", LearnFAMCode = 1 } } }; var directFundedLearnRef2 = new TestLearner() { LearnRefNumber = "DirectFundedLearnRef2", LearningDeliveries = new List <ILearningDelivery>() { learningDelivery }, LearnerFAMs = new ILearnerFAM[] { new TestLearnerFAM() { LearnFAMType = "EHC", LearnFAMCode = 1 } } }; var fundingLineBLearnRef1 = new TestLearner() { LearnRefNumber = "FundingLineBLearnRef1", LearningDeliveries = new List <ILearningDelivery>() { learningDelivery }, LearnerFAMs = new ILearnerFAM[] { new TestLearnerFAM() { LearnFAMType = "EHC", LearnFAMCode = 1 }, new TestLearnerFAM() { LearnFAMType = "HNS", LearnFAMCode = 1 } } }; var fundingLineBLearnRef2 = new TestLearner() { LearnRefNumber = "FundingLineBLearnRef2", LearningDeliveries = new List <ILearningDelivery>() { learningDelivery }, LearnerFAMs = new ILearnerFAM[] { new TestLearnerFAM() { LearnFAMType = "EHC", LearnFAMCode = 1 } } }; var fundingLineCLearnRef1 = new TestLearner() { LearnRefNumber = "FundingLineCLearnRef1", LearningDeliveries = new List <ILearningDelivery>() { learningDelivery }, LearnerFAMs = new ILearnerFAM[] { new TestLearnerFAM() { LearnFAMType = "EHC", LearnFAMCode = 1 }, new TestLearnerFAM() { LearnFAMType = "HNS", LearnFAMCode = 1 } } }; var fundingLineCLearnRef2 = new TestLearner() { LearnRefNumber = "FundingLineCLearnRef2", LearningDeliveries = new List <ILearningDelivery>() { learningDelivery }, LearnerFAMs = new ILearnerFAM[] { new TestLearnerFAM() { LearnFAMType = "EHC", LearnFAMCode = 1 } } }; var fundingLineDLearnRef1 = new TestLearner() { LearnRefNumber = "FundingLineDLearnRef1", LearningDeliveries = new List <ILearningDelivery>() { learningDelivery }, LearnerFAMs = new ILearnerFAM[] { new TestLearnerFAM() { LearnFAMType = "EHC", LearnFAMCode = 1 }, new TestLearnerFAM() { LearnFAMType = "HNS", LearnFAMCode = 1 } } }; var fundingLineDLearnRef2 = new TestLearner() { LearnRefNumber = "FundingLineDLearnRef2", LearningDeliveries = new List <ILearningDelivery>() { learningDelivery }, LearnerFAMs = new ILearnerFAM[] { new TestLearnerFAM() { LearnFAMType = "EHC", LearnFAMCode = 1 } } }; return(new List <ILearner>() { directFundedLearnRef1, directFundedLearnRef2, fundingLineBLearnRef1, fundingLineBLearnRef2, fundingLineCLearnRef1, fundingLineCLearnRef2, fundingLineDLearnRef1, fundingLineDLearnRef2, }); }
public void LearningDeliveryStandardCompAimConditionMet_True() { var learningDelivery = new TestLearningDelivery(); NewRule().LearningDeliveryStandardCompAimConditionMet(learningDelivery).Should().BeTrue(); }
public void BuildLearningDelivery() { var learningDelivery = new TestLearningDelivery() { AimSeqNumber = 1, AimType = 2, CompStatus = 3, ConRefNumber = "ConRef1", DelLocPostCode = "DelLocPostcode", FundModel = 4, FworkCodeNullable = 5, LearnActEndDateNullable = new DateTime(2017, 1, 1), LearnAimRef = "LearnAimRef", LearnPlanEndDate = new DateTime(2018, 1, 1), LearnStartDate = new DateTime(2019, 1, 1), OrigLearnStartDateNullable = new DateTime(2019, 1, 1), OtherFundAdjNullable = 6, OutcomeNullable = 7, PriorLearnFundAdjNullable = 8, StdCodeNullable = 9, LearningDeliveryFAMs = new List <TestLearningDeliveryFAM>() { new TestLearningDeliveryFAM() { LearnDelFAMType = "LDM", LearnDelFAMCode = "LDM1" }, new TestLearningDeliveryFAM() { LearnDelFAMType = "LDM", LearnDelFAMCode = "LDM2" }, new TestLearningDeliveryFAM() { LearnDelFAMType = "LDM", LearnDelFAMCode = "LDM3" }, new TestLearningDeliveryFAM() { LearnDelFAMType = "LDM", LearnDelFAMCode = "LDM4" }, new TestLearningDeliveryFAM() { LearnDelFAMType = "EEF", LearnDelFAMCode = "EEF" }, new TestLearningDeliveryFAM() { LearnDelFAMType = "FFI", LearnDelFAMCode = "FFI" }, new TestLearningDeliveryFAM() { LearnDelFAMType = "RES", LearnDelFAMCode = "RES" }, new TestLearningDeliveryFAM() { LearnDelFAMType = "SOF", LearnDelFAMCode = "SOF" }, new TestLearningDeliveryFAM() { LearnDelFAMType = "SPP", LearnDelFAMCode = "SPP" }, }, }; var larsLearningDelivery = new LARSLearningDelivery { AwardOrgCode = "awardOrgCode", EFACOFType = 1, FrameworkCommonComponent = 2, LearnAimRefTitle = "learnAimRefTitle", LearnAimRefType = "learnAimRefType", RegulatedCreditValue = 3, NotionalNVQLevelv2 = "NVQLevel", LearningDeliveryGenre = "Genre", LARSFunding = new List <LARSFunding> { new LARSFunding { FundingCategory = "Matrix", RateWeighted = 1.0m, WeightingFactor = "G", EffectiveFrom = new DateTime(2018, 1, 1), EffectiveTo = new DateTime(2019, 1, 1), }, }, }; var larsReferenceDataServiceMock = new Mock <ILARSReferenceDataService>(); larsReferenceDataServiceMock.Setup(l => l.LARSLearningDeliveryForLearnAimRef(learningDelivery.LearnAimRef)).Returns(larsLearningDelivery); larsReferenceDataServiceMock.Setup(l => l.LARSStandardCommonComponent(learningDelivery.StdCodeNullable)).Returns(new List <LARSStandardCommonComponent> { new LARSStandardCommonComponent() }); larsReferenceDataServiceMock.Setup(l => l.LARSStandardFunding(learningDelivery.StdCodeNullable)).Returns(new List <LARSStandardFunding> { new LARSStandardFunding() }); var dataEntity = NewService(larsReferenceDataService: larsReferenceDataServiceMock.Object) .BuildLearningDeliveryDataEntity(learningDelivery); dataEntity.EntityName.Should().Be("LearningDelivery"); dataEntity.Attributes.Should().HaveCount(25); dataEntity.Attributes["AchDate"].Value.Should().Be(learningDelivery.AchDateNullable); dataEntity.Attributes["AimSeqNumber"].Value.Should().Be(learningDelivery.AimSeqNumber); dataEntity.Attributes["AimType"].Value.Should().Be(learningDelivery.AimType); dataEntity.Attributes["CompStatus"].Value.Should().Be(learningDelivery.CompStatus); dataEntity.Attributes["FrameworkCommonComponent"].Value.Should().Be(larsLearningDelivery.FrameworkCommonComponent); dataEntity.Attributes["LearnAimRef"].Value.Should().Be(learningDelivery.LearnAimRef); dataEntity.Attributes["LearnActEndDate"].Value.Should().Be(learningDelivery.LearnActEndDateNullable); dataEntity.Attributes["LearnPlanEndDate"].Value.Should().Be(learningDelivery.LearnPlanEndDate); dataEntity.Attributes["LearnStartDate"].Value.Should().Be(learningDelivery.LearnStartDate); dataEntity.Attributes["LrnDelFAM_EEF"].Value.Should().Be("EEF"); dataEntity.Attributes["LrnDelFAM_FFI"].Value.Should().Be("FFI"); dataEntity.Attributes["LrnDelFAM_LDM1"].Value.Should().Be("LDM1"); dataEntity.Attributes["LrnDelFAM_LDM2"].Value.Should().Be("LDM2"); dataEntity.Attributes["LrnDelFAM_LDM3"].Value.Should().Be("LDM3"); dataEntity.Attributes["LrnDelFAM_LDM4"].Value.Should().Be("LDM4"); dataEntity.Attributes["LrnDelFAM_RES"].Value.Should().Be("RES"); dataEntity.Attributes["LrnDelFAM_SOF"].Value.Should().Be("SOF"); dataEntity.Attributes["LrnDelFAM_SPP"].Value.Should().Be("SPP"); dataEntity.Attributes["OrigLearnStartDate"].Value.Should().Be(learningDelivery.OrigLearnStartDateNullable); dataEntity.Attributes["OtherFundAdj"].Value.Should().Be(learningDelivery.OtherFundAdjNullable); dataEntity.Attributes["Outcome"].Value.Should().Be(learningDelivery.OutcomeNullable); dataEntity.Attributes["PriorLearnFundAdj"].Value.Should().Be(learningDelivery.PriorLearnFundAdjNullable); dataEntity.Attributes["ProgType"].Value.Should().Be(learningDelivery.ProgTypeNullable); dataEntity.Attributes["STDCode"].Value.Should().Be(learningDelivery.StdCodeNullable); dataEntity.Attributes["WithdrawReason"].Value.Should().Be(learningDelivery.WithdrawReasonNullable); }
public void LearningDeliveryStandardCompAimConditionMet_False() { var learningDelivery = new TestLearningDelivery(); NewRule().LearningDeliveryStandardCompAimConditionMet(null).Should().BeFalse(); }
public void Build_SingleRow() { var reportServiceContext = Mock.Of <IReportServiceContext>(); var dependentDataMock = new Mock <IReportServiceDependentData>(); var learningDeliveryFams = new List <ILearningDeliveryFAM>() { new TestLearningDeliveryFAM() }; var providerSpecDeliveryMonitorings = new List <IProviderSpecDeliveryMonitoring>() { new TestProviderSpecDeliveryMonitoring(), }; var appFinRecords = new List <IAppFinRecord>() { new TestAppFinRecord(), }; var learningDelivery = new TestLearningDelivery() { FundModel = 81, LearnAimRef = "learnAimRef", AimSeqNumber = 1, AimType = 1, ProgTypeNullable = 25, LearningDeliveryFAMs = learningDeliveryFams, ProviderSpecDeliveryMonitorings = providerSpecDeliveryMonitorings, AppFinRecords = appFinRecords }; var providerSpecLearnerMonitorings = new List <IProviderSpecLearnerMonitoring>() { new TestProviderSpecLearnerMonitoring(), }; var learner = new TestLearner() { LearnRefNumber = "LearnRefNumber", LearningDeliveries = new List <ILearningDelivery>() { learningDelivery }, ProviderSpecLearnerMonitorings = providerSpecLearnerMonitorings, }; var message = new TestMessage() { Learners = new List <ILearner>() { learner } }; var larsLearningDelivery = new LARSLearningDelivery() { LearnAimRef = "learnAimRef" }; var referenceDataRoot = new ReferenceDataRoot() { LARSLearningDeliveries = new List <LARSLearningDelivery>() { larsLearningDelivery } }; var fm81LearningDeliveryValue = new LearningDeliveryValue(); var fm81LearningDelivery = new LearningDelivery() { AimSeqNumber = 1, LearningDeliveryValues = fm81LearningDeliveryValue, LearningDeliveryPeriodisedValues = new List <LearningDeliveryPeriodisedValue>() { BuildPeriodisedValuesForAttribute(AttributeConstants.Fm81CoreGovContPayment), BuildPeriodisedValuesForAttribute(AttributeConstants.Fm81MathEngOnProgPayment), BuildPeriodisedValuesForAttribute(AttributeConstants.Fm81MathEngBalPayment), BuildPeriodisedValuesForAttribute(AttributeConstants.Fm81LearnSuppFundCash), BuildPeriodisedValuesForAttribute(AttributeConstants.Fm81SmallBusPayment), BuildPeriodisedValuesForAttribute(AttributeConstants.Fm81YoungAppPayment), BuildPeriodisedValuesForAttribute(AttributeConstants.Fm81AchPayment), } }; var fm81Global = new FM81Global() { Learners = new List <FM81Learner>() { new FM81Learner() { LearnRefNumber = "LearnRefNumber", LearningDeliveries = new List <LearningDelivery>() { fm81LearningDelivery, } } } }; dependentDataMock.Setup(d => d.Get <IMessage>()).Returns(message); dependentDataMock.Setup(d => d.Get <ReferenceDataRoot>()).Returns(referenceDataRoot); dependentDataMock.Setup(d => d.Get <FM81Global>()).Returns(fm81Global); var providerSpecDeliveryMonitoringModel = new ProviderSpecDeliveryMonitoringModel(); var providerSpecLearnerMonitoringModel = new ProviderSpecLearnerMonitoringModel(); var learningDeliveryFamsModel = new LearningDeliveryFAMsModel(); var ilrModelMapperMock = new Mock <IIlrModelMapper>(); ilrModelMapperMock.Setup(m => m.MapLearningDeliveryFAMs(learningDeliveryFams)).Returns(learningDeliveryFamsModel); ilrModelMapperMock.Setup(m => m.MapProviderSpecDeliveryMonitorings(providerSpecDeliveryMonitorings)).Returns(providerSpecDeliveryMonitoringModel); ilrModelMapperMock.Setup(m => m.MapProviderSpecLearnerMonitorings(providerSpecLearnerMonitorings)).Returns(providerSpecLearnerMonitoringModel); var result = NewBuilder(ilrModelMapperMock.Object).Build(reportServiceContext, dependentDataMock.Object).ToList(); result.Should().HaveCount(1); var row = result[0]; row.Learner.Should().Be(learner); row.LearningDelivery.Should().Be(learningDelivery); row.LarsLearningDelivery.Should().Be(larsLearningDelivery); row.Fm81LearningDelivery.Should().Be(fm81LearningDeliveryValue); row.ProviderSpecDeliveryMonitoring.Should().Be(providerSpecDeliveryMonitoringModel); row.ProviderSpecLearnerMonitoring.Should().Be(providerSpecLearnerMonitoringModel); row.PeriodisedValues.Should().NotBeNull(); row.LearningDeliveryFAMs.Should().Be(learningDeliveryFamsModel); }
public void ValidationPasses_BasicSkillException() { var validationErrorHandlerMock = BuildValidationErrorHandlerMockForNoError(); var learningDelivery = new TestLearningDelivery { FundModel = 35, LearnAimRef = "00103212", LearnStartDate = new DateTime(2018, 8, 1), LearningDeliveryFAMs = new List <TestLearningDeliveryFAM> { new TestLearningDeliveryFAM { LearnDelFAMType = LearningDeliveryFAMTypeConstants.FFI, LearnDelFAMCode = "1" } } }; var mockLARSLearningDelivery = new Mock <ILARSLearningDelivery>(); mockLARSLearningDelivery .SetupGet(x => x.LearnAimRef) .Returns("00103212"); mockLARSLearningDelivery .SetupGet(x => x.EffectiveFrom) .Returns(new DateTime(2018, 08, 01)); mockLARSLearningDelivery .SetupGet(x => x.EffectiveTo) .Returns(new DateTime(2022, 08, 01)); var larsService = new Mock <ILARSDataService>(); larsService .Setup(m => m.BasicSkillsTypeMatchForLearnAimRef( It.IsAny <IEnumerable <int> >(), It.IsAny <string>())) .Returns(true); larsService .Setup(m => m.GetNotionalNVQLevelv2ForLearnAimRef(It.IsAny <string>())) .Returns("1"); larsService .Setup(x => x.GetDeliveryFor(It.IsAny <string>())) .Returns(mockLARSLearningDelivery.Object); var dd07Mock = new Mock <IDerivedData_07Rule>(); dd07Mock .Setup(m => m.IsApprenticeship(It.IsAny <int?>())) .Returns(false); var dd28Mock = new Mock <IDerivedData_28Rule>(); dd28Mock .Setup(m => m.IsAdultFundedUnemployedWithBenefits(It.IsAny <ILearningDelivery>(), It.IsAny <ILearner>())) .Returns(false); var dd29Mock = new Mock <IDerivedData_29Rule>(); dd29Mock .Setup(m => m.IsInflexibleElementOfTrainingAimLearningDelivery(It.IsAny <ILearningDelivery>())) .Returns(false); var dateTimeServiceMock = new Mock <IDateTimeQueryService>(); dateTimeServiceMock .Setup(m => m.YearsBetween(It.IsAny <DateTime>(), It.IsAny <DateTime>())) .Returns(20); dateTimeServiceMock.Setup(x => x.IsDateBetween(learningDelivery.LearnStartDate, mockLARSLearningDelivery.Object.EffectiveFrom, mockLARSLearningDelivery.Object.EffectiveTo ?? DateTime.MaxValue, true)) .Returns(true); var testLearner = new TestLearner { DateOfBirthNullable = new DateTime(1997, 8, 1), PriorAttainNullable = 2, LearningDeliveries = new List <TestLearningDelivery> { learningDelivery } }; NewRule(validationErrorHandlerMock.Object, larsService.Object, dd07Mock.Object, dd28Mock.Object, dd29Mock.Object, dateTimeServiceMock.Object) .Validate(testLearner); }
public void BuildAppFinRecordModel() { var appFinRecords = new List <IAppFinRecord>() { new TestAppFinRecord() { AFinType = "PMR", AFinCode = 1, AFinDate = new DateTime(2019, 09, 01), AFinAmount = 50 }, new TestAppFinRecord() { AFinType = "PMR", AFinCode = 2, AFinDate = new DateTime(2019, 10, 01), AFinAmount = 100 }, new TestAppFinRecord() { AFinType = "PMR", AFinCode = 3, AFinDate = new DateTime(2019, 11, 01), AFinAmount = 100 }, new TestAppFinRecord() { AFinType = "PMR", AFinCode = 1, AFinDate = new DateTime(2020, 08, 01), AFinAmount = 50 }, new TestAppFinRecord() { AFinType = "PMR", AFinCode = 2, AFinDate = new DateTime(2020, 08, 01), AFinAmount = 100 }, new TestAppFinRecord() { AFinType = "PMR", AFinCode = 3, AFinDate = new DateTime(2020, 08, 01), AFinAmount = 50 }, new TestAppFinRecord() { AFinType = "PMR", AFinCode = 1, AFinDate = new DateTime(2021, 07, 01), AFinAmount = 50 }, new TestAppFinRecord() { AFinType = "PMR", AFinCode = 2, AFinDate = new DateTime(2021, 07, 01), AFinAmount = 100 }, new TestAppFinRecord() { AFinType = "PMR", AFinCode = 3, AFinDate = new DateTime(2021, 07, 01), AFinAmount = 50 }, new TestAppFinRecord() { AFinType = "TNP", AFinCode = 1, AFinDate = new DateTime(2020, 10, 01), AFinAmount = 200 }, new TestAppFinRecord() { AFinType = "TNP", AFinCode = 1, AFinDate = new DateTime(2020, 11, 01), AFinAmount = 300 }, new TestAppFinRecord() { AFinType = "TNP", AFinCode = 2, AFinDate = new DateTime(2020, 11, 01), AFinAmount = 400 }, new TestAppFinRecord() { AFinType = "TNP", AFinCode = 2, AFinDate = new DateTime(2020, 12, 01), AFinAmount = 500 }, }; var learningDelivery = new TestLearningDelivery() { AppFinRecords = appFinRecords, AimType = 1 }; var result = NewBuilder().BuildAppFinRecordModel(learningDelivery); result.LatestTotalNegotiatedPrice1.Should().Be(300); result.LatestTotalNegotiatedPrice2.Should().Be(500); result.SumOfPmrsBeforeFundingYear.Should().Be(50); result.SumOfAugustPmrs.Should().Be(100); result.SumOfJulyPmrs.Should().Be(100); result.PmrsTotal.Should().Be(200); }
public void BuildLearningDelivery() { var learningDelivery = new TestLearningDelivery() { AimSeqNumber = 1, AimType = 2, CompStatus = 3, DelLocPostCode = "DelLocPostcode", FundModel = 4, LearnActEndDateNullable = new DateTime(2017, 1, 1), LearnAimRef = "LearnAimRef", LearnPlanEndDate = new DateTime(2018, 1, 1), LearnStartDate = new DateTime(2019, 1, 1), OrigLearnStartDateNullable = new DateTime(2019, 1, 1), OtherFundAdjNullable = 5, OutcomeNullable = 6, PriorLearnFundAdjNullable = 7, LearningDeliveryFAMs = new List <TestLearningDeliveryFAM>() { new TestLearningDeliveryFAM() { LearnDelFAMType = "ADL", LearnDelFAMCode = "ADL" }, new TestLearningDeliveryFAM() { LearnDelFAMType = "LDM", LearnDelFAMCode = "LDM1" }, new TestLearningDeliveryFAM() { LearnDelFAMType = "LDM", LearnDelFAMCode = "LDM2" }, new TestLearningDeliveryFAM() { LearnDelFAMType = "LDM", LearnDelFAMCode = "LDM3" }, new TestLearningDeliveryFAM() { LearnDelFAMType = "LDM", LearnDelFAMCode = "LDM4" }, new TestLearningDeliveryFAM() { LearnDelFAMType = "RES", LearnDelFAMCode = "RES" }, } }; var larsLearningDelivery = new LARSLearningDelivery { AwardOrgCode = "awardOrgCode", EFACOFType = 1, LearnAimRefTitle = "learnAimRefTitle", LearnAimRefType = "learnAimRefType", RegulatedCreditValue = 2, NotionalNVQLevelv2 = "NVQLevel", LARSFunding = new List <LARSFunding> { new LARSFunding { FundingCategory = "Matrix", RateWeighted = 1.0m, WeightingFactor = "G", EffectiveFrom = new DateTime(2018, 1, 1), EffectiveTo = new DateTime(2019, 1, 1), } }, LARSCareerLearningPilot = new List <LARSCareerLearningPilot> { new LARSCareerLearningPilot { AreaCode = "DelLocPostcode", SubsidyRate = 1.2m, EffectiveFrom = new DateTime(2018, 1, 1), EffectiveTo = new DateTime(2019, 1, 1) } } }; var sfaAreaCost = new List <SfaAreaCost> { new SfaAreaCost { Postcode = "DelLocPostcode", EffectiveFrom = new DateTime(2018, 1, 1), EffectiveTo = new DateTime(2019, 1, 1), AreaCostFactor = 1.2m } }; var subsidyPilotPostcodeArea = new List <CareerLearningPilot> { new CareerLearningPilot { Postcode = "DelLocPostcode", EffectiveFrom = new DateTime(2018, 1, 1), EffectiveTo = new DateTime(2019, 1, 1), AreaCode = "AreaCode" } }; var larsReferenceDataServiceMock = new Mock <ILARSReferenceDataService>(); var postcodeReferenceDataServiceMock = new Mock <IPostcodesReferenceDataService>(); larsReferenceDataServiceMock.Setup(l => l.LARSLearningDeliveryForLearnAimRef(learningDelivery.LearnAimRef)).Returns(larsLearningDelivery); postcodeReferenceDataServiceMock.Setup(o => o.SFAAreaCostsForPostcode(learningDelivery.DelLocPostCode)).Returns(sfaAreaCost); postcodeReferenceDataServiceMock.Setup(o => o.CareerLearningPilotsForPostcode(learningDelivery.DelLocPostCode)).Returns(subsidyPilotPostcodeArea); var dataEntity = NewService(larsReferenceDataServiceMock.Object, postcodeReferenceDataServiceMock.Object).BuildLearningDeliveryDataEntity(learningDelivery); dataEntity.EntityName.Should().Be("LearningDelivery"); dataEntity.Attributes.Should().HaveCount(19); dataEntity.Attributes["AimSeqNumber"].Value.Should().Be(learningDelivery.AimSeqNumber); dataEntity.Attributes["CompStatus"].Value.Should().Be(learningDelivery.CompStatus); dataEntity.Attributes["LearnActEndDate"].Value.Should().Be(learningDelivery.LearnActEndDateNullable); dataEntity.Attributes["LearnAimRefType"].Value.Should().Be(larsLearningDelivery.LearnAimRefType); dataEntity.Attributes["LearnDelFundModel"].Value.Should().Be(learningDelivery.FundModel); dataEntity.Attributes["LearnPlanEndDate"].Value.Should().Be(learningDelivery.LearnPlanEndDate); dataEntity.Attributes["LearnStartDate"].Value.Should().Be(learningDelivery.LearnStartDate); dataEntity.Attributes["LrnDelFAM_ADL"].Value.Should().Be("ADL"); dataEntity.Attributes["LrnDelFAM_LDM1"].Value.Should().Be("LDM1"); dataEntity.Attributes["LrnDelFAM_LDM2"].Value.Should().Be("LDM2"); dataEntity.Attributes["LrnDelFAM_LDM3"].Value.Should().Be("LDM3"); dataEntity.Attributes["LrnDelFAM_LDM4"].Value.Should().Be("LDM4"); dataEntity.Attributes["LrnDelFAM_RES"].Value.Should().Be("RES"); dataEntity.Attributes["NotionalNVQLevelv2"].Value.Should().Be(larsLearningDelivery.NotionalNVQLevelv2); dataEntity.Attributes["OrigLearnStartDate"].Value.Should().Be(learningDelivery.OrigLearnStartDateNullable); dataEntity.Attributes["OtherFundAdj"].Value.Should().Be(learningDelivery.OtherFundAdjNullable); dataEntity.Attributes["Outcome"].Value.Should().Be(learningDelivery.OutcomeNullable); dataEntity.Attributes["PriorLearnFundAdj"].Value.Should().Be(learningDelivery.PriorLearnFundAdjNullable); dataEntity.Attributes["RegulatedCreditValue"].Value.Should().Be(larsLearningDelivery.RegulatedCreditValue); }
public void Build_SingleRow() { var reportServiceContext = Mock.Of <IReportServiceContext>(); var dependentDataMock = new Mock <IReportServiceDependentData>(); var learningDeliveryFams = new List <ILearningDeliveryFAM>() { new TestLearningDeliveryFAM() { LearnDelFAMType = "SOF", LearnDelFAMCode = "110", } }; var providerSpecDeliveryMonitorings = new List <IProviderSpecDeliveryMonitoring>() { new TestProviderSpecDeliveryMonitoring(), }; var learningDelivery = new TestLearningDelivery() { LearnAimRef = "learnAimRef", AimSeqNumber = 1, LSDPostcode = "Postcode1", LearningDeliveryFAMs = learningDeliveryFams, PartnerUKPRNNullable = 12345678, ProviderSpecDeliveryMonitorings = providerSpecDeliveryMonitorings }; var providerSpecLearnerMonitorings = new List <IProviderSpecLearnerMonitoring>() { new TestProviderSpecLearnerMonitoring(), }; var learner = new TestLearner() { LearnRefNumber = "LearnRefNumber", LearningDeliveries = new List <ILearningDelivery>() { learningDelivery }, ProviderSpecLearnerMonitorings = providerSpecLearnerMonitorings, }; var message = new TestMessage() { Learners = new List <ILearner>() { learner } }; var larsLearningDelivery = new LARSLearningDelivery() { LearnAimRef = "learnAimRef", LARSLearningDeliveryCategories = new HashSet <LARSLearningDeliveryCategory> { new LARSLearningDeliveryCategory { CategoryRef = 123 } } }; var mcaGlaSofLookup = new McaGlaSofLookup() { SofCode = "110", McaGlaShortCode = "GMCA", McaGlaFullName = "GMCA Full", }; var referenceDataRoot = new ReferenceDataRoot() { LARSLearningDeliveries = new List <LARSLearningDelivery>() { larsLearningDelivery }, Postcodes = new List <Postcode> { new Postcode { PostCode = "Postcode1" } }, DevolvedPostocdes = new DevolvedPostcodes() { McaGlaSofLookups = new List <McaGlaSofLookup>() { mcaGlaSofLookup } }, Organisations = new List <Organisation>() { new Organisation() { UKPRN = 12345678, Name = "Partner Provider" } } }; var fm35LearningDeliveryValue = new LearningDeliveryValue(); var fm35LearningDelivery = new LearningDelivery() { AimSeqNumber = 1, LearningDeliveryValue = fm35LearningDeliveryValue, LearningDeliveryPeriodisedValues = new List <LearningDeliveryPeriodisedValue>() { BuildPeriodisedValuesForAttribute(AttributeConstants.Fm35OnProgPayment), BuildPeriodisedValuesForAttribute(AttributeConstants.Fm35AchievePayPct), BuildPeriodisedValuesForAttribute(AttributeConstants.Fm35AchievePayment), BuildPeriodisedValuesForAttribute(AttributeConstants.Fm35EmpOutcomePay), BuildPeriodisedValuesForAttribute(AttributeConstants.Fm35BalancePayment), BuildPeriodisedValuesForAttribute(AttributeConstants.Fm35LearnSuppFundCash), } }; var fm35Global = new FM35Global() { Learners = new List <FM35Learner>() { new FM35Learner() { LearnRefNumber = "LearnRefNumber", LearningDeliveries = new List <LearningDelivery>() { fm35LearningDelivery, } } } }; dependentDataMock.Setup(d => d.Get <IMessage>()).Returns(message); dependentDataMock.Setup(d => d.Get <ReferenceDataRoot>()).Returns(referenceDataRoot); dependentDataMock.Setup(d => d.Get <FM35Global>()).Returns(fm35Global); var providerSpecDeliveryMonitoringModel = new ProviderSpecDeliveryMonitoringModel(); var providerSpecLearnerMonitoringModel = new ProviderSpecLearnerMonitoringModel(); var learningDeliveryFamsModel = new LearningDeliveryFAMsModel() { SOF = "110" }; var ilrModelMapperMock = new Mock <IIlrModelMapper>(); var academicYearServiceMock = new Mock <IAcademicYearService>(); ilrModelMapperMock.Setup(m => m.MapLearningDeliveryFAMs(learningDeliveryFams)).Returns(learningDeliveryFamsModel); ilrModelMapperMock.Setup(m => m.MapProviderSpecDeliveryMonitorings(providerSpecDeliveryMonitorings)).Returns(providerSpecDeliveryMonitoringModel); ilrModelMapperMock.Setup(m => m.MapProviderSpecLearnerMonitorings(providerSpecLearnerMonitorings)).Returns(providerSpecLearnerMonitoringModel); var result = NewBuilder(ilrModelMapperMock.Object, academicYearServiceMock.Object).Build(reportServiceContext, dependentDataMock.Object).ToList(); result.Should().HaveCount(1); var row = result[0]; row.Learner.Should().Be(learner); row.LearningDelivery.Should().Be(learningDelivery); row.LarsLearningDelivery.Should().Be(larsLearningDelivery); row.Fm35LearningDelivery.Should().Be(fm35LearningDeliveryValue); row.ProviderSpecDeliveryMonitoring.Should().Be(providerSpecDeliveryMonitoringModel); row.ProviderSpecLearnerMonitoring.Should().Be(providerSpecLearnerMonitoringModel); row.PeriodisedValues.Should().NotBeNull(); row.LearningDeliveryFAMs.Should().Be(learningDeliveryFamsModel); row.McaGlaShortCode.Should().Be("GMCA"); }
public void GroupingConditionMet_True_Multiple() { var learningDeliveryOne = new TestLearningDelivery() { ProgTypeNullable = 1, FworkCodeNullable = 2, PwayCodeNullable = 3, FundModel = 4, }; var learningDeliveryTwo = new TestLearningDelivery() { ProgTypeNullable = 1, FworkCodeNullable = 2, PwayCodeNullable = 3, FundModel = 4, }; var learningDeliveryThree = new TestLearningDelivery() { ProgTypeNullable = 5, FworkCodeNullable = 6, PwayCodeNullable = 7, FundModel = 8, }; var learningDeliveryFour = new TestLearningDelivery() { ProgTypeNullable = 5, FworkCodeNullable = 6, PwayCodeNullable = 7, FundModel = 8, }; var learningDeliveries = new TestLearningDelivery[] { learningDeliveryOne, learningDeliveryTwo, learningDeliveryThree, learningDeliveryFour, }; var groups = NewRule().ApplyGroupingCondition(learningDeliveries).ToList(); groups.Should().HaveCount(2); var groupOne = groups[0].ToList(); groupOne.Should().HaveCount(2); groupOne.Should().Contain(new List <ILearningDelivery>() { learningDeliveryOne, learningDeliveryTwo }); var groupTwo = groups[1].ToList(); groupTwo.Should().HaveCount(2); groupTwo.Should().Contain(new List <ILearningDelivery>() { learningDeliveryThree, learningDeliveryFour }); }
public void ValidateNoError() { var ukprn = 1; var learnStartDate = new DateTime(2019, 8, 1); var fundModel = 35; var lsdPostcode = "Postcode"; var legalOrgType = "USDC"; var learningDeliveryFams = new List <TestLearningDeliveryFAM> { new TestLearningDeliveryFAM { LearnDelFAMType = "SOF", LearnDelFAMCode = "105" }, }; var learningDelivery = new TestLearningDelivery { LearnStartDate = learnStartDate, FundModel = fundModel, LSDPostcode = lsdPostcode, LearningDeliveryFAMs = learningDeliveryFams }; var learner = new TestLearner { LearningDeliveries = new List <TestLearningDelivery> { learningDelivery, learningDelivery, } }; var devolvedPostcodes = new List <IDevolvedPostcode> { new DevolvedPostcode { Postcode = lsdPostcode, EffectiveFrom = new DateTime(2019, 9, 1), SourceOfFunding = "105" } }; var fileDataServiceMock = new Mock <IFileDataService>(); var organisationsDataServiceMock = new Mock <IOrganisationDataService>(); var postcodeDataServiceMock = new Mock <IPostcodesDataService>(); var learningDeliveryFamQueryServiceMock = new Mock <ILearningDeliveryFAMQueryService>(); var dd35Mock = new Mock <IDerivedData_35Rule>(); fileDataServiceMock.Setup(fm => fm.UKPRN()).Returns(ukprn); organisationsDataServiceMock.Setup(o => o.GetLegalOrgTypeForUkprn(ukprn)).Returns(legalOrgType); postcodeDataServiceMock.Setup(p => p.GetDevolvedPostcodes(lsdPostcode)).Returns(devolvedPostcodes); learningDeliveryFamQueryServiceMock.Setup(ldf => ldf.GetLearningDeliveryFAMsForType(It.IsAny <IEnumerable <ILearningDeliveryFAM> >(), LearningDeliveryFAMTypeConstants.SOF)).Returns(learningDeliveryFams); learningDeliveryFamQueryServiceMock.Setup(ldf => ldf.HasLearningDeliveryFAMCodeForType(It.IsAny <IEnumerable <ILearningDeliveryFAM> >(), LearningDeliveryFAMTypeConstants.LDM, LearningDeliveryFAMCodeConstants.LDM_OLASS)).Returns(false); learningDeliveryFamQueryServiceMock.Setup(ldf => ldf.HasLearningDeliveryFAMCodeForType(It.IsAny <IEnumerable <ILearningDeliveryFAM> >(), LearningDeliveryFAMTypeConstants.DAM, LearningDeliveryFAMCodeConstants.DAM_Code_001)).Returns(false); learningDeliveryFamQueryServiceMock.Setup(ldf => ldf.HasLearningDeliveryFAMType(It.IsAny <IEnumerable <ILearningDeliveryFAM> >(), LearningDeliveryFAMTypeConstants.RES)).Returns(true); dd35Mock.Setup(dd => dd.IsCombinedAuthorities(It.IsAny <ILearningDelivery>())).Returns(false); using (var validationErrorHandlerMock = BuildValidationErrorHandlerMockForNoError()) { NewRule( validationErrorHandlerMock.Object, fileDataServiceMock.Object, postcodeDataServiceMock.Object, organisationsDataServiceMock.Object, learningDeliveryFamQueryServiceMock.Object, dd35Mock.Object).Validate(learner); validationErrorHandlerMock.Verify(h => h.BuildErrorMessageParameter(It.IsAny <string>(), It.IsAny <object>()), Times.Exactly(0)); } }