public async Task TestCommandNull() { var command = new CommandA(); var self = new CommandAndValidator(command, null); var result = await CommandValidationSteps.Validate(self); result.ShouldBe(command); }
public async Task TestCommandValid() { var command = new CommandA(); var self = new CommandAndValidator(command, _validValidator); var result = await CommandValidationSteps.Validate(self); await _validValidator.Received().ValidateAsync(command); result.ShouldBe(command); }
public void TestCommandInvalid() { var command = new CommandA(); var self = new CommandAndValidator(command, _invalidValidator); var result = Should.Throw<Qvc.Validation.ValidationException>(async () => await CommandValidationSteps.Validate(self)); _invalidValidator.Received().ValidateAsync(command); result.Violations.Single().FieldName.ShouldBe("fieldCamelCase"); result.Violations.Single().Message.ShouldBe("error"); }
public static async Task<ICommand> Validate(CommandAndValidator self) { if (self.Validator == null) { return self.Command; } var result = await self.Validator.ValidateAsync(self.Command); if (result.IsValid) { return self.Command; } var errors = result.Errors .Select(x => new Violation(x.PropertyName.ToCamelCase(), x.ErrorMessage)) .ToList(); throw new Qvc.Validation.ValidationException(errors); }