[InlineData("UNEMPLOYED")] // TypeOfLARSValidity.Unemployed public void InvalidItemRaisesValidationMessage(string category) { // arrange const string learnRefNumber = "123456789X"; const string learnAimRef = "salddfkjeifdnase"; var mockDelivery = new Mock <ILearningDelivery>(); mockDelivery .SetupGet(y => y.LearnAimRef) .Returns(learnAimRef); 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("LearnAimRefRuleBaseTestRule", learnRefNumber, 0, Moq.It.IsAny <IEnumerable <IErrorMessageParameter> >())); handler .Setup(x => x.BuildErrorMessageParameter("LearnAimRef", learnAimRef)) .Returns(new Mock <IErrorMessageParameter>().Object); handler .Setup(x => x.BuildErrorMessageParameter("Expected Category", category)) .Returns(new Mock <IErrorMessageParameter>().Object); var mockResult = new Mock <IBranchResult>(); mockResult .SetupGet(x => x.OutOfScope) .Returns(false); mockResult .SetupGet(x => x.Category) .Returns(category); var provider = new Mock <IProvideLearnAimRefRuleActions>(MockBehavior.Strict); provider .Setup(x => x.GetBranchingResultFor(mockDelivery.Object, mockLearner.Object)) .Returns(mockResult.Object); var service = new Mock <ILARSDataService>(MockBehavior.Strict); var sut = new LearnAimRefRuleBaseTestRule(handler.Object, provider.Object, service.Object); // act sut.Validate(mockLearner.Object); // assert handler.VerifyAll(); provider.VerifyAll(); service.VerifyAll(); }
[InlineData("UNEMPLOYED")] // TypeOfLARSValidity.Unemployed public void ValidItemDoesNotRaiseValidationMessage(string category) { // arrange const string learnRefNumber = "123456789X"; const string learnAimRef = "salddfkjeifdnase"; var mockDelivery = new Mock <ILearningDelivery>(); mockDelivery .SetupGet(y => y.LearnAimRef) .Returns(learnAimRef); 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); var mockResult = new Mock <IBranchResult>(); mockResult .SetupGet(x => x.OutOfScope) .Returns(false); mockResult .SetupGet(x => x.Category) .Returns(category); var provider = new Mock <IProvideLearnAimRefRuleActions>(MockBehavior.Strict); provider .Setup(x => x.GetBranchingResultFor(mockDelivery.Object, mockLearner.Object)) .Returns(mockResult.Object); var service = new Mock <ILARSDataService>(MockBehavior.Strict); var sut = new LearnAimRefRuleBaseTestRule(handler.Object, provider.Object, service.Object); // we have to ensure the secondary conditions check generate a 'pass' value sut.SetPassValue(true); // act sut.Validate(mockLearner.Object); // assert handler.VerifyAll(); provider.VerifyAll(); service.VerifyAll(); }