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 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 GetValueFromInstanceTest() { var instance = new NiceBoat { Name = "NiceBoat1000", Length = 1000, Width = 30, CreateTime = DateTimeFactory.Create(2020, 12, 21), Email = "*****@*****.**" }; var contract = VerifiableObjectContractManager.Resolve(typeof(NiceBoat)); var value1 = contract.GetMemberContract("Name"); var value2 = contract.GetMemberContract("Length"); var value3 = contract.GetMemberContract("Width"); var value4 = contract.GetMemberContract("CreateTime"); var value5 = contract.GetMemberContract("Email"); value1.GetValue(instance).ShouldBe("NiceBoat1000"); value2.GetValue(instance).ShouldBe(1000); value3.GetValue(instance).ShouldBe(30); value4.GetValue(instance).ShouldBe(DateTimeFactory.Create(2020, 12, 21)); value5.GetValue(instance).ShouldBe("*****@*****.**"); }
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 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(); }
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(); }
public void GetValueContextFromInstanceObjectContextTest() { var instance = new NiceBoat { Name = "NiceBoat1000", Length = 1000, Width = 30, CreateTime = DateTimeFactory.Create(2020, 12, 21), Email = "*****@*****.**" }; var context = _objectResolver.Resolve <NiceBoat>(instance); var value1 = context.GetValue("Name"); var value2 = context.GetValue("Length"); var value3 = context.GetValue("Width"); var value4 = context.GetValue("CreateTime"); var value5 = context.GetValue("Email"); value1.MemberName.ShouldBe("Name"); value1.MemberType.ShouldBe(TypeClass.StringClazz); value1.DeclaringType.ShouldBe(typeof(NiceBoat)); value1.MemberKind.ShouldBe(VerifiableMemberKind.Property); value1.IsBasicType.ShouldBeTrue(); value1.IncludeAnnotations.ShouldBeTrue(); value1.Value.ShouldBe("NiceBoat1000"); value2.MemberName.ShouldBe("Length"); value2.MemberType.ShouldBe(TypeClass.LongClazz); value2.DeclaringType.ShouldBe(typeof(NiceBoat)); value2.MemberKind.ShouldBe(VerifiableMemberKind.Property); value2.IsBasicType.ShouldBeTrue(); value2.IncludeAnnotations.ShouldBeTrue(); value2.Value.ShouldBe(1000); value3.MemberName.ShouldBe("Width"); value3.MemberType.ShouldBe(TypeClass.LongClazz); value3.DeclaringType.ShouldBe(typeof(NiceBoat)); value3.MemberKind.ShouldBe(VerifiableMemberKind.Property); value3.IsBasicType.ShouldBeTrue(); value3.IncludeAnnotations.ShouldBeTrue(); value3.Value.ShouldBe(30); value4.MemberName.ShouldBe("CreateTime"); value4.MemberType.ShouldBe(TypeClass.DateTimeClazz); value4.DeclaringType.ShouldBe(typeof(NiceBoat)); value4.MemberKind.ShouldBe(VerifiableMemberKind.Field); value4.IsBasicType.ShouldBeTrue(); value4.IncludeAnnotations.ShouldBeTrue(); value4.Value.ShouldBe(DateTimeFactory.Create(2020, 12, 21)); value5.MemberName.ShouldBe("Email"); value5.MemberType.ShouldBe(TypeClass.StringClazz); value5.DeclaringType.ShouldBe(typeof(NiceBoat)); value5.MemberKind.ShouldBe(VerifiableMemberKind.Property); value5.IsBasicType.ShouldBeTrue(); value5.IncludeAnnotations.ShouldBeTrue(); value5.Value.ShouldBe("*****@*****.**"); }
public void InstanceWithGenericTypeCreateObjectContextTest() { var instance = new NiceBoat { Name = "NiceBoat1000", Length = 1000, Width = 30, CreateTime = DateTimeFactory.Create(2020, 12, 21), Email = "*****@*****.**" }; var context = _objectResolver.Resolve <NiceBoat>(instance); context.ShouldNotBeNull(); context.Type.ShouldBe(typeof(NiceBoat)); context.ObjectKind.ShouldBe(VerifiableObjectKind.StructureType); context.IsBasicType().ShouldBeFalse(); context.Instance.ShouldBe(instance); context.KeyValueCollection.ShouldBeNull(); context.InstanceName.ShouldBe("Instance"); //annotations/attributes - class level context.IncludeAnnotations.ShouldBeTrue(); context.Attributes.Count.ShouldBe(0); //member/value-contract context.GetMembers().Count().ShouldBe(5); context.GetMember("Name").MemberName.ShouldBe("Name"); context.GetMember("Length").MemberName.ShouldBe("Length"); context.GetMember("Width").MemberName.ShouldBe("Width"); context.GetMember("CreateTime").MemberName.ShouldBe("CreateTime"); context.GetMember("Email").MemberName.ShouldBe("Email"); context.GetMember(0).MemberName.ShouldBe("Name"); context.GetMember(1).MemberName.ShouldBe("Length"); context.GetMember(2).MemberName.ShouldBe("Width"); context.GetMember(3).MemberName.ShouldBe("Email"); //Property first context.GetMember(4).MemberName.ShouldBe("CreateTime"); //value/value-context context.GetValues().Count().ShouldBe(5); context.GetValue("Name").MemberName.ShouldBe("Name"); context.GetValue("Length").MemberName.ShouldBe("Length"); context.GetValue("Width").MemberName.ShouldBe("Width"); context.GetValue("CreateTime").MemberName.ShouldBe("CreateTime"); context.GetValue("Email").MemberName.ShouldBe("Email"); context.GetValue(0).MemberName.ShouldBe("Name"); context.GetValue(1).MemberName.ShouldBe("Length"); context.GetValue(2).MemberName.ShouldBe("Width"); context.GetValue(3).MemberName.ShouldBe("Email"); //Property first context.GetValue(4).MemberName.ShouldBe("CreateTime"); context.GetMemberMap().Count.ShouldBe(5); context.GetValueMap().Count.ShouldBe(5); }
public void VerifyAnByInstanceShouldBeSuccessTest() { var instance = new NiceBoat { Name = "NiceBoat1000", Length = 1000, Width = 30, CreateTime = DateTimeFactory.Create(2020, 12, 21), Email = "*****@*****.**" }; var result1 = AnnotationValidator.Verify(instance); var result2 = AnnotationValidator.Verify(typeof(NiceBoat), instance); result1.ShouldNotBeNull(); result2.ShouldNotBeNull(); result1.IsValid.ShouldBeTrue(); result2.IsValid.ShouldBeTrue(); }
public void TempBuildTest() { var model1 = new NiceBoat { Name = "Haha" }; var model2 = new NiceBoat { Name = "" }; var options = new ValidationOptions() { AnnotationEnabled = false, CustomValidatorEnabled = false }; var handler = ValidationRegistrar.DefaultRegistrar .ForType <NiceBoat>().ForMember(x => x.Name).NotEmpty() .TempBuild(options); handler.ShouldNotBeNull(); handler.Verify(model1).IsValid.ShouldBeTrue(); handler.Verify(model2).IsValid.ShouldBeFalse(); }
public void VerifyAnByInstanceShouldBeFailureTest() { var instance = new NiceBoat { Name = "", Length = -1000, Width = -30, CreateTime = DateTimeFactory.Create(2020, 12, 21), Email = "nice@@boat.com" }; var result1 = AnnotationValidator.Verify(instance); var result2 = AnnotationValidator.Verify(typeof(NiceBoat), instance); result1.ShouldNotBeNull(); result2.ShouldNotBeNull(); result1.IsValid.ShouldBeFalse(); result2.IsValid.ShouldBeFalse(); result1.Errors.Should().HaveCount(4); result2.Errors.Should().HaveCount(4); }
public StrategyValidatorTests() { RightModel = new NiceBoat() { Name = "Good", Length = 10, Width = 10 }; WrongModel = new NiceBoat() { Name = "", Length = -10, Width = -1 }; RightDictionary = new Dictionary <string, object> { { "Name", "Good" }, { "Length", 10 }, { "Width", 10 } }; WrongDictionary = new Dictionary <string, object> { { "Name", "" }, { "Length", -10 }, { "Width", -10 } }; Options = new ValidationOptions() { AnnotationEnabled = false, CustomValidatorEnabled = false }; }