示例#1
0
        IValidator <TValidated> GetValidatorPrivate <TValidated>(IBuildsValidator <TValidated> builder)
        {
            var validator         = BaseValidatorFactory.GetValidator(builder);
            var messaageValidator = MessageSupportWrapper.GetValidatorWithMessageSupport(validator);

            return(ExceptionBehaviourWrapper.WrapValidator(messaageValidator));
        }
        /// <summary>
        /// Gets a validation manifest from the validator-builder.
        /// </summary>
        /// <typeparam name="TValidated">The validated object type.</typeparam>
        /// <param name="builder">The validation builder instance.</param>
        /// <returns>A validation manifest, created using the validation-builder.</returns>
        /// <exception cref="System.ArgumentNullException">If <paramref name="builder"/> is <see langword="null"/>.</exception>
        public ValidationManifest GetManifest <TValidated>(IBuildsValidator <TValidated> builder)
        {
            if (builder is null)
            {
                throw new System.ArgumentNullException(nameof(builder));
            }

            var validatorBuilder = builderFactory.GetValidatorBuilder <TValidated>();

            builder.ConfigureValidator(validatorBuilder);
            return(validatorBuilder.GetManifest());
        }
        /// <inheritdoc/>
        public IValidator <TValidated> GetValidator <TValidated>(IBuildsValidator <TValidated> builder)
        {
            var manifest = manifestFromBuilderFactory.GetManifest <TValidated>(builder);

            return((IValidator <TValidated>)validatorFromManifestProvider.GetValidator(manifest));
        }
示例#4
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 void GetValidatorGenericShouldReturnGenericValidatorFromCreatedManifest([Frozen] IGetsManifestFromBuilder manifestFromBuilderProvider,
                                                                                       [Frozen] IGetsValidatorFromManifest validatorFromManifestFactory,
                                                                                       BaseValidatorFactory sut,
                                                                                       IBuildsValidator <object> builder,
                                                                                       [ManifestModel] ValidationManifest manifest)
        {
            Mock.Get(manifestFromBuilderProvider).Setup(x => x.GetManifest(builder)).Returns(manifest);
            var validator           = new Mock <IValidator <object> >();
            var nonGenericValidator = validator.As <IValidator>();

            Mock.Get(validatorFromManifestFactory).Setup(x => x.GetValidator(manifest)).Returns(nonGenericValidator.Object);

            Assert.That(() => sut.GetValidator(builder), Is.SameAs(nonGenericValidator.Object));
        }
示例#6
0
 /// <inheritdoc/>
 public IValidator <TValidated> GetValidator <TValidated>(IBuildsValidator <TValidated> builder)
 => GetValidatorPrivate(builder);