コード例 #1
0
 public static IValidatorBuilder <TestEntity> TestEntityRuleTemplate(this IValidatorBuilder <TestEntity> validatorBuilder)
 {
     return(validatorBuilder
            .RuleOn(t => t.StringProperty).Expression(s => !string.IsNullOrEmpty(s)).Named("Required").Message("StringProperty cannot be empty")
            .RuleOn(t => t.IntProperty).Expression(i => i > 0).Message("IntProperty have to be greater than zero")
            .RuleOn(t => t.IntProperty).Expression(i => i < 10).Message("IntProperty have to be less than ten"));
 }
        public ValidationClientTransactionExtension(string key, IValidatorBuilder validatorBuilder)
            : base(key)
        {
            ArgumentUtility.CheckNotNull("validatorBuilder", validatorBuilder);

            _validatorBuilder = validatorBuilder;
        }
コード例 #3
0
        /// <summary>
        /// Builds an instance of the <see cref="IValidator{T}"/> interface.
        /// </summary>
        /// <typeparam name="TValidatedType">The <see cref="Type"/> that is validated by the returned <see cref="IValidator{T}"/></typeparam>.
        public static IValidator <TValidatedType> BuildValidator <TValidatedType> (this IValidatorBuilder builder)
        {
            ArgumentUtility.CheckNotNull("builder", builder);

            var validator = builder.BuildValidator(typeof(TValidatedType));

            return(new TypedValidatorDecorator <TValidatedType> (validator));
        }
        public void SetUp()
        {
            _validatorBuilderMock = MockRepository.GenerateStrictMock <IValidatorBuilder>();
            _validatorMock1       = MockRepository.GenerateStrictMock <IValidator> ();
            _validatorMock2       = MockRepository.GenerateStrictMock <IValidator> ();

            _extension = new ValidationClientTransactionExtension(_validatorBuilderMock);
        }
コード例 #5
0
        /// <summary>
        /// Registers properties that will be validated. If a property is not registered, it can't be later validated with <see cref="IValidator.Validate"/>
        /// and will not be validated by <see cref="IValidator.ValidateAll"/>.
        /// </summary>
        /// <param name="validatorBuilder">The <see cref="IValidatorBuilder"/> to add to.</param>
        /// <param name="properties">Name of a C# property with public getters, belonging to the specified view-model.</param>
        /// <returns>The original builder object</returns>
        /// <remarks>This method changes and returns the original builder object</remarks>
        public static IValidatorBuilder AddProperties(this IValidatorBuilder validatorBuilder, params string[] properties)
        {
            foreach (var property in properties)
            {
                validatorBuilder.AddProperty(property);
            }

            return(validatorBuilder);
        }
コード例 #6
0
 private IValidatorBuilder SetupValidatorBuilder(IValidatorBuilder builder)
 {
     return(builder
            .WithViewModel(_viewModel)
            .WithResultsPresenter((name, errors) => _presentedErrors.Add(name, errors.ToList()))
            .AddProperty(nameof(TestViewModel.FirstName))
            .AddProperty(nameof(TestViewModel.Password))
            .AddProperty(nameof(TestViewModel.RepeatPassword))
            .AddProperty(nameof(TestViewModel.Email)));
 }
コード例 #7
0
        public virtual void SetUp()
        {
            var serviceLocator = DefaultServiceLocator.Create();

            serviceLocator.RegisterSingle <IErrorMessageGlobalizationService> (GetValidatorGlobalizationService);
            _serviceLocatorScope = new ServiceLocatorScope(serviceLocator);

            MemoryAppender = new MemoryAppender();
            BasicConfigurator.Configure(MemoryAppender);

            ValidationBuilder = serviceLocator.GetInstance <IValidatorBuilder>();
        }
コード例 #8
0
        public void SetUp()
        {
            _validatorStub1 = MockRepository.GenerateStub <IValidator <Customer> >();
            _validatorStub2 = MockRepository.GenerateStub <IValidator <Customer> >();

            _validatorBuilderStub1 = MockRepository.GenerateStub <IValidatorBuilder>();
            _validatorBuilderStub2 = MockRepository.GenerateStub <IValidatorBuilder>();

            _validatorBuilderStub1.Stub(stub => stub.BuildValidator(typeof(Customer))).Return(_validatorStub1);
            _validatorBuilderStub2.Stub(stub => stub.BuildValidator(typeof(Customer))).Return(_validatorStub2);

            _compoundValidatorBuilder = new CompoundValidatorBuilder(new[] { _validatorBuilderStub1, _validatorBuilderStub2 });
        }
        public static IValidator BuildWithFormItemMetadata(this IValidatorBuilder validatorBuilder,
                                                           out FormItemMetadata formItemMetadata)
        {
            formItemMetadata = new FormItemMessagesBuilder()
                               .ForProperties(validatorBuilder.Properties)
                               .Build();
            // the reason this variable exists is that out vars can't be used inside a lambda
            var formItemMetadataLocal = formItemMetadata;

            validatorBuilder.WithResultsPresenter((name, errors) =>
                                                  formItemMetadataLocal.SetMessage(name, string.Join(", ", errors), MessageType.Invalid));

            return(validatorBuilder.Build());
        }
コード例 #10
0
        /// <summary>
        /// Sets the view-model and registers all its public properties that have at least one <see cref="ValidationAttribute"/> applied.
        /// </summary>
        /// <param name="validatorBuilder">The <see cref="IValidatorBuilder"/> to add to.</param>
        /// <param name="viewModel">The view-model, which type will be selected</param>
        /// <returns>The original builder object</returns>
        /// <remarks>This method changes and returns the original builder object</remarks>
        public static IValidatorBuilder WithViewModelAndAllProperties(this IValidatorBuilder validatorBuilder, object viewModel)
        {
            validatorBuilder.WithViewModel(viewModel);
            foreach (var property in viewModel.GetType()
                     .GetProperties()
                     .Where(property => property
                            .GetCustomAttributes <ValidationAttribute>()
                            .Any()))
            {
                validatorBuilder.AddProperty(property.Name);
            }

            return(validatorBuilder);
        }
コード例 #11
0
        public void AddBuilder(MethodInfo method, int parameterPosition, IValidatorBuilder builder, ParameterInfoMeta parameterMeta)
        {
            ParameterValidatorInvocation validatorInvocation = FindParameter(method, parameterPosition);

            if (validatorInvocation == null)
            {
                validatorInvocation = new ParameterValidatorInvocation(method, parameterPosition, parameterMeta);
                validatorInvocation.Builders.Add(builder);

                methodParameters.Add(validatorInvocation);
                Methods.Add(method);
            }
            else
            {
                validatorInvocation.Builders.Add(builder);
            }
        }
 public ValidationClientTransactionExtension(IValidatorBuilder validatorBuilder)
     : this(DefaultKey, validatorBuilder)
 {
 }
コード例 #13
0
        public void GetManifestShouldReturnManifestCreatedFromBuilderAndBuilderCustomisation([Frozen] IGetsValidatorBuilder builderFactory,
                                                                                             ManifestFromBuilderProvider sut,
                                                                                             IBuildsValidator <string> builder,
                                                                                             IValidatorBuilder <string> validatorBuilder,
                                                                                             [ManifestModel] ValidationManifest manifest)
        {
            Mock.Get(builderFactory)
            .Setup(x => x.GetValidatorBuilder <string>(It.IsAny <ValidatorBuilderContext>()))
            .Returns(validatorBuilder);
            Mock.Get(validatorBuilder)
            .Setup(x => x.GetManifest())
            .Returns(manifest);

            var result = sut.GetManifest(builder);

            Assert.That(result, Is.SameAs(manifest));
            Mock.Get(builder).Verify(x => x.ConfigureValidator(validatorBuilder), Times.Once);
        }
        public ValidationClientTransactionExtensionFactory(IValidatorBuilder validatorBuilder)
        {
            ArgumentUtility.CheckNotNull("validatorBuilder", validatorBuilder);

            _validationBuilder = validatorBuilder;
        }
コード例 #15
0
		public void AddBuilder(MethodInfo method, int parameterPosition, IValidatorBuilder builder, ParameterInfoMeta parameterMeta)
		{
			ParameterValidatorInvocation validatorInvocation = FindParameter(method, parameterPosition);

			if (validatorInvocation == null)
			{
				validatorInvocation = new ParameterValidatorInvocation(method, parameterPosition, parameterMeta);
				validatorInvocation.Builders.Add(builder);

				methodParameters.Add(validatorInvocation);
				Methods.Add(method);
			}
			else
			{
				validatorInvocation.Builders.Add(builder);
			}
		}