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);
            }
        }
コード例 #2
0
        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);
        }
コード例 #5
0
        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,
            });
        }
コード例 #6
0
        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);
        }
コード例 #7
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");
        }
コード例 #8
0
        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();
        }
コード例 #10
0
        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);
        }
コード例 #11
0
        public void LearningDeliveryStandardCompAimConditionMet_False()
        {
            var learningDelivery = new TestLearningDelivery();

            NewRule().LearningDeliveryStandardCompAimConditionMet(null).Should().BeFalse();
        }
コード例 #12
0
        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);
        }
コード例 #13
0
        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);
        }
コード例 #14
0
        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
            });
        }
コード例 #18
0
        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));
            }
        }