コード例 #1
0
        public void Validate_NoError_NoLearningDeliveryHE()
        {
            var learner = new TestLearner()
            {
                LearningDeliveries = new List <TestLearningDelivery>()
                {
                    new TestLearningDelivery()
                    {
                        FundModel = 35,
                        LearningDeliveryHEEntity = new TestLearningDeliveryHE()
                        {
                            ELQNullable = null
                        }
                    }
                }
            };

            using (var validationErrorHandlerMock = BuildValidationErrorHandlerMockForNoError())
            {
                NewRule(validationErrorHandler: validationErrorHandlerMock.Object).Validate(learner);
            }
        }
コード例 #2
0
        public void Validate_NoErrors()
        {
            var learner = new TestLearner()
            {
                DateOfBirthNullable = new DateTime(1988, 12, 25),
                LearningDeliveries  = new TestLearningDelivery[]
                {
                    new TestLearningDelivery()
                    {
                        FundModelNullable = 25
                    }
                }
            };

            var learningDeliveryFAMQueryServiceMock = new Mock <ILearningDeliveryFAMQueryService>();

            learningDeliveryFAMQueryServiceMock.Setup(qs => qs.HasLearningDeliveryFAMCodeForType(It.IsAny <IEnumerable <ILearningDeliveryFAM> >(), "LDM", "034")).Returns(false);

            var rule = NewRule(learningDeliveryFAMQueryServiceMock.Object);

            rule.Validate(learner);
        }
コード例 #3
0
        public void Validate_Error()
        {
            var learner = new TestLearner()
            {
                LearningDeliveries = new List <TestLearningDelivery>()
                {
                    new TestLearningDelivery()
                    {
                        LearnActEndDateNullable = new DateTime(2018, 8, 1),
                        AppFinRecords           = new List <TestAppFinRecord>
                        {
                            new TestAppFinRecord
                            {
                                AFinType = "TNP",
                                AFinCode = 1,
                                AFinDate = new DateTime(2018, 9, 1)
                            },
                            new TestAppFinRecord
                            {
                                AFinType = "TNP",
                                AFinCode = 1,
                                AFinDate = new DateTime(2018, 10, 1)
                            },
                            new TestAppFinRecord
                            {
                                AFinType = "PMR",
                                AFinCode = 1,
                                AFinDate = new DateTime(2018, 9, 1)
                            }
                        }
                    }
                }
            };

            using (var validationErrorHandlerMock = BuildValidationErrorHandlerMockForError())
            {
                NewRule(validationErrorHandlerMock.Object).Validate(learner);
            }
        }
コード例 #4
0
        public void Validate_NoError()
        {
            var llddHealthProb        = 1;
            var llddAndHealthProblems = new List <TestLLDDAndHealthProblem>
            {
                new TestLLDDAndHealthProblem
                {
                    LLDDCat = 98
                }
            };

            var learner = new TestLearner
            {
                LLDDHealthProb        = llddHealthProb,
                LLDDAndHealthProblems = llddAndHealthProblems
            };

            using (var validationErrorHandlerMock = BuildValidationErrorHandlerMockForNoError())
            {
                NewRule(validationErrorHandlerMock.Object).Validate(learner);
            }
        }
        public void ValidateError()
        {
            var origLearnStartDate = new DateTime(2017, 04, 30);
            var fundModel          = 36;

            var learner = new TestLearner()
            {
                LearningDeliveries = new List <TestLearningDelivery>()
                {
                    new TestLearningDelivery()
                    {
                        OrigLearnStartDateNullable = origLearnStartDate,
                        FundModel = fundModel,
                    }
                }
            };

            using (var validationErrorHandlerMock = BuildValidationErrorHandlerMockForError())
            {
                NewRule(validationErrorHandlerMock.Object).Validate(learner);
            }
        }
        public void Validate_Error()
        {
            var learner = new TestLearner
            {
                LearningDeliveries = new List <TestLearningDelivery>
                {
                    new TestLearningDelivery()
                    {
                        PartnerUKPRNNullable = 1
                    }
                }
            };

            var organisationDataServiceMock = new Mock <IOrganisationDataService>();

            organisationDataServiceMock.Setup(ds => ds.IsPartnerUkprn(1)).Returns(false);

            using (var validationErrorHandlerMock = BuildValidationErrorHandlerMockForError())
            {
                NewRule(organisationDataServiceMock.Object, validationErrorHandlerMock.Object).Validate(learner);
            }
        }
コード例 #7
0
        public void ValidatePassesCourse12Months(int fundModel)
        {
            var validationErrorHandlerMock           = BuildValidationErrorHandlerMockForNoError();
            var learningDeliveryFAMsQueryServiceMock = new Mock <ILearningDeliveryFAMQueryService>();
            var dateTimeServiceMock = new Mock <IDateTimeQueryService>();

            dateTimeServiceMock
            .Setup(m => m.AgeAtGivenDate(It.IsAny <DateTime>(), It.IsAny <DateTime>()))
            .Returns(20);
            dateTimeServiceMock
            .Setup(m => m.YearsBetween(It.IsAny <DateTime>(), It.IsAny <DateTime>()))
            .Returns(1);

            TestLearningDeliveryFAM[] learningDeliveryFAMs = null;
            var testLearner = new TestLearner
            {
                DateOfBirthNullable = new DateTime(1996, 7, 31),
                LearningDeliveries  = new List <TestLearningDelivery>
                {
                    new TestLearningDelivery
                    {
                        FundModel               = fundModel,
                        AimType                 = 1,
                        ProgTypeNullable        = 25,
                        LearnStartDate          = new DateTime(2016, 7, 31),
                        LearnActEndDateNullable = new DateTime(2017, 8, 31),
                        OutcomeNullable         = 1
                    }
                }
            };

            learningDeliveryFAMsQueryServiceMock.Setup(f => f.HasLearningDeliveryFAMType(learningDeliveryFAMs, "RES")).Returns(false);
            NewRule(
                validationErrorHandler: validationErrorHandlerMock.Object,
                learningDeliveryFAMQueryService: learningDeliveryFAMsQueryServiceMock.Object,
                dateTimeQueryService: dateTimeServiceMock.Object)
            .Validate(testLearner);
            VerifyErrorHandlerMock(validationErrorHandlerMock);
        }
コード例 #8
0
        public void Validate_NoGradeSupplied_NoError()
        {
            var testLearner = new TestLearner()
            {
                LearnRefNumber     = "AB12345",
                LearningDeliveries = new[]
                {
                    new TestLearningDelivery()
                    {
                        LearnAimRef = "1A234"
                    }
                }
            };

            var provideLookupDetails = new Mock <IProvideLookupDetails>();

            provideLookupDetails.Setup(p => p.Contains(TypeOfStringCodedLookup.GCSEGrade, Grades.AstarA)).Returns(true);
            using (var validationErrorHandlerMock = BuildValidationErrorHandlerMockForNoError())
            {
                NewRule(validationErrorHandlerMock.Object, provideLookupDetails.Object).Validate(testLearner);
            }
        }
        public void ValidationFails_withCorrect_AimSequenceNumber()
        {
            var validationErrorHandlerMock = BuildValidationErrorHandlerMockForError();
            var testLearner = new TestLearner
            {
                LearnRefNumber     = "ABC1234",
                LearningDeliveries = new List <ILearningDelivery>
                {
                    new TestLearningDelivery
                    {
                        AimType                 = 1,
                        ProgTypeNullable        = 1,
                        FworkCodeNullable       = 1,
                        PwayCodeNullable        = 1,
                        LearnActEndDateNullable = null,
                        AimSeqNumber            = 1
                    },
                    new TestLearningDelivery
                    {
                        AimType           = 2,
                        ProgTypeNullable  = 1,
                        FworkCodeNullable = 1,
                        PwayCodeNullable  = 1,
                        AimSeqNumber      = 2
                    },
                    new TestLearningDelivery
                    {
                        AimType           = 3,
                        ProgTypeNullable  = 2,
                        FworkCodeNullable = 1,
                        PwayCodeNullable  = 1,
                        AimSeqNumber      = 3
                    }
                }
            };

            NewRule(validationErrorHandlerMock.Object).Validate(testLearner);
            validationErrorHandlerMock.Verify(h => h.Handle("R31", "ABC1234", 1, It.IsAny <IEnumerable <IErrorMessageParameter> >()));
        }
        public void Validate_NoError_NullCheck()
        {
            List <ILearningDeliveryFAM> learningDeliveryFAMs = new List <ILearningDeliveryFAM>()
            {
                new TestLearningDeliveryFAM()
                {
                    LearnDelFAMType = LearningDeliveryFAMTypeConstants.ACT,
                    LearnDelFAMCode = "350"
                }
            };

            TestLearner testLearner = null;

            var learningDeliveryFAMsQueryServiceMock = new Mock <ILearningDeliveryFAMQueryService>();

            learningDeliveryFAMsQueryServiceMock.Setup(ldf => ldf.HasAnyLearningDeliveryFAMCodesForType(learningDeliveryFAMs, LearningDeliveryFAMTypeConstants.ACT, new[] { "350" })).Returns(false);

            using (var validationErrorHandlerMock = BuildValidationErrorHandlerMockForNoError())
            {
                NewRule(validationErrorHandler: validationErrorHandlerMock.Object, learningDeliveryFAMQueryService: learningDeliveryFAMsQueryServiceMock.Object).Validate(testLearner);
            }
        }
コード例 #11
0
        public void Validate_NoError()
        {
            var testLearner = new TestLearner()
            {
                LearningDeliveries = new TestLearningDelivery[]
                {
                    new TestLearningDelivery()
                    {
                        LearnAimRef = "2A2345",
                        LearningDeliveryHEEntity = new TestLearningDeliveryHE()
                        {
                            GROSSFEENullable = 5
                        }
                    }
                }
            };

            using (var validationErrorHandlerMock = BuildValidationErrorHandlerMockForNoError())
            {
                NewRule(validationErrorHandler: validationErrorHandlerMock.Object).Validate(testLearner);
            }
        }
        public void Validate_NoError()
        {
            IEnumerable <ILearningDeliveryFAM> learningDeliveryFAMs = new List <TestLearningDeliveryFAM>()
            {
                new TestLearningDeliveryFAM()
                {
                    LearnDelFAMType = LearningDeliveryFAMTypeConstants.ACT
                },
            };

            ILearner learner = new TestLearner()
            {
                LearningDeliveries = new TestLearningDelivery[]
                {
                    new TestLearningDelivery()
                    {
                        LearnAimRef          = "00100309",
                        AimType              = 1,
                        LearnStartDate       = new DateTime(2018, 06, 01),
                        FundModel            = TypeOfFunding.ApprenticeshipsFrom1May2017,
                        LearningDeliveryFAMs = learningDeliveryFAMs.ToList()
                    }
                }
            };

            var learningDeliveryFAMsQueryServiceMock = new Mock <ILearningDeliveryFAMQueryService>();
            var larsDataServiceMock = new Mock <ILARSDataService>();

            learningDeliveryFAMsQueryServiceMock.Setup(dd => dd.HasLearningDeliveryFAMType(learningDeliveryFAMs, LearningDeliveryFAMTypeConstants.ACT)).Returns(true);
            larsDataServiceMock.Setup(ldc => ldc.BasicSkillsMatchForLearnAimRefAndStartDate(_basicSkillsTypes, "00100310", new DateTime(2017, 1, 1))).Returns(false);

            using (var validationErrorHandlerMock = BuildValidationErrorHandlerMockForNoError())
            {
                NewRule(
                    validationErrorHandler: validationErrorHandlerMock.Object,
                    learningDeliveryFAMQueryService: learningDeliveryFAMsQueryServiceMock.Object,
                    lARSDataService: larsDataServiceMock.Object).Validate(learner);
            }
        }
        public void Validate_Error()
        {
            var dateOfBirth = new DateTime(2000, 1, 1);
            var academicYearAugustThirtyFirst = new DateTime(2017, 8, 31);
            var learningDeliveryFAMs          = new TestLearningDeliveryFAM[] { };

            var learner = new TestLearner()
            {
                DateOfBirthNullable = dateOfBirth,
                LearningDeliveries  = new TestLearningDelivery[]
                {
                    new TestLearningDelivery()
                    {
                        LearnStartDateNullable = academicYearAugustThirtyFirst,
                        FundModelNullable      = 25,
                        LearningDeliveryFAMs   = learningDeliveryFAMs
                    }
                }
            };

            var validationDataServiceMock           = new Mock <IValidationDataService>();
            var dateTimeQueryServiceMock            = new Mock <IDateTimeQueryService>();
            var learningDeliveryFAMQueryServiceMock = new Mock <ILearningDeliveryFAMQueryService>();
            var validationErrorHandlerMock          = new Mock <IValidationErrorHandler>();

            validationDataServiceMock.SetupGet(vds => vds.AcademicYearAugustThirtyFirst).Returns(academicYearAugustThirtyFirst);
            dateTimeQueryServiceMock.Setup(qs => qs.YearsBetween(dateOfBirth, academicYearAugustThirtyFirst)).Returns(17);
            learningDeliveryFAMQueryServiceMock.Setup(qs => qs.HasLearningDeliveryFAMCodeForType(learningDeliveryFAMs, "SOF", "107")).Returns(false);

            Expression <Action <IValidationErrorHandler> > handle = veh => veh.Handle("DateOfBirth_20", null, null, null);

            validationErrorHandlerMock.Setup(handle);

            var rule = NewRule(validationDataServiceMock.Object, dateTimeQueryServiceMock.Object, learningDeliveryFAMQueryServiceMock.Object, validationErrorHandlerMock.Object);

            rule.Validate(learner);

            validationErrorHandlerMock.Verify(handle, Times.Once);
        }
コード例 #14
0
        public void Validate_Error()
        {
            var learner = new TestLearner()
            {
                LearningDeliveries = new List <TestLearningDelivery>()
                {
                    new TestLearningDelivery()
                    {
                        AchDateNullable = new DateTime(2019, 1, 1)
                    }
                }
            };

            var academicYearDataServiceMock = new Mock <IAcademicYearDataService>();

            academicYearDataServiceMock.Setup(ay => ay.End()).Returns(new DateTime(2018, 9, 1));

            using (var validationErrorHandlerMock = BuildValidationErrorHandlerMockForError())
            {
                NewRule(academicYearDataServiceMock.Object, validationErrorHandlerMock.Object).Validate(learner);
            }
        }
コード例 #15
0
        public void ValidateNoError()
        {
            var learner = new TestLearner()
            {
                LearningDeliveries = new List <TestLearningDelivery>()
                {
                    new TestLearningDelivery()
                    {
                        LearningDeliveryHEEntity = new TestLearningDeliveryHE()
                        {
                            MSTUFEE  = 2,
                            DOMICILE = "XX"
                        }
                    }
                }
            };

            using (var validationErrorHandlerMock = BuildValidationErrorHandlerMockForNoError())
            {
                NewRule(validationErrorHandlerMock.Object).Validate(learner);
            }
        }
        public void Validate_NoError()
        {
            var learner = new TestLearner
            {
                LearningDeliveries = new List<TestLearningDelivery>
                {
                    new TestLearningDelivery()
                    {
                        PartnerUKPRNNullable = 1
                    }
                }
            };

            var fileDataServiceMock = new Mock<IFileDataService>();

            fileDataServiceMock.Setup(ds => ds.UKPRN()).Returns(2);

            using (var validationErrorHandlerMock = BuildValidationErrorHandlerMockForNoError())
            {
                NewRule(fileDataServiceMock.Object, validationErrorHandlerMock.Object).Validate(learner);
            }
        }
コード例 #17
0
        public void ValidateError()
        {
            var progType = TypeOfLearningProgramme.ApprenticeshipStandard;

            var learner = new TestLearner
            {
                DateOfBirthNullable = new DateTime(2001, 05, 01),
                LearningDeliveries  = new List <TestLearningDelivery>()
                {
                    new TestLearningDelivery()
                    {
                        ProgTypeNullable = progType
                    }
                }
            };

            var academicYearQueryService = new Mock <IAcademicYearQueryService>();

            academicYearQueryService.Setup(qs => qs.LastFridayInJuneForDateInAcademicYear(It.IsAny <DateTime>()))
            .Returns(new DateTime(2017, 06, 30));

            var dd18Mock = new Mock <IDerivedData_18Rule>();

            dd18Mock.Setup(dm => dm.GetApprenticeshipStandardProgrammeStartDateFor(It.IsAny <ILearningDelivery>(), It.IsAny <IReadOnlyCollection <ILearningDelivery> >()))
            .Returns(new DateTime(2017, 05, 01));

            var dd07Mock = new Mock <IDerivedData_07Rule>();

            dd07Mock.Setup(dm => dm.IsApprenticeship(progType)).Returns(true);

            using (var validationErrorHandlerMock = BuildValidationErrorHandlerMockForError())
            {
                NewRule(
                    dd18Mock.Object,
                    dd07Mock.Object,
                    academicYearQueryService.Object,
                    validationErrorHandlerMock.Object).Validate(learner);
            }
        }
        public void Validate_NoErrors_NoLearningDeliveryHE()
        {
            var learner = new TestLearner()
            {
                LearningDeliveries = new List <TestLearningDelivery>()
                {
                    new TestLearningDelivery()
                    {
                        LearnStartDate           = new DateTime(2013, 08, 1),
                        LearningDeliveryHEEntity = null
                    }
                }
            };

            var dd06Mock = new Mock <IDerivedData_06Rule>();

            dd06Mock.Setup(dd => dd.Derive(learner.LearningDeliveries)).Returns(new DateTime(2013, 08, 01));
            using (var validationErrorHandlerMock = BuildValidationErrorHandlerMockForNoError())
            {
                NewRule(dd06Mock.Object, validationErrorHandlerMock.Object).Validate(learner);
            }
        }
コード例 #19
0
        public void Validate_NoError_SuccessfulLars()
        {
            var learningDelivery = new TestLearningDelivery()
            {
                ProgTypeNullable = 31,
                AimType          = 5,
                LearnAimRef      = _larsLearnAimReference
            };

            var learner = new TestLearner()
            {
                LearningDeliveries = new List <TestLearningDelivery>()
                {
                    learningDelivery
                }
            };

            using (var validationErrorHandlerMock = BuildValidationErrorHandlerMockForNoError())
            {
                NewRule(validationErrorHandler: validationErrorHandlerMock.Object).Validate(learner);
            }
        }
コード例 #20
0
        public void Validate_NoError()
        {
            DateTime academicYear    = new DateTime(2018, 8, 1);
            DateTime startDate       = new DateTime(2018, 8, 1);
            DateTime?learnActEndDate = new DateTime(2018, 8, 1);
            string   conRefNumber    = "ConRef";

            var learner = new TestLearner()
            {
                LearningDeliveries = new TestLearningDelivery[]
                {
                    new TestLearningDelivery()
                    {
                        FundModel               = _fundModel,
                        LearnStartDate          = startDate,
                        LearnActEndDateNullable = learnActEndDate,
                        ConRefNumber            = conRefNumber
                    }
                }
            };

            var academicYearDataServiceMock  = new Mock <IAcademicYearDataService>();
            var fcsDataServiceMock           = new Mock <IFCSDataService>();
            var academicYearQueryServiceMock = new Mock <IAcademicYearQueryService>();

            academicYearQueryServiceMock.Setup(qs => qs.DateIsInPrevAcademicYear(learnActEndDate.Value, academicYear)).Returns(false);
            academicYearDataServiceMock.Setup(ds => ds.Start()).Returns(startDate);
            fcsDataServiceMock.Setup(qs => qs.FundingRelationshipFCTExists(_fundingStreamPeriodCodes)).Returns(true);
            fcsDataServiceMock.Setup(qs => qs.ConRefNumberExists(conRefNumber)).Returns(true);

            using (var validationErrorHandlerMock = BuildValidationErrorHandlerMockForNoError())
            {
                NewRule(
                    fcsDataServiceMock.Object,
                    academicYearDataServiceMock.Object,
                    academicYearQueryServiceMock.Object,
                    validationErrorHandler: validationErrorHandlerMock.Object).Validate(learner);
            }
        }
コード例 #21
0
        public void Validate_NoError()
        {
            DateTime dateOfBirth      = new DateTime(2004, 9, 2);
            DateTime dd04Date         = new DateTime(2018, 9, 1);
            DateTime lastFridayOfJune = new DateTime(2019, 9, 2);

            ILearner learner = new TestLearner()
            {
                DateOfBirthNullable = dateOfBirth,
                LearningDeliveries  = new TestLearningDelivery[]
                {
                    new TestLearningDelivery()
                    {
                        ProgTypeNullable  = 25,
                        AimType           = 1,
                        FworkCodeNullable = 2,
                        PwayCodeNullable  = 1,
                        LearnStartDate    = new DateTime(2018, 8, 1)
                    }
                }
            };

            var dd07Mock = new Mock <IDerivedData_07Rule>();
            var dd04Mock = new Mock <IDerivedData_04Rule>();
            var datetimeQueryServiceMock     = new Mock <IDateTimeQueryService>();
            var academicYearQueryServiceMock = new Mock <IAcademicYearQueryService>();

            dd04Mock.Setup(dd => dd.GetEarliesStartDateFor(learner.LearningDeliveries.FirstOrDefault(), learner.LearningDeliveries)).Returns(dd04Date);
            academicYearQueryServiceMock.Setup(dd => dd.LastFridayInJuneForDateInAcademicYear(dd04Date)).Returns(lastFridayOfJune);

            using (var validateionErrorHandlerMock = BuildValidationErrorHandlerMockForNoError())
            {
                NewRule(
                    dd04: dd04Mock.Object,
                    dd07: dd07Mock.Object,
                    academicYearQueryService: academicYearQueryServiceMock.Object,
                    validationErrorHandler: validateionErrorHandlerMock.Object).Validate(learner);
            }
        }
コード例 #22
0
        public void Validate_NoError_Exclusion()
        {
            var appFinRecords = new List <IAppFinRecord>
            {
                new TestAppFinRecord()
                {
                    AFinType = ApprenticeshipFinancialRecord.Types.TotalNegotiatedPrice,
                    AFinCode = 1
                },
                new TestAppFinRecord()
            };

            var learningDelivery = new TestLearningDelivery()
            {
                ProgTypeNullable = 25,
                AimType          = 1,
                FundModel        = 99,
                AppFinRecords    = appFinRecords
            };

            var learner = new TestLearner
            {
                LearningDeliveries = new List <TestLearningDelivery>
                {
                    learningDelivery
                }
            };

            var appFinRecordQueryServiceMock = new Mock <ILearningDeliveryAppFinRecordQueryService>();

            appFinRecordQueryServiceMock.Setup(x => x.HasAnyLearningDeliveryAFinCodesForType(appFinRecords, "TNP", new HashSet <int> {
                2, 4
            })).Returns(false);

            using (var validationErrorHandlerMock = BuildValidationErrorHandlerMockForNoError())
            {
                NewRule(appFinRecordQueryServiceMock.Object, validationErrorHandlerMock.Object).Validate(learner);
            }
        }
コード例 #23
0
        public void Validate_NoError()
        {
            var learningDeliveryFAMs = new List <TestLearningDeliveryFAM>();
            var learner = new TestLearner()
            {
                ULN = 1,
                LearningDeliveries = new List <TestLearningDelivery>
                {
                    new TestLearningDelivery
                    {
                        FundModel            = 35,
                        LearnStartDate       = new DateTime(2019, 05, 01),
                        LearnPlanEndDate     = new DateTime(2019, 05, 10),
                        LearningDeliveryFAMs = learningDeliveryFAMs
                    }
                }
            };

            var academicDataQueryServiceMock        = new Mock <IAcademicYearDataService>();
            var dateTimeQueryServiceMock            = new Mock <IDateTimeQueryService>();
            var fileDataServiceMock                 = new Mock <IFileDataService>();
            var learningDeliveryFAMQueryServiceMock = new Mock <ILearningDeliveryFAMQueryService>();

            academicDataQueryServiceMock.Setup(qs => qs.JanuaryFirst()).Returns(new DateTime(2019, 01, 01));
            dateTimeQueryServiceMock.Setup(qs => qs.DaysBetween(It.IsAny <DateTime>(), It.IsAny <DateTime>())).Returns(100);
            fileDataServiceMock.Setup(fd => fd.FilePreparationDate()).Returns(new DateTime(2019, 01, 01));
            learningDeliveryFAMQueryServiceMock.Setup(qs => qs.HasLearningDeliveryFAMCodeForType(learningDeliveryFAMs, "ADL", "1")).Returns(false);

            using (var validationErrorHandlerMock = BuildValidationErrorHandlerMockForNoError())
            {
                NewRule(
                    academicDataQueryServiceMock.Object,
                    dateTimeQueryServiceMock.Object,
                    fileDataServiceMock.Object,
                    learningDeliveryFAMQueryServiceMock.Object,
                    validationErrorHandlerMock.Object)
                .Validate(learner);
            }
        }
コード例 #24
0
        public void Validate_NoErrors()
        {
            var learner = new TestLearner()
            {
                LearningDeliveries = new TestLearningDelivery[]
                {
                    new TestLearningDelivery()
                    {
                        FundModel = 1
                    }
                }
            };

            var learningDeliveryFAMQueryServiceMock = new Mock <ILearningDeliveryFAMQueryService>();

            learningDeliveryFAMQueryServiceMock.Setup(qs => qs.HasLearningDeliveryFAMType(It.IsAny <IEnumerable <ILearningDeliveryFAM> >(), "ADL")).Returns(false);

            using (var validationErrorHandlerMock = BuildValidationErrorHandlerMockForNoError())
            {
                NewRule(learningDeliveryFAMQueryServiceMock.Object, validationErrorHandlerMock.Object).Validate(learner);
            }
        }
        public void ValidateNoError_NullLearnerHeEntity()
        {
            var learner = new TestLearner()
            {
                LearningDeliveries = new List <TestLearningDelivery>()
                {
                    new TestLearningDelivery()
                    {
                        LearnStartDate           = new DateTime(2018, 01, 01),
                        LearningDeliveryHEEntity = new TestLearningDeliveryHE()
                        {
                            UCASAPPID = null
                        }
                    }
                }
            };

            using (var validationErrorHandlerMock = BuildValidationErrorHandlerMockForNoError())
            {
                NewRule(validationErrorHandlerMock.Object).Validate(learner);
            }
        }
コード例 #26
0
        public void Validate_MultipleDeliveries_Error()
        {
            var typeYr  = 6;
            var learner = new TestLearner()
            {
                LearningDeliveries = new List <TestLearningDelivery>()
                {
                    new TestLearningDelivery()
                    {
                        LearningDeliveryHEEntity = new TestLearningDeliveryHE()
                        {
                            TYPEYR = typeYr
                        }
                    },
                    new TestLearningDelivery()
                    {
                        LearningDeliveryHEEntity = new TestLearningDeliveryHE()
                        {
                            TYPEYR = 1
                        }
                    },
                    new TestLearningDelivery()
                    {
                        LearningDeliveryHEEntity = null
                    }
                }
            };

            var provideLookupDetails = new Mock <IProvideLookupDetails>();

            provideLookupDetails.Setup(p => p.Contains(TypeOfStringCodedLookup.TypeYr, typeYr.ToString())).Returns(false);
            provideLookupDetails.Setup(p => p.Contains(TypeOfStringCodedLookup.TypeYr, "1")).Returns(true);

            using (var validationErrorHandlerMock = BuildValidationErrorHandlerMockForError())
            {
                NewRule(validationErrorHandlerMock.Object, provideLookupDetails.Object).Validate(learner);
            }
        }
        public void ValidatePasses_OutcomeNotApplicable()
        {
            var testLearnAimRef            = "12345";
            var validationErrorHandlerMock = BuildValidationErrorHandlerMockForNoError();

            var larsMock = new Mock <ILARSDataService>();

            larsMock
            .Setup(m => m.GetDeliveryFor(It.IsAny <string>()))
            .Returns(new Data.External.LARS.Model.LearningDelivery
            {
                LearnAimRef     = testLearnAimRef,
                LearnAimRefType = "0001"
            });

            var lookupMock = new Mock <IProvideLookupDetails>();

            lookupMock
            .Setup(m => m.Contains(TypeOfListItemLookup.LearningAimType, It.IsAny <string>(), It.IsAny <string>()))
            .Returns(false);

            var testLearner = new TestLearner
            {
                LearningDeliveries = new List <TestLearningDelivery>
                {
                    new TestLearningDelivery
                    {
                        LearnAimRef             = testLearnAimRef,
                        LearnActEndDateNullable = new DateTime(2018, 7, 31),
                        OutcomeNullable         = 2,
                        OutGrade = "VVV"
                    }
                }
            };

            NewRule(validationErrorHandlerMock.Object, larsMock.Object, lookupMock.Object).Validate(testLearner);
            VerifyErrorHandlerMock(validationErrorHandlerMock);
        }
        public void ProvideDestinationAndProgressionForLearner()
        {
            const string testLearnRefNum = "12345";

            var learner = new TestLearner
            {
                LearnRefNumber = testLearnRefNum
            };

            var learnerDPs = new List <TestLearnerDestinationAndProgression>
            {
                new TestLearnerDestinationAndProgression
                {
                    LearnRefNumber = testLearnRefNum,
                    DPOutcomes     = new List <TestDPOutcome>
                    {
                        new TestDPOutcome()
                    }
                }
            };

            var testMessage = new TestMessage()
            {
                LearnerDestinationAndProgressions = learnerDPs
            };

            var messageCacheMock = new Mock <ICache <IMessage> >();

            messageCacheMock.SetupGet(mc => mc.Item).Returns(testMessage);

            var learnerQueryService = NewService(messageCacheMock.Object);

            var result = learnerQueryService.GetDestinationAndProgressionForLearner(learner.LearnRefNumber);

            Assert.NotNull(result?.DPOutcomes);
            Assert.Equal(result.LearnRefNumber, testLearnRefNum);
            Assert.Equal(1, result.DPOutcomes.Count);
        }
        public void Validate_NoError()
        {
            var learner = new TestLearner
            {
                LearningDeliveries = new List <TestLearningDelivery>()
                {
                    new TestLearningDelivery()
                    {
                        EPAOrgID      = "EPA001",
                        AppFinRecords = new List <TestAppFinRecord>()
                        {
                            new TestAppFinRecord()
                            {
                                AFinCode = 2,
                                AFinType = "TNP"
                            }
                        }
                    },
                    new TestLearningDelivery()
                    {
                        EPAOrgID      = "EPA002",
                        AppFinRecords = new List <TestAppFinRecord>()
                        {
                            new TestAppFinRecord()
                            {
                                AFinCode = 4,
                                AFinType = "TNP"
                            }
                        }
                    }
                }
            };

            using (var validationErrorHandlerMock = BuildValidationErrorHandlerMockForNoError())
            {
                NewRule(validationErrorHandlerMock.Object).Validate(learner);
            }
        }
コード例 #30
0
        public void ValidateNoError()
        {
            var dateOfBirth      = new DateTime(1995, 08, 01);
            var learnStartDate   = new DateTime(2015, 08, 01);
            var learnPlanEndDate = new DateTime(2016, 09, 01);

            var learner = new TestLearner()
            {
                DateOfBirthNullable = dateOfBirth,
                LearningDeliveries  = new List <TestLearningDelivery>()
                {
                    new TestLearningDelivery()
                    {
                        LearnStartDate   = learnStartDate,
                        LearnPlanEndDate = learnPlanEndDate,
                        FundModel        = TypeOfFunding.AdultSkills,
                        ProgTypeNullable = TypeOfLearningProgramme.ApprenticeshipStandard,
                        AimType          = TypeOfAim.ProgrammeAim
                    }
                }
            };

            var dateTimeQueryServiceMock = new Mock <IDateTimeQueryService>();

            dateTimeQueryServiceMock.Setup(qs => qs.YearsBetween(dateOfBirth, learnStartDate)).Returns(20);
            dateTimeQueryServiceMock.Setup(qs => qs.MonthsBetween(learnStartDate, learnPlanEndDate)).Returns(13);

            var learningDeliveryFamQueryServiceMock = new Mock <ILearningDeliveryFAMQueryService>();

            learningDeliveryFamQueryServiceMock
            .Setup(qs => qs.HasLearningDeliveryFAMType(It.IsAny <IEnumerable <ILearningDeliveryFAM> >(), LearningDeliveryFAMTypeConstants.RES))
            .Returns(false);

            using (var validationErrorHandlerMock = BuildValidationErrorHandlerMockForNoError())
            {
                NewRule(dateTimeQueryServiceMock.Object, learningDeliveryFamQueryServiceMock.Object, validationErrorHandlerMock.Object).Validate(learner);
            }
        }