public void IsQualifyingFundModelMeetsExpectation(bool expectation) { // arrange var mockItem = new Mock <ILearningDelivery>(); var handler = new Mock <IValidationErrorHandler>(MockBehavior.Strict); var commonOps = new Mock <IProvideRuleCommonOperations>(MockBehavior.Strict); commonOps .Setup(x => x.HasQualifyingFunding( mockItem.Object, 10, // TypeOfFunding.CommunityLearning, 35, // TypeOfFunding.AdultSkills 36, // TypeOfFunding.ApprenticeshipsFrom1May2017, 70, // TypeOfFunding.EuropeanSocialFund, 81)) // TypeOfFunding.OtherAdult .Returns(expectation); var sut = new LearnDelFAMType_09Rule(handler.Object, commonOps.Object); // act var result = sut.HasQualifyingFunding(mockItem.Object); // assert Assert.Equal(expectation, result); }
public void ValidItemDoesNotRaiseValidationMessage(int candidate) { const string LearnRefNumber = "123456789X"; const string LearnAimRef = "salddfkjeifdnase"; var fam = new Mock <ILearningDeliveryFAM>(); var fams = new ILearningDeliveryFAM[] { fam.Object }; var delivery = new Mock <ILearningDelivery>(); delivery .SetupGet(y => y.LearnAimRef) .Returns(LearnAimRef); delivery .SetupGet(y => y.FundModel) .Returns(candidate); delivery .SetupGet(y => y.LearnStartDate) .Returns(DateTime.Parse("2019-07-31")); delivery .SetupGet(y => y.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 dd35 = new Mock <IDerivedData_35Rule>(MockBehavior.Strict); dd35.Setup(x => x.IsCombinedAuthorities(delivery.Object)).Returns(false); var handler = new Mock <IValidationErrorHandler>(MockBehavior.Strict); var learningDeliveryFAMQS = new Mock <ILearningDeliveryFAMQueryService>(MockBehavior.Strict); learningDeliveryFAMQS .Setup(x => x.HasLearningDeliveryFAMType( delivery.Object.LearningDeliveryFAMs, "SOF")) .Returns(false); var sut = new LearnDelFAMType_09Rule(handler.Object, learningDeliveryFAMQS.Object, dd35.Object); sut.Validate(learner.Object); handler.VerifyAll(); learningDeliveryFAMQS.VerifyAll(); }
public void ValidItemDoesNotRaiseValidationMessage(int candidate, string monitor) { // arrange const string LearnRefNumber = "123456789X"; const string learnAimRef = "salddfkjeifdnase"; var mockFAM = new Mock <ILearningDeliveryFAM>(); mockFAM .SetupGet(x => x.LearnDelFAMType) .Returns(monitor.Substring(0, 3)); mockFAM .SetupGet(x => x.LearnDelFAMCode) .Returns(monitor.Substring(3)); var fams = Collection.Empty <ILearningDeliveryFAM>(); fams.Add(mockFAM.Object); var mockDelivery = new Mock <ILearningDelivery>(); mockDelivery .SetupGet(y => y.LearnAimRef) .Returns(learnAimRef); mockDelivery .SetupGet(y => y.FundModel) .Returns(candidate); mockDelivery .SetupGet(y => y.LearningDeliveryFAMs) .Returns(fams.AsSafeReadOnlyList()); 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 sut = new LearnDelFAMType_09Rule(handler.Object); // act sut.Validate(mockLearner.Object); // assert handler.VerifyAll(); }
[InlineData(81)] // TypeOfFunding.OtherAdult public void ValidItemDoesNotRaiseValidationMessage(int candidate) { // arrange const string LearnRefNumber = "123456789X"; const string learnAimRef = "salddfkjeifdnase"; var mockDelivery = new Mock <ILearningDelivery>(); mockDelivery .SetupGet(y => y.LearnAimRef) .Returns(learnAimRef); mockDelivery .SetupGet(y => y.FundModel) .Returns(candidate); 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); // these two operations control the path var commonOps = new Mock <IProvideRuleCommonOperations>(MockBehavior.Strict); commonOps .Setup(x => x.HasQualifyingFunding( mockDelivery.Object, 10, // TypeOfFunding.CommunityLearning, 35, // TypeOfFunding.AdultSkills 36, // TypeOfFunding.ApprenticeshipsFrom1May2017, 70, // TypeOfFunding.EuropeanSocialFund, 81)) // TypeOfFunding.OtherAdult .Returns(true); commonOps .Setup(x => x.CheckDeliveryFAMs(mockDelivery.Object, It.IsAny <Func <ILearningDeliveryFAM, bool> >())) .Returns(false); var sut = new LearnDelFAMType_09Rule(handler.Object, commonOps.Object); // act sut.Validate(mockLearner.Object); // assert handler.VerifyAll(); }
public void HasDisqualifyingMonitorMeetsExpectation(string famType, string famCode, bool expectation) { var fam = new Mock <ILearningDeliveryFAM>(); fam .SetupGet(y => y.LearnDelFAMType) .Returns(famType); fam .SetupGet(y => y.LearnDelFAMCode) .Returns(famCode); var fams = new List <ILearningDeliveryFAM> { fam.Object }; var mockDelivery = new Mock <ILearningDelivery>(); mockDelivery .SetupGet(y => y.LearningDeliveryFAMs) .Returns(fams); var dd35 = new Mock <IDerivedData_35Rule>(MockBehavior.Strict); dd35.Setup(x => x.IsCombinedAuthorities(mockDelivery.Object)).Returns(false); var handler = new Mock <IValidationErrorHandler>(MockBehavior.Strict); var learningDeliveryFAMQS = new Mock <ILearningDeliveryFAMQueryService>(MockBehavior.Strict); learningDeliveryFAMQS .Setup(x => x.HasLearningDeliveryFAMType( mockDelivery.Object.LearningDeliveryFAMs, "SOF")) .Returns(expectation); learningDeliveryFAMQS .Setup(x => x.HasLearningDeliveryFAMCodeForType( mockDelivery.Object.LearningDeliveryFAMs, "SOF", "105")) .Returns(false); var result = new LearnDelFAMType_09Rule(handler.Object, learningDeliveryFAMQS.Object, dd35.Object).HasDisqualifyingMonitor(mockDelivery.Object); Assert.Equal(expectation, result); }
public void HasQualifyingMonitorWithNullFAMsReturnsFalse() { var mockDelivery = new Mock <ILearningDelivery>(); var dd35 = new Mock <IDerivedData_35Rule>(MockBehavior.Strict); dd35.Setup(x => x.IsCombinedAuthorities(mockDelivery.Object)).Returns(false); var handler = new Mock <IValidationErrorHandler>(MockBehavior.Strict); var learningDeliveryFAMQS = new Mock <ILearningDeliveryFAMQueryService>(MockBehavior.Strict); learningDeliveryFAMQS .Setup(x => x.HasLearningDeliveryFAMType( mockDelivery.Object.LearningDeliveryFAMs, "SOF")) .Returns(false); var result = new LearnDelFAMType_09Rule(handler.Object, learningDeliveryFAMQS.Object, dd35.Object).HasDisqualifyingMonitor(mockDelivery.Object); Assert.Equal(false, result); }
public void HasESFAAdultFundingWithNullFAMsReturnsFalse() { // arrange var mockItem = new Mock <ILearningDelivery>(); var handler = new Mock <IValidationErrorHandler>(MockBehavior.Strict); var commonOps = new Mock <IProvideRuleCommonOperations>(MockBehavior.Strict); commonOps .Setup(x => x.CheckDeliveryFAMs(mockItem.Object, Moq.It.IsAny <Func <ILearningDeliveryFAM, bool> >())) .Returns(false); var sut = new LearnDelFAMType_09Rule(handler.Object, commonOps.Object); // act var result = sut.HasESFAAdultFunding(mockItem.Object); // assert Assert.False(result); }
public void InvalidItemRaisesValidationMessage(int candidate) { const string LearnRefNumber = "123456789X"; const string LearnAimRef = "salddfkjeifdnase"; var fam = new Mock <ILearningDeliveryFAM>(); var fams = new ILearningDeliveryFAM[] { fam.Object }; var delivery = new Mock <ILearningDelivery>(); delivery .SetupGet(y => y.LearnAimRef) .Returns(LearnAimRef); delivery .SetupGet(y => y.FundModel) .Returns(candidate); delivery .SetupGet(y => y.LearnStartDate) .Returns(DateTime.Parse("2019-07-31")); delivery .SetupGet(y => y.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 dd35 = new Mock <IDerivedData_35Rule>(MockBehavior.Strict); dd35.Setup(x => x.IsCombinedAuthorities(delivery.Object)).Returns(false); var handler = new Mock <IValidationErrorHandler>(MockBehavior.Strict); handler .Setup(x => x.Handle(RuleNameConstants.LearnDelFAMType_09, LearnRefNumber, 0, It.IsAny <IEnumerable <IErrorMessageParameter> >())); handler .Setup(x => x.BuildErrorMessageParameter("FundModel", candidate)) .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 learningDeliveryFAMQS = new Mock <ILearningDeliveryFAMQueryService>(MockBehavior.Strict); learningDeliveryFAMQS .Setup(x => x.HasLearningDeliveryFAMType( delivery.Object.LearningDeliveryFAMs, "SOF")) .Returns(true); learningDeliveryFAMQS .Setup(x => x.HasLearningDeliveryFAMCodeForType( delivery.Object.LearningDeliveryFAMs, "SOF", "105")) .Returns(false); var sut = new LearnDelFAMType_09Rule(handler.Object, learningDeliveryFAMQS.Object, dd35.Object); sut.Validate(learner.Object); handler.VerifyAll(); learningDeliveryFAMQS.VerifyAll(); }
[InlineData(81)] // TypeOfFunding.OtherAdult public void InvalidItemRaisesValidationMessage(int candidate) { // arrange const string LearnRefNumber = "123456789X"; const string learnAimRef = "salddfkjeifdnase"; var mockDelivery = new Mock <ILearningDelivery>(); mockDelivery .SetupGet(y => y.LearnAimRef) .Returns(learnAimRef); mockDelivery .SetupGet(y => y.FundModel) .Returns(candidate); mockDelivery .SetupGet(y => y.AimSeqNumber) .Returns(0); 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_09, LearnRefNumber, 0, It.IsAny <IEnumerable <IErrorMessageParameter> >())); handler .Setup(x => x.BuildErrorMessageParameter("FundModel", candidate)) .Returns(new Mock <IErrorMessageParameter>().Object); handler .Setup(x => x.BuildErrorMessageParameter("LearnDelFAMType", "SOF")) // Monitoring.Delivery.Types.SourceOfFunding .Returns(new Mock <IErrorMessageParameter>().Object); handler .Setup(x => x.BuildErrorMessageParameter("LearnDelFAMCode", "105")) .Returns(new Mock <IErrorMessageParameter>().Object); // these two operations control the path var commonOps = new Mock <IProvideRuleCommonOperations>(MockBehavior.Strict); commonOps .Setup(x => x.HasQualifyingFunding( mockDelivery.Object, 10, // TypeOfFunding.CommunityLearning, 35, // TypeOfFunding.AdultSkills 36, // TypeOfFunding.ApprenticeshipsFrom1May2017, 70, // TypeOfFunding.EuropeanSocialFund, 81)) // TypeOfFunding.OtherAdult .Returns(true); commonOps .Setup(x => x.CheckDeliveryFAMs(mockDelivery.Object, It.IsAny <Func <ILearningDeliveryFAM, bool> >())) .Returns(true); var sut = new LearnDelFAMType_09Rule(handler.Object, commonOps.Object); // act sut.Validate(mockLearner.Object); // assert handler.VerifyAll(); }
public void InvalidItemRaisesValidationMessage(int candidate) { // 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("2"); var fams = Collection.Empty <ILearningDeliveryFAM>(); fams.Add(mockFAM.Object); var mockDelivery = new Mock <ILearningDelivery>(); mockDelivery .SetupGet(y => y.LearnAimRef) .Returns(learnAimRef); mockDelivery .SetupGet(y => y.FundModel) .Returns(candidate); mockDelivery .SetupGet(y => y.LearningDeliveryFAMs) .Returns(fams.AsSafeReadOnlyList()); 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); handler .Setup(x => x.Handle( Moq.It.Is <string>(y => y == LearnDelFAMType_09Rule.Name), Moq.It.Is <string>(y => y == LearnRefNumber), 0, Moq.It.IsAny <IEnumerable <IErrorMessageParameter> >())); handler .Setup(x => x.BuildErrorMessageParameter( Moq.It.Is <string>(y => y == LearnDelFAMType_09Rule.MessagePropertyName), Moq.It.IsAny <ILearningDelivery>())) .Returns(new Mock <IErrorMessageParameter>().Object); var sut = new LearnDelFAMType_09Rule(handler.Object); // act sut.Validate(mockLearner.Object); // assert handler.VerifyAll(); }