Example #1
0
 /// <summary>
 /// Initialises a new instance of <see cref="MessageEnrichingValidatorDecorator{TValidated}"/>.
 /// </summary>
 /// <param name="validator">A validator instance.</param>
 /// <param name="failureMessageEnricher">A service which adds failure messages to validation results.</param>
 /// <exception cref="System.ArgumentNullException">If any parameter is <see langword="null" />.</exception>
 public MessageEnrichingValidatorDecorator(IValidator <TValidated> validator, IAddsFailureMessagesToResult failureMessageEnricher)
 {
     this.validator = validator ?? throw new System.ArgumentNullException(nameof(validator));
     this.failureMessageEnricher = failureMessageEnricher ?? throw new System.ArgumentNullException(nameof(failureMessageEnricher));
 }
Example #2
0
 /// <summary>
 /// Initialises a new instance of <see cref="MessageSupportValidatorWrapper"/>.
 /// </summary>
 /// <param name="failureMessageEnricher">The failure message enriching service.</param>
 /// <exception cref="ArgumentNullException">If <paramref name="failureMessageEnricher"/> is <see langword="null" />.</exception>
 public MessageSupportValidatorWrapper(IAddsFailureMessagesToResult failureMessageEnricher)
 {
     this.failureMessageEnricher = failureMessageEnricher ?? throw new ArgumentNullException(nameof(failureMessageEnricher));
 }
Example #3
0
        public void ValidateAsyncShouldReturnTheWrappedValidatorResultIfOptionsDisableMessageGeneration([Frozen] IValidator <object> validator,
                                                                                                        [Frozen] IAddsFailureMessagesToResult failureMessageEnricher,
                                                                                                        MessageEnrichingValidatorDecorator <object> sut,
                                                                                                        [RuleResult] ValidationResult <object> originalResult,
                                                                                                        [RuleResult] ValidationResult <object> resultWithMessages,
                                                                                                        object validatedObject,
                                                                                                        ValidationOptions options)
        {
            options.EnableMessageGeneration = false;
            Mock.Get(validator).Setup(x => x.ValidateAsync(validatedObject, options, default)).Returns(Task.FromResult <IQueryableValidationResult <object> >(originalResult));

            Assert.That(async() => await sut.ValidateAsync(validatedObject, options), Is.SameAs(originalResult));
            Mock.Get(failureMessageEnricher).Verify(x => x.GetResultWithMessagesAsync <object>(It.IsAny <IQueryableValidationResult <object> >(), It.IsAny <CancellationToken>()), Times.Never);
        }
Example #4
0
 public void ValidateAsyncShouldReturnTheWrappedValidatorResultIfOptionsAreOmitted([Frozen] IValidator <object> validator,
                                                                                   [Frozen] IAddsFailureMessagesToResult failureMessageEnricher,
                                                                                   MessageEnrichingValidatorDecorator <object> sut,
                                                                                   [RuleResult] ValidationResult <object> originalResult,
                                                                                   [RuleResult] ValidationResult <object> resultWithMessages,
                                                                                   object validatedObject)
 {
     Mock.Get(validator).Setup(x => x.ValidateAsync(validatedObject, default, default)).Returns(Task.FromResult <IQueryableValidationResult <object> >(originalResult));
Example #5
0
        public void ValidateAsyncShouldUseTheWrappedValidatorThenReturnTheResultEnrichedWithMessagesIfOptionsEnableIt([Frozen] IValidator <object> validator,
                                                                                                                      [Frozen] IAddsFailureMessagesToResult failureMessageEnricher,
                                                                                                                      MessageEnrichingValidatorDecorator <object> sut,
                                                                                                                      [RuleResult] ValidationResult <object> originalResult,
                                                                                                                      [RuleResult] ValidationResult <object> resultWithMessages,
                                                                                                                      object validatedObject,
                                                                                                                      ValidationOptions options)
        {
            options.EnableMessageGeneration = true;
            Mock.Get(validator).Setup(x => x.ValidateAsync(validatedObject, options, default)).Returns(Task.FromResult <IQueryableValidationResult <object> >(originalResult));
            Mock.Get(failureMessageEnricher).Setup(x => x.GetResultWithMessagesAsync(originalResult, default)).Returns(Task.FromResult <IQueryableValidationResult <object> >(resultWithMessages));

            Assert.That(async() => await sut.ValidateAsync(validatedObject, options), Is.SameAs(resultWithMessages));
        }