public virtual void testMaxValidator() { MaxValidator validator = new MaxValidator(); assertTrue(validator.validate(null, null)); assertTrue(validator.validate(3, new TestValidatorContext("4"))); assertFalse(validator.validate(4, new TestValidatorContext("3"))); try { validator.validate(4, new TestValidatorContext("4.4")); fail("exception expected"); } catch (FormException e) { assertTrue(e.Message.contains("Cannot validate Integer value 4: configuration 4.4 cannot be parsed as Integer.")); } assertFalse(validator.validate(4.1d, new TestValidatorContext("4"))); assertTrue(validator.validate(4.1d, new TestValidatorContext("4.2"))); assertFalse(validator.validate(4.1f, new TestValidatorContext("4"))); assertTrue(validator.validate(4.1f, new TestValidatorContext("4.2"))); }
public void ErrorMessage_Ok() { var foo = new Foo(); var validator = new MaxValidator() { Value = 1 }; var context = new ValidationContext(foo); var results = new List <ValidationResult>(); validator.Validate("v1, v2", context, results); Assert.Equal($"At most {validator.Value} items can be selected", results[0].ErrorMessage); }
public void IsValid() { MaxValidator v = new MaxValidator(); v.Initialize(new MaxAttribute()); Assert.IsTrue(v.IsValid(0, null)); v.Initialize(new MaxAttribute(1000)); Assert.IsTrue(v.IsValid(3, null)); Assert.IsTrue(v.IsValid(200.0m, null)); Assert.IsTrue(v.IsValid(1000, null)); Assert.IsTrue(v.IsValid(null, null)); Assert.IsTrue(v.IsValid("5", null)); Assert.IsFalse(v.IsValid(1001, null)); Assert.IsFalse(v.IsValid("aaa", null)); Assert.IsFalse(v.IsValid(new object(), null)); Assert.IsFalse(v.IsValid(long.MaxValue, null)); }
public void Null_Ok() { var foo = new Foo(); var validator = new MaxValidator() { Value = 1, ErrorMessage = "最多可以选择 {0} 项" }; var context = new ValidationContext(foo) { MemberName = "Name" }; var results = new List <ValidationResult>(); validator.Validate(null, context, results); Assert.Equal($"最多可以选择 {validator.Value} 项", results[0].ErrorMessage); }
public void SplitCallback_Ok() { var foo = new Foo(); var validator = new MaxValidator() { Value = 1, ErrorMessage = "最多可以选择 {0} 项" }; var context = new ValidationContext(foo) { MemberName = "Name" }; var results = new List <ValidationResult>(); validator.Validate("v1, v2", context, results); Assert.Equal($"最多可以选择 {validator.Value} 项", results[0].ErrorMessage); validator.SplitCallback = value => value.Split(',', StringSplitOptions.RemoveEmptyEntries).Length; validator.Validate("v1, v2", context, results); Assert.Equal($"最多可以选择 {validator.Value} 项", results[0].ErrorMessage); }
public void GenericType_Ok() { var foo = new Foo(); var validator = new MaxValidator() { Value = 1, ErrorMessage = "最多可以选择 {0} 项" }; var context = new ValidationContext(foo) { MemberName = "Name" }; var results = new List <ValidationResult>(); validator.Validate(new List <string> { "v1", "v2" }, context, results); Assert.Equal($"最多可以选择 {validator.Value} 项", results[0].ErrorMessage); results.Clear(); validator.Validate("v1", context, results); Assert.Empty(results); }
public void Extreme() { MaxValidator v = new MaxValidator(); v.Initialize(new MaxAttribute(10000)); Assert.IsTrue(v.IsValid(10000, null)); Assert.IsTrue(v.IsValid(10000L, null)); Assert.IsTrue(v.IsValid(123UL, null)); Assert.IsTrue(v.IsValid(123U, null)); Assert.IsTrue(v.IsValid((ushort)5, null)); Assert.IsTrue(v.IsValid((short)5, null)); Assert.IsTrue(v.IsValid(true, null)); Assert.IsTrue(v.IsValid((byte)100, null)); Assert.IsTrue(v.IsValid((sbyte)100, null)); Assert.IsTrue(v.IsValid(AEnum.A, null)); Assert.IsTrue(v.IsValid(CarOptions.Spoiler | CarOptions.FogLights, null)); Assert.IsTrue(v.IsValid('A', null)); Assert.IsTrue(v.IsValid(9999.99999f, null)); Assert.IsTrue(v.IsValid(9999.9999999999999999999999999d, null)); Assert.IsFalse(v.IsValid(decimal.MaxValue, null)); Assert.IsFalse(v.IsValid(decimal.MaxValue.ToString(), null)); Assert.IsFalse(v.IsValid(double.MaxValue, null)); Assert.IsFalse(v.IsValid("1" + double.MaxValue, null)); }