public void IsExcludedForInflexibleElementOfTrainingAim() { // arrange var mockItem = new Mock <ILearner>(); var handler = new Mock <IValidationErrorHandler>(MockBehavior.Strict); var service = new Mock <ILARSDataService>(MockBehavior.Strict); var mockDDRule07 = new Mock <IDerivedData_07Rule>(MockBehavior.Strict); var mockDDRule21 = new Mock <IDerivedData_21Rule>(MockBehavior.Strict); var mockDDRule28 = new Mock <IDerivedData_28Rule>(MockBehavior.Strict); var mockDDRule29 = new Mock <IDerivedData_29Rule>(MockBehavior.Strict); mockDDRule29 .Setup(x => x.IsInflexibleElementOfTrainingAim(mockItem.Object)) .Returns(true); var sut = new LearnDelFAMType_66Rule(handler.Object, service.Object, mockDDRule07.Object, mockDDRule21.Object, mockDDRule28.Object, mockDDRule29.Object); // act var result = sut.IsExcluded(mockItem.Object); // assert Assert.True(result); handler.VerifyAll(); service.VerifyAll(); mockDDRule07.VerifyAll(); mockDDRule21.VerifyAll(); mockDDRule28.VerifyAll(); mockDDRule29.VerifyAll(); }
public void IsApprenticeshipMeetsExpectation(bool expectation) { // arrange var mockItem = new Mock <ILearningDelivery>(); var handler = new Mock <IValidationErrorHandler>(MockBehavior.Strict); var service = new Mock <ILARSDataService>(MockBehavior.Strict); var mockDDRule07 = new Mock <IDerivedData_07Rule>(MockBehavior.Strict); var mockDDRule21 = new Mock <IDerivedData_21Rule>(MockBehavior.Strict); var mockDDRule28 = new Mock <IDerivedData_28Rule>(MockBehavior.Strict); var mockDDRule29 = new Mock <IDerivedData_29Rule>(MockBehavior.Strict); mockDDRule07 .Setup(x => x.IsApprenticeship(null)) .Returns(expectation); var sut = new LearnDelFAMType_66Rule(handler.Object, service.Object, mockDDRule07.Object, mockDDRule21.Object, mockDDRule28.Object, mockDDRule29.Object); // act var result = sut.IsApprenticeship(mockItem.Object); // assert Assert.Equal(expectation, result); handler.VerifyAll(); service.VerifyAll(); mockDDRule07.VerifyAll(); mockDDRule21.VerifyAll(); mockDDRule28.VerifyAll(); mockDDRule29.VerifyAll(); }
public void IsAdultFundedUnemployedWithBenefitsMeetsExpectation(bool expectation) { // arrange var delivery = new Mock <ILearningDelivery>(); var learner = new Mock <ILearner>(); var handler = new Mock <IValidationErrorHandler>(MockBehavior.Strict); var service = new Mock <ILARSDataService>(MockBehavior.Strict); var mockDDRule07 = new Mock <IDerivedData_07Rule>(MockBehavior.Strict); var mockDDRule21 = new Mock <IDerivedData_21Rule>(MockBehavior.Strict); var mockDDRule28 = new Mock <IDerivedData_28Rule>(MockBehavior.Strict); var mockDDRule29 = new Mock <IDerivedData_29Rule>(MockBehavior.Strict); mockDDRule28 .Setup(x => x.IsAdultFundedUnemployedWithBenefits(delivery.Object, learner.Object)) .Returns(expectation); var sut = new LearnDelFAMType_66Rule(handler.Object, service.Object, mockDDRule07.Object, mockDDRule21.Object, mockDDRule28.Object, mockDDRule29.Object); // act var result = sut.IsAdultFundedUnemployedWithBenefits(delivery.Object, learner.Object); // assert Assert.Equal(expectation, result); handler.VerifyAll(); service.VerifyAll(); mockDDRule07.VerifyAll(); mockDDRule21.VerifyAll(); mockDDRule28.VerifyAll(); mockDDRule29.VerifyAll(); }
public void IsExcludedForAdultFundedUnemployedWithBenefits() { // arrange var mockItem = new Mock <ILearner>(); var handler = new Mock <IValidationErrorHandler>(MockBehavior.Strict); var service = new Mock <ILARSDataService>(MockBehavior.Strict); var mockDDRule07 = new Mock <IDD07>(MockBehavior.Strict); var mockDDRule21 = new Mock <IDerivedData_21Rule>(MockBehavior.Strict); var mockDDRule28 = new Mock <IDerivedData_28Rule>(MockBehavior.Strict); var mockDDRule29 = new Mock <IDerivedData_29Rule>(MockBehavior.Strict); mockDDRule21 .Setup(x => x.IsAdultFundedUnemployedWithOtherStateBenefits(mockItem.Object)) .Returns(false); mockDDRule28 .Setup(x => x.IsAdultFundedUnemployedWithBenefits(mockItem.Object)) .Returns(true); var sut = new LearnDelFAMType_66Rule(handler.Object, service.Object, mockDDRule07.Object, mockDDRule21.Object, mockDDRule28.Object, mockDDRule29.Object); // act var result = sut.IsExcluded(mockItem.Object); // assert Assert.True(result); handler.VerifyAll(); service.VerifyAll(); mockDDRule07.VerifyAll(); mockDDRule21.VerifyAll(); mockDDRule28.VerifyAll(); mockDDRule29.VerifyAll(); }
public void IsExcludedForInflexibleElementOfTrainingAim() { var learnAimRef = "LearnAimRef"; var mockItem = new Mock <ILearningDelivery>(); mockItem .SetupGet(x => x.LearnAimRef) .Returns(learnAimRef); var mockLARSDel = new Mock <ILARSLearningDelivery>(); mockLARSDel .SetupGet(x => x.LearnAimRef) .Returns(learnAimRef); mockLARSDel .SetupGet(x => x.NotionalNVQLevelv2) .Returns(LARSConstants.NotionalNVQLevelV2Strings.Level3); mockLARSDel .SetupGet(x => x.EffectiveFrom) .Returns(new DateTime(2018, 08, 01)); mockLARSDel .SetupGet(x => x.EffectiveTo) .Returns(new DateTime(2022, 08, 01)); var handler = new Mock <IValidationErrorHandler>(MockBehavior.Strict); var service = new Mock <ILARSDataService>(MockBehavior.Strict); var mockDDRule07 = new Mock <IDerivedData_07Rule>(MockBehavior.Strict); var mockDDRule21 = new Mock <IDerivedData_21Rule>(MockBehavior.Strict); var mockDDRule28 = new Mock <IDerivedData_28Rule>(MockBehavior.Strict); var mockDDRule29 = new Mock <IDerivedData_29Rule>(MockBehavior.Strict); var mockDateTimeQueryService = new Mock <IDateTimeQueryService>(MockBehavior.Strict); mockDDRule29 .Setup(x => x.IsInflexibleElementOfTrainingAimLearningDelivery(mockItem.Object)) .Returns(true); var sut = new LearnDelFAMType_66Rule( handler.Object, service.Object, mockDDRule07.Object, mockDDRule21.Object, mockDDRule28.Object, mockDDRule29.Object, mockDateTimeQueryService.Object); var result = sut.IsExcluded(mockItem.Object, mockLARSDel.Object); Assert.True(result); handler.VerifyAll(); service.VerifyAll(); mockDDRule07.VerifyAll(); mockDDRule21.VerifyAll(); mockDDRule28.VerifyAll(); mockDDRule29.VerifyAll(); mockDateTimeQueryService.VerifyAll(); }
public void IsExcludedForApprenticeship() { // arrange const int progType = 23; var mockDel = new Mock <ILearningDelivery>(); mockDel .SetupGet(x => x.ProgTypeNullable) .Returns(progType); var deliveries = Collection.Empty <ILearningDelivery>(); deliveries.Add(mockDel.Object); var mockItem = new Mock <ILearner>(); mockItem .SetupGet(x => x.LearningDeliveries) .Returns(deliveries.AsSafeReadOnlyList()); var handler = new Mock <IValidationErrorHandler>(MockBehavior.Strict); var service = new Mock <ILARSDataService>(MockBehavior.Strict); var mockDDRule07 = new Mock <IDD07>(MockBehavior.Strict); var mockDDRule21 = new Mock <IDerivedData_21Rule>(MockBehavior.Strict); var mockDDRule28 = new Mock <IDerivedData_28Rule>(MockBehavior.Strict); var mockDDRule29 = new Mock <IDerivedData_29Rule>(MockBehavior.Strict); mockDDRule21 .Setup(x => x.IsAdultFundedUnemployedWithOtherStateBenefits(mockItem.Object)) .Returns(false); mockDDRule28 .Setup(x => x.IsAdultFundedUnemployedWithBenefits(mockItem.Object)) .Returns(false); mockDDRule29 .Setup(x => x.IsInflexibleElementOfTrainingAim(mockItem.Object)) .Returns(false); mockDDRule07 .Setup(x => x.IsApprenticeship(progType)) .Returns(true); var sut = new LearnDelFAMType_66Rule(handler.Object, service.Object, mockDDRule07.Object, mockDDRule21.Object, mockDDRule28.Object, mockDDRule29.Object); // act var result = sut.IsExcluded(mockItem.Object); // assert Assert.True(result); handler.VerifyAll(); service.VerifyAll(); mockDDRule07.VerifyAll(); mockDDRule21.VerifyAll(); mockDDRule28.VerifyAll(); mockDDRule29.VerifyAll(); }
public void ValidItemDoesNotRaiseValidationMessage_NullLarsLearningDelivery() { // arrange 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); var service = new Mock <ILARSDataService>(MockBehavior.Strict); service .Setup(x => x.GetDeliveryFor(learnAimRef)) .Returns((ILARSLearningDelivery)null); var mockDDRule07 = new Mock <IDerivedData_07Rule>(MockBehavior.Strict); var mockDDRule21 = new Mock <IDerivedData_21Rule>(MockBehavior.Strict); var mockDDRule28 = new Mock <IDerivedData_28Rule>(MockBehavior.Strict); var mockDDRule29 = new Mock <IDerivedData_29Rule>(MockBehavior.Strict); var mockDateTimeQueryService = new Mock <IDateTimeQueryService>(MockBehavior.Strict); var sut = new LearnDelFAMType_66Rule( handler.Object, service.Object, mockDDRule07.Object, mockDDRule21.Object, mockDDRule28.Object, mockDDRule29.Object, mockDateTimeQueryService.Object); // act sut.ValidateDeliveries(mockLearner.Object); // assert handler.VerifyAll(); service.VerifyAll(); mockDDRule07.VerifyAll(); mockDDRule21.VerifyAll(); mockDDRule28.VerifyAll(); mockDDRule29.VerifyAll(); mockDateTimeQueryService.VerifyAll(); }
public void ValidItemDoesNotRaiseValidationMessage() { const string LearnRefNumber = "123456789X"; const string learnAimRef = "salddfkjeifdnase"; const int progType = 23; DateTime dateOfBirth = new DateTime(1993, 07, 01); DateTime learnStartDate = new DateTime(2017, 08, 01); 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 mockDelivery = new Mock <ILearningDelivery>(); mockDelivery .SetupGet(y => y.LearnAimRef) .Returns(learnAimRef); mockDelivery .SetupGet(y => y.LearnStartDate) .Returns(learnStartDate); 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 mockLearner = new Mock <ILearner>(); 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); 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.Level3); mockLARSDel .SetupGet(x => x.EffectiveFrom) .Returns(new DateTime(2018, 08, 01)); mockLARSDel .SetupGet(x => x.EffectiveTo) .Returns(new DateTime(2022, 08, 01)); mockLARSDel .SetupGet(x => x.Categories) .Returns(larsCats); 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(dateOfBirth, learnStartDate)).Returns(24); mockDateTimeQueryService.Setup(x => x.IsDateBetween(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 ValidItemDoesNotRaiseValidationMessage() { // 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 mockDelivery = new Mock <ILearningDelivery>(); mockDelivery .SetupGet(y => y.LearnAimRef) .Returns(learnAimRef); mockDelivery .SetupGet(y => y.LearnStartDate) .Returns(DateTime.Parse("2017-08-01")); 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 mockLearner = new Mock <ILearner>(); mockLearner .SetupGet(x => x.LearnRefNumber) .Returns(LearnRefNumber); mockLearner .SetupGet(x => x.DateOfBirthNullable) .Returns(DateTime.Parse("1993-07-01")); mockLearner .SetupGet(x => x.LearningDeliveries) .Returns(deliveries.AsSafeReadOnlyList()); var handler = new Mock <IValidationErrorHandler>(MockBehavior.Strict); var service = new Mock <ILARSDataService>(MockBehavior.Strict); service .Setup(x => x.GetDeliveryFor(learnAimRef)) .Returns((ILARSLearningDelivery)null); 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"; 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"; const string learnAimRef = "salddfkjeifdnase"; var mockFAM = new Mock <ILearningDeliveryFAM>(); mockFAM .SetupGet(x => x.LearnDelFAMType) .Returns(DeliveryMonitoring.Types.FullOrCoFundingIndicator); mockFAM .SetupGet(x => x.LearnDelFAMCode) .Returns("1"); 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.LearnStartDate) .Returns(DateTime.Parse("2017-08-01")); 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 mockLearner = new Mock <ILearner>(); mockLearner .SetupGet(x => x.LearnRefNumber) .Returns(LearnRefNumber); mockLearner .SetupGet(x => x.DateOfBirthNullable) .Returns(DateTime.Parse("1993-07-01")); 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_66Rule.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_66Rule.MessagePropertyName), Moq.It.IsAny <ILearningDelivery>())) .Returns(new Mock <IErrorMessageParameter>().Object); var mock = new Mock <ILARSLearningDelivery>(); mock .SetupGet(x => x.NotionalNVQLevelv2) .Returns(LARSNotionalNVQLevelV2.EntryLevel); var larsDeliveries = Collection.Empty <ILARSLearningDelivery>(); larsDeliveries.Add(mock.Object); var service = new Mock <ILARSDataService>(MockBehavior.Strict); service .Setup(x => x.GetDeliveriesFor(learnAimRef)) .Returns(larsDeliveries.AsSafeReadOnlyList()); var mockDDRule07 = new Mock <IDD07>(MockBehavior.Strict); var mockDDRule21 = new Mock <IDerivedData_21Rule>(MockBehavior.Strict); var mockDDRule28 = new Mock <IDerivedData_28Rule>(MockBehavior.Strict); 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(); }