public void Validate_NoErrors_FundModel()
        {
            var learner = new ILR.Tests.Model.TestLearner()
            {
                ULNNullable        = 9999999999,
                LearningDeliveries = new ILR.Tests.Model.TestLearningDelivery[]
                {
                    new ILR.Tests.Model.TestLearningDelivery()
                    {
                        FundModelNullable        = 100,
                        LearnStartDateNullable   = new DateTime(2018, 1, 2),
                        LearnPlanEndDateNullable = new DateTime(2017, 1, 7),
                        LearnActEndDateNullable  = new DateTime(2018, 1, 7),
                    }
                }
            };

            var fileDataMock       = new Mock <IFileDataService>();
            var validationDataMock = new Mock <IValidationDataService>();
            var learningDeliveryFAMQueryServiceMock = new Mock <ILearningDeliveryFAMQueryService>();

            fileDataMock.SetupGet(fd => fd.FilePreparationDate).Returns(new DateTime(2018, 1, 1));
            validationDataMock.SetupGet(vd => vd.AcademicYearJanuaryFirst).Returns(new DateTime(2018, 1, 1));
            learningDeliveryFAMQueryServiceMock.Setup(qs => qs.HasLearningDeliveryFAMCodeForType(It.IsAny <IEnumerable <ILearningDeliveryFAM> >(), "LDM", "034")).Returns(false);
            learningDeliveryFAMQueryServiceMock.Setup(qs => qs.HasLearningDeliveryFAMCodeForType(It.IsAny <IEnumerable <ILearningDeliveryFAM> >(), "ACT", "1")).Returns(false);

            var rule = new ULN_06Rule(fileDataMock.Object, validationDataMock.Object, learningDeliveryFAMQueryServiceMock.Object, null);

            rule.Validate(learner);
        }
예제 #2
0
        public void Validate_Error()
        {
            var learner = new ILR.Tests.Model.TestLearner()
            {
                ULN = 9999999999,
                LearningDeliveries = new TestLearningDelivery[]
                {
                    new TestLearningDelivery()
                    {
                        FundModel = 25,
                    },
                    new TestLearningDelivery()
                    {
                        FundModel = 36,
                    }
                }
            };

            var fileDataServiceMock = new Mock <IFileDataService>();

            fileDataServiceMock.Setup(fd => fd.FilePreparationDate()).Returns(new DateTime(1970, 1, 1));

            var academicYearDataServiceMock = new Mock <IAcademicYearDataService>();

            academicYearDataServiceMock.Setup(ds => ds.JanuaryFirst()).Returns(new DateTime(2018, 1, 1));

            var learnerQueryServiceMock = new Mock <ILearnerQueryService>();

            learnerQueryServiceMock.Setup(qs => qs.HasLearningDeliveryFAMCodeForType(learner, "ACT", "1")).Returns(false);

            using (var validationErrorHandlerMock = BuildValidationErrorHandlerMockForError())
            {
                NewRule(fileDataServiceMock.Object, academicYearDataServiceMock.Object, learnerQueryServiceMock.Object, validationErrorHandlerMock.Object).Validate(learner);
            }
        }
        public void Validate_Errors()
        {
            var learner = new ILR.Tests.Model.TestLearner()
            {
                ULNNullable        = 9999999999,
                LearningDeliveries = new ILR.Tests.Model.TestLearningDelivery[]
                {
                    new ILR.Tests.Model.TestLearningDelivery()
                    {
                        FundModelNullable        = 25,
                        LearnStartDateNullable   = new DateTime(2018, 1, 2),
                        LearnPlanEndDateNullable = new DateTime(2017, 1, 7),
                        LearnActEndDateNullable  = new DateTime(2018, 1, 7),
                    }
                }
            };

            var fileDataMock                        = new Mock <IFileDataService>();
            var validationDataMock                  = new Mock <IValidationDataService>();
            var validationErrorHandlerMock          = new Mock <IValidationErrorHandler>();
            var learningDeliveryFAMQueryServiceMock = new Mock <ILearningDeliveryFAMQueryService>();

            fileDataMock.SetupGet(fd => fd.FilePreparationDate).Returns(new DateTime(2018, 1, 1));
            validationDataMock.SetupGet(vd => vd.AcademicYearJanuaryFirst).Returns(new DateTime(2018, 1, 1));
            learningDeliveryFAMQueryServiceMock.Setup(qs => qs.HasLearningDeliveryFAMCodeForType(It.IsAny <IEnumerable <ILearningDeliveryFAM> >(), "LDM", "034")).Returns(false);
            learningDeliveryFAMQueryServiceMock.Setup(qs => qs.HasLearningDeliveryFAMCodeForType(It.IsAny <IEnumerable <ILearningDeliveryFAM> >(), "ACT", "1")).Returns(false);
            learningDeliveryFAMQueryServiceMock.Setup(qs => qs.HasLearningDeliveryFAMCodeForType(It.IsAny <IEnumerable <ILearningDeliveryFAM> >(), "ADL", "1")).Returns(true);

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

            validationErrorHandlerMock.Setup(handle);

            var rule = NewRule(fileDataMock.Object, validationDataMock.Object, learningDeliveryFAMQueryServiceMock.Object, validationErrorHandlerMock.Object);

            rule.Validate(learner);

            validationErrorHandlerMock.Verify(handle, Times.Exactly(1));
        }