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());
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
 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>();
 }
Beispiel #4
0
        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);
        }
Beispiel #9
0
        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);
        }
Beispiel #10
0
        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();
        }
Beispiel #11
0
        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)
 {
 }
Beispiel #28
0
 protected Validator(IValidationConfiguration validationConfiguration)
 {
     _validationConfiguration = validationConfiguration;
 }
Beispiel #29
0
 public void ValidateRules(IValidationConfiguration validationConfiguration)
 {
     ValidationContext.SetConfiguration(validationConfiguration);
     RuleValidationManager.CheckRules();
 }
 public void SetConfiguration(IValidationConfiguration validationConfiguration)
 {
     Configuration = validationConfiguration;
 }