Ejemplo n.º 1
0
        public void SimpleAndOps_WithAC_ShouldBeSuccess_Test()
        {
            var options = new ValidationOptions();

            options.AnnotationEnabled        = false;
            options.FailureIfInstanceIsNull  = true;
            options.FailureIfProjectNotMatch = false;
            options.CustomValidatorEnabled   = false;

            var provider = new ValidationProvider(ValidationProjectManager, VerifiableObjectResolver, options);

            ValidationRegistrar.ForProvider(provider, "UT_SimpleAndOps_WithAC_ShouldBeSuccess_Test")
            .ForType <NiceBoat>()
            .ForMember(x => x.Name).MaxLength(8).When(x => x.StartsWith("M")).And().MinLength(7).Unless(x => x.StartsWith("N"))
            .Build();

            var validator = ValidationMe.Use("UT_SimpleAndOps_WithAC_ShouldBeSuccess_Test").Resolve <NiceBoat>();

            var instance = new NiceBoat
            {
                Name       = "NiceBoat1", //9
                Length     = 1000,
                Width      = 30,
                CreateTime = DateTimeFactory.Create(2020, 12, 21),
                Email      = "*****@*****.**"
            };

            var result1 = validator.Verify(instance);

            result1.ShouldNotBeNull();

            result1.IsValid.ShouldBeTrue();
        }
        public void UseGenericStrategyAndVerifyInstanceAndReturnSuccessTest()
        {
            var options = new ValidationOptions();

            options.AnnotationEnabled        = false;
            options.FailureIfInstanceIsNull  = true;
            options.FailureIfProjectNotMatch = false;
            options.CustomValidatorEnabled   = false;

            var provider = new ValidationProvider(ValidationProjectManager, VerifiableObjectResolver, options);

            ValidationRegistrar.ForProvider(provider, "UT_UseGenericStrategyAndVerifyInstanceAndReturnSuccessTest")
            .ForStrategy <GenericNiceBoatStrategy, NiceBoat>()
            .Build();

            var validator = ValidationMe.Use("UT_UseGenericStrategyAndVerifyInstanceAndReturnSuccessTest").Resolve <NiceBoat>();

            var instance = new NiceBoat
            {
                Name       = "NiceBoat1000",
                Length     = 1000,
                Width      = 30,
                CreateTime = DateTimeFactory.Create(2020, 12, 21),
                Email      = "*****@*****.**"
            };

            var result1 = validator.Verify(instance);

            result1.ShouldNotBeNull();

            result1.IsValid.ShouldBeTrue();
        }
Ejemplo n.º 3
0
        public override void PreInitialize()
        {
            this.IocManager.IocContainer.Register(Component.For <TypeResolver>().UsingFactoryMethod(() => new TypeResolver()).LifeStyle.Singleton);

            Configuration.Auditing.IsEnabledForAnonymousUsers = true;

            // Declare entity types
            Configuration.Modules.Zero().EntityTypes.Tenant = typeof(Tenant);
            Configuration.Modules.Zero().EntityTypes.Role = typeof(Role);
            Configuration.Modules.Zero().EntityTypes.User = typeof(User);

            InterceptorsLocalizationConfigurer.Configure(Configuration.Localization);

            // Enable this line to create a multi-tenant application.
            Configuration.MultiTenancy.IsEnabled = InterceptorsConsts.MultiTenancyEnabled;

            // Configure roles
            AppRoleConfig.Configure(Configuration.Modules.Zero().RoleManagement);

            Configuration.Settings.Providers.Add <AppSettingProvider>();

            ValidationRegistrar.Initialize(this.IocManager.IocContainer.Kernel);
            PreTreatmentRegistrar.Initialize(this.IocManager.IocContainer.Kernel);
            PostTreatmentRegistrar.Initialize(this.IocManager.IocContainer.Kernel);
        }
Ejemplo n.º 4
0
        public void VerifyAnByInstanceShouldBeFailureTest()
        {
            var options = new ValidationOptions();

            options.AnnotationEnabled        = false;
            options.FailureIfInstanceIsNull  = true;
            options.FailureIfProjectNotMatch = false;
            options.CustomValidatorEnabled   = false;

            var provider = new ValidationProvider(ValidationProjectManager, VerifiableObjectResolver, options);

            var handler = ValidationRegistrar.ForProvider(provider, "UTH_VerifyAnByInstanceShouldBeFailureTest")
                          .ForType <NiceBoat>()
                          .ForMember("Name").NotEmpty()
                          .AndForMember("Length").GreaterThanOrEqual(0)
                          .AndForMember("Width").GreaterThanOrEqual(0)
                          .TempBuild();

            var instance = new NiceBoat
            {
                Name       = "",
                Length     = -1000,
                Width      = -30,
                CreateTime = DateTimeFactory.Create(2020, 12, 21),
                Email      = "nice@@boat.com"
            };

            var result1 = handler.Verify(instance);

            result1.ShouldNotBeNull();
            result1.IsValid.ShouldBeFalse();

            result1.Errors.Should().HaveCount(3);
        }
        public void ConditionPriorityTest()
        {
            var options = new ValidationOptions();

            options.AnnotationEnabled        = false;
            options.FailureIfInstanceIsNull  = true;
            options.FailureIfProjectNotMatch = false;
            options.CustomValidatorEnabled   = false;

            var provider = new ValidationProvider(ValidationProjectManager, VerifiableObjectResolver, options);

            ValidationRegistrar.ForProvider(provider, "UT_ConditionPriorityTest")
            .ForType <NiceBoat>()
            .ForMember(x => x.Name).MaxLength(10).And().MinLength(8).Or().MaxLength(20).And().MinLength(18)
            .Build();

            var validator = ValidationMe.Use("UT_ConditionPriorityTest").Resolve <NiceBoat>();

            var instance = new NiceBoat
            {
                Name       = "NiceBoat1234567890Z", //19
                Length     = 1000,
                Width      = 30,
                CreateTime = DateTimeFactory.Create(2020, 12, 21),
                Email      = "*****@*****.**"
            };

            var result1 = validator.Verify(instance);

            result1.ShouldNotBeNull();

            result1.IsValid.ShouldBeTrue();
        }
Ejemplo n.º 6
0
        public void ValidationOneWithDataAnnotationAndShouldBeSuccessTest()
        {
            var options = new ValidationOptions();

            options.AnnotationEnabled        = false;
            options.FailureIfInstanceIsNull  = true;
            options.FailureIfProjectNotMatch = false;
            options.CustomValidatorEnabled   = true;

            var provider = new ValidationProvider(ValidationProjectManager, VerifiableObjectResolver, options);

            ValidationRegistrar.ForProvider(provider, "UT_ValidationOneWithDataAnnotationAndShouldBeSuccessTest")
            .ForDataAnnotationSupport()
            .Build();

            var validator = ValidationMe.Use("UT_ValidationOneWithDataAnnotationAndShouldBeSuccessTest").Resolve <GoodJob>();

            var model = new GoodJob()
            {
                Name = "Good", Cost = 11
            };

            validator.VerifyOne(x => x.Name, model.Name).IsValid.Should().BeTrue();
            validator.VerifyOne(model.Name, "Name").IsValid.Should().BeTrue();
            validator.VerifyOne(typeof(GoodJob), model.Name, "Name").IsValid.Should().BeTrue();
        }
Ejemplo n.º 7
0
        public void VerifyManyByDictionaryShouldBeSuccessTest()
        {
            var options = new ValidationOptions();

            options.AnnotationEnabled        = false;
            options.FailureIfInstanceIsNull  = true;
            options.FailureIfProjectNotMatch = false;
            options.CustomValidatorEnabled   = false;

            var provider = new ValidationProvider(ValidationProjectManager, VerifiableObjectResolver, options);

            var handler = ValidationRegistrar.ForProvider(provider, "UTH_VerifyAnByDictionaryShouldBeSuccessTest")
                          .ForType <NiceBoat>()
                          .ForMember("Name").NotEmpty()
                          .AndForMember("Length").GreaterThanOrEqual(0)
                          .AndForMember("Width").GreaterThanOrEqual(0)
                          .TempBuild();

            var d = new Dictionary <string, object>
            {
                ["Name"]       = "NiceBoat1000",
                ["Length"]     = 1000,
                ["Width"]      = 30,
                ["CreateTime"] = DateTimeFactory.Create(2020, 12, 21),
                ["Email"]      = "*****@*****.**"
            };

            var result1 = handler.VerifyMany(typeof(NiceBoat), d);

            result1.ShouldNotBeNull();

            result1.IsValid.ShouldBeTrue();
        }
        public void VerifyManyByDictionaryShouldBeFailureTest()
        {
            var options = new ValidationOptions();

            options.AnnotationEnabled        = false;
            options.FailureIfInstanceIsNull  = true;
            options.CustomValidatorEnabled   = false;
            options.FailureIfProjectNotMatch = false;

            var provider = new ValidationProvider(ValidationProjectManager, VerifiableObjectResolver, options);

            ValidationRegistrar.ForProvider(provider, "UT_VerifyAnByDictionaryShouldBeFailureTest")
            .ForType <NiceBoat>()
            .ForMember("Name").NotEmpty()
            .AndForMember("Length").GreaterThanOrEqual(0)
            .AndForMember("Width").GreaterThanOrEqual(0)
            .Build();

            var validator = ValidationMe.Use("UT_VerifyAnByDictionaryShouldBeFailureTest").Resolve <NiceBoat>();

            var d = new Dictionary <string, object>
            {
                ["Name"]       = "",
                ["Length"]     = -1000,
                ["Width"]      = -30,
                ["CreateTime"] = DateTimeFactory.Create(2020, 12, 21),
                ["Email"]      = "nice@@boat.com"
            };

            var result1 = validator.VerifyMany(d);

            result1.ShouldNotBeNull();
            result1.IsValid.ShouldBeFalse();
            result1.Errors.Should().HaveCount(3);
        }
Ejemplo n.º 9
0
        public void ValidationModelWorkWithFluentValidationAndShouldBeSuccessTest()
        {
            var options = new ValidationOptions();

            options.AnnotationEnabled        = false;
            options.FailureIfInstanceIsNull  = true;
            options.FailureIfProjectNotMatch = false;
            options.CustomValidatorEnabled   = true;

            var provider = new ValidationProvider(ValidationProjectManager, VerifiableObjectResolver, options);

            ValidationRegistrar
            .ForProvider(provider, "UTF_ValidationModelWorkWithFluentValidationAndShouldBeSuccessTest")
            .ForFluentValidator <GanglvToniValidator>()
            .Build();

            var validator = ValidationMe.Use("UTF_ValidationModelWorkWithFluentValidationAndShouldBeSuccessTest")
                            .Resolve <GanglvToni>();

            var model = new GanglvToni()
            {
                Name = "Good", Age = 11
            };

            validator.Verify(typeof(GanglvToni), model).IsValid.Should().BeTrue();
        }
        public void VerifyOneWithPropertySelectorAndShouldBeFailureTest()
        {
            var options = new ValidationOptions();

            options.AnnotationEnabled        = false;
            options.FailureIfInstanceIsNull  = true;
            options.FailureIfProjectNotMatch = false;
            options.CustomValidatorEnabled   = false;

            var provider = new ValidationProvider(ValidationProjectManager, VerifiableObjectResolver, options);

            ValidationRegistrar.ForProvider(provider, "UT_VerifyOneWithPropertySelectorAndShouldBeFailureTest")
            .ForType <NiceBoat>()
            .ForMember("Name").NotEmpty()
            .AndForMember("Length").GreaterThanOrEqual(0)
            .AndForMember("Width").GreaterThanOrEqual(0)
            .Build();

            var validator = ValidationMe.Use("UT_VerifyOneWithPropertySelectorAndShouldBeFailureTest").Resolve <NiceBoat>();

            validator.VerifyOne(x => x.Name, "").IsValid.ShouldBeFalse();
            validator.VerifyOne(x => x.Length, -1000).IsValid.ShouldBeFalse();
            validator.VerifyOne(x => x.Width, -30).IsValid.ShouldBeFalse();
            validator.VerifyOne(x => x.CreateTime, DateTimeFactory.Create(2020, 12, 21)).IsValid.ShouldBeTrue();
            validator.VerifyOne(x => x.Email, "nice@@boat.com").IsValid.ShouldBeTrue(); // Because Annotation and CustomValidation are all disable.
        }
        public void VerifyOneShouldBeSuccessTest()
        {
            var options = new ValidationOptions();

            options.AnnotationEnabled        = false;
            options.FailureIfInstanceIsNull  = true;
            options.FailureIfProjectNotMatch = false;
            options.CustomValidatorEnabled   = false;

            var provider = new ValidationProvider(ValidationProjectManager, VerifiableObjectResolver, options);

            ValidationRegistrar.ForProvider(provider, "UT_VerifyOneShouldBeSuccessTest")
            .ForType <NiceBoat>()
            .ForMember("Name").NotEmpty()
            .AndForMember("Length").GreaterThanOrEqual(0)
            .AndForMember("Width").GreaterThanOrEqual(0)
            .Build();

            var validator = ValidationMe.Use("UT_VerifyOneShouldBeSuccessTest").Resolve <NiceBoat>();

            validator.VerifyOne(typeof(string), "Nice", "Name").IsValid.ShouldBeTrue();
            validator.VerifyOne(typeof(long), 1000, "Length").IsValid.ShouldBeTrue();
            validator.VerifyOne(typeof(long), 20, "Width").IsValid.ShouldBeTrue();
            validator.VerifyOne(typeof(DateTime), DateTimeFactory.Create(2020, 12, 21), "CreateTime").IsValid.ShouldBeTrue();
            validator.VerifyOne(typeof(string), "*****@*****.**", "Email").IsValid.ShouldBeTrue();
        }
Ejemplo n.º 12
0
        public void SimpleOrOps_ShouldBeFailure_Test()
        {
            var options = new ValidationOptions();

            options.AnnotationEnabled        = false;
            options.FailureIfInstanceIsNull  = true;
            options.FailureIfProjectNotMatch = false;
            options.CustomValidatorEnabled   = false;

            var provider = new ValidationProvider(ValidationProjectManager, VerifiableObjectResolver, options);

            ValidationRegistrar.ForProvider(provider, "UT_SimpleOrOps_ShouldBeFailure_Test")
            .ForType <NiceBoat>()
            .ForMember(x => x.Width).GreaterThan(12).Or().LessThan(8)
            .Build();

            var validator = ValidationMe.Use("UT_SimpleOrOps_ShouldBeFailure_Test").Resolve <NiceBoat>();

            var instance = new NiceBoat
            {
                Name       = "NiceBoat1",
                Length     = 1000,
                Width      = 10,
                CreateTime = DateTimeFactory.Create(2020, 12, 21),
                Email      = "*****@*****.**"
            };

            var result1 = validator.Verify(instance);

            result1.ShouldNotBeNull();

            result1.IsValid.ShouldBeFalse();
        }
        public void RegistrarContinueOrDefaultTest()
        {
            var registrar1   = ValidationRegistrar.ContinueOrDefault("UT_RegistrarContinueOrDefaultTest1");
            var registrarRef = ValidationRegistrar.Continue(); //Default/Main registrar

            registrar1.ShouldNotBeNull();
            registrarRef.ShouldNotBeNull();

            var instance1   = registrar1 as InternalValidationRegistrar;
            var instanceRef = registrarRef as InternalValidationRegistrar;

            instance1.ShouldNotBeNull();
            instanceRef.ShouldNotBeNull();

            instance1.Name.ShouldBe(instanceRef.Name);

            var provider = new ValidationProvider(new FakeProjectManager(), new DefaultVerifiableObjectResolver(), new ValidationOptions());

            var registrar2 = ValidationRegistrar.ForProvider(provider, "UT_RegistrarContinueOrDefaultTest2");
            var registrar3 = ValidationRegistrar.ContinueOrDefault("UT_RegistrarContinueOrDefaultTest2");

            registrar2.ShouldNotBeNull();
            registrar3.ShouldNotBeNull();

            var instance2 = registrar2 as InternalValidationRegistrar;
            var instance3 = registrar3 as InternalValidationRegistrar;

            instance2.ShouldNotBeNull();
            instance3.ShouldNotBeNull();

            instance2.Name.ShouldBe("UT_RegistrarContinueOrDefaultTest2");
            instance3.Name.ShouldBe("UT_RegistrarContinueOrDefaultTest2");
        }
        public void VerifyCustomValidatorAndShouldBeFailureTest()
        {
            var options = new ValidationOptions();

            options.AnnotationEnabled        = false;
            options.FailureIfInstanceIsNull  = true;
            options.FailureIfProjectNotMatch = false;
            options.CustomValidatorEnabled   = true; //important

            var provider = new ValidationProvider(ValidationProjectManager, VerifiableObjectResolver, options);

            ValidationRegistrar.ForProvider(provider, "UT_VerifyCustomValidatorAndShouldBeFailure32Test")
            .ForCustomValidator(new LengthShould32Validator())
            .Build();

            var validator1 = ValidationMe.Use("UT_VerifyCustomValidatorAndShouldBeFailure32Test").Resolve <Length32Model>();
            var validator2 = new LengthShould32Validator();

            var model = new Length32Model {
                Name = "12345678901234"
            };

            validator1.Verify(model).IsValid.ShouldBeFalse();
            validator2.Verify(model).IsValid.ShouldBeFalse();
        }
Ejemplo n.º 15
0
        public void ValidationModelWorkWithFluentValidationAndShouldBeFailureTest()
        {
            var options = new ValidationOptions();

            options.AnnotationEnabled        = false;
            options.FailureIfInstanceIsNull  = true;
            options.FailureIfProjectNotMatch = false;
            options.CustomValidatorEnabled   = true;

            var provider = new ValidationProvider(ValidationProjectManager, VerifiableObjectResolver, options);

            ValidationRegistrar
            .ForProvider(provider, "UTF_ValidationModelWorkWithFluentValidationAndShouldBeFailureTest")
            .ForFluentValidator <GanglvToniValidator, GanglvToni>()
            .Build();

            var validator = ValidationMe.Use("UTF_ValidationModelWorkWithFluentValidationAndShouldBeFailureTest")
                            .Resolve <GanglvToni>();

            var model1 = new GanglvToni()
            {
                Name = "", Age = 11
            };
            var model2 = new GanglvToni()
            {
                Name = "11111111111", Age = 11
            };
            var model3 = new GanglvToni()
            {
                Name = "Good", Age = 9
            };
            var model4 = new GanglvToni()
            {
                Name = "", Age = -9
            };

            var r1 = validator.Verify(typeof(GanglvToni), model1);
            var r2 = validator.Verify(typeof(GanglvToni), model2);
            var r3 = validator.Verify(typeof(GanglvToni), model3);
            var r4 = validator.Verify(typeof(GanglvToni), model4);

            r1.IsValid.ShouldBeFalse();
            r2.IsValid.ShouldBeFalse();
            r3.IsValid.ShouldBeFalse();
            r4.IsValid.ShouldBeFalse();

            r1.MemberNames.Should().HaveCount(1);
            r2.MemberNames.Should().HaveCount(1);
            r3.MemberNames.Should().HaveCount(1);
            r4.MemberNames.Should().HaveCount(2);
        }
        public void StrategyLevelTakeEffectTest()
        {
            var registrar = ValidationRegistrar.Continue();

            registrar.ShouldNotBeNull();

            var exposedPoint1          = (registrar as InternalValidationRegistrar)?.GetCorrectValueRulesForUnitTests();
            var _typedRulesDictionary1 = exposedPoint1.Value.Item1;
            var _namedRulesDictionary1 = exposedPoint1.Value.Item2;

            _typedRulesDictionary1.ShouldNotBeNull();
            _namedRulesDictionary1.ShouldNotBeNull();

            _typedRulesDictionary1.Keys.Should().HaveCount(0);
            _namedRulesDictionary1.Keys.Should().HaveCount(0);

            registrar.ForStrategy <NormalNiceBoatStrategy>().TakeEffect();
            var exposedPoint2 = (registrar as InternalValidationRegistrar)?.GetCorrectValueRulesForUnitTests();

            exposedPoint2.ShouldNotBeNull();
            var _typedRulesDictionary2 = exposedPoint2.Value.Item1;
            var _namedRulesDictionary2 = exposedPoint2.Value.Item2;

            _typedRulesDictionary2.ShouldNotBeNull();
            _namedRulesDictionary2.ShouldNotBeNull();

            _typedRulesDictionary2.Keys.Should().HaveCount(1);
            _namedRulesDictionary2.Keys.Should().HaveCount(0);

            var rules = _typedRulesDictionary2[typeof(NiceBoat)];

            rules.Should().HaveCount(3);
            rules[0].Should().NotBeNull()
            .And.Match <CorrectValueRule>(x => x.MemberName == "Name")
            .And.Match <CorrectValueRule>(x => x.Mode == CorrectValueRuleMode.Append)
            .And.Match <CorrectValueRule>(x => x.Tokens.Count == 1)
            .And.Match <CorrectValueRule>(x => x.Tokens[0].TokenName == "ValueNotEmptyToken");


            rules[1].Should().NotBeNull()
            .And.Match <CorrectValueRule>(x => x.MemberName == "Length")
            .And.Match <CorrectValueRule>(x => x.Mode == CorrectValueRuleMode.Append)
            .And.Match <CorrectValueRule>(x => x.Tokens.Count == 1)
            .And.Match <CorrectValueRule>(x => x.Tokens[0].TokenName == "ValueGreaterThanOrEqualToken");

            rules[2].Should().NotBeNull()
            .And.Match <CorrectValueRule>(x => x.MemberName == "Width")
            .And.Match <CorrectValueRule>(x => x.Mode == CorrectValueRuleMode.Append)
            .And.Match <CorrectValueRule>(x => x.Tokens.Count == 1)
            .And.Match <CorrectValueRule>(x => x.Tokens[0].TokenName == "ValueGreaterThanOrEqualToken");
        }
Ejemplo n.º 17
0
        public static void InitializeAndPreheating()
        {
            if (!_flag)
            {
                var projectManager = new CorrectnessProjectManager();
                var objectResolver = new CorrectnessObjectResolver();
                var options        = CorrectnessOptions.Original();

                var provider = new CorrectnessProvider(projectManager, objectResolver, options);

                // Add the global correct provider into validation-me
                ValidationRegistrar.ForProvider(provider, CorrectnessVerifiableWall.GLOBAL_CORRECT_PROVIDER_KEY).Build();

                // Update flag
                _flag = true;
            }
        }
        public void MainRegistrarAccessingTest()
        {
            var provider = new ValidationProvider(new FakeProjectManager(), new DefaultVerifiableObjectResolver(), new ValidationOptions());

            var registrar1 = ValidationRegistrar.ForProvider(provider);
            var registrar2 = ValidationRegistrar.Continue();

            registrar1.ShouldNotBeNull();
            registrar2.ShouldNotBeNull();

            var instance1 = registrar1 as InternalValidationRegistrar;
            var instance2 = registrar2 as InternalValidationRegistrar;

            instance1.ShouldNotBeNull();
            instance2.ShouldNotBeNull();

            instance1.Name.ShouldBe(instance2.Name);
        }
Ejemplo n.º 19
0
        public void VerifyOneShouldBeFailureTest()
        {
            var options = new ValidationOptions();

            options.AnnotationEnabled        = false;
            options.FailureIfInstanceIsNull  = true;
            options.FailureIfProjectNotMatch = false;
            options.CustomValidatorEnabled   = false;

            var provider = new ValidationProvider(ValidationProjectManager, VerifiableObjectResolver, options);

            var handler = ValidationRegistrar.ForProvider(provider, "UTH_VerifyOneShouldBeFailureTest")
                          .ForType <NiceBoat>()
                          .ForMember("Name").NotEmpty()
                          .AndForMember("Length").GreaterThanOrEqual(0)
                          .AndForMember("Width").GreaterThanOrEqual(0)
                          .TempBuild();

            handler.VerifyOne(typeof(NiceBoat), "", "Name").IsValid.ShouldBeFalse();
            handler.VerifyOne(typeof(NiceBoat), -1000, "Length").IsValid.ShouldBeFalse();
            handler.VerifyOne(typeof(NiceBoat), -20, "Width").IsValid.ShouldBeFalse();
            handler.VerifyOne(typeof(NiceBoat), DateTimeFactory.Create(2020, 12, 21), "CreateTime").IsValid.ShouldBeTrue();
            handler.VerifyOne(typeof(NiceBoat), "nice@@boat.com", "Email").IsValid.ShouldBeTrue(); // Because Annotation and CustomValidation are all disable.
        }
Ejemplo n.º 20
0
        public void VerifyOneWithPropertySelectorAndShouldBeSuccessTest()
        {
            var options = new ValidationOptions();

            options.AnnotationEnabled        = false;
            options.FailureIfInstanceIsNull  = true;
            options.FailureIfProjectNotMatch = false;
            options.CustomValidatorEnabled   = false;

            var provider = new ValidationProvider(ValidationProjectManager, VerifiableObjectResolver, options);

            var handler = ValidationRegistrar.ForProvider(provider, "UTH_VerifyOneWithPropertySelectorAndShouldBeSuccessTest")
                          .ForType <NiceBoat>()
                          .ForMember("Name").NotEmpty()
                          .AndForMember("Length").GreaterThanOrEqual(0)
                          .AndForMember("Width").GreaterThanOrEqual(0)
                          .TempBuild();

            handler.VerifyOne <NiceBoat, string>(x => x.Name, "Nice").IsValid.ShouldBeTrue();
            handler.VerifyOne <NiceBoat, long>(x => x.Length, 1000).IsValid.ShouldBeTrue();
            handler.VerifyOne <NiceBoat, long>(x => x.Width, 30).IsValid.ShouldBeTrue();
            handler.VerifyOne <NiceBoat, DateTime>(x => x.CreateTime, DateTimeFactory.Create(2020, 12, 21)).IsValid.ShouldBeTrue();
            handler.VerifyOne <NiceBoat, string>(x => x.Email, "*****@*****.**").IsValid.ShouldBeTrue();
        }
        public ValidationHandler Build(ValidationOptions options)
        {
            var registrar = ValidationRegistrar.Continue(CorrectnessVerifiableWall.GLOBAL_CORRECT_PROVIDER_KEY);

            return((RegisterHandler?.Invoke(registrar) ?? registrar).TempBuild(options));
        }
Ejemplo n.º 22
0
        public void ValidationOneWorkWithFluentValidationAndShouldBeFailureTest()
        {
            var options = new ValidationOptions();

            options.AnnotationEnabled        = false;
            options.FailureIfInstanceIsNull  = true;
            options.FailureIfProjectNotMatch = false;
            options.CustomValidatorEnabled   = true;

            var provider = new ValidationProvider(ValidationProjectManager, VerifiableObjectResolver, options);

            ValidationRegistrar.ForProvider(provider, "UTF_ValidationOneWorkWithFluentValidationAndShouldBeFailureTest")
            .ForFluentValidator <GanglvToniValidator>()
            .Build();

            var validator = ValidationMe.Use("UTF_ValidationOneWorkWithFluentValidationAndShouldBeFailureTest")
                            .Resolve <GanglvToni>();

            var model1 = new GanglvToni()
            {
                Name = "", Age = 11
            };
            var model2 = new GanglvToni()
            {
                Name = "11111111111", Age = 11
            };
            var model3 = new GanglvToni()
            {
                Name = "Good", Age = 9
            };
            var model4 = new GanglvToni()
            {
                Name = "", Age = -9
            };

            validator.VerifyOne(x => x.Name, model1.Name).IsValid.Should().BeFalse();
            validator.VerifyOne(model1.Name, "Name").IsValid.Should().BeFalse();
            validator.VerifyOne(typeof(GanglvToni), model1.Name, "Name").IsValid.Should().BeFalse();

            validator.VerifyOne(x => x.Age, model1.Age).IsValid.Should().BeTrue();
            validator.VerifyOne(model1.Age, "Age").IsValid.Should().BeTrue();
            validator.VerifyOne(typeof(GanglvToni), model1.Age, "Age").IsValid.Should().BeTrue();

            validator.VerifyOne(x => x.Name, model2.Name).IsValid.Should().BeFalse();
            validator.VerifyOne(model2.Name, "Name").IsValid.Should().BeFalse();
            validator.VerifyOne(typeof(GanglvToni), model2.Name, "Name").IsValid.Should().BeFalse();

            validator.VerifyOne(x => x.Age, model2.Age).IsValid.Should().BeTrue();
            validator.VerifyOne(model2.Age, "Age").IsValid.Should().BeTrue();
            validator.VerifyOne(typeof(GanglvToni), model2.Age, "Age").IsValid.Should().BeTrue();


            validator.VerifyOne(x => x.Name, model3.Name).IsValid.Should().BeTrue();
            validator.VerifyOne(model3.Name, "Name").IsValid.Should().BeTrue();
            validator.VerifyOne(typeof(GanglvToni), model3.Name, "Name").IsValid.Should().BeTrue();

            validator.VerifyOne(x => x.Age, model3.Age).IsValid.Should().BeFalse();
            validator.VerifyOne(model3.Age, "Age").IsValid.Should().BeFalse();
            validator.VerifyOne(typeof(GanglvToni), model3.Age, "Age").IsValid.Should().BeFalse();


            validator.VerifyOne(x => x.Name, model4.Name).IsValid.Should().BeFalse();
            validator.VerifyOne(model4.Name, "Name").IsValid.Should().BeFalse();
            validator.VerifyOne(typeof(GanglvToni), model4.Name, "Name").IsValid.Should().BeFalse();

            validator.VerifyOne(x => x.Age, model4.Age).IsValid.Should().BeFalse();
            validator.VerifyOne(model4.Age, "Age").IsValid.Should().BeFalse();
            validator.VerifyOne(typeof(GanglvToni), model4.Age, "Age").IsValid.Should().BeFalse();
        }
Ejemplo n.º 23
0
 public IValidationRegistrar ResolveRegistrar() => ValidationRegistrar.Continue();
Ejemplo n.º 24
0
 public IValidationRegistrar RequiredResolveRegistrar(string providerName) => ValidationProvider.IsDefault(providerName) ? ValidationRegistrar.DefaultRegistrar : ValidationRegistrar.Continue(providerName);