public void Validate_Error()
        {
            var learner = new TestLearner()
            {
                ULNNullable        = 9999999999,
                LearningDeliveries = new TestLearningDelivery[]
                {
                    new TestLearningDelivery()
                    {
                        LearningDeliveryFAMs = new TestLearningDeliveryFAM[] { }
                    }
                }
            };

            var fileDataServiceMock                 = new Mock <IFileDataService>();
            var validationDataServiceMock           = new Mock <IValidationDataService>();
            var validationErrorHandlerMock          = new Mock <IValidationErrorHandler>();
            var learningDeliveryFAMQueryServiceMock = new Mock <ILearningDeliveryFAMQueryService>();

            fileDataServiceMock.SetupGet(fds => fds.FilePreparationDate).Returns(new DateTime(2017, 1, 1));
            validationDataServiceMock.SetupGet(vds => vds.AcademicYearJanuaryFirst).Returns(new DateTime(2017, 1, 1));
            learningDeliveryFAMQueryServiceMock.Setup(qs => qs.HasLearningDeliveryFAMCodeForType(It.IsAny <IEnumerable <ILearningDeliveryFAM> >(), "LDM", "034")).Returns(true);

            Expression <Action <IValidationErrorHandler> > handle = veh => veh.Handle("ULN_09", null, null, null);

            validationErrorHandlerMock.Setup(handle);

            var rule = new ULN_09Rule(fileDataServiceMock.Object, validationDataServiceMock.Object, learningDeliveryFAMQueryServiceMock.Object, validationErrorHandlerMock.Object);

            rule.Validate(learner);

            validationErrorHandlerMock.Verify(handle, Times.Once);
        }
        public void Validate_NoErrors()
        {
            var learner = new TestLearner()
            {
                ULNNullable        = 1,
                LearningDeliveries = new TestLearningDelivery[] { }
            };

            var fileDataServiceMock                 = new Mock <IFileDataService>();
            var validationDataServiceMock           = new Mock <IValidationDataService>();
            var learningDeliveryFAMQueryServiceMock = new Mock <ILearningDeliveryFAMQueryService>();

            fileDataServiceMock.SetupGet(fds => fds.FilePreparationDate).Returns(new DateTime(2017, 1, 1));
            validationDataServiceMock.SetupGet(vds => vds.AcademicYearJanuaryFirst).Returns(new DateTime(2017, 1, 1));
            learningDeliveryFAMQueryServiceMock.Setup(qs => qs.HasLearningDeliveryFAMCodeForType(It.IsAny <IEnumerable <ILearningDeliveryFAM> >(), "LDM", "034")).Returns(false);

            var rule = new ULN_09Rule(fileDataServiceMock.Object, validationDataServiceMock.Object, learningDeliveryFAMQueryServiceMock.Object, null);

            rule.Validate(learner);
        }