예제 #1
0
        public void GetCustomValidationsForQuestion_should_return_validations_for_config()
        {
            var config = new Mock <IOptions <List <CustomValidationConfiguration> > >();

            config.Setup(c => c.Value).Returns(new List <CustomValidationConfiguration>
            {
                new CustomValidationConfiguration
                {
                    PageId       = "P1",
                    QuestionId   = "Q1",
                    Name         = "FileSizeMaxMb",
                    ErrorMessage = "File is too big",
                    Value        = "10"
                },
            });

            var factory = new CustomValidatorFactory(config.Object);

            var result1 = factory.GetCustomValidationsForQuestion("P1", "Q1", null);

            result1.Count().Should().Be(1);
            result1.ToList()[0].Should().BeOfType <FileSizeMaxMbValidator>();

            var result2 = factory.GetCustomValidationsForQuestion("P2", "Q1", null);

            result2.Count().Should().Be(0);

            var result3 = factory.GetCustomValidationsForQuestion("P1", "Q2", null);

            result3.Count().Should().Be(0);
        }
예제 #2
0
        public void GetCustomValidationsForPage_should_return_validations_for_config()
        {
            var config = new Mock <IOptions <List <CustomValidationConfiguration> > >();

            config.Setup(c => c.Value).Returns(new List <CustomValidationConfiguration>
            {
                new CustomValidationConfiguration
                {
                    PageId       = "P1",
                    Name         = "FileUploadRequired",
                    ErrorMessage = "Please upload a file",
                    Value        = "Q1"
                },
            });

            var page1 = new Page
            {
                PageId    = "P1",
                Questions = new List <Question> {
                    new Question {
                        QuestionId = "Q1", Input = new Input {
                            Type = "FileUpload"
                        }
                    }
                },
                PageOfAnswers = new List <PageOfAnswers>()
            };

            var page2 = new Page
            {
                PageId    = "P2",
                Questions = new List <Question> {
                    new Question {
                        QuestionId = "Q2", Input = new Input {
                            Type = "FileUpload"
                        }
                    }
                },
                PageOfAnswers = new List <PageOfAnswers>()
            };

            var factory = new CustomValidatorFactory(config.Object);

            var result1 = factory.GetCustomValidationsForPage(page1, null);

            result1.Count().Should().Be(1);
            result1.ToList()[0].Should().BeOfType <FileUploadRequiredValidator>();

            var result2 = factory.GetCustomValidationsForPage(page2, null);

            result2.Count().Should().Be(0);

            var result3 = factory.GetCustomValidationsForPage(null, null);

            result3.Count().Should().Be(0);
        }
예제 #3
0
        public void TestCustomValidator_Create()
        {
            IFactory <ICustomValidator> fact = new CustomValidatorFactory();

            Assert.IsNotNull(fact);

            ICustomValidator validator = fact.Create();

            Assert.IsNotNull(validator);
        }
예제 #4
0
        public static SchemaGenerator CreateSchemaGenerator(
            IValidator[] validators,
            FluentValidationSwaggerGenOptions?fluentValidationSwaggerGenOptions = null)
        {
            return(CreateSchemaGenerator(options =>
            {
                IValidatorFactory validatorFactory = new CustomValidatorFactory(validators);

                options.SchemaFilters.Add(new FluentValidationRules(
                                              validatorFactory: validatorFactory,
                                              rules: null,
                                              loggerFactory: null,
                                              options: fluentValidationSwaggerGenOptions != null ? new OptionsWrapper <FluentValidationSwaggerGenOptions>(fluentValidationSwaggerGenOptions) : null));
            }));
        }
예제 #5
0
        public static SchemaGenerator CreateSchemaGenerator(
            IValidator[] validators,
            SchemaGenerationOptions?schemaGenerationOptions    = null,
            SchemaGenerationSettings?schemaGenerationSettings  = null,
            Action <JsonSerializerOptions>?configureSerializer = null)
        {
            return(CreateSchemaGenerator(
                       configureGenerator: options =>
            {
                IValidatorFactory validatorFactory = new CustomValidatorFactory(validators);

                options.SchemaFilters.Add(new FluentValidationRules(
                                              validatorFactory: validatorFactory,
                                              rules: null,
                                              loggerFactory: null,
                                              schemaGenerationOptions: schemaGenerationOptions != null ? new OptionsWrapper <SchemaGenerationOptions>(schemaGenerationOptions) : null,
                                              nameResolver: schemaGenerationSettings?.NameResolver));
            },
                       configureSerializer: configureSerializer));
        }
예제 #6
0
        public void TestCustomValidator_Create()
        {
            // arrange
            IFactory<ICustomValidator> fact = new CustomValidatorFactory();

            //act

            //assert
               Assert.IsNotNull(fact);

               // arrange
            ICustomValidator validator = fact.Create();
               //act

               //assert
            Assert.IsNotNull(validator);
        }
        public void TestCustomValidator_Create()
        {
            IFactory<ICustomValidator> fact = new CustomValidatorFactory();
            Assert.IsNotNull(fact);

            ICustomValidator validator = fact.Create();
            Assert.IsNotNull(validator);
        }
예제 #8
0
        private void ConfigureGenerator(SchemaGeneratorOptions options, params IValidator[] validators)
        {
            IValidatorFactory validatorFactory = new CustomValidatorFactory(validators);

            options.SchemaFilters.Add(new FluentValidationRules(validatorFactory));
        }