public Transition(State <T> stateFrom, State <T> stateTo, AbstractRule <T> rule) { // TODO: Complete member initialization this.From = stateFrom; this.To = stateTo; this.Rule = rule; }
public CheckersRules() { ChainOfRules = new AppendMoveRule(); ChainOfRules.AddNext(new RemoveCapturedPieceRule()); ChainOfRules.AddNext(new ChangePieceTypeRule()); ChainOfRules.AddNext(new NeedToContinueCaptureRule()); ChainOfRules.AddNext(new SwitchPlayerRule()); ChainOfRules.AddNext(new NeedToCaptureRule()); ChainOfRules.AddNext(new DetectAvailableMovesRule()); FastForwardMoveRules = new AppendMoveRule(); FastForwardMoveRules.AddNext(new RemoveCapturedPieceRule()); FastForwardMoveRules.AddNext(new ChangePieceTypeRule()); FastForwardMoveRules.AddNext(new NeedToContinueCaptureRule()); FastForwardMoveRules.AddNext(new SwitchPlayerRule()); FastForwardUndoMoveRules = new AppendMoveRule(); FastForwardUndoMoveRules.AddNext(new RemoveCapturedPieceRule()); FastForwardUndoMoveRules.AddNext(new ChangePieceTypeRule()); FastForwardUndoMoveRules.AddNext(new NeedToContinueCaptureRule()); FastForwardUndoMoveRules.AddNext(new SwitchPlayerRule()); InitialPositionRules = new InitialPositionRule(); InitialPositionRules.AddNext(new DetectAvailableMovesRule()); FastForwardAvailableMovesRules = new NeedToCaptureRule(); FastForwardAvailableMovesRules.AddNext(new DetectAvailableMovesRule()); }
public INew New() { type = null; property = null; rule = null; return(this); }
[InlineData("ACT", 1)] // Monitoring.Delivery.Types.ApprenticeshipContract public void InvalidItemRaisesValidationMessage(string famType, int dateOffset) { // arrange const string learnRefNumber = "123456789X"; var testDate = DateTime.Parse("2017-12-30"); var fam = new Mock <ILearningDeliveryFAM>(); fam .SetupGet(x => x.LearnDelFAMType) .Returns(famType); fam .SetupGet(x => x.LearnDelFAMDateToNullable) .Returns(testDate.AddDays(dateOffset)); var fams = new ILearningDeliveryFAM[] { fam.Object }; var delivery = new Mock <ILearningDelivery>(); delivery .SetupGet(x => x.AchDateNullable) .Returns(testDate); delivery .SetupGet(x => x.FundModel) .Returns(36); // TypeOfFunding.ApprenticeshipsFrom1May2017 delivery .SetupGet(x => x.LearningDeliveryFAMs) .Returns(fams); var deliveries = new ILearningDelivery[] { delivery.Object }; var learner = new Mock <ILearner>(); learner .SetupGet(x => x.LearnRefNumber) .Returns(learnRefNumber); learner .SetupGet(x => x.LearningDeliveries) .Returns(deliveries); var handler = new Mock <IValidationErrorHandler>(MockBehavior.Strict); handler .Setup(x => x.Handle(RuleNameConstants.LearnDelFAMDateTo_05, learnRefNumber, 0, It.IsAny <IEnumerable <IErrorMessageParameter> >())); handler .Setup(x => x.BuildErrorMessageParameter("AchDate", AbstractRule.AsRequiredCultureDate(testDate))) .Returns(new Mock <IErrorMessageParameter>().Object); handler .Setup(x => x.BuildErrorMessageParameter("LearnDelFAMDateTo", AbstractRule.AsRequiredCultureDate(testDate.AddDays(dateOffset)))) .Returns(new Mock <IErrorMessageParameter>().Object); var sut = new LearnDelFAMDateTo_05Rule(handler.Object); // act sut.Validate(learner.Object); // assert handler.VerifyAll(); }
public void AddTransition(string from, string to, AbstractRule <T> rule) { State <T> stateFrom = States.FirstOrDefault(s => s.Name == from); if (stateFrom != null) { State <T> stateTo = States.FirstOrDefault(s => s.Name == to); if (stateTo != null) { var tran = new Transition <T>(stateFrom, stateTo, rule); Transitions.Add(tran); stateFrom.Transitions.Add(tran); } } }
public void InvalidItemRaisesValidationMessage(int?candidate) { const string LearnRefNumber = "123456789X"; var mockDelivery = new Mock <ILearningDelivery>(); mockDelivery .SetupGet(x => x.AchDateNullable) .Returns(DateTime.Today); mockDelivery .SetupGet(x => x.OutcomeNullable) .Returns(candidate); mockDelivery .SetupGet(x => x.ProgTypeNullable) .Returns(24); var deliveries = new ILearningDelivery[] { mockDelivery.Object }; var mockLearner = new Mock <ILearner>(); mockLearner .SetupGet(x => x.LearnRefNumber) .Returns(LearnRefNumber); mockLearner .SetupGet(x => x.LearningDeliveries) .Returns(deliveries); var handler = new Mock <IValidationErrorHandler>(MockBehavior.Strict); handler .Setup(x => x.Handle(RuleNameConstants.Outcome_04, LearnRefNumber, 0, It.IsAny <IEnumerable <IErrorMessageParameter> >())); handler .Setup(x => x.BuildErrorMessageParameter("AchDate", AbstractRule.AsRequiredCultureDate(DateTime.Today))) .Returns(new Mock <IErrorMessageParameter>().Object); handler .Setup(x => x.BuildErrorMessageParameter("Outcome", candidate)) .Returns(new Mock <IErrorMessageParameter>().Object); var sut = new Outcome_04Rule(handler.Object); sut.Validate(mockLearner.Object); handler.VerifyAll(); }
public void InvalidItemRaisesValidationMessage(string empStart, string yearEnd) { const string LearnRefNumber = "123456789X"; var empStartDate = DateTime.Parse(empStart); var yearEndDate = DateTime.Parse(yearEnd); var mockStatus = new Mock <ILearnerEmploymentStatus>(); mockStatus .SetupGet(y => y.DateEmpStatApp) .Returns(empStartDate); var statii = new List <ILearnerEmploymentStatus>(); statii.Add(mockStatus.Object); var learner = new Mock <ILearner>(); learner .SetupGet(x => x.LearnRefNumber) .Returns(LearnRefNumber); learner .SetupGet(x => x.LearnerEmploymentStatuses) .Returns(statii); var handler = new Mock <IValidationErrorHandler>(MockBehavior.Strict); handler .Setup(x => x.Handle("DateEmpStatApp_01", LearnRefNumber, null, Moq.It.IsAny <IEnumerable <IErrorMessageParameter> >())); handler .Setup(x => x.BuildErrorMessageParameter("DateEmpStatApp", AbstractRule.AsRequiredCultureDate(empStartDate))) .Returns(new Mock <IErrorMessageParameter>().Object); var yearData = new Mock <IAcademicYearDataService>(MockBehavior.Strict); yearData .Setup(x => x.End()) .Returns(yearEndDate); var sut = new DateEmpStatApp_01Rule(handler.Object, yearData.Object); sut.Validate(learner.Object); handler.VerifyAll(); yearData.VerifyAll(); }
public void InvalidItemRaisesValidationMessage(string candidate, string testDate) { var famType = candidate.Substring(0, 3); var famCode = candidate.Substring(3); var monitor = new Mock <ILearningDeliveryFAM>(); monitor .SetupGet(x => x.LearnDelFAMType) .Returns(famType); monitor .SetupGet(x => x.LearnDelFAMCode) .Returns(famCode); var fams = new ILearningDeliveryFAM[] { monitor.Object }; var referenceDate = DateTime.Parse(testDate); const string LearnRefNumber = "123456789X"; const string learnAimRef = "salddfkjeifdnase"; var mockDelivery = new Mock <ILearningDelivery>(); mockDelivery .SetupGet(y => y.LearnAimRef) .Returns(learnAimRef); mockDelivery .SetupGet(y => y.LearnStartDate) .Returns(referenceDate); mockDelivery .SetupGet(y => y.LearningDeliveryFAMs) .Returns(fams); var deliveries = new ILearningDelivery[] { mockDelivery.Object }; var mockLearner = new Mock <ILearner>(); mockLearner .SetupGet(x => x.LearnRefNumber) .Returns(LearnRefNumber); mockLearner .SetupGet(x => x.LearningDeliveries) .Returns(deliveries); var handler = new Mock <IValidationErrorHandler>(MockBehavior.Strict); handler .Setup(x => x.Handle(RuleNameConstants.LearnDelFAMType_06, LearnRefNumber, 0, It.IsAny <IEnumerable <IErrorMessageParameter> >())); handler .Setup(x => x.BuildErrorMessageParameter("LearnStartDate", AbstractRule.AsRequiredCultureDate(referenceDate))) .Returns(new Mock <IErrorMessageParameter>().Object); handler .Setup(x => x.BuildErrorMessageParameter("LearnDelFAMType", famType)) .Returns(new Mock <IErrorMessageParameter>().Object); handler .Setup(x => x.BuildErrorMessageParameter("LearnDelFAMCode", famCode)) .Returns(new Mock <IErrorMessageParameter>().Object); var lookups = new Mock <IProvideLookupDetails>(MockBehavior.Strict); lookups .Setup(x => x.IsVaguelyCurrent(TypeOfLimitedLifeLookup.LearnDelFAMType, candidate, referenceDate)) .Returns(false); var learningDeliveryFAMQS = new Mock <ILearningDeliveryFAMQueryService>(MockBehavior.Strict); learningDeliveryFAMQS .Setup(x => x.HasLearningDeliveryFAMType( mockDelivery.Object.LearningDeliveryFAMs, "RES")) .Returns(false); var sut = new LearnDelFAMType_06Rule(handler.Object, lookups.Object, learningDeliveryFAMQS.Object); sut.Validate(mockLearner.Object); handler.VerifyAll(); lookups.VerifyAll(); }
public IBuild Contains(string value) { rule = new ContainsRule(property, type, value); return(this); }
public IBuild StartWith(string value) { rule = new StartWithRule(property, type, value); return(this); }
public IBuild IsNull(object value) { rule = new IsNullRule(property, type, value); return(this); }
public IBuild IsNotEqualTo(object value) { rule = new NotEqualsRule(property, type, value); return(this); }
public void InvalidItemRaisesValidationMessage(string candidate) { const string LearnRefNumber = "123456789X"; var thresholdDate = DateTime.Parse("2017-05-01"); var delivery = new Mock <ILearningDelivery>(); delivery .SetupGet(y => y.LearnStartDate) .Returns(thresholdDate); delivery .SetupGet(y => y.FundModel) .Returns(25); delivery .SetupGet(y => y.ProgTypeNullable) .Returns(24); var deliveries = new ILearningDelivery[] { delivery.Object }; var learner = new Mock <ILearner>(); learner .SetupGet(x => x.LearnRefNumber) .Returns(LearnRefNumber); learner .SetupGet(x => x.LearningDeliveries) .Returns(deliveries); var handler = new Mock <IValidationErrorHandler>(MockBehavior.Strict); handler .Setup(x => x.Handle(RuleNameConstants.UKPRN_17, LearnRefNumber, 0, It.IsAny <IEnumerable <IErrorMessageParameter> >())); handler .Setup(x => x.BuildErrorMessageParameter("UKPRN", TestProviderID)) .Returns(new Mock <IErrorMessageParameter>().Object); handler .Setup(x => x.BuildErrorMessageParameter("FundModel", 25)) .Returns(new Mock <IErrorMessageParameter>().Object); handler .Setup(x => x.BuildErrorMessageParameter("ProgType", 24)) .Returns(new Mock <IErrorMessageParameter>().Object); handler .Setup(x => x.BuildErrorMessageParameter("LearnStartDate", AbstractRule.AsRequiredCultureDate(thresholdDate))) .Returns(new Mock <IErrorMessageParameter>().Object); handler .Setup(x => x.BuildErrorMessageParameter("LearnDelFAMType", "SOF")) .Returns(new Mock <IErrorMessageParameter>().Object); handler .Setup(x => x.BuildErrorMessageParameter("LearnDelFAMCode", "105")) .Returns(new Mock <IErrorMessageParameter>().Object); var fileData = new Mock <IFileDataService>(MockBehavior.Strict); fileData .Setup(x => x.UKPRN()) .Returns(TestProviderID); var allocation = new Mock <IFcsContractAllocation>(MockBehavior.Strict); allocation .SetupGet(x => x.FundingStreamPeriodCode) .Returns(candidate); allocation .SetupGet(x => x.StopNewStartsFromDate) .Returns(thresholdDate); allocation .SetupGet(x => x.StartDate) .Returns(thresholdDate); var fcsData = new Mock <IFCSDataService>(MockBehavior.Strict); fcsData .Setup(x => x.GetContractAllocationsFor(TestProviderID)) .Returns(new IFcsContractAllocation[] { allocation.Object }); var learningDeliveryFamqs = new Mock <ILearningDeliveryFAMQueryService>(MockBehavior.Strict); learningDeliveryFamqs .Setup(x => x.HasLearningDeliveryFAMCodeForType( delivery.Object.LearningDeliveryFAMs, "SOF", "105")) .Returns(true); learningDeliveryFamqs .Setup(x => x.HasLearningDeliveryFAMType( delivery.Object.LearningDeliveryFAMs, "RES")) .Returns(false); var sut = new UKPRN_17Rule(handler.Object, fileData.Object, learningDeliveryFamqs.Object, fcsData.Object); sut.Validate(learner.Object); handler.VerifyAll(); learningDeliveryFamqs.VerifyAll(); fileData.VerifyAll(); fcsData.VerifyAll(); }
[InlineData("2017-04-01", "2016-04-01", "2016-03-31")] // withdrawn upper limit public void InvalidItemRaisesValidationMessage(string candidate, string start, string end) { // arrange const string LearnRefNumber = "123456789X"; const string learnAimRef = "shonkyRefCode"; // <= any old code for the purpose of the test... var testDate = DateTime.Parse(candidate); var delivery = new Mock <ILearningDelivery>(); delivery .SetupGet(x => x.LearnStartDate) .Returns(testDate); delivery .SetupGet(x => x.LearnAimRef) .Returns(learnAimRef); // these are random and meaningless values delivery .SetupGet(x => x.ProgTypeNullable) .Returns(2); delivery .SetupGet(x => x.FworkCodeNullable) .Returns(3); delivery .SetupGet(x => x.PwayCodeNullable) .Returns(4); var deliveries = new ILearningDelivery[] { delivery.Object }; var mockLearner = new Mock <ILearner>(); mockLearner .SetupGet(x => x.LearnRefNumber) .Returns(LearnRefNumber); mockLearner .SetupGet(x => x.LearningDeliveries) .Returns(deliveries); var handler = new Mock <IValidationErrorHandler>(MockBehavior.Strict); handler .Setup(x => x.Handle(RuleNameConstants.LearnStartDate_07, LearnRefNumber, 0, It.IsAny <IEnumerable <IErrorMessageParameter> >())); handler .Setup(x => x.BuildErrorMessageParameter("LearnStartDate", AbstractRule.AsRequiredCultureDate(testDate))) .Returns(new Mock <IErrorMessageParameter>().Object); handler .Setup(x => x.BuildErrorMessageParameter("PwayCode", 4)) .Returns(new Mock <IErrorMessageParameter>().Object); handler .Setup(x => x.BuildErrorMessageParameter("ProgType", 2)) .Returns(new Mock <IErrorMessageParameter>().Object); handler .Setup(x => x.BuildErrorMessageParameter("FworkCode", 3)) .Returns(new Mock <IErrorMessageParameter>().Object); var ddRule04 = new Mock <IDerivedData_04Rule>(MockBehavior.Strict); ddRule04 .Setup(x => x.GetEarliesStartDateFor(delivery.Object, deliveries)) .Returns(testDate); var startDate = DateTime.Parse(start); var endDate = string.IsNullOrWhiteSpace(end) ? (DateTime?)null : DateTime.Parse(end); var frameworkAim = new Mock <ILARSFrameworkAim>(); frameworkAim .SetupGet(x => x.ProgType) .Returns(2); frameworkAim .SetupGet(x => x.FworkCode) .Returns(3); frameworkAim .SetupGet(x => x.PwayCode) .Returns(4); frameworkAim .SetupGet(x => x.StartDate) .Returns(startDate); frameworkAim .SetupGet(x => x.EndDate) .Returns(endDate); var larsData = new Mock <ILARSDataService>(MockBehavior.Strict); larsData .Setup(x => x.GetFrameworkAimsFor(learnAimRef)) .Returns(new ILARSFrameworkAim[] { frameworkAim.Object }); var commonOps = new Mock <IProvideRuleCommonOperations>(MockBehavior.Strict); commonOps .Setup(x => x.IsComponentOfAProgram(delivery.Object)) .Returns(true); commonOps .Setup(x => x.InApprenticeship(delivery.Object)) .Returns(true); commonOps .Setup(x => x.IsRestart(delivery.Object)) .Returns(false); commonOps .Setup(x => x.IsStandardApprencticeship(delivery.Object)) .Returns(false); var sut = new LearnStartDate_07Rule(handler.Object, ddRule04.Object, larsData.Object, commonOps.Object); // act sut.Validate(mockLearner.Object); // assert handler.VerifyAll(); ddRule04.VerifyAll(); larsData.VerifyAll(); commonOps.VerifyAll(); }
public void InvalidItemRaisesValidationMessage(string candidate, string start, string end) { const string LearnRefNumber = "123456789X"; const string learnAimRef = "shonkyRefCode"; var testDate = DateTime.Parse(candidate); var delivery = new Mock <ILearningDelivery>(); delivery .SetupGet(x => x.LearnStartDate) .Returns(testDate); delivery .SetupGet(x => x.LearnAimRef) .Returns(learnAimRef); delivery .SetupGet(x => x.AimType) .Returns(3); delivery .SetupGet(x => x.ProgTypeNullable) .Returns(2); delivery .SetupGet(x => x.FworkCodeNullable) .Returns(3); delivery .SetupGet(x => x.PwayCodeNullable) .Returns(4); var deliveries = new ILearningDelivery[] { delivery.Object }; var mockLearner = new Mock <ILearner>(); mockLearner .SetupGet(x => x.LearnRefNumber) .Returns(LearnRefNumber); mockLearner .SetupGet(x => x.LearningDeliveries) .Returns(deliveries); var handler = new Mock <IValidationErrorHandler>(MockBehavior.Strict); handler .Setup(x => x.Handle(RuleNameConstants.LearnStartDate_07, LearnRefNumber, 0, It.IsAny <IEnumerable <IErrorMessageParameter> >())); handler .Setup(x => x.BuildErrorMessageParameter("LearnStartDate", AbstractRule.AsRequiredCultureDate(testDate))) .Returns(new Mock <IErrorMessageParameter>().Object); handler .Setup(x => x.BuildErrorMessageParameter("PwayCode", 4)) .Returns(new Mock <IErrorMessageParameter>().Object); handler .Setup(x => x.BuildErrorMessageParameter("ProgType", 2)) .Returns(new Mock <IErrorMessageParameter>().Object); handler .Setup(x => x.BuildErrorMessageParameter("FworkCode", 3)) .Returns(new Mock <IErrorMessageParameter>().Object); var ddRule04 = new Mock <IDerivedData_04Rule>(MockBehavior.Strict); ddRule04 .Setup(x => x.GetEarliesStartDateFor(delivery.Object, deliveries)) .Returns(testDate); var startDate = DateTime.Parse(start); var endDate = GetNullableDate(end); var frameworkAim = new Mock <ILARSFrameworkAim>(); frameworkAim .SetupGet(x => x.ProgType) .Returns(2); frameworkAim .SetupGet(x => x.FworkCode) .Returns(3); frameworkAim .SetupGet(x => x.PwayCode) .Returns(4); frameworkAim .SetupGet(x => x.StartDate) .Returns(startDate); frameworkAim .SetupGet(x => x.EndDate) .Returns(endDate); var larsDelivery = new Mock <ILARSLearningDelivery>(); larsDelivery .SetupGet(x => x.FrameworkCommonComponent) .Returns(LARSConstants.CommonComponents.Unknown); var larsData = new Mock <ILARSDataService>(MockBehavior.Strict); larsData .Setup(x => x.GetFrameworkAimsFor(learnAimRef)) .Returns(new ILARSFrameworkAim[] { frameworkAim.Object }); larsData .Setup(x => x.GetDeliveryFor(learnAimRef)) .Returns(larsDelivery.Object); var learningDeliveryFAMQS = new Mock <ILearningDeliveryFAMQueryService>(MockBehavior.Strict); learningDeliveryFAMQS .Setup(x => x.HasLearningDeliveryFAMType( delivery.Object.LearningDeliveryFAMs, "RES")) .Returns(false); var dateTimeQueryServiceMock = new Mock <IDateTimeQueryService>(); dateTimeQueryServiceMock.Setup(x => x.IsDateBetween(testDate, DateTime.MinValue, frameworkAim.Object.EndDate.Value, true)).Returns(false); var dd07 = new Mock <IDerivedData_07Rule>(MockBehavior.Strict); dd07 .Setup(dd => dd.IsApprenticeship(delivery.Object.ProgTypeNullable)).Returns(true); var sut = NewRule(handler.Object, ddRule04.Object, larsData.Object, learningDeliveryFAMQS.Object, dateTimeQueryServiceMock.Object, dd07.Object); sut.Validate(mockLearner.Object); handler.VerifyAll(); ddRule04.VerifyAll(); larsData.VerifyAll(); learningDeliveryFAMQS.VerifyAll(); dd07.VerifyAll(); }
public void AddRule(AbstractRule rule) { Rules.Add(rule); }
public void InvalidItemRaisesValidationMessage() { const string LearnRefNumber = "123456789X"; var testDate = DateTime.Parse("2013-08-01"); var status = new Mock <ILearnerEmploymentStatus>(); var employmentStatuses = new ILearnerEmploymentStatus[] { status.Object }; var mockDelivery = new Mock <ILearningDelivery>(); mockDelivery .SetupGet(y => y.LearnStartDate) .Returns(testDate); mockDelivery .SetupGet(y => y.FundModel) .Returns(25); var deliveries = new ILearningDelivery[] { mockDelivery.Object }; var mockLearner = new Mock <ILearner>(); mockLearner .SetupGet(x => x.LearnRefNumber) .Returns(LearnRefNumber); mockLearner .SetupGet(x => x.LearningDeliveries) .Returns(deliveries); mockLearner .SetupGet(y => y.LearnerEmploymentStatuses) .Returns(employmentStatuses); var handler = new Mock <IValidationErrorHandler>(MockBehavior.Strict); handler .Setup(x => x.Handle("EmpStat_07", LearnRefNumber, 0, It.IsAny <IEnumerable <IErrorMessageParameter> >())); handler .Setup(x => x.BuildErrorMessageParameter("PlanLearnHours", null)) .Returns(new Mock <IErrorMessageParameter>().Object); handler .Setup(x => x.BuildErrorMessageParameter("PlanEEPHours", null)) .Returns(new Mock <IErrorMessageParameter>().Object); handler .Setup(x => x.BuildErrorMessageParameter("LearnStartDate", AbstractRule.AsRequiredCultureDate(testDate))) .Returns(new Mock <IErrorMessageParameter>().Object); var dateTimeQS = new Mock <IDateTimeQueryService>(MockBehavior.Strict); dateTimeQS .Setup(x => x.IsDateBetween(mockDelivery.Object.LearnStartDate, DateTime.MinValue, DateTime.Parse("2013-07-31"), true)) .Returns(true); var lEmpQS = new Mock <ILearnerEmploymentStatusQueryService>(MockBehavior.Strict); lEmpQS .Setup(x => x.LearnerEmploymentStatusForDate(employmentStatuses, testDate)) .Returns((ILearnerEmploymentStatus)null); var sut = new EmpStat_07Rule(handler.Object, dateTimeQS.Object, lEmpQS.Object); sut.Validate(mockLearner.Object); handler.VerifyAll(); dateTimeQS.VerifyAll(); }
public void InvalidItemRaisesValidationMessage() { const string LearnRefNumber = "123456789X"; const string learnAimRef = "salddfkjeifdnase"; const int progType = 23; var mockFAM = new Mock <ILearningDeliveryFAM>(); mockFAM .SetupGet(x => x.LearnDelFAMType) .Returns(Monitoring.Delivery.Types.FullOrCoFunding); mockFAM .SetupGet(x => x.LearnDelFAMCode) .Returns("1"); var fams = new List <ILearningDeliveryFAM>(); fams.Add(mockFAM.Object); var testDate = DateTime.Parse("2017-08-01"); var mockDelivery = new Mock <ILearningDelivery>(); mockDelivery .SetupGet(y => y.LearnAimRef) .Returns(learnAimRef); mockDelivery .SetupGet(y => y.LearnStartDate) .Returns(testDate); mockDelivery .SetupGet(y => y.ProgTypeNullable) .Returns(progType); mockDelivery .SetupGet(y => y.FundModel) .Returns(FundModels.AdultSkills); mockDelivery .SetupGet(y => y.LearningDeliveryFAMs) .Returns(fams); var deliveries = new List <ILearningDelivery>(); deliveries.Add(mockDelivery.Object); var birthDate = DateTime.Parse("1993-07-01"); var mockLearner = new Mock <ILearner>(); mockLearner .SetupGet(x => x.LearnRefNumber) .Returns(LearnRefNumber); mockLearner .SetupGet(x => x.DateOfBirthNullable) .Returns(birthDate); mockLearner .SetupGet(x => x.LearningDeliveries) .Returns(deliveries); var handler = new Mock <IValidationErrorHandler>(MockBehavior.Strict); handler .Setup(x => x.Handle(RuleNameConstants.LearnDelFAMType_66, LearnRefNumber, 0, Moq.It.IsAny <IEnumerable <IErrorMessageParameter> >())); handler .Setup(x => x.BuildErrorMessageParameter("FundModel", 35)) .Returns(new Mock <IErrorMessageParameter>().Object); handler .Setup(x => x.BuildErrorMessageParameter("LearnDelFAMType", "FFI")) .Returns(new Mock <IErrorMessageParameter>().Object); handler .Setup(x => x.BuildErrorMessageParameter("LearnDelFAMCode", "1")) .Returns(new Mock <IErrorMessageParameter>().Object); handler .Setup(x => x.BuildErrorMessageParameter("LearnStartDate", AbstractRule.AsRequiredCultureDate(testDate))) .Returns(new Mock <IErrorMessageParameter>().Object); handler .Setup(x => x.BuildErrorMessageParameter("DateOfBirth", AbstractRule.AsRequiredCultureDate(birthDate))) .Returns(new Mock <IErrorMessageParameter>().Object); var mockCat = new Mock <ILARSLearningCategory>(); mockCat .SetupGet(x => x.CategoryRef) .Returns(LARSConstants.Categories.LegalEntitlementLevel2); var larsCats = new List <ILARSLearningCategory>(); larsCats.Add(mockCat.Object); var mockLARSDel = new Mock <ILARSLearningDelivery>(); mockLARSDel .SetupGet(x => x.LearnAimRef) .Returns(learnAimRef); mockLARSDel .SetupGet(x => x.NotionalNVQLevelv2) .Returns(LARSConstants.NotionalNVQLevelV2Strings.Level2); mockLARSDel .SetupGet(x => x.Categories) .Returns(larsCats); mockLARSDel .SetupGet(x => x.EffectiveFrom) .Returns(new DateTime(2018, 08, 01)); mockLARSDel .SetupGet(x => x.EffectiveTo) .Returns(new DateTime(2022, 08, 01)); var mockLARSAnnualValues = new Mock <ILARSAnnualValue>(); mockLARSAnnualValues .SetupGet(x => x.LearnAimRef) .Returns(learnAimRef); mockLARSAnnualValues .SetupGet(x => x.BasicSkillsType) .Returns(190); mockLARSAnnualValues .SetupGet(x => x.BasicSkills) .Returns(1); var larsAnnualValues = new List <ILARSAnnualValue>(); larsAnnualValues.Add(mockLARSAnnualValues.Object); var service = new Mock <ILARSDataService>(MockBehavior.Strict); service .Setup(x => x.GetDeliveryFor(learnAimRef)) .Returns(mockLARSDel.Object); service .Setup(x => x.GetAnnualValuesFor(learnAimRef)) .Returns(larsAnnualValues); var mockDDRule07 = new Mock <IDerivedData_07Rule>(MockBehavior.Strict); mockDDRule07 .Setup(x => x.IsApprenticeship(progType)) .Returns(false); var mockDDRule21 = new Mock <IDerivedData_21Rule>(MockBehavior.Strict); mockDDRule21 .Setup(x => x.IsAdultFundedUnemployedWithOtherStateBenefits(mockDelivery.Object, mockLearner.Object)) .Returns(false); var mockDDRule28 = new Mock <IDerivedData_28Rule>(MockBehavior.Strict); mockDDRule28 .Setup(x => x.IsAdultFundedUnemployedWithBenefits(mockDelivery.Object, mockLearner.Object)) .Returns(false); var mockDDRule29 = new Mock <IDerivedData_29Rule>(MockBehavior.Strict); mockDDRule29 .Setup(x => x.IsInflexibleElementOfTrainingAimLearningDelivery(mockDelivery.Object)) .Returns(false); var mockDateTimeQueryService = new Mock <IDateTimeQueryService>(MockBehavior.Strict); mockDateTimeQueryService.Setup(x => x.YearsBetween(birthDate, testDate)).Returns(24); mockDateTimeQueryService.Setup(x => x.IsDateBetween(mockDelivery.Object.LearnStartDate, mockLARSDel.Object.EffectiveFrom, mockLARSDel.Object.EffectiveTo ?? DateTime.MaxValue, true)) .Returns(false); var sut = new LearnDelFAMType_66Rule( handler.Object, service.Object, mockDDRule07.Object, mockDDRule21.Object, mockDDRule28.Object, mockDDRule29.Object, mockDateTimeQueryService.Object); sut.ValidateDeliveries(mockLearner.Object); handler.VerifyAll(); service.VerifyAll(); mockDDRule07.VerifyAll(); mockDDRule21.VerifyAll(); mockDDRule28.VerifyAll(); mockDDRule29.VerifyAll(); mockDateTimeQueryService.VerifyAll(); }
public void InvalidItemRaisesValidationMessage() { const string LearnRefNumber = "123456789X"; var testDate = DateTime.Parse("2013-08-01"); var status = new Mock <ILearnerEmploymentStatus>(); status .SetupGet(x => x.DateEmpStatApp) .Returns(testDate); status .SetupGet(x => x.EmpStat) .Returns(EmploymentStatusEmpStats.InPaidEmployment); var employmentStatuses = new ILearnerEmploymentStatus[] { status.Object }; var mockDelivery = new Mock <ILearningDelivery>(); mockDelivery .SetupGet(y => y.LearnStartDate) .Returns(testDate); mockDelivery .SetupGet(y => y.AimType) .Returns(1); var deliveries = new ILearningDelivery[] { mockDelivery.Object }; var mockLearner = new Mock <ILearner>(); mockLearner .SetupGet(x => x.LearnRefNumber) .Returns(LearnRefNumber); mockLearner .SetupGet(x => x.LearningDeliveries) .Returns(deliveries); mockLearner .SetupGet(y => y.LearnerEmploymentStatuses) .Returns(employmentStatuses); var handler = new Mock <IValidationErrorHandler>(MockBehavior.Strict); handler .Setup(x => x.Handle("EmpId_10", LearnRefNumber, 0, It.IsAny <IEnumerable <IErrorMessageParameter> >())); handler .Setup(x => x.BuildErrorMessageParameter("EmpId", "(missing)")) .Returns(new Mock <IErrorMessageParameter>().Object); handler .Setup(x => x.BuildErrorMessageParameter("EmpStat", EmploymentStatusEmpStats.InPaidEmployment)) .Returns(new Mock <IErrorMessageParameter>().Object); handler .Setup(x => x.BuildErrorMessageParameter("LearnStartDate", AbstractRule.AsRequiredCultureDate(testDate))) .Returns(new Mock <IErrorMessageParameter>().Object); var lEmpQS = new Mock <ILearnerEmploymentStatusQueryService>(MockBehavior.Strict); lEmpQS .Setup(x => x.LearnerEmploymentStatusForDate(employmentStatuses, testDate)) .Returns(status.Object); var dd07 = new Mock <IDerivedData_07Rule>(MockBehavior.Strict); dd07 .Setup(dd => dd.IsApprenticeship(mockDelivery.Object.ProgTypeNullable)).Returns(true); var sut = new EmpId_10Rule(handler.Object, lEmpQS.Object, dd07.Object); sut.Validate(mockLearner.Object); handler.VerifyAll(); lEmpQS.VerifyAll(); dd07.VerifyAll(); }
public void InvalidItemRaisesValidationMessage() { // arrange const string LearnRefNumber = "123456789X"; const string learnAimRef = "salddfkjeifdnase"; var mockFAM = new Mock <ILearningDeliveryFAM>(); mockFAM .SetupGet(x => x.LearnDelFAMType) .Returns(Monitoring.Delivery.Types.FullOrCoFunding); mockFAM .SetupGet(x => x.LearnDelFAMCode) .Returns("1"); var fams = Collection.Empty <ILearningDeliveryFAM>(); fams.Add(mockFAM.Object); var testDate = DateTime.Parse("2017-08-01"); var mockDelivery = new Mock <ILearningDelivery>(); mockDelivery .SetupGet(y => y.LearnAimRef) .Returns(learnAimRef); mockDelivery .SetupGet(y => y.LearnStartDate) .Returns(testDate); mockDelivery .SetupGet(y => y.FundModel) .Returns(TypeOfFunding.AdultSkills); mockDelivery .SetupGet(y => y.LearningDeliveryFAMs) .Returns(fams.AsSafeReadOnlyList()); var deliveries = Collection.Empty <ILearningDelivery>(); deliveries.Add(mockDelivery.Object); var birthDate = DateTime.Parse("1993-07-01"); var mockLearner = new Mock <ILearner>(); mockLearner .SetupGet(x => x.LearnRefNumber) .Returns(LearnRefNumber); mockLearner .SetupGet(x => x.DateOfBirthNullable) .Returns(birthDate); mockLearner .SetupGet(x => x.LearningDeliveries) .Returns(deliveries.AsSafeReadOnlyList()); var handler = new Mock <IValidationErrorHandler>(MockBehavior.Strict); handler .Setup(x => x.Handle(RuleNameConstants.LearnDelFAMType_66, LearnRefNumber, 0, Moq.It.IsAny <IEnumerable <IErrorMessageParameter> >())); handler .Setup(x => x.BuildErrorMessageParameter("FundModel", 35)) .Returns(new Mock <IErrorMessageParameter>().Object); handler .Setup(x => x.BuildErrorMessageParameter("LearnDelFAMType", "FFI")) .Returns(new Mock <IErrorMessageParameter>().Object); handler .Setup(x => x.BuildErrorMessageParameter("LearnDelFAMCode", "1")) .Returns(new Mock <IErrorMessageParameter>().Object); handler .Setup(x => x.BuildErrorMessageParameter("LearnStartDate", AbstractRule.AsRequiredCultureDate(testDate))) .Returns(new Mock <IErrorMessageParameter>().Object); handler .Setup(x => x.BuildErrorMessageParameter("DateOfBirth", AbstractRule.AsRequiredCultureDate(birthDate))) .Returns(new Mock <IErrorMessageParameter>().Object); var mock = new Mock <ILARSLearningDelivery>(); mock .SetupGet(x => x.NotionalNVQLevelv2) .Returns(LARSNotionalNVQLevelV2.EntryLevel); var service = new Mock <ILARSDataService>(MockBehavior.Strict); service .Setup(x => x.GetDeliveryFor(learnAimRef)) .Returns(mock.Object); var mockDDRule07 = new Mock <IDerivedData_07Rule>(MockBehavior.Strict); var mockDDRule21 = new Mock <IDerivedData_21Rule>(MockBehavior.Strict); mockDDRule21 .Setup(x => x.IsAdultFundedUnemployedWithOtherStateBenefits(mockDelivery.Object, mockLearner.Object)) .Returns(false); var mockDDRule28 = new Mock <IDerivedData_28Rule>(MockBehavior.Strict); mockDDRule28 .Setup(x => x.IsAdultFundedUnemployedWithBenefits(mockDelivery.Object, mockLearner.Object)) .Returns(false); var mockDDRule29 = new Mock <IDerivedData_29Rule>(MockBehavior.Strict); var sut = new LearnDelFAMType_66Rule(handler.Object, service.Object, mockDDRule07.Object, mockDDRule21.Object, mockDDRule28.Object, mockDDRule29.Object); // act sut.ValidateDeliveries(mockLearner.Object); // assert handler.VerifyAll(); service.VerifyAll(); mockDDRule07.VerifyAll(); mockDDRule21.VerifyAll(); mockDDRule28.VerifyAll(); mockDDRule29.VerifyAll(); }
public void InvalidItemRaisesValidationMessage() { // arrange const string LearnRefNumber = "123456789X"; var testDate = DateTime.Parse("2013-08-01"); var status = new Mock <ILearnerEmploymentStatus>(); var statii = new ILearnerEmploymentStatus[] { status.Object }; var mockDelivery = new Mock <ILearningDelivery>(); mockDelivery .SetupGet(y => y.LearnStartDate) .Returns(testDate); var deliveries = new ILearningDelivery[] { mockDelivery.Object }; var mockLearner = new Mock <ILearner>(); mockLearner .SetupGet(x => x.LearnRefNumber) .Returns(LearnRefNumber); mockLearner .SetupGet(x => x.LearningDeliveries) .Returns(deliveries); mockLearner .SetupGet(y => y.LearnerEmploymentStatuses) .Returns(statii); var handler = new Mock <IValidationErrorHandler>(MockBehavior.Strict); handler .Setup(x => x.Handle("EmpStat_06", LearnRefNumber, 0, It.IsAny <IEnumerable <IErrorMessageParameter> >())); handler .Setup(x => x.BuildErrorMessageParameter("DateEmpStatApp", null)) .Returns(new Mock <IErrorMessageParameter>().Object); handler .Setup(x => x.BuildErrorMessageParameter("PlanLearnHours", null)) .Returns(new Mock <IErrorMessageParameter>().Object); handler .Setup(x => x.BuildErrorMessageParameter("PlanEEPHours", null)) .Returns(new Mock <IErrorMessageParameter>().Object); handler .Setup(x => x.BuildErrorMessageParameter("LearnStartDate", AbstractRule.AsRequiredCultureDate(testDate))) .Returns(new Mock <IErrorMessageParameter>().Object); var commonOps = new Mock <IProvideRuleCommonOperations>(MockBehavior.Strict); commonOps .Setup(x => x.GetEmploymentStatusOn(testDate, statii)) .Returns((ILearnerEmploymentStatus)null); commonOps .Setup(x => x.HasQualifyingFunding(mockDelivery.Object, 25, 82)) .Returns(true); commonOps .Setup(x => x.HasQualifyingStart(mockDelivery.Object, DateTime.Parse("2013-08-01"), DateTime.Parse("2014-07-31"))) .Returns(true); commonOps .Setup(x => x.IsTraineeship(mockDelivery.Object)) .Returns(false); var sut = new EmpStat_06Rule(handler.Object, commonOps.Object); // act sut.Validate(mockLearner.Object); // assert handler.VerifyAll(); commonOps.VerifyAll(); }
public void Bug84886_RaisesValidationMessage() { const string learnRefNumber = "0LstartDt07"; const string learnAimRef = "50104767"; const int pwayCode = 0; const int progType = 2; const int fworkCode = 420; var testDate = DateTime.Parse("2018-10-14"); var delivery = new Mock <ILearningDelivery>(); delivery .SetupGet(x => x.LearnStartDate) .Returns(testDate); delivery .SetupGet(x => x.LearnAimRef) .Returns(learnAimRef); delivery .SetupGet(x => x.AimType) .Returns(3); delivery .SetupGet(x => x.ProgTypeNullable) .Returns(progType); delivery .SetupGet(x => x.FworkCodeNullable) .Returns(fworkCode); delivery .SetupGet(x => x.PwayCodeNullable) .Returns(pwayCode); var deliveries = new ILearningDelivery[] { delivery.Object }; var learner = new Mock <ILearner>(); learner .SetupGet(x => x.LearnRefNumber) .Returns(learnRefNumber); learner .SetupGet(x => x.LearningDeliveries) .Returns(deliveries); var handler = new Mock <IValidationErrorHandler>(MockBehavior.Strict); handler .Setup(x => x.Handle(RuleNameConstants.LearnStartDate_07, learnRefNumber, 0, It.IsAny <IEnumerable <IErrorMessageParameter> >())); handler .Setup(x => x.BuildErrorMessageParameter("LearnStartDate", AbstractRule.AsRequiredCultureDate(testDate))) .Returns(new Mock <IErrorMessageParameter>().Object); handler .Setup(x => x.BuildErrorMessageParameter("PwayCode", pwayCode)) .Returns(new Mock <IErrorMessageParameter>().Object); handler .Setup(x => x.BuildErrorMessageParameter("ProgType", progType)) .Returns(new Mock <IErrorMessageParameter>().Object); handler .Setup(x => x.BuildErrorMessageParameter("FworkCode", fworkCode)) .Returns(new Mock <IErrorMessageParameter>().Object); var ddRule04 = new Mock <IDerivedData_04Rule>(MockBehavior.Strict); ddRule04 .Setup(x => x.GetEarliesStartDateFor(delivery.Object, deliveries)) .Returns(testDate); var startDate = DateTime.Parse("2011-06-06"); var endDate = DateTime.Parse("2013-03-06"); var frameworkAim = new Mock <ILARSFrameworkAim>(); frameworkAim .SetupGet(x => x.ProgType) .Returns(progType); frameworkAim .SetupGet(x => x.FworkCode) .Returns(fworkCode); frameworkAim .SetupGet(x => x.PwayCode) .Returns(pwayCode); frameworkAim .SetupGet(x => x.StartDate) .Returns(startDate); frameworkAim .SetupGet(x => x.EndDate) .Returns(endDate); var larsDelivery = new Mock <ILARSLearningDelivery>(); larsDelivery .SetupGet(x => x.FrameworkCommonComponent) .Returns(LARSConstants.CommonComponents.NotApplicable); var larsData = new Mock <ILARSDataService>(MockBehavior.Strict); larsData .Setup(x => x.GetFrameworkAimsFor(learnAimRef)) .Returns(new ILARSFrameworkAim[] { frameworkAim.Object }); larsData .Setup(x => x.GetDeliveryFor(learnAimRef)) .Returns(larsDelivery.Object); var learningDeliveryFAMQS = new Mock <ILearningDeliveryFAMQueryService>(MockBehavior.Strict); learningDeliveryFAMQS .Setup(x => x.HasLearningDeliveryFAMType( delivery.Object.LearningDeliveryFAMs, "RES")) .Returns(false); var dateTimeQueryServiceMock = new Mock <IDateTimeQueryService>(); dateTimeQueryServiceMock.Setup(x => x.IsDateBetween(testDate, DateTime.MinValue, frameworkAim.Object.EndDate.Value, true)).Returns(false); var dd07 = new Mock <IDerivedData_07Rule>(MockBehavior.Strict); dd07 .Setup(dd => dd.IsApprenticeship(delivery.Object.ProgTypeNullable)).Returns(true); var sut = NewRule(handler.Object, ddRule04.Object, larsData.Object, learningDeliveryFAMQS.Object, dateTimeQueryServiceMock.Object, dd07.Object); sut.Validate(learner.Object); handler.VerifyAll(); ddRule04.VerifyAll(); larsData.VerifyAll(); learningDeliveryFAMQS.VerifyAll(); dd07.VerifyAll(); }
public void InvalidItemRaisesValidationMessage() { // arrange const string LearnRefNumber = "123456789X"; const string learnAimRef = "salddfkjeifdnase"; const int fundModel = TypeOfFunding.AdultSkills; const string famType = Monitoring.Delivery.Types.FullOrCoFunding; const string famCode = "2"; DateTime? dateOfBirth = new DateTime(1996, 8, 1); DateTime learnStartDate = new DateTime(2017, 8, 1); var mockFAM = new Mock <ILearningDeliveryFAM>(); mockFAM .SetupGet(x => x.LearnDelFAMType) .Returns(famType); mockFAM .SetupGet(x => x.LearnDelFAMCode) .Returns(famCode); var fams = new ILearningDeliveryFAM[] { mockFAM.Object }; var mockDelivery = new Mock <ILearningDelivery>(); mockDelivery .SetupGet(y => y.LearnAimRef) .Returns(learnAimRef); mockDelivery .SetupGet(y => y.LearnStartDate) .Returns(learnStartDate); mockDelivery .SetupGet(y => y.FundModel) .Returns(fundModel); mockDelivery .SetupGet(y => y.LearningDeliveryFAMs) .Returns(fams); var deliveries = new ILearningDelivery[] { mockDelivery.Object }; var mockLearner = new Mock <ILearner>(); mockLearner .SetupGet(x => x.PriorAttainNullable) .Returns(TypeOfPriorAttainment.FullLevel2); mockLearner .SetupGet(x => x.LearnRefNumber) .Returns(LearnRefNumber); mockLearner .SetupGet(x => x.DateOfBirthNullable) .Returns(dateOfBirth); mockLearner .SetupGet(x => x.LearningDeliveries) .Returns(deliveries); var handler = new Mock <IValidationErrorHandler>(MockBehavior.Strict); handler .Setup(x => x.Handle(RuleNameConstants.LearnDelFAMType_62, LearnRefNumber, 0, It.IsAny <IEnumerable <IErrorMessageParameter> >())); handler .Setup(x => x.BuildErrorMessageParameter("FundModel", fundModel)) .Returns(new Mock <IErrorMessageParameter>().Object); handler .Setup(x => x.BuildErrorMessageParameter("LearnDelFAMType", famType)) .Returns(new Mock <IErrorMessageParameter>().Object); handler .Setup(x => x.BuildErrorMessageParameter("LearnDelFAMCode", famCode)) .Returns(new Mock <IErrorMessageParameter>().Object); handler .Setup(x => x.BuildErrorMessageParameter("LearnStartDate", AbstractRule.AsRequiredCultureDate(learnStartDate))) .Returns(new Mock <IErrorMessageParameter>().Object); handler .Setup(x => x.BuildErrorMessageParameter("DateOfBirth", AbstractRule.AsRequiredCultureDate(dateOfBirth))) .Returns(new Mock <IErrorMessageParameter>().Object); var mock = new Mock <ILARSLearningDelivery>(); mock .SetupGet(x => x.NotionalNVQLevelv2) .Returns(LARSNotionalNVQLevelV2.Level2); var service = new Mock <ILARSDataService>(MockBehavior.Strict); service .Setup(x => x.GetDeliveryFor(learnAimRef)) .Returns(mock.Object); var mockDDRule07 = new Mock <IDerivedData_07Rule>(MockBehavior.Strict); var mockDDRule21 = new Mock <IDerivedData_21Rule>(MockBehavior.Strict); mockDDRule21 .Setup(x => x.IsAdultFundedUnemployedWithOtherStateBenefits(mockDelivery.Object, mockLearner.Object)) .Returns(false); var mockDDRule28 = new Mock <IDerivedData_28Rule>(MockBehavior.Strict); mockDDRule28 .Setup(x => x.IsAdultFundedUnemployedWithBenefits(mockDelivery.Object, mockLearner.Object)) .Returns(false); var mockDDRule29 = new Mock <IDerivedData_29Rule>(MockBehavior.Strict); var sut = new LearnDelFAMType_62Rule(handler.Object, service.Object, mockDDRule07.Object, mockDDRule21.Object, mockDDRule28.Object, mockDDRule29.Object); // act sut.ValidateDeliveries(mockLearner.Object); // assert handler.VerifyAll(); service.VerifyAll(); mockDDRule07.VerifyAll(); mockDDRule21.VerifyAll(); mockDDRule28.VerifyAll(); mockDDRule29.VerifyAll(); }
public void InvalidItemRaisesValidationMessage() { // arrange const string LearnRefNumber = "123456789X"; var testDate = DateTime.Parse("2013-08-01"); var status = new Mock <ILearnerEmploymentStatus>(); status .SetupGet(x => x.DateEmpStatApp) .Returns(testDate); status .SetupGet(x => x.EmpStat) .Returns(TypeOfEmploymentStatus.InPaidEmployment); var statii = new ILearnerEmploymentStatus[] { status.Object }; var mockDelivery = new Mock <ILearningDelivery>(); mockDelivery .SetupGet(y => y.LearnStartDate) .Returns(testDate); var deliveries = new ILearningDelivery[] { mockDelivery.Object }; var mockLearner = new Mock <ILearner>(); mockLearner .SetupGet(x => x.LearnRefNumber) .Returns(LearnRefNumber); mockLearner .SetupGet(x => x.LearningDeliveries) .Returns(deliveries); mockLearner .SetupGet(y => y.LearnerEmploymentStatuses) .Returns(statii); var handler = new Mock <IValidationErrorHandler>(MockBehavior.Strict); handler .Setup(x => x.Handle("EmpId_10", LearnRefNumber, 0, It.IsAny <IEnumerable <IErrorMessageParameter> >())); handler .Setup(x => x.BuildErrorMessageParameter("EmpId", "(missing)")) .Returns(new Mock <IErrorMessageParameter>().Object); handler .Setup(x => x.BuildErrorMessageParameter("EmpStat", TypeOfEmploymentStatus.InPaidEmployment)) .Returns(new Mock <IErrorMessageParameter>().Object); handler .Setup(x => x.BuildErrorMessageParameter("LearnStartDate", AbstractRule.AsRequiredCultureDate(testDate))) .Returns(new Mock <IErrorMessageParameter>().Object); var commonOps = new Mock <IProvideRuleCommonOperations>(MockBehavior.Strict); commonOps .Setup(x => x.GetEmploymentStatusOn(testDate, statii)) .Returns(status.Object); commonOps .Setup(x => x.InApprenticeship(mockDelivery.Object)) .Returns(true); commonOps .Setup(x => x.InAProgramme(mockDelivery.Object)) .Returns(true); var sut = new EmpId_10Rule(handler.Object, commonOps.Object); // act sut.Validate(mockLearner.Object); // assert handler.VerifyAll(); commonOps.VerifyAll(); }
public void InvalidItemRaisesValidationMessage(int candidate, params int[] eligibilities) { const string LearnRefNumber = "123456789X"; const string conRefNumber = "test-Con-Ref"; var testDate = DateTime.Parse("2016-06-14"); var deliveries = new List <ILearningDelivery>(); for (int i = -5; i < 1; i++) { deliveries.Add(GetTestDelivery(testDate.AddDays(i), conRefNumber, i)); } var mockStatus = new Mock <ILearnerEmploymentStatus>(); mockStatus .SetupGet(x => x.EmpStat) .Returns(candidate); var employmentStatuses = new ILearnerEmploymentStatus[] { mockStatus.Object }; var mockLearner = new Mock <ILearner>(); mockLearner .SetupGet(x => x.LearnRefNumber) .Returns(LearnRefNumber); mockLearner .SetupGet(x => x.LearningDeliveries) .Returns(deliveries); mockLearner .SetupGet(x => x.LearnerEmploymentStatuses) .Returns(employmentStatuses); var handler = new Mock <IValidationErrorHandler>(MockBehavior.Strict); handler .Setup(x => x.Handle(RuleNameConstants.EmpStat_14, LearnRefNumber, 0, Moq.It.IsAny <IEnumerable <IErrorMessageParameter> >())); handler .Setup(x => x.BuildErrorMessageParameter("EmpStat", candidate)) .Returns(new Mock <IErrorMessageParameter>().Object); handler .Setup(x => x.BuildErrorMessageParameter("ConRefNumber", conRefNumber)) .Returns(new Mock <IErrorMessageParameter>().Object); handler .Setup(x => x.BuildErrorMessageParameter("LearnStartDate", AbstractRule.AsRequiredCultureDate(testDate))) .Returns(new Mock <IErrorMessageParameter>().Object); var esfEmploymentStatuses = new List <IEsfEligibilityRuleEmploymentStatus>(); eligibilities.ForEach(x => esfEmploymentStatuses.Add(GetEligibility(x))); var fcsData = new Mock <IFCSDataService>(MockBehavior.Strict); fcsData .Setup(x => x.GetEligibilityRuleEmploymentStatusesFor(conRefNumber)) .Returns(esfEmploymentStatuses); var lEmpQS = new Mock <ILearnerEmploymentStatusQueryService>(MockBehavior.Strict); lEmpQS .Setup(x => x.LearnerEmploymentStatusForDate(employmentStatuses, testDate)) .Returns(mockStatus.Object); var sut = new EmpStat_14Rule(handler.Object, fcsData.Object, lEmpQS.Object); sut.Validate(mockLearner.Object); handler.VerifyAll(); fcsData.VerifyAll(); }
public void InvalidItemRaisesValidationMessage() { const string LearnRefNumber = "123456789X"; var testStart = DateTime.Parse("2016-05-01"); var testEnd = DateTime.Parse("2017-05-01"); var delivery = new Mock <ILearningDelivery>(); delivery .SetupGet(y => y.FundModel) .Returns(99); delivery .SetupGet(y => y.LearnStartDate) .Returns(testStart); delivery .SetupGet(y => y.LearnPlanEndDate) .Returns(testEnd); delivery .SetupGet(y => y.LearnActEndDateNullable) .Returns(DateTime.Today); var deliveries = new ILearningDelivery[] { delivery.Object }; var learner = new Mock <ILearner>(); learner .SetupGet(x => x.LearnRefNumber) .Returns(LearnRefNumber); learner .SetupGet(x => x.ULN) .Returns(ValidationConstants.TemporaryULN); learner .SetupGet(x => x.LearningDeliveries) .Returns(deliveries); var handler = new Mock <IValidationErrorHandler>(MockBehavior.Strict); handler .Setup(x => x.Handle(RuleNameConstants.ULN_06, LearnRefNumber, 0, It.IsAny <IEnumerable <IErrorMessageParameter> >())); handler .Setup(x => x.BuildErrorMessageParameter("ULN", ValidationConstants.TemporaryULN)) .Returns(new Mock <IErrorMessageParameter>().Object); handler .Setup(x => x.BuildErrorMessageParameter("FilePrepDate", AbstractRule.AsRequiredCultureDate(TestPreparationDate))) .Returns(new Mock <IErrorMessageParameter>().Object); handler .Setup(x => x.BuildErrorMessageParameter("LearnStartDate", AbstractRule.AsRequiredCultureDate(testStart))) .Returns(new Mock <IErrorMessageParameter>().Object); var academicYear = new Mock <IAcademicYearDataService>(MockBehavior.Strict); academicYear .Setup(x => x.JanuaryFirst()) .Returns(TestNewYearDate); var dateTime = new Mock <IDateTimeQueryService>(MockBehavior.Strict); dateTime .Setup(x => x.DaysBetween(It.IsAny <DateTime>(), It.IsAny <DateTime>())) .ReturnsInOrder(4, 5, 60); var fileData = new Mock <IFileDataService>(MockBehavior.Strict); fileData .Setup(x => x.FilePreparationDate()) .Returns(TestPreparationDate); var learningDeliveryFAMQS = new Mock <ILearningDeliveryFAMQueryService>(MockBehavior.Strict); learningDeliveryFAMQS .Setup(x => x.HasLearningDeliveryFAMCodeForType( delivery.Object.LearningDeliveryFAMs, "LDM", "034")) .Returns(false); learningDeliveryFAMQS .Setup(x => x.HasLearningDeliveryFAMCodeForType( delivery.Object.LearningDeliveryFAMs, "ACT", "1")) .Returns(false); learningDeliveryFAMQS .Setup(x => x.HasLearningDeliveryFAMCodeForType( delivery.Object.LearningDeliveryFAMs, "ADL", "1")) .Returns(true); var sut = new ULN_06Rule(handler.Object, academicYear.Object, dateTime.Object, fileData.Object, learningDeliveryFAMQS.Object); sut.Validate(learner.Object); handler.VerifyAll(); academicYear.VerifyAll(); dateTime.VerifyAll(); fileData.VerifyAll(); learningDeliveryFAMQS.VerifyAll(); }