public IActionResult Index(CalculateViewModel input, [FromServices] IValidationConfiguration validationConfiguration) // Action Injection { var validationErrors = new List <string>(); if (validationConfiguration.Calculate && _secondValidation.CalculateSecond == "true") { foreach (var rule in _numberRules) { if (!rule.Validate(input.Number)) { validationErrors.Add(rule.ErrorMessage); } } } if (!validationErrors.Any()) { validationErrors.Add("Value is valid."); } var returnToValidationErrors = string.Join("\n", validationErrors); ModelState.AddModelError("", returnToValidationErrors); return(View()); }
public void ShouldReturnBadRequestWhenUploadedFileExtensionIsWrong() { var formFileConfig = new Mock <IFormFile>(); var dataContextConfig = new Mock <DataContext>(); var mappingServiceProviderConfig = new Mock <IMappingServiceProvider>(); var validationConfigs = new IValidationConfiguration[] { new TransactionXmlValidationConfiguration(), new TransactionCsvValidationConfiguration() }; var validationService = new ValidationService(validationConfigs); var transactionManager = new TransactionManager(null, validationService, mappingServiceProviderConfig.Object); var buffer = Encoding.UTF8.GetBytes(wrongxml); var memoryStream = new MemoryStream(buffer); formFileConfig.SetupGet(mockSetup => mockSetup.Length).Returns(1024 * 1024); formFileConfig.SetupGet(mockSetup => mockSetup.ContentType).Returns("text/xml"); formFileConfig.SetupGet(mockSetup => mockSetup.FileName).Returns("file.with a wrong extension"); formFileConfig.Setup(mockSetup => mockSetup.OpenReadStream()).Returns(memoryStream); var controller = new TransactionController(transactionManager); var result = controller.Upload(formFileConfig.Object) as BadRequestObjectResult; var isExpected = result != null && ((List <string>)result.Value).Contains("Unknown format"); Assert.IsTrue(isExpected); }
public static void UseDataAnnotations(this IValidationConfiguration configuration) { configuration.Configure.Services.AddTransient <IValidator, DataAnnotationsValidator>(); configuration.Configure.Services.AddAll <IDataAnnotationsValidatorAdapter>(typeof(IDataAnnotationsValidatorAdapter).Assembly); configuration.Configure.Services.AddSingleton <IPropertyValidatorFactory, DefaultPropertyValidatorFactory>(); configuration.Configure.Services.AddSingleton <IValidatableObjectAdapter, DefaultValidatableObjectAdapter>(); }
public void ShouldReturnBadrequestWhenValidationErrorsOccur() { var formFileConfig = new Mock <IFormFile>(); var dataContextConfig = new Mock <DataContext>(); var mappingServiceProviderConfig = new Mock <IMappingServiceProvider>(); var validationConfigs = new IValidationConfiguration[] { new TransactionXmlValidationConfiguration(), new TransactionCsvValidationConfiguration() }; var validationService = new ValidationService(validationConfigs); var transactionManager = new TransactionManager(null, validationService, mappingServiceProviderConfig.Object); var buffer = Encoding.UTF8.GetBytes(wrongxml); var memoryStream = new MemoryStream(buffer); formFileConfig.SetupGet(mockSetup => mockSetup.Length).Returns(1024 * 1024); formFileConfig.SetupGet(mockSetup => mockSetup.ContentType).Returns("text/xml"); formFileConfig.SetupGet(mockSetup => mockSetup.FileName).Returns("file.xml"); formFileConfig.Setup(mockSetup => mockSetup.OpenReadStream()).Returns(memoryStream); var controller = new TransactionController(transactionManager); var result = controller.Upload(formFileConfig.Object); var isExpected = result.GetType() == typeof(BadRequestObjectResult); Assert.IsTrue(isExpected); }
public DefaultDocumentValidatorFactory( DocumentValidatorContextPool contextPool, IValidationConfiguration configuration) { _contextPool = contextPool; _configuration = configuration; }
/// <summary> /// Creates a new <see cref="MethodInvocationValidator"/> instance. /// 构造函数 /// </summary> public MethodInvocationValidator(IValidationConfiguration configuration, IIocResolver iocResolver) { _configuration = configuration; _iocResolver = iocResolver; ValidationErrors = new List <ValidationResult>(); ObjectsToBeNormalized = new List <IShouldNormalize>(); }
/// <summary> /// Creates a new <see cref="MethodInvocationValidator"/> instance. /// </summary> public MethodInvocationValidator(IValidationConfiguration configuration, IIocResolver iocResolver) { _configuration = configuration; _iocResolver = iocResolver; ValidationErrors = new List<ValidationResult>(); ObjectsToBeNormalized = new List<IShouldNormalize>(); }
private IValidationConfiguration EnsureConfiguration(IValidationConfiguration configuration, IValidationRequest request = null) { var returnValue = configuration != null ? configuration : new ValidationConfiguration(); if (request != null) { returnValue.Request = request; } return(returnValue); }
public void ShouldReturnOkResultWhenThereIsNoError() { var formFileConfig = new Mock <IFormFile>(); var dataContextConfig = new Mock <DataContext>(); var mappingConfigs = new IMappingConfiguration[] { new CsvToTransactionMappingConfiguration(), new XmlToTransactionMappingConfiguration() }; var mappingService = new MappingService(mappingConfigs); var validationConfigs = new IValidationConfiguration[] { new TransactionXmlValidationConfiguration(), new TransactionCsvValidationConfiguration() }; var validationService = new ValidationService(validationConfigs); var transactions = new List <Transaction>(); var transactionsQueryable = transactions.AsQueryable(); var transactionsDbSetMockConfig = new Mock <DbSet <Transaction> >(); transactionsDbSetMockConfig.As <IQueryable <Transaction> >().Setup(mockSetup => mockSetup.Provider).Returns(transactionsQueryable.Provider); transactionsDbSetMockConfig.As <IQueryable <Transaction> >().Setup(mockSetup => mockSetup.Expression).Returns(transactionsQueryable.Expression); transactionsDbSetMockConfig.As <IQueryable <Transaction> >().Setup(mockSetup => mockSetup.ElementType).Returns(transactionsQueryable.ElementType); transactionsDbSetMockConfig.As <IQueryable <Transaction> >().Setup(mockSetup => mockSetup.GetEnumerator()).Returns(() => transactionsQueryable.GetEnumerator()); transactionsDbSetMockConfig.Setup(mockSetup => mockSetup.Add(It.IsAny <Transaction>())).Callback <Transaction>(record => transactions.Add(record)); transactionsDbSetMockConfig.Setup(mockSetup => mockSetup.AddRange(It.IsAny <IEnumerable <Transaction> >())).Callback <IEnumerable <Transaction> >(record => transactions.AddRange(record)); var dbContextOptions = new DbContextOptionsBuilder <DataContext>() .UseInMemoryDatabase(databaseName: "Test") .Options; var dataContextMockConfig = new Mock <DataContext>(dbContextOptions); dataContextMockConfig.SetupGet(mockSetup => mockSetup.Transactions).Returns(() => transactionsDbSetMockConfig.Object); var transactionManager = new TransactionManager(dataContextMockConfig.Object, validationService, mappingService); var buffer = Encoding.UTF8.GetBytes(xml); var memoryStream = new MemoryStream(buffer); formFileConfig.SetupGet(mockSetup => mockSetup.Length).Returns(1024 * 1024); formFileConfig.SetupGet(mockSetup => mockSetup.ContentType).Returns("text/xml"); formFileConfig.SetupGet(mockSetup => mockSetup.FileName).Returns("file.xml"); formFileConfig.Setup(mockSetup => mockSetup.OpenReadStream()).Returns(memoryStream); var controller = new TransactionController(transactionManager); var result = controller.Upload(formFileConfig.Object); var isExpected = result.GetType() == typeof(OkResult); Assert.IsTrue(isExpected); }
public DiaryValidator(IValidationConfiguration validationConfiguration) : base(validationConfiguration) { Value(entry => entry.Id) .IsNotNullOrEmpty(); Value(entry => entry.Title) .Trim() .IsNotNullOrEmpty() .HasMaxLength(300); Value(entry => entry.Description) .Trim() .IsNotNullOrEmpty(); }
public void Validate(IValidationConfiguration validationConfiguration) { ValidationContext.SetConfiguration(validationConfiguration); ValidationState.RequestType = validationConfiguration.Request.RequestType; if (validationConfiguration.Request.IsFields) { ValidateFields(validationConfiguration); } ValidationContext.Reset(this); if (validationConfiguration.Request.IsRules) { ValidateRules(validationConfiguration); } }
/// <summary> Initialize static configuration instance </summary> public static void Initialize(Action <IValidationConfigurationExpression> configAction) { if (configAction == null) { throw new ArgumentNullException(nameof(configAction)); } if (Configuration != null) { throw new InvalidOperationException($"{nameof(LykkeValidation)} is already initialized"); } var builder = new ValidationConfigurationBuilder(); configAction.Invoke(builder); Configuration = builder.Build(); }
public void ShouldReturnValidationErrorsWhenUploadTransactionsWithInvalidData() { var formFileConfig = new Mock <IFormFile>(); var dataContextConfig = new Mock <DataContext>(); var mappingServiceProviderConfig = new Mock <IMappingServiceProvider>(); var validationConfigs = new IValidationConfiguration[] { new TransactionXmlValidationConfiguration(), new TransactionCsvValidationConfiguration() }; var validationService = new ValidationService(validationConfigs); var transactionManager = new TransactionManager(null, validationService, mappingServiceProviderConfig.Object); var buffer = Encoding.UTF8.GetBytes(wrongxml); var memoryStream = new MemoryStream(buffer); formFileConfig.SetupGet(mockSetup => mockSetup.Length).Returns(1024 * 1024); formFileConfig.SetupGet(mockSetup => mockSetup.ContentType).Returns("text/xml"); formFileConfig.SetupGet(mockSetup => mockSetup.FileName).Returns("file.xml"); formFileConfig.Setup(mockSetup => mockSetup.OpenReadStream()).Returns(memoryStream); var result = transactionManager.SaveTransactions(formFileConfig.Object); Assert.IsTrue(result.HasValiationErrors); }
public ValidationProfile(IValidationConfiguration config) : base(config) { Configure(); }
protected IValidationState Validate(IValidatableEntity validatableEntity, IValidationConfiguration validationConfiguration = null) { return(Validate(validatableEntity, false, EnsureConfiguration(validationConfiguration))); }
public WebApiActionInvocationValidator(IValidationConfiguration configuration) : base(configuration) { }
protected ActionInvocationValidatorBase(IValidationConfiguration configuration, IIocResolver iocResolver) : base(configuration, iocResolver) { }
protected IServiceResponse <TEntity, TContract> ResponseRuleValidation <TEntity, TContract>(TEntity entity, TContract contract, IValidationConfiguration validationConfiguration = null) where TEntity : class where TContract : class { return(ResponseValidation(entity, contract, EnsureConfiguration(validationConfiguration, ValidationRequest.RulesRecursive()))); }
/// <summary> /// Creates a new <see cref="MethodInvocationValidator"/> instance. /// </summary> public MethodInvocationValidator(IValidationConfiguration configuration) { _configuration = configuration; ValidationErrors = new List<ValidationResult>(); }
protected IValidationState Validate(IValidatableEntity validatableEntity, bool throwError, IValidationConfiguration validationConfiguration = null) { validatableEntity.Validate(EnsureConfiguration(validationConfiguration)); if (!validatableEntity.ValidationState.IsValid) { if (throwError) { ThrowValidationException(validatableEntity); } } return(validatableEntity.ValidationState); }
public ValidationService(IEnumerable <IValidator> validators, IValidationConfiguration validationConfiguration) { _validators = validators; _validationConfiguration = validationConfiguration; }
protected IServiceResponse <TEntity, TEntity> ResponseFieldValidation <TEntity>(TEntity entity, IValidationConfiguration validationConfiguration = null) where TEntity : class { return(ResponseValidation(entity, EnsureConfiguration(validationConfiguration, ValidationRequest.FieldsRecursive()))); }
public WebApiActionInvocationValidator(IValidationConfiguration configuration, IIocResolver iocResolver) : base(configuration, iocResolver) { }
/// <summary> /// Creates a new <see cref="MethodInvocationValidator"/> instance. /// </summary> public MethodInvocationValidator(IValidationConfiguration configuration) { _configuration = configuration; ValidationErrors = new List <ValidationResult>(); }
public MvcActionInvocationValidator(IValidationConfiguration configuration) : base(configuration) { }
protected IServiceResponse <TEntity, TContract> ResponseValidation <TEntity, TContract>(TEntity entity, TContract contract, IValidationConfiguration validationConfiguration = null) where TEntity : class where TContract : class { var validationState = Validate((IValidatableEntity)entity, EnsureConfiguration(validationConfiguration)); return(Response(entity, contract, validationState)); }
public MvcActionInvocationValidator(IValidationConfiguration configuration, IIocResolver iocResolver) : base(configuration, iocResolver) { }
protected Validator(IValidationConfiguration validationConfiguration) { _validationConfiguration = validationConfiguration; }
public void ValidateRules(IValidationConfiguration validationConfiguration) { ValidationContext.SetConfiguration(validationConfiguration); RuleValidationManager.CheckRules(); }
public void SetConfiguration(IValidationConfiguration validationConfiguration) { Configuration = validationConfiguration; }