public void DPOutComeConditionMet_True(string learnRefNumber) { var learnerDestinationAndProgression = new TestLearnerDestinationAndProgression() { LearnRefNumber = "00100309", DPOutcomes = new[] { new TestDPOutcome() { OutStartDate = new DateTime(2017, 05, 01) }, new TestDPOutcome() { OutStartDate = new DateTime(2012, 01, 01) } } }; string ldapLearnRefNumberExpectedValue = learnRefNumber == learnerDestinationAndProgression.LearnRefNumber ? learnRefNumber : string.Empty; NewRule() .DPOutComeConditionMet( learnRefNumber, new List <TestLearnerDestinationAndProgression> { learnerDestinationAndProgression }, new DateTime(2018, 06, 01)).Should().BeTrue(); }
public void Validate_NoError(int?progType, int fundModel, int compStatus, string learnActEndDate1, string learnActEndDate2) { DateTime?learnActEndDateLD1 = string.IsNullOrEmpty(learnActEndDate1) ? (DateTime?)null : DateTime.Parse(learnActEndDate1); DateTime?learnActEndDateLD2 = string.IsNullOrEmpty(learnActEndDate2) ? (DateTime?)null : DateTime.Parse(learnActEndDate2); var learner = new TestLearner() { LearnRefNumber = "00100309", LearningDeliveries = new TestLearningDelivery[] { new TestLearningDelivery() { ProgTypeNullable = 3, FundModel = fundModel, LearnActEndDateNullable = learnActEndDateLD1, CompStatus = compStatus }, new TestLearningDelivery() { ProgTypeNullable = progType, FundModel = fundModel, LearnActEndDateNullable = learnActEndDateLD2, CompStatus = compStatus } } }; var learnerDestinationAndProgression = new TestLearnerDestinationAndProgression() { LearnRefNumber = "00100310", DPOutcomes = new[] { new TestDPOutcome() { OutStartDate = new DateTime(2018, 09, 01) }, new TestDPOutcome() { OutStartDate = new DateTime(2012, 01, 01) } } }; var message = new TestMessage() { Learners = new TestLearner[] { learner }, LearnerDestinationAndProgressions = new TestLearnerDestinationAndProgression[] { learnerDestinationAndProgression } }; var fileDataServiceMock = new Mock <IFileDataService>(); fileDataServiceMock.Setup(fds => fds.FilePreparationDate()).Returns(new DateTime(2018, 03, 01)); using (var validationErrorHandlerMock = BuildValidationErrorHandlerMockForNoError()) { NewRule( validationErrorHandler: validationErrorHandlerMock.Object, fileDataService: fileDataServiceMock.Object).Validate(message); } }
public void DPOutComeConditionMet_False() { string learnRefNumber = "00100310"; var learnerDestinationAndProgression = new TestLearnerDestinationAndProgression() { LearnRefNumber = "00100310", DPOutcomes = new[] { new TestDPOutcome() { OutStartDate = new DateTime(2018, 09, 01) }, new TestDPOutcome() { OutStartDate = new DateTime(2012, 01, 01) } } }; NewRule().DPOutComeConditionMet( learnRefNumber, new List <TestLearnerDestinationAndProgression> { learnerDestinationAndProgression }, new DateTime(2018, 06, 01)).Should().BeFalse(); }
public void Validate_NoErrors() { var learnerDP = new TestLearnerDestinationAndProgression { DPOutcomes = new List <TestDPOutcome> { new TestDPOutcome { OutType = "EMP", OutCode = 1, OutStartDate = new DateTime(2018, 8, 1) } } }; var dpOutcome = learnerDP.DPOutcomes.FirstOrDefault(); var lookupsMock = new Mock <IProvideLookupDetails>(); lookupsMock.Setup(ds => ds.IsCurrent(TypeOfLimitedLifeLookup.OutType, $"{dpOutcome.OutType}{dpOutcome.OutCode}", dpOutcome.OutStartDate)).Returns(true); using (var validationErrorHandlerMock = BuildValidationErrorHandlerMockForNoError()) { NewRule(lookupsMock.Object, validationErrorHandlerMock.Object).Validate(learnerDP); } }
public void ValidateNoError() { var learnerDP = new TestLearnerDestinationAndProgression { DPOutcomes = new List <TestDPOutcome>() { new TestDPOutcome() { OutStartDate = new DateTime(2008, 08, 02) } } }; var academicYearDataServiceMock = new Mock <IAcademicYearDataService>(); academicYearDataServiceMock.Setup(ds => ds.Start()).Returns(new DateTime(2018, 08, 01)); var dateTimeQueryServiceMock = new Mock <IDateTimeQueryService>(); dateTimeQueryServiceMock.Setup(ds => ds.AddYearsToDate(academicYearDataServiceMock.Object.Start(), -10)).Returns(new DateTime(2008, 08, 01)); using (var validationErrorHandlerMock = BuildValidationErrorHandlerMockForNoError()) { NewRule(academicYearDataServiceMock.Object, dateTimeQueryServiceMock.Object, validationErrorHandlerMock.Object).Validate(learnerDP); } }
public void DPOutComeConditionMet_True() { string learnRefNumber = "00100309"; string ldapLearnRefNumber = null; DateTime?outStartDate = null; var learnerDestinationAndProgression = new TestLearnerDestinationAndProgression() { LearnRefNumber = "00100309", DPOutcomes = new[] { new TestDPOutcome() { OutStartDate = new DateTime(2017, 05, 01) }, new TestDPOutcome() { OutStartDate = new DateTime(2012, 01, 01) } } }; var fileDataServiceMock = new Mock <IFileDataService>(); fileDataServiceMock.Setup(fds => fds.LearnerDestinationAndProgressionsForLearnRefNumber(learnRefNumber)).Returns(learnerDestinationAndProgression); NewRule(fileDataService: fileDataServiceMock.Object).DPOutComeConditionMet(learnRefNumber, new DateTime(2018, 06, 01), out ldapLearnRefNumber, out outStartDate).Should().BeTrue(); }
public void DpOutcomeConditionMet_False() { var matchingDpOutcome = new TestLearnerDestinationAndProgression { LearnRefNumber = "123456", DPOutcomes = new List <TestDPOutcome> { new TestDPOutcome { OutStartDate = new DateTime(2018, 9, 1), OutType = "type1", OutCode = 1 } } }; var validationErrorHandlerMock = BuildValidationErrorHandlerMockForNoError(); var learnerDPQueryServiceMock = new Mock <ILearnerDPQueryService>(); learnerDPQueryServiceMock .Setup(m => m.GetDestinationAndProgressionForLearner(It.IsAny <string>())) .Returns(matchingDpOutcome); NewRule(learnerDpQueryService: learnerDPQueryServiceMock.Object, validationErrorHandler: validationErrorHandlerMock.Object).DpOutcomeConditionMet("123456").Should().BeFalse(); }
public void Validate_NoErrors(string outType, int outCode) { var learnerDP = new TestLearnerDestinationAndProgression { DPOutcomes = new List <TestDPOutcome> { new TestDPOutcome { OutType = outType, OutCode = outCode } } }; var dpOutcome = learnerDP.DPOutcomes.FirstOrDefault(); var lookupsMock = new Mock <IProvideLookupDetails>(); lookupsMock.Setup(ds => ds.Contains(TypeOfLimitedLifeLookup.OutTypedCode, $"{dpOutcome.OutType}{dpOutcome.OutCode}")).Returns(true); using (var validationErrorHandlerMock = BuildValidationErrorHandlerMockForNoError()) { NewRule(lookupsMock.Object, validationErrorHandlerMock.Object).Validate(learnerDP); } }
public void ConditionMet_False_MisMatch() { var learnRefNumber = "Learner1"; var uln = 9999999999; var learnerDP3 = new TestLearnerDestinationAndProgression() { LearnRefNumber = "Learner3", ULN = 9999999997 }; var learnerDP4 = new TestLearnerDestinationAndProgression() { LearnRefNumber = "Learner4", ULN = 9999999999 }; IEnumerable <ILearnerDestinationAndProgression> learnerDPs = new TestLearnerDestinationAndProgression[] { learnerDP3, learnerDP4 }; var fileDataServiceMock = new Mock <IFileDataService>(); var learnerDPQueryServiceMock = new Mock <ILearnerDPQueryService>(); fileDataServiceMock.Setup(dc => dc.LearnerDestinationAndProgressionsForLearnRefNumber(learnRefNumber)).Returns((ILearnerDestinationAndProgression)null); learnerDPQueryServiceMock.Setup(qs => qs.HasULNForLearnRefNumber(learnRefNumber, uln, It.IsAny <ILearnerDestinationAndProgression>())).Returns(false); NewRule(fileDataServiceMock.Object, learnerDPQueryServiceMock.Object).ConditionMet(learnRefNumber, uln).Should().BeFalse(); }
public void Validate_Errors() { var filePrepDate = new DateTime(2018, 08, 01); var learnerDP = new TestLearnerDestinationAndProgression { DPOutcomes = new List <TestDPOutcome> { new TestDPOutcome { OutCollDate = new DateTime(2018, 08, 01) }, new TestDPOutcome { OutCollDate = new DateTime(2019, 08, 01) } } }; var fileDataServiceMock = new Mock <IFileDataService>(); fileDataServiceMock.Setup(f => f.FilePreparationDate()).Returns(filePrepDate); using (var validationErrorHandlerMock = BuildValidationErrorHandlerMockForError()) { NewRule(fileDataServiceMock.Object, validationErrorHandlerMock.Object).Validate(learnerDP); } }
public void Validate_NoError() { var testLearningDestinationAndProgression = new TestLearnerDestinationAndProgression() { DPOutcomes = new TestDPOutcome[] { new TestDPOutcome() { OutStartDate = DateTime.Now } } }; var academicYearDataServiceMock = new Mock <IAcademicYearDataService>(); academicYearDataServiceMock.Setup(a => a.End()).Returns(DateTime.Now); using (var validationErrorHandlerMock = BuildValidationErrorHandlerMockForNoError()) { NewRule( validationErrorHandler: validationErrorHandlerMock.Object, academicYearDataService: academicYearDataServiceMock.Object) .Validate(testLearningDestinationAndProgression); } }
public void Validate_Errors(string outType1, string outType2, string outType3, string outType4) { var learnerDP = new TestLearnerDestinationAndProgression { DPOutcomes = new List <TestDPOutcome>() }; IDictionary <DateTime, IEnumerable <string> > outTypeDictionary = new Dictionary <DateTime, IEnumerable <string> > { { new DateTime(2018, 8, 1), new List <string> { outType1, outType2 } }, { new DateTime(2018, 9, 1), new List <string> { outType1, outType2, outType3, outType4 } } }; var learnerDPQueryServiceMock = new Mock <ILearnerDPQueryService>(); learnerDPQueryServiceMock.Setup(qs => qs.OutTypesForStartDateAndTypes(learnerDP.DPOutcomes, It.IsAny <IEnumerable <string> >())).Returns(outTypeDictionary); using (var validationErrorHandlerMock = BuildValidationErrorHandlerMockForError()) { NewRule(learnerDPQueryServiceMock.Object, validationErrorHandlerMock.Object).Validate(learnerDP); } }
public void Validate_NoError() { string learnRefNumber = "00100309"; var learner = new TestLearner() { LearnRefNumber = "00100309", LearningDeliveries = new TestLearningDelivery[] { new TestLearningDelivery() { ProgTypeNullable = 24, FundModel = FundModelConstants.NonFunded, LearnActEndDateNullable = null, CompStatus = 5 }, new TestLearningDelivery() { ProgTypeNullable = 25, FundModel = FundModelConstants.Apprenticeships, LearnActEndDateNullable = new DateTime(2018, 06, 01), CompStatus = 6 } } }; var learnerDestinationAndProgression = new TestLearnerDestinationAndProgression() { LearnRefNumber = "00100310", DPOutcomes = new[] { new TestDPOutcome() { OutStartDate = new DateTime(2018, 09, 01) }, new TestDPOutcome() { OutStartDate = new DateTime(2012, 01, 01) } } }; var fileDataServiceMock = new Mock <IFileDataService>(); fileDataServiceMock.Setup(fds => fds.FilePreparationDate()).Returns(new DateTime(2018, 03, 01)); fileDataServiceMock.Setup(fds => fds.LearnerDestinationAndProgressionsForLearnRefNumber(learnRefNumber)).Returns(learnerDestinationAndProgression); using (var validationErrorHandlerMock = BuildValidationErrorHandlerMockForNoError()) { NewRule( validationErrorHandler: validationErrorHandlerMock.Object, fileDataService: fileDataServiceMock.Object).Validate(learner); } }
public void Validate_Error() { string learnRefNumber = "00100309"; var learner = new TestLearner() { LearnRefNumber = "00100309", LearningDeliveries = new TestLearningDelivery[] { new TestLearningDelivery() { ProgTypeNullable = 12, FundModel = FundModelConstants.AdultSkills, LearnActEndDateNullable = new DateTime(2017, 05, 01), CompStatus = 7 }, new TestLearningDelivery() { ProgTypeNullable = null, FundModel = FundModelConstants.ESF, LearnActEndDateNullable = new DateTime(2018, 06, 01), CompStatus = 8 } } }; var learnerDestinationAndProgression = new TestLearnerDestinationAndProgression() { LearnRefNumber = "00100309", DPOutcomes = new[] { new TestDPOutcome() { OutStartDate = new DateTime(2017, 05, 01) }, new TestDPOutcome() { OutStartDate = new DateTime(2012, 01, 01) } } }; var fileDataServiceMock = new Mock <IFileDataService>(); fileDataServiceMock.Setup(fds => fds.FilePreparationDate()).Returns(DateTime.Now.AddMonths(4)); fileDataServiceMock.Setup(fds => fds.LearnerDestinationAndProgressionsForLearnRefNumber(learnRefNumber)).Returns(learnerDestinationAndProgression); using (var validationErrorHandlerMock = BuildValidationErrorHandlerMockForError()) { NewRule( validationErrorHandler: validationErrorHandlerMock.Object, fileDataService: fileDataServiceMock.Object).Validate(learner); } }
public void ValidationPasses(long uln) { var validationErrorHandlerMock = BuildValidationErrorHandlerMockForNoError(); IDerivedData_15Rule dd15 = new DerivedData_15Rule(); var testLearner = new TestLearnerDestinationAndProgression { ULN = uln }; NewRule(dd15, validationErrorHandlerMock.Object).Validate(testLearner); }
public void ConditionMet_True() { var testLearners = new TestLearner[] { }; var testLearnerDestinationAndProgressions = new TestLearnerDestinationAndProgression[] { }; NewRule().ConditionMet(learners: testLearners, learnerDestinationAndProgressions: testLearnerDestinationAndProgressions).Should().BeTrue(); }
public void ConditionMet_False_NullDP() { var learnRefNumber = "Learner1"; var uln = 9999999999; TestLearnerDestinationAndProgression learnerDP = null; var fileDataServiceMock = new Mock <IFileDataService>(); var learnerDPQueryServiceMock = new Mock <ILearnerDPQueryService>(); learnerDPQueryServiceMock.Setup(qs => qs.HasULNForLearnRefNumber(learnRefNumber, uln, learnerDP)).Returns(false); NewRule(fileDataServiceMock.Object, learnerDPQueryServiceMock.Object).ConditionMet(learnRefNumber, uln).Should().BeFalse(); }
public void ValidateNoErrorNull() { var learnerDP = new TestLearnerDestinationAndProgression(); var academicYearDataServiceMock = new Mock <IAcademicYearDataService>(); academicYearDataServiceMock.Setup(ds => ds.Start()).Returns(new DateTime(2018, 08, 01)); using (var validationErrorHandlerMock = BuildValidationErrorHandlerMockForNoError()) { NewRule(academicYearDataServiceMock.Object, validationErrorHandlerMock.Object).Validate(learnerDP); } }
public void ValidationFails() { var validationErrorHandlerMock = BuildValidationErrorHandlerMockForError(); IDerivedData_15Rule dd15 = new DerivedData_15Rule(); var testLearner = new TestLearnerDestinationAndProgression { ULN = 21111111111 }; NewRule(dd15, validationErrorHandlerMock.Object).Validate(testLearner); validationErrorHandlerMock.Verify(h => h.Handle(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <long?>(), It.IsAny <IEnumerable <IErrorMessageParameter> >())); }
public void Validate_NoError_DBOutComeNullCheck() { var testLearningDestinationAndProgression = new TestLearnerDestinationAndProgression() { DPOutcomes = null }; using (var validationErrorHandlerMock = BuildValidationErrorHandlerMockForNoError()) { NewRule( validationErrorHandler: validationErrorHandlerMock.Object) .Validate(testLearningDestinationAndProgression); } }
public void ConditionMet_False_Null() { TestLearner[] testLearners = null; var testLearnerDestinationAndProgressions = new TestLearnerDestinationAndProgression[] { new TestLearnerDestinationAndProgression() { LearnRefNumber = "1234" } }; NewRule().ConditionMet(learners: testLearners, learnerDestinationAndProgressions: testLearnerDestinationAndProgressions).Should().BeFalse(); }
public void Validate_Error() { var learner = new TestLearnerDestinationAndProgression { ULN = 1, }; var ulnDataServiceMock = new Mock <IULNDataService>(); ulnDataServiceMock.Setup(urds => urds.Exists(1)).Returns(false); using (var validationErrorHandlerMock = BuildValidationErrorHandlerMockForError()) { NewRule(ulnDataServiceMock.Object, validationErrorHandlerMock.Object).Validate(learner); } }
public void Validate_TempULNPasses() { var learner = new TestLearnerDestinationAndProgression { ULN = ValidationConstants.TemporaryULN }; var ulnDataServiceMock = new Mock <IULNDataService>(); ulnDataServiceMock.Setup(urds => urds.Exists(It.IsAny <long>())).Returns(false); using (var validationErrorHandlerMock = BuildValidationErrorHandlerMockForNoError()) { NewRule(ulnDataServiceMock.Object, validationErrorHandlerMock.Object).Validate(learner); } }
public void DpOutcomeConditionMet_True() { var matchingDpOutcome = new TestLearnerDestinationAndProgression { LearnRefNumber = "123456" }; var validationErrorHandlerMock = BuildValidationErrorHandlerMockForError(); var learnerDPQueryServiceMock = new Mock <ILearnerDPQueryService>(); learnerDPQueryServiceMock .Setup(m => m.GetDestinationAndProgressionForLearner("123456")) .Returns(matchingDpOutcome); NewRule(learnerDpQueryService: learnerDPQueryServiceMock.Object, validationErrorHandler: validationErrorHandlerMock.Object).DpOutcomeConditionMet("123456").Should().BeTrue(); }
public void Validate_Error() { var learnRefNumber = "Learner3"; var uln = 9999999999; var learnerDP1 = new TestLearnerDestinationAndProgression() { LearnRefNumber = "Learner1", ULN = 9999999999 }; var learnerDP2 = new TestLearnerDestinationAndProgression() { LearnRefNumber = "Learner1", ULN = 9999999998 }; var learnerDP3 = new TestLearnerDestinationAndProgression() { LearnRefNumber = "Learner3", ULN = 9999999997 }; var learnerDP4 = new TestLearnerDestinationAndProgression() { LearnRefNumber = "Learner4", ULN = 9999999999 }; IEnumerable <ILearnerDestinationAndProgression> learnerDPs = new TestLearnerDestinationAndProgression[] { learnerDP1, learnerDP2, learnerDP3, learnerDP4 }; var learner = new TestLearner { LearnRefNumber = learnRefNumber, ULN = uln }; var fileDataServiceMock = new Mock <IFileDataService>(); var learnerDPQueryServiceMock = new Mock <ILearnerDPQueryService>(); fileDataServiceMock.Setup(dc => dc.LearnerDestinationAndProgressionsForLearnRefNumber(learnRefNumber)).Returns(learnerDP3); learnerDPQueryServiceMock.Setup(qs => qs.HasULNForLearnRefNumber(learnRefNumber, uln, It.IsAny <ILearnerDestinationAndProgression>())).Returns(false); using (var validationErrorHandlerMock = BuildValidationErrorHandlerMockForError()) { NewRule(fileDataServiceMock.Object, learnerDPQueryServiceMock.Object, validationErrorHandlerMock.Object).Validate(learner); } }
public void ValidationPasses_MatchingDPOutcome(string dpOutcomeType, int dpOutcomeCode) { var validationErrorHandlerMock = BuildValidationErrorHandlerMockForNoError(); const string LearnRefNum = "123456"; var matchingDpOutcome = new TestLearnerDestinationAndProgression { LearnRefNumber = LearnRefNum, DPOutcomes = new List <TestDPOutcome> { new TestDPOutcome { OutStartDate = new DateTime(2018, 9, 1), OutType = dpOutcomeType, OutCode = dpOutcomeCode } } }; var queryServiceMock = new Mock <ILearnerDPQueryService>(); queryServiceMock .Setup(m => m.GetDestinationAndProgressionForLearner(It.IsAny <string>())) .Returns(matchingDpOutcome); var testLearner = new TestLearner { LearnRefNumber = LearnRefNum, LearningDeliveries = new List <TestLearningDelivery> { new TestLearningDelivery { LearnStartDate = new DateTime(2015, 8, 1), LearnActEndDateNullable = null, AimType = AimTypes.ProgrammeAim, ProgTypeNullable = ProgTypes.Traineeship, OutcomeNullable = OutcomeConstants.Achieved } } }; NewRule(validationErrorHandlerMock.Object, queryServiceMock.Object).Validate(testLearner); VerifyErrorHandlerMock(validationErrorHandlerMock); }
public void LearnerDestinationAndProgressionsForLearnRefNumber() { var learnerDP = new TestLearnerDestinationAndProgression { LearnRefNumber = "111111" }; var learnerDestinationAndProgressions = new List <TestLearnerDestinationAndProgression> { learnerDP }; var fileDataCacheMock = new Mock <IFileDataCache>(); fileDataCacheMock.SetupGet(c => c.LearnerDestinationAndProgressions).Returns(learnerDestinationAndProgressions); NewService(fileDataCacheMock.Object).LearnerDestinationAndProgressionsForLearnRefNumber("111111").Should().BeEquivalentTo(learnerDP); }
public void Validate_Null_NoErrors() { var learnerDP = new TestLearnerDestinationAndProgression { DPOutcomes = new List <TestDPOutcome> { new TestDPOutcome { OutStartDate = new DateTime(2018, 12, 01), OutEndDateNullable = null } } }; using (var validationErrorHandlerMock = BuildValidationErrorHandlerMockForNoError()) { NewRule(validationErrorHandlerMock.Object).Validate(learnerDP); } }
public void ConditionMet_False() { var testLearners = new TestLearner[] { new TestLearner() { Postcode = "ABC DEF" } }; var testLearnerDestinationAndProgressions = new TestLearnerDestinationAndProgression[] { new TestLearnerDestinationAndProgression() { LearnRefNumber = "1234" } }; NewRule().ConditionMet(learners: testLearners, learnerDestinationAndProgressions: testLearnerDestinationAndProgressions).Should().BeFalse(); }
public void ValidateError() { var learnerDP = new TestLearnerDestinationAndProgression { DPOutcomes = new List <TestDPOutcome> { new TestDPOutcome { OutCollDate = new DateTime(2008, 07, 01) } } }; var academicYearDataServiceMock = new Mock <IAcademicYearDataService>(); academicYearDataServiceMock.Setup(ds => ds.Start()).Returns(new DateTime(2018, 08, 01)); using (var validationErrorHandlerMock = BuildValidationErrorHandlerMockForError()) { NewRule(academicYearDataServiceMock.Object, validationErrorHandlerMock.Object).Validate(learnerDP); } }