public void HasDisqualifyingLearningCategoryForDeliveryMeetsExpectation(string candidate) { // arrange var mockDelivery = new Mock <ILearningDelivery>(); mockDelivery .SetupGet(x => x.LearnAimRef) .Returns(candidate); var handler = new Mock <IValidationErrorHandler>(MockBehavior.Strict); var service = new Mock <ILARSDataService>(MockBehavior.Strict); service .Setup(x => x.GetCategoriesFor(candidate)) .Returns(Collection.EmptyAndReadOnly <ILARSLearningCategory>()); var commonChecks = new Mock <IProvideRuleCommonOperations>(MockBehavior.Strict); var sut = new LearnAimRef_81Rule(handler.Object, service.Object, commonChecks.Object); // act var result = sut.HasDisqualifyingLearningCategory(mockDelivery.Object); // assert handler.VerifyAll(); service.VerifyAll(); commonChecks.VerifyAll(); Assert.False(result); }
public void HasDisqualifyingLearningCategoryForDeliveryMeetsExpectation(string candidate) { var mockDelivery = new Mock <ILearningDelivery>(); mockDelivery .SetupGet(x => x.LearnAimRef) .Returns(candidate); var handler = new Mock <IValidationErrorHandler>(MockBehavior.Strict); var service = new Mock <ILARSDataService>(MockBehavior.Strict); service .Setup(x => x.GetCategoriesFor(candidate)) .Returns(new List <ILARSLearningCategory>()); var dateTimeQS = new Mock <IDateTimeQueryService>(MockBehavior.Strict); var lEmpQS = new Mock <ILearnerEmploymentStatusQueryService>(MockBehavior.Strict); var learningDeliveryFAMQS = new Mock <ILearningDeliveryFAMQueryService>(MockBehavior.Strict); var sut = new LearnAimRef_81Rule(handler.Object, service.Object, dateTimeQS.Object, lEmpQS.Object, learningDeliveryFAMQS.Object); var result = sut.HasDisqualifyingLearningCategory(mockDelivery.Object); handler.VerifyAll(); service.VerifyAll(); dateTimeQS.VerifyAll(); Assert.False(result); }
public void ValidItemDoesNotRaiseValidationMessage() { // arrange const string learnRefNumber = "123456789X"; const string learnAimRef = "salddfkjeifdnase"; var testDate = DateTime.Parse("2016-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); var deliveries = Collection.Empty <ILearningDelivery>(); deliveries.Add(mockDelivery.Object); var mockLearner = new Mock <ILearner>(); mockLearner .SetupGet(x => x.LearnRefNumber) .Returns(learnRefNumber); mockLearner .SetupGet(x => x.LearningDeliveries) .Returns(deliveries.AsSafeReadOnlyList()); var handler = new Mock <IValidationErrorHandler>(MockBehavior.Strict); var mockLars = new Mock <ILARSLearningCategory>(); var larsItems = Collection.Empty <ILARSLearningCategory>(); larsItems.Add(mockLars.Object); var service = new Mock <ILARSDataService>(MockBehavior.Strict); service .Setup(x => x.GetCategoriesFor(learnAimRef)) .Returns(larsItems.AsSafeReadOnlyList()); var mockMonitor = new Mock <IEmploymentStatusMonitoring>(); mockMonitor .SetupGet(y => y.ESMType) .Returns(Monitoring.EmploymentStatus.Types.BenefitStatusIndicator); mockMonitor .SetupGet(y => y.ESMCode) .Returns(3); var monitors = Collection.Empty <IEmploymentStatusMonitoring>(); monitors.Add(mockMonitor.Object); var mockEmployment = new Mock <ILearnerEmploymentStatus>(); mockEmployment .SetupGet(y => y.EmploymentStatusMonitorings) .Returns(monitors.AsSafeReadOnlyList()); var commonChecks = new Mock <IProvideRuleCommonOperations>(MockBehavior.Strict); commonChecks .Setup(x => x.IsSteelWorkerRedundancyTraining(mockDelivery.Object)) .Returns(false); commonChecks .Setup(x => x.HasQualifyingFunding(mockDelivery.Object, TypeOfFunding.AdultSkills, TypeOfFunding.OtherAdult, TypeOfFunding.EuropeanSocialFund)) .Returns(true); commonChecks .Setup(x => x.HasQualifyingStart(mockDelivery.Object, LearnAimRef_81Rule.FirstViableDate, null)) .Returns(true); commonChecks .Setup(x => x.GetEmploymentStatusOn(testDate, Moq.It.IsAny <IReadOnlyCollection <ILearnerEmploymentStatus> >())) .Returns(mockEmployment.Object); var sut = new LearnAimRef_81Rule(handler.Object, service.Object, commonChecks.Object); // act sut.Validate(mockLearner.Object); // assert handler.VerifyAll(); service.VerifyAll(); commonChecks.VerifyAll(); }
public void InvalidItemRaisesValidationMessage() { const string learnRefNumber = "123456789X"; const string learnAimRef = "salddfkjeifdnase"; var testDate = DateTime.Parse("2016-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(FundModels.AdultSkills); var deliveries = new List <ILearningDelivery>(); deliveries.Add(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("LearnAimRef_81", learnRefNumber, 0, Moq.It.IsAny <IEnumerable <IErrorMessageParameter> >())); handler .Setup(x => x.BuildErrorMessageParameter("LearnAimRef", learnAimRef)) .Returns(new Mock <IErrorMessageParameter>().Object); handler .Setup(x => x.BuildErrorMessageParameter("LearnStartDate", testDate)) .Returns(new Mock <IErrorMessageParameter>().Object); handler .Setup(x => x.BuildErrorMessageParameter("FundModel", FundModels.AdultSkills)) .Returns(new Mock <IErrorMessageParameter>().Object); handler .Setup(x => x.BuildErrorMessageParameter("ESMType", Monitoring.EmploymentStatus.Types.BenefitStatusIndicator)) .Returns(new Mock <IErrorMessageParameter>().Object); handler .Setup(x => x.BuildErrorMessageParameter("ESMCode", 3)) .Returns(new Mock <IErrorMessageParameter>().Object); var mockLars = new Mock <ILARSLearningCategory>(); mockLars .SetupGet(x => x.CategoryRef) .Returns(LARSConstants.Categories.LicenseToPractice); var larsItems = new List <ILARSLearningCategory>(); larsItems.Add(mockLars.Object); var service = new Mock <ILARSDataService>(MockBehavior.Strict); service .Setup(x => x.GetCategoriesFor(learnAimRef)) .Returns(larsItems); var mockMonitor = new Mock <IEmploymentStatusMonitoring>(); mockMonitor .SetupGet(y => y.ESMType) .Returns(Monitoring.EmploymentStatus.Types.BenefitStatusIndicator); mockMonitor .SetupGet(y => y.ESMCode) .Returns(3); var monitors = new List <IEmploymentStatusMonitoring>(); monitors.Add(mockMonitor.Object); var mockEmployment = new Mock <ILearnerEmploymentStatus>(); mockEmployment .SetupGet(y => y.EmploymentStatusMonitorings) .Returns(monitors); var dateTimeQS = new Mock <IDateTimeQueryService>(MockBehavior.Strict); dateTimeQS .Setup(x => x.IsDateBetween(mockDelivery.Object.LearnStartDate, LearnAimRef_81Rule.FirstViableDate, DateTime.MaxValue, true)) .Returns(true); var lEmpQS = new Mock <ILearnerEmploymentStatusQueryService>(MockBehavior.Strict); lEmpQS .Setup(x => x.LearnerEmploymentStatusForDate(It.IsAny <IReadOnlyCollection <ILearnerEmploymentStatus> >(), testDate)) .Returns(mockEmployment.Object); var learningDeliveryFAMQS = new Mock <ILearningDeliveryFAMQueryService>(MockBehavior.Strict); learningDeliveryFAMQS .Setup(x => x.HasLearningDeliveryFAMCodeForType(mockDelivery.Object.LearningDeliveryFAMs, "LDM", "347")) .Returns(false); var sut = new LearnAimRef_81Rule(handler.Object, service.Object, dateTimeQS.Object, lEmpQS.Object, learningDeliveryFAMQS.Object); sut.Validate(mockLearner.Object); handler.VerifyAll(); service.VerifyAll(); dateTimeQS.VerifyAll(); }