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

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

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

            var famQueryService = new Mock <ILearningDeliveryFAMQueryService>();

            famQueryService.Setup(qs => qs.HasLearningDeliveryFAMCodeForType(
                                      It.IsAny <IEnumerable <ILearningDeliveryFAM> >(), "ACT", "1"))
            .Returns(true);

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

            rule.Validate(learner);
            validationErrorHandlerMock.Verify(handle, Times.Once);
        }
        public void ConditionMet_False_NonNullNiNumber()
        {
            var rule = new NINumber_02Rule(null, null);

            rule.ConditionMet("NINUMBER", true).Should().BeFalse();
        }
        public void ConditionMet_False_NotApplicableFAM()
        {
            var rule = new NINumber_02Rule(null, null);

            rule.ConditionMet(null, false).Should().BeFalse();
        }
        public void ConditionMet_True(string niNumber)
        {
            var rule = new NINumber_02Rule(null, null);

            rule.ConditionMet(niNumber, true).Should().BeTrue();
        }