public void Validate_Error()
        {
            var learningDelivery = new TestLearningDelivery()
            {
                LearningDeliveryFAMs = new TestLearningDeliveryFAM[] { },
            };

            var learner = new TestLearner()
            {
                LearningDeliveries = new TestLearningDelivery[]
                {
                    learningDelivery
                }
            };

            var famQueryService = new Mock <ILearningDeliveryFAMQueryService>();

            famQueryService.Setup(qs => qs.HasLearningDeliveryFAMCodeForType(learningDelivery.LearningDeliveryFAMs, It.IsAny <string>(), It.IsAny <string>())).Returns(true);

            var validationErrorHandlerMock = new Mock <IValidationErrorHandler>();
            Expression <Action <IValidationErrorHandler> > handle = veh => veh.Handle("PriorAttain_01", null, null, null);

            var rule = new PriorAttain_01Rule(validationErrorHandlerMock.Object, famQueryService.Object);

            rule.Validate(learner);

            validationErrorHandlerMock.Verify(handle, Times.Once);
        }
        public void ExcludeCondition_True(long?fundModel, string famType, string famCode)
        {
            var learningDelivery = new TestLearningDelivery()
            {
                LearningDeliveryFAMs = new TestLearningDeliveryFAM[] { },
                FundModelNullable    = fundModel
            };

            var famQueryService = new Mock <ILearningDeliveryFAMQueryService>();

            famQueryService.Setup(qs => qs.HasLearningDeliveryFAMCodeForType(learningDelivery.LearningDeliveryFAMs, famType, famCode)).Returns(famType == "SOF");

            var rule = new PriorAttain_01Rule(null, famQueryService.Object);

            rule.Exclude(learningDelivery).Should().BeTrue();
        }
        public void ConditionMet_False()
        {
            var rule = new PriorAttain_01Rule(null, null);

            rule.ConditionMet(1).Should().BeFalse();
        }