public void ValidItemDoesNotRaiseValidationMessage(string candidate, params string[] d22Dates) { const string LearnRefNumber = "123456789X"; var testDate = DateTime.Parse(candidate); var latestContractCandidates = new List <DateTime?>(); d22Dates.ForEach(x => latestContractCandidates.Add(GetNullableDate(x))); var expectedContractDate = latestContractCandidates.Max(); var deliveries = new List <ILearningDelivery>(); for (int i = 0; i < latestContractCandidates.Count; i++) { var mockDelivery = new Mock <ILearningDelivery>(); deliveries.Add(mockDelivery.Object); } var mockStatus = new Mock <ILearnerEmploymentStatus>(); mockStatus .SetupGet(y => y.DateEmpStatApp) .Returns(testDate); var statii = new List <ILearnerEmploymentStatus>(); statii.Add(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(statii); var handler = new Mock <IValidationErrorHandler>(MockBehavior.Strict); var mockDDRule22 = new Mock <IDerivedData_22Rule>(MockBehavior.Strict); mockDDRule22 .Setup(x => x.GetLatestLearningStartForESFContract(Moq.It.IsAny <ILearningDelivery>(), deliveries)) .ReturnsInOrder(latestContractCandidates); var sut = new EmpStat_10Rule(handler.Object, mockDDRule22.Object); sut.Validate(mockLearner.Object); handler.VerifyAll(); mockDDRule22.VerifyAll(); }
public void InvalidItemRaisesValidationMessage(string candidate, params string[] d22Dates) { // arrange const string LearnRefNumber = "123456789X"; var testDate = DateTime.Parse(candidate); var latestContractCandidates = Collection.Empty <DateTime?>(); d22Dates.ForEach(x => latestContractCandidates.Add(GetNullableDate(x))); var expectedContractDate = latestContractCandidates.Max(); var deliveries = Collection.Empty <ILearningDelivery>(); for (int i = 0; i < latestContractCandidates.Count; i++) { var mockDelivery = new Mock <ILearningDelivery>(); deliveries.Add(mockDelivery.Object); } var safeDeliveries = deliveries.AsSafeReadOnlyList(); var mockStatus = new Mock <ILearnerEmploymentStatus>(); mockStatus .SetupGet(y => y.DateEmpStatApp) .Returns(testDate); var statii = Collection.Empty <ILearnerEmploymentStatus>(); statii.Add(mockStatus.Object); var mockLearner = new Mock <ILearner>(); mockLearner .SetupGet(x => x.LearnRefNumber) .Returns(LearnRefNumber); mockLearner .SetupGet(x => x.LearningDeliveries) .Returns(safeDeliveries); mockLearner .SetupGet(x => x.LearnerEmploymentStatuses) .Returns(statii.AsSafeReadOnlyList()); var handler = new Mock <IValidationErrorHandler>(MockBehavior.Strict); handler .Setup(x => x.Handle( Moq.It.Is <string>(y => y == EmpStat_10Rule.Name), Moq.It.Is <string>(y => y == LearnRefNumber), null, Moq.It.IsAny <IEnumerable <IErrorMessageParameter> >())); handler .Setup(x => x.BuildErrorMessageParameter( Moq.It.Is <string>(y => y == EmpStat_10Rule.MessagePropertyName), expectedContractDate)) .Returns(new Mock <IErrorMessageParameter>().Object); handler .Setup(x => x.BuildErrorMessageParameter( Moq.It.Is <string>(y => y == PropertyNameConstants.LearnAimRef), TypeOfAim.References.ESFLearnerStartandAssessment)) .Returns(new Mock <IErrorMessageParameter>().Object); var mockDDRule22 = new Mock <IDerivedData_22Rule>(MockBehavior.Strict); mockDDRule22 .Setup(x => x.GetLatestLearningStartForESFContract(Moq.It.IsAny <ILearningDelivery>(), safeDeliveries)) .ReturnsInOrder(latestContractCandidates); var sut = new EmpStat_10Rule(handler.Object, mockDDRule22.Object); // act sut.Validate(mockLearner.Object); // assert handler.VerifyAll(); mockDDRule22.VerifyAll(); }