public void Validate_Rules_ErrorNoError()
        {
            // if
            var errorRule = new Mock <IValidationRule <TestValidatableEntity> >();

            errorRule.Setup(r => r.Execute(It.IsAny <TestValidatableEntity>(), It.IsAny <NonBlockingValidationContext>()))
            .Returns(new ValidationError(It.IsAny <string>(), field: It.IsAny <string>()));

            var noErrorRule = new Mock <IValidationRule <TestValidatableEntity> >();

            noErrorRule.Setup(r => r.Execute(It.IsAny <TestValidatableEntity>(), It.IsAny <NonBlockingValidationContext>()))
            .Returns <ValidationError>(null);


            var serviceProvider = new Mock <IServiceProvider>();

            serviceProvider.Setup(sp => sp.GetService(typeof(IEnumerable <IValidationRule <TestValidatableEntity> >)))
            .Returns(new List <IValidationRule <TestValidatableEntity> > {
                errorRule.Object, noErrorRule.Object
            });

            var validateable = new TestValidatableEntity();

            // when
            var validator = new NonBlockingValidator(serviceProvider.Object);

            validator.Validate(validateable);

            // then
            Assert.Single(validateable.ValidationErrors);
        }
        public void Validate_NoRules()
        {
            // if
            var serviceProvider = new Mock <IServiceProvider>();

            serviceProvider.Setup(sp => sp.GetService(typeof(IEnumerable <IValidationRule <TestValidatableEntity> >)))
            .Returns(new List <IValidationRule <TestValidatableEntity> >());

            var validateable = new TestValidatableEntity();

            // when
            var validator = new NonBlockingValidator(serviceProvider.Object);

            validator.Validate(validateable);

            // then
            Assert.Empty(validateable.ValidationErrors);
        }