public void TryValidateValue_01() { var dummy = new DummyNoAttributes(); var ctx = new ValidationContext(dummy, null, null) { MemberName = "NameProperty" }; var results = new List <ValidationResult> (); var attributes = new List <ValidationAttribute> (); bool valid = Validator.TryValidateValue(null, ctx, results, attributes); Assert.IsTrue(valid, "#A1-1"); Assert.AreEqual(0, results.Count, "#A1-2"); AssertExtensions.Throws <ArgumentNullException> (() => { Validator.TryValidateValue("dummy", null, results, attributes); }, "#A2"); valid = Validator.TryValidateValue("dummy", ctx, null, attributes); Assert.IsTrue(valid, "#A3-1"); Assert.AreEqual(0, results.Count, "#A3-2"); AssertExtensions.Throws <ArgumentNullException> (() => { Validator.TryValidateValue("dummy", ctx, results, null); }, "#A4"); }
public void ValidateObject_Object_ValidationContext_Bool_01() { var dummy = new DummyNoAttributes(); var ctx = new ValidationContext(dummy, null, null); AssertExtensions.Throws <ArgumentNullException> (() => { Validator.ValidateObject(null, ctx, false); }, "#A1-1"); AssertExtensions.Throws <ArgumentNullException> (() => { Validator.ValidateObject(dummy, null, false); }, "#A1-2"); try { Validator.ValidateObject(dummy, ctx, false); } catch (Exception ex) { Assert.Fail("#A2 (exception {0} thrown: {1})", ex.GetType(), ex.Message); } try { Validator.ValidateObject(dummy, ctx, true); } catch (Exception ex) { Assert.Fail("#A3 (exception {0} thrown: {1})", ex.GetType(), ex.Message); } }
public void ValidateValue_01() { var dummy = new DummyNoAttributes(); var ctx = new ValidationContext(dummy, null, null) { MemberName = "NameProperty" }; var attributes = new List <ValidationAttribute> (); try { Validator.ValidateValue(null, ctx, attributes); } catch (Exception ex) { Assert.Fail("#A1 (exception {0} thrown: {1})", ex.GetType(), ex.Message); } AssertExtensions.Throws <ArgumentNullException> (() => { Validator.ValidateValue("dummy", null, attributes); }, "#A2"); try { Validator.ValidateValue("dummy", ctx, attributes); } catch (Exception ex) { Assert.Fail("#A3 (exception {0} thrown: {1})", ex.GetType(), ex.Message); } AssertExtensions.Throws <ArgumentNullException> (() => { Validator.ValidateValue("dummy", ctx, null); }, "#A4"); }
public void TryValidateValue_02 () { var dummy = new DummyNoAttributes (); var ctx = new ValidationContext (dummy, null, null); var results = new List<ValidationResult> (); var log = new List<string> (); var attributes = new List<ValidationAttribute> () { new StringLengthAttributePoker (10, log) { MinimumLength = 2 }, new RequiredAttributePoker (log) }; bool valid = Validator.TryValidateValue (null, ctx, results, attributes); Assert.IsFalse (valid, "#A1-1"); Assert.AreEqual (1, results.Count, "#A1-2"); Assert.AreEqual (1, log.Count, "#A1-3"); Assert.IsTrue (log [0].StartsWith ("RequiredAttributePoker.IsValid (object)"), "#A1-4"); results.Clear (); log.Clear (); Assert.Throws<InvalidCastException> (() => { // Thrown by StringValidatorAttribute Validator.TryValidateValue (1234, ctx, results, attributes); }, "#A2-1"); Assert.AreEqual (0, results.Count, "#A2-2"); Assert.AreEqual (2, log.Count, "#A2-3"); Assert.IsTrue (log[0].StartsWith ("RequiredAttributePoker.IsValid (object)"), "#A2-4"); Assert.IsTrue (log[1].StartsWith ("StringLengthAttributePoker.IsValid (object)"), "#A2-5"); results.Clear (); log.Clear (); attributes.Add (new CustomValidationAttribute (typeof (ValidatorTest), "ValueValidationMethod")); attributes.Add (new CustomValidationAttribute (typeof (ValidatorTest), "ValueValidationMethod")); valid = Validator.TryValidateValue ("test", ctx, results, attributes); Assert.IsFalse (valid, "#A3-1"); Assert.AreEqual (2, results.Count, "#A3-2"); Assert.AreEqual (2, log.Count, "#A3-3"); Assert.IsTrue (log[0].StartsWith ("RequiredAttributePoker.IsValid (object)"), "#A3-4"); Assert.IsTrue (log[1].StartsWith ("StringLengthAttributePoker.IsValid (object)"), "#A3-5"); Assert.AreEqual ("ValueValidationMethod", results[0].ErrorMessage, "#A3-6"); Assert.AreEqual ("ValueValidationMethod", results[1].ErrorMessage, "#A3-7"); results.Clear (); log.Clear (); attributes.RemoveAt (2); attributes.RemoveAt (2); Assert.Throws<ArgumentNullException> (() => { Validator.TryValidateValue ("dummy", null, results, attributes); }, "#B1"); valid = Validator.TryValidateValue ("dummy", ctx, null, attributes); Assert.IsTrue (valid, "#B2-1"); Assert.AreEqual (0, results.Count, "#B2-2"); Assert.Throws<ArgumentNullException> (() => { Validator.TryValidateValue ("dummy", ctx, results, null); }, "#B3"); }
public Dummy() { NameField = "name"; NameProperty = "name"; RequiredDummyField = new DummyNoAttributes(); RequiredDummyProperty = new DummyNoAttributes(); MinMaxProperty = 5; AnotherCustomValidatedProperty = "I'm valid"; }
public void ValidateValue_02() { var dummy = new DummyNoAttributes(); var ctx = new ValidationContext(dummy, null, null); var log = new List <string> (); var attributes = new List <ValidationAttribute> () { new StringLengthAttributePoker(10, log) { MinimumLength = 2 }, new RequiredAttributePoker(log) }; AssertExtensions.Throws <ValidationException> (() => { Validator.ValidateValue(null, ctx, attributes); }, "#A1-1"); Assert.AreEqual(1, log.Count, "#A1-2"); Assert.IsTrue(log[0].StartsWith("RequiredAttributePoker.IsValid (object)"), "#A1-3"); log.Clear(); AssertExtensions.Throws <InvalidCastException> (() => { // Thrown by StringValidatorAttribute Validator.ValidateValue(1234, ctx, attributes); }, "#A2-1");; Assert.AreEqual(2, log.Count, "#A2-2"); Assert.IsTrue(log[0].StartsWith("RequiredAttributePoker.IsValid (object)"), "#A2-3"); Assert.IsTrue(log[1].StartsWith("StringLengthAttributePoker.IsValid (object)"), "#A2-4"); log.Clear(); attributes.Add(new CustomValidationAttribute(typeof(ValidatorTest), "ValueValidationMethod")); attributes.Add(new CustomValidationAttribute(typeof(ValidatorTest), "ValueValidationMethod")); AssertExtensions.Throws <ValidationException> (() => { Validator.ValidateValue("test", ctx, attributes); }, "#A3-1"); Assert.AreEqual(2, log.Count, "#A3-2"); Assert.IsTrue(log[0].StartsWith("RequiredAttributePoker.IsValid (object)"), "#A3-3"); Assert.IsTrue(log[1].StartsWith("StringLengthAttributePoker.IsValid (object)"), "#A3-4"); log.Clear(); attributes.RemoveAt(2); attributes.RemoveAt(2); AssertExtensions.Throws <ArgumentNullException> (() => { Validator.ValidateValue("dummy", null, attributes); }, "#B1"); try { Validator.ValidateValue("dummy", ctx, attributes); } catch (Exception ex) { Assert.Fail("#B2 (exception {0} thrown: {1})", ex.GetType(), ex.Message); } AssertExtensions.Throws <ArgumentNullException> (() => { Validator.ValidateValue("dummy", ctx, null); }, "#B3"); }
public void TryValidateObject_Object_ValidationContext_ICollection_01 () { var dummy = new DummyNoAttributes (); var ctx = new ValidationContext (dummy, null, null); var results = new List<ValidationResult> (); AssertExtensions.Throws<ArgumentNullException> (() => { Validator.TryValidateObject (null, ctx, results); }, "#A1-1"); AssertExtensions.Throws<ArgumentNullException> (() => { Validator.TryValidateObject (dummy, null, results); }, "#A1-2"); bool valid = Validator.TryValidateObject (dummy, ctx, null); Assert.IsTrue (valid, "#A2-1"); Assert.IsTrue (results.Count == 0, "#A2-2"); }
public void TryValidateObject_Object_ValidationContext_ICollection_01 () { var dummy = new DummyNoAttributes (); var ctx = new ValidationContext (dummy, null, null); var results = new List<ValidationResult> (); Assert.Throws<ArgumentNullException> (() => { Validator.TryValidateObject (null, ctx, results); }, "#A1-1"); Assert.Throws<ArgumentNullException> (() => { Validator.TryValidateObject (dummy, null, results); }, "#A1-2"); bool valid = Validator.TryValidateObject (dummy, ctx, null); Assert.IsTrue (valid, "#A2-1"); Assert.IsTrue (results.Count == 0, "#A2-2"); }
public void ValidateValue_01 () { var dummy = new DummyNoAttributes (); var ctx = new ValidationContext (dummy, null, null) { MemberName = "NameProperty" }; var attributes = new List<ValidationAttribute> (); try { Validator.ValidateValue (null, ctx, attributes); } catch (Exception ex) { Assert.Fail ("#A1 (exception {0} thrown: {1})", ex.GetType (), ex.Message); } AssertExtensions.Throws<ArgumentNullException> (() => { Validator.ValidateValue ("dummy", null, attributes); }, "#A2"); try { Validator.ValidateValue ("dummy", ctx, attributes); } catch (Exception ex) { Assert.Fail ("#A3 (exception {0} thrown: {1})", ex.GetType (), ex.Message); } AssertExtensions.Throws<ArgumentNullException> (() => { Validator.ValidateValue ("dummy", ctx, null); }, "#A4"); }
public void ValidateProperty() { var dummy = new DummyNoAttributes(); var ctx = new ValidationContext(dummy, null, null) { MemberName = "NameProperty" }; AssertExtensions.Throws <ArgumentException> (() => { Validator.ValidateProperty("dummy", ctx); }, "#A1-1"); AssertExtensions.Throws <ArgumentNullException> (() => { Validator.ValidateProperty("dummy", null); }, "#A1-2"); var dummy2 = new Dummy(); ctx = new ValidationContext(dummy2, null, null) { MemberName = "NameProperty" }; try { Validator.ValidateProperty(null, ctx); } catch (Exception ex) { Assert.Fail("#A2 (exception {0} thrown: {1})", ex.GetType(), ex.Message); } ctx = new ValidationContext(dummy2, null, null) { MemberName = "MinMaxProperty" }; AssertExtensions.Throws <ArgumentException> (() => { Validator.ValidateProperty(null, ctx); }, "#A3"); ctx = new ValidationContext(dummy2, null, null); AssertExtensions.Throws <ArgumentNullException> (() => { Validator.ValidateProperty("dummy", ctx); }, "#A4"); ctx = new ValidationContext(dummy2, null, null) { MemberName = String.Empty }; AssertExtensions.Throws <ArgumentNullException> (() => { Validator.ValidateProperty("dummy", ctx); }, "#A5"); dummy2 = new Dummy(); ctx = new ValidationContext(dummy2, null, null) { MemberName = "NameProperty" }; AssertExtensions.Throws <ArgumentException> (() => { Validator.ValidateProperty(1234, ctx); }, "#A6"); dummy2 = new Dummy(); ctx = new ValidationContext(dummy2, null, null) { MemberName = "NameProperty" }; AssertExtensions.Throws <ValidationException> (() => { Validator.ValidateProperty(String.Empty, ctx); }, "#A7"); AssertExtensions.Throws <ValidationException> (() => { Validator.ValidateProperty("this value is way too long", ctx); }, "#A8"); try { Validator.ValidateProperty("good value", ctx); } catch (Exception ex) { Assert.Fail("#A9 (exception {0} thrown: {1})", ex.GetType(), ex.Message); } dummy2 = new Dummy(); ctx = new ValidationContext(dummy2, null, null) { MemberName = "CustomValidatedProperty" }; AssertExtensions.Throws <ValidationException> (() => { Validator.ValidateProperty(String.Empty, ctx); }, "#A10"); AssertExtensions.Throws <ValidationException> (() => { Validator.ValidateProperty("fail", ctx); }, "#A11"); AssertExtensions.Throws <ValidationException> (() => { Validator.ValidateProperty("f", ctx); }, "#A12"); try { Validator.ValidateProperty("good value", ctx); } catch (Exception ex) { Assert.Fail("#A13 (exception {0} thrown: {1})", ex.GetType(), ex.Message); } }
public Dummy () { NameField = "name"; NameProperty = "name"; RequiredDummyField = new DummyNoAttributes (); RequiredDummyProperty = new DummyNoAttributes (); MinMaxProperty = 5; AnotherCustomValidatedProperty = "I'm valid"; }
public void TryValidateValue_01 () { var dummy = new DummyNoAttributes (); var ctx = new ValidationContext (dummy, null, null) { MemberName = "NameProperty" }; var results = new List<ValidationResult> (); var attributes = new List <ValidationAttribute> (); bool valid = Validator.TryValidateValue (null, ctx, results, attributes); Assert.IsTrue (valid, "#A1-1"); Assert.AreEqual (0, results.Count, "#A1-2"); AssertExtensions.Throws<ArgumentNullException> (() => { Validator.TryValidateValue ("dummy", null, results, attributes); }, "#A2"); valid = Validator.TryValidateValue ("dummy", ctx, null, attributes); Assert.IsTrue (valid, "#A3-1"); Assert.AreEqual (0, results.Count, "#A3-2"); AssertExtensions.Throws<ArgumentNullException> (() => { Validator.TryValidateValue ("dummy", ctx, results, null); }, "#A4"); }
public void TryValidateProperty () { var dummy = new DummyNoAttributes (); var ctx = new ValidationContext (dummy, null, null) { MemberName = "NameProperty" }; var results = new List<ValidationResult> (); AssertExtensions.Throws<ArgumentException> (() => { // MonoTests.System.ComponentModel.DataAnnotations.ValidatorTest.TryValidateProperty: // System.ArgumentException : The type 'DummyNoAttributes' does not contain a public property named 'NameProperty'. // Parameter name: propertyName // // at System.ComponentModel.DataAnnotations.ValidationAttributeStore.TypeStoreItem.GetPropertyStoreItem(String propertyName) // at System.ComponentModel.DataAnnotations.ValidationAttributeStore.GetPropertyType(ValidationContext validationContext) // at System.ComponentModel.DataAnnotations.Validator.TryValidateProperty(Object value, ValidationContext validationContext, ICollection`1 validationResults) // at MonoTests.System.ComponentModel.DataAnnotations.ValidatorTest.TryValidateProperty() in C:\Users\grendel\Documents\Visual Studio 2010\Projects\System.Web.Test\System.Web.Test\System.ComponentModel.DataAnnotations\ValidatorTest.cs:line 283 Validator.TryValidateProperty ("dummy", ctx, results); }, "#A1-1"); Assert.AreEqual (0, results.Count, "#A1-2"); AssertExtensions.Throws<ArgumentNullException> (() => { Validator.TryValidateProperty ("dummy", null, results); }, "#A1-2"); var dummy2 = new Dummy (); ctx = new ValidationContext (dummy2, null, null) { MemberName = "NameProperty" }; bool valid = Validator.TryValidateProperty (null, ctx, results); Assert.IsTrue (valid, "#A1-3"); Assert.AreEqual (0, results.Count, "#A1-4"); ctx = new ValidationContext (dummy2, null, null) { MemberName = "MinMaxProperty" }; AssertExtensions.Throws<ArgumentException> (() => { Validator.TryValidateProperty (null, ctx, results); }, "#A1-5"); ctx = new ValidationContext (dummy2, null, null); AssertExtensions.Throws<ArgumentNullException> (() => { // MonoTests.System.ComponentModel.DataAnnotations.ValidatorTest.TryValidateProperty: // System.ArgumentNullException : Value cannot be null. // Parameter name: propertyName // // at System.ComponentModel.DataAnnotations.ValidationAttributeStore.TypeStoreItem.TryGetPropertyStoreItem(String propertyName, PropertyStoreItem& item) // at System.ComponentModel.DataAnnotations.ValidationAttributeStore.TypeStoreItem.GetPropertyStoreItem(String propertyName) // at System.ComponentModel.DataAnnotations.ValidationAttributeStore.GetPropertyType(ValidationContext validationContext) // at System.ComponentModel.DataAnnotations.Validator.TryValidateProperty(Object value, ValidationContext validationContext, ICollection`1 validationResults) // at MonoTests.System.ComponentModel.DataAnnotations.ValidatorTest.TryValidateProperty() in C:\Users\grendel\Documents\Visual Studio 2010\Projects\System.Web.Test\System.Web.Test\System.ComponentModel.DataAnnotations\ValidatorTest.cs:line 289 Validator.TryValidateProperty ("dummy", ctx, results); }, "#A2-1"); Assert.AreEqual (0, results.Count, "#A2-2"); ctx = new ValidationContext (dummy2, null, null) { MemberName = String.Empty }; AssertExtensions.Throws<ArgumentNullException> (() => { // MonoTests.System.ComponentModel.DataAnnotations.ValidatorTest.TryValidateProperty: // System.ArgumentNullException : Value cannot be null. // Parameter name: propertyName // // at System.ComponentModel.DataAnnotations.ValidationAttributeStore.TypeStoreItem.TryGetPropertyStoreItem(String propertyName, PropertyStoreItem& item) // at System.ComponentModel.DataAnnotations.ValidationAttributeStore.TypeStoreItem.GetPropertyStoreItem(String propertyName) // at System.ComponentModel.DataAnnotations.ValidationAttributeStore.GetPropertyType(ValidationContext validationContext) // at System.ComponentModel.DataAnnotations.Validator.TryValidateProperty(Object value, ValidationContext validationContext, ICollection`1 validationResults) // at MonoTests.System.ComponentModel.DataAnnotations.ValidatorTest.TryValidateProperty() in C:\Users\grendel\Documents\Visual Studio 2010\Projects\System.Web.Test\System.Web.Test\System.ComponentModel.DataAnnotations\ValidatorTest.cs:line 289 Validator.TryValidateProperty ("dummy", ctx, results); }, "#A2-2"); Assert.AreEqual (0, results.Count, "#A2-2"); dummy2 = new Dummy (); ctx = new ValidationContext (dummy2, null, null) { MemberName = "NameProperty" }; AssertExtensions.Throws<ArgumentException> (() => { // MonoTests.System.ComponentModel.DataAnnotations.ValidatorTest.TryValidateProperty: // System.ArgumentException : The value for property 'NameProperty' must be of type 'System.String'. // Parameter name: value // // at System.ComponentModel.DataAnnotations.Validator.EnsureValidPropertyType(String propertyName, Type propertyType, Object value) // at System.ComponentModel.DataAnnotations.Validator.TryValidateProperty(Object value, ValidationContext validationContext, ICollection`1 validationResults) // at MonoTests.System.ComponentModel.DataAnnotations.ValidatorTest.TryValidateProperty() in C:\Users\grendel\Documents\Visual Studio 2010\Projects\System.Web.Test\System.Web.Test\System.ComponentModel.DataAnnotations\ValidatorTest.cs:line 315 Validator.TryValidateProperty (1234, ctx, results); }, "#A3-1"); Assert.AreEqual (0, results.Count, "#A3-2"); dummy2 = new Dummy (); ctx = new ValidationContext (dummy2, null, null) { MemberName = "NameProperty" }; valid = Validator.TryValidateProperty (String.Empty, ctx, results); Assert.IsFalse (valid, "#A4-1"); Assert.AreEqual (1, results.Count, "#A4-2"); results.Clear (); valid = Validator.TryValidateProperty ("this value is way too long", ctx, results); Assert.IsFalse (valid, "#A4-3"); Assert.AreEqual (1, results.Count, "#A4-4"); results.Clear (); valid = Validator.TryValidateProperty ("good value", ctx, results); Assert.IsTrue (valid, "#A4-5"); Assert.AreEqual (0, results.Count, "#A4-6"); dummy2 = new Dummy (); ctx = new ValidationContext (dummy2, null, null) { MemberName = "CustomValidatedProperty" }; valid = Validator.TryValidateProperty (String.Empty, ctx, results); Assert.IsFalse (valid, "#A5-1"); Assert.AreEqual (1, results.Count, "#A5-2"); results.Clear (); valid = Validator.TryValidateProperty ("fail", ctx, results); Assert.IsFalse (valid, "#A5-3"); Assert.AreEqual (1, results.Count, "#A5-4"); results.Clear (); valid = Validator.TryValidateProperty ("f", ctx, results); Assert.IsFalse (valid, "#A5-5"); Assert.AreEqual (2, results.Count, "#A5-6"); results.Clear (); valid = Validator.TryValidateProperty ("good value", ctx, results); Assert.IsTrue (valid, "#A5-7"); Assert.AreEqual (0, results.Count, "#A5-8"); }
public void TryValidateProperty() { var dummy = new DummyNoAttributes(); var ctx = new ValidationContext(dummy, null, null) { MemberName = "NameProperty" }; var results = new List <ValidationResult> (); AssertExtensions.Throws <ArgumentException> (() => { // MonoTests.System.ComponentModel.DataAnnotations.ValidatorTest.TryValidateProperty: // System.ArgumentException : The type 'DummyNoAttributes' does not contain a public property named 'NameProperty'. // Parameter name: propertyName // // at System.ComponentModel.DataAnnotations.ValidationAttributeStore.TypeStoreItem.GetPropertyStoreItem(String propertyName) // at System.ComponentModel.DataAnnotations.ValidationAttributeStore.GetPropertyType(ValidationContext validationContext) // at System.ComponentModel.DataAnnotations.Validator.TryValidateProperty(Object value, ValidationContext validationContext, ICollection`1 validationResults) // at MonoTests.System.ComponentModel.DataAnnotations.ValidatorTest.TryValidateProperty() in C:\Users\grendel\Documents\Visual Studio 2010\Projects\System.Web.Test\System.Web.Test\System.ComponentModel.DataAnnotations\ValidatorTest.cs:line 283 Validator.TryValidateProperty("dummy", ctx, results); }, "#A1-1"); Assert.AreEqual(0, results.Count, "#A1-2"); AssertExtensions.Throws <ArgumentNullException> (() => { Validator.TryValidateProperty("dummy", null, results); }, "#A1-2"); var dummy2 = new Dummy(); ctx = new ValidationContext(dummy2, null, null) { MemberName = "NameProperty" }; bool valid = Validator.TryValidateProperty(null, ctx, results); Assert.IsTrue(valid, "#A1-3"); Assert.AreEqual(0, results.Count, "#A1-4"); ctx = new ValidationContext(dummy2, null, null) { MemberName = "MinMaxProperty" }; AssertExtensions.Throws <ArgumentException> (() => { Validator.TryValidateProperty(null, ctx, results); }, "#A1-5"); ctx = new ValidationContext(dummy2, null, null); AssertExtensions.Throws <ArgumentNullException> (() => { // MonoTests.System.ComponentModel.DataAnnotations.ValidatorTest.TryValidateProperty: // System.ArgumentNullException : Value cannot be null. // Parameter name: propertyName // // at System.ComponentModel.DataAnnotations.ValidationAttributeStore.TypeStoreItem.TryGetPropertyStoreItem(String propertyName, PropertyStoreItem& item) // at System.ComponentModel.DataAnnotations.ValidationAttributeStore.TypeStoreItem.GetPropertyStoreItem(String propertyName) // at System.ComponentModel.DataAnnotations.ValidationAttributeStore.GetPropertyType(ValidationContext validationContext) // at System.ComponentModel.DataAnnotations.Validator.TryValidateProperty(Object value, ValidationContext validationContext, ICollection`1 validationResults) // at MonoTests.System.ComponentModel.DataAnnotations.ValidatorTest.TryValidateProperty() in C:\Users\grendel\Documents\Visual Studio 2010\Projects\System.Web.Test\System.Web.Test\System.ComponentModel.DataAnnotations\ValidatorTest.cs:line 289 Validator.TryValidateProperty("dummy", ctx, results); }, "#A2-1"); Assert.AreEqual(0, results.Count, "#A2-2"); ctx = new ValidationContext(dummy2, null, null) { MemberName = String.Empty }; AssertExtensions.Throws <ArgumentNullException> (() => { // MonoTests.System.ComponentModel.DataAnnotations.ValidatorTest.TryValidateProperty: // System.ArgumentNullException : Value cannot be null. // Parameter name: propertyName // // at System.ComponentModel.DataAnnotations.ValidationAttributeStore.TypeStoreItem.TryGetPropertyStoreItem(String propertyName, PropertyStoreItem& item) // at System.ComponentModel.DataAnnotations.ValidationAttributeStore.TypeStoreItem.GetPropertyStoreItem(String propertyName) // at System.ComponentModel.DataAnnotations.ValidationAttributeStore.GetPropertyType(ValidationContext validationContext) // at System.ComponentModel.DataAnnotations.Validator.TryValidateProperty(Object value, ValidationContext validationContext, ICollection`1 validationResults) // at MonoTests.System.ComponentModel.DataAnnotations.ValidatorTest.TryValidateProperty() in C:\Users\grendel\Documents\Visual Studio 2010\Projects\System.Web.Test\System.Web.Test\System.ComponentModel.DataAnnotations\ValidatorTest.cs:line 289 Validator.TryValidateProperty("dummy", ctx, results); }, "#A2-2"); Assert.AreEqual(0, results.Count, "#A2-2"); dummy2 = new Dummy(); ctx = new ValidationContext(dummy2, null, null) { MemberName = "NameProperty" }; AssertExtensions.Throws <ArgumentException> (() => { // MonoTests.System.ComponentModel.DataAnnotations.ValidatorTest.TryValidateProperty: // System.ArgumentException : The value for property 'NameProperty' must be of type 'System.String'. // Parameter name: value // // at System.ComponentModel.DataAnnotations.Validator.EnsureValidPropertyType(String propertyName, Type propertyType, Object value) // at System.ComponentModel.DataAnnotations.Validator.TryValidateProperty(Object value, ValidationContext validationContext, ICollection`1 validationResults) // at MonoTests.System.ComponentModel.DataAnnotations.ValidatorTest.TryValidateProperty() in C:\Users\grendel\Documents\Visual Studio 2010\Projects\System.Web.Test\System.Web.Test\System.ComponentModel.DataAnnotations\ValidatorTest.cs:line 315 Validator.TryValidateProperty(1234, ctx, results); }, "#A3-1"); Assert.AreEqual(0, results.Count, "#A3-2"); dummy2 = new Dummy(); ctx = new ValidationContext(dummy2, null, null) { MemberName = "NameProperty" }; valid = Validator.TryValidateProperty(String.Empty, ctx, results); Assert.IsFalse(valid, "#A4-1"); Assert.AreEqual(1, results.Count, "#A4-2"); results.Clear(); valid = Validator.TryValidateProperty("this value is way too long", ctx, results); Assert.IsFalse(valid, "#A4-3"); Assert.AreEqual(1, results.Count, "#A4-4"); results.Clear(); valid = Validator.TryValidateProperty("good value", ctx, results); Assert.IsTrue(valid, "#A4-5"); Assert.AreEqual(0, results.Count, "#A4-6"); dummy2 = new Dummy(); ctx = new ValidationContext(dummy2, null, null) { MemberName = "CustomValidatedProperty" }; valid = Validator.TryValidateProperty(String.Empty, ctx, results); Assert.IsFalse(valid, "#A5-1"); Assert.AreEqual(1, results.Count, "#A5-2"); results.Clear(); valid = Validator.TryValidateProperty("fail", ctx, results); Assert.IsFalse(valid, "#A5-3"); Assert.AreEqual(1, results.Count, "#A5-4"); results.Clear(); valid = Validator.TryValidateProperty("f", ctx, results); Assert.IsFalse(valid, "#A5-5"); Assert.AreEqual(2, results.Count, "#A5-6"); results.Clear(); valid = Validator.TryValidateProperty("good value", ctx, results); Assert.IsTrue(valid, "#A5-7"); Assert.AreEqual(0, results.Count, "#A5-8"); }
public void TryValidateValue_02 () { var dummy = new DummyNoAttributes (); var ctx = new ValidationContext (dummy, null, null); var results = new List<ValidationResult> (); var log = new List<string> (); var attributes = new List<ValidationAttribute> () { new StringLengthAttributePoker (10, log) { MinimumLength = 2 }, new RequiredAttributePoker (log) }; bool valid = Validator.TryValidateValue (null, ctx, results, attributes); Assert.IsFalse (valid, "#A1-1"); Assert.AreEqual (1, results.Count, "#A1-2"); Assert.AreEqual (1, log.Count, "#A1-3"); Assert.IsTrue (log [0].StartsWith ("RequiredAttributePoker.IsValid (object)"), "#A1-4"); results.Clear (); log.Clear (); AssertExtensions.Throws<InvalidCastException> (() => { // Thrown by StringValidatorAttribute Validator.TryValidateValue (1234, ctx, results, attributes); }, "#A2-1"); Assert.AreEqual (0, results.Count, "#A2-2"); Assert.AreEqual (2, log.Count, "#A2-3"); Assert.IsTrue (log[0].StartsWith ("RequiredAttributePoker.IsValid (object)"), "#A2-4"); Assert.IsTrue (log[1].StartsWith ("StringLengthAttributePoker.IsValid (object)"), "#A2-5"); results.Clear (); log.Clear (); attributes.Add (new CustomValidationAttribute (typeof (ValidatorTest), "ValueValidationMethod")); attributes.Add (new CustomValidationAttribute (typeof (ValidatorTest), "ValueValidationMethod")); valid = Validator.TryValidateValue ("test", ctx, results, attributes); Assert.IsFalse (valid, "#A3-1"); Assert.AreEqual (2, results.Count, "#A3-2"); Assert.AreEqual (2, log.Count, "#A3-3"); Assert.IsTrue (log[0].StartsWith ("RequiredAttributePoker.IsValid (object)"), "#A3-4"); Assert.IsTrue (log[1].StartsWith ("StringLengthAttributePoker.IsValid (object)"), "#A3-5"); Assert.AreEqual ("ValueValidationMethod", results[0].ErrorMessage, "#A3-6"); Assert.AreEqual ("ValueValidationMethod", results[1].ErrorMessage, "#A3-7"); results.Clear (); log.Clear (); attributes.RemoveAt (2); attributes.RemoveAt (2); AssertExtensions.Throws<ArgumentNullException> (() => { Validator.TryValidateValue ("dummy", null, results, attributes); }, "#B1"); valid = Validator.TryValidateValue ("dummy", ctx, null, attributes); Assert.IsTrue (valid, "#B2-1"); Assert.AreEqual (0, results.Count, "#B2-2"); AssertExtensions.Throws<ArgumentNullException> (() => { Validator.TryValidateValue ("dummy", ctx, results, null); }, "#B3"); }
public void ValidateValue_02 () { var dummy = new DummyNoAttributes (); var ctx = new ValidationContext (dummy, null, null); var log = new List<string> (); var attributes = new List<ValidationAttribute> () { new StringLengthAttributePoker (10, log) { MinimumLength = 2 }, new RequiredAttributePoker (log) }; AssertExtensions.Throws<ValidationException> (() => { Validator.ValidateValue (null, ctx, attributes); }, "#A1-1"); Assert.AreEqual (1, log.Count, "#A1-2"); Assert.IsTrue (log[0].StartsWith ("RequiredAttributePoker.IsValid (object)"), "#A1-3"); log.Clear (); AssertExtensions.Throws<InvalidCastException> (() => { // Thrown by StringValidatorAttribute Validator.ValidateValue (1234, ctx, attributes); }, "#A2-1");; Assert.AreEqual (2, log.Count, "#A2-2"); Assert.IsTrue (log[0].StartsWith ("RequiredAttributePoker.IsValid (object)"), "#A2-3"); Assert.IsTrue (log[1].StartsWith ("StringLengthAttributePoker.IsValid (object)"), "#A2-4"); log.Clear (); attributes.Add (new CustomValidationAttribute (typeof (ValidatorTest), "ValueValidationMethod")); attributes.Add (new CustomValidationAttribute (typeof (ValidatorTest), "ValueValidationMethod")); AssertExtensions.Throws<ValidationException> (() => { Validator.ValidateValue ("test", ctx, attributes); }, "#A3-1"); Assert.AreEqual (2, log.Count, "#A3-2"); Assert.IsTrue (log[0].StartsWith ("RequiredAttributePoker.IsValid (object)"), "#A3-3"); Assert.IsTrue (log[1].StartsWith ("StringLengthAttributePoker.IsValid (object)"), "#A3-4"); log.Clear (); attributes.RemoveAt (2); attributes.RemoveAt (2); AssertExtensions.Throws<ArgumentNullException> (() => { Validator.ValidateValue ("dummy", null, attributes); }, "#B1"); try { Validator.ValidateValue ("dummy", ctx, attributes); } catch (Exception ex) { Assert.Fail ("#B2 (exception {0} thrown: {1})", ex.GetType (), ex.Message); } AssertExtensions.Throws<ArgumentNullException> (() => { Validator.ValidateValue ("dummy", ctx, null); }, "#B3"); }
public void ValidateObject_Object_ValidationContext_Bool_01 () { var dummy = new DummyNoAttributes (); var ctx = new ValidationContext (dummy, null, null); AssertExtensions.Throws<ArgumentNullException> (() => { Validator.ValidateObject (null, ctx, false); }, "#A1-1"); AssertExtensions.Throws<ArgumentNullException> (() => { Validator.ValidateObject (dummy, null, false); }, "#A1-2"); try { Validator.ValidateObject (dummy, ctx, false); } catch (Exception ex) { Assert.Fail ("#A2 (exception {0} thrown: {1})", ex.GetType (), ex.Message); } try { Validator.ValidateObject (dummy, ctx, true); } catch (Exception ex) { Assert.Fail ("#A3 (exception {0} thrown: {1})", ex.GetType (), ex.Message); } }
public void ValidateProperty () { var dummy = new DummyNoAttributes (); var ctx = new ValidationContext (dummy, null, null) { MemberName = "NameProperty" }; AssertExtensions.Throws<ArgumentException> (() => { Validator.ValidateProperty ("dummy", ctx); }, "#A1-1"); AssertExtensions.Throws<ArgumentNullException> (() => { Validator.ValidateProperty ("dummy", null); }, "#A1-2"); var dummy2 = new Dummy (); ctx = new ValidationContext (dummy2, null, null) { MemberName = "NameProperty" }; try { Validator.ValidateProperty (null, ctx); } catch (Exception ex) { Assert.Fail ("#A2 (exception {0} thrown: {1})", ex.GetType (), ex.Message); } ctx = new ValidationContext (dummy2, null, null) { MemberName = "MinMaxProperty" }; AssertExtensions.Throws<ArgumentException> (() => { Validator.ValidateProperty (null, ctx); }, "#A3"); ctx = new ValidationContext (dummy2, null, null); AssertExtensions.Throws<ArgumentNullException> (() => { Validator.ValidateProperty ("dummy", ctx); }, "#A4"); ctx = new ValidationContext (dummy2, null, null) { MemberName = String.Empty }; AssertExtensions.Throws<ArgumentNullException> (() => { Validator.ValidateProperty ("dummy", ctx); }, "#A5"); dummy2 = new Dummy (); ctx = new ValidationContext (dummy2, null, null) { MemberName = "NameProperty" }; AssertExtensions.Throws<ArgumentException> (() => { Validator.ValidateProperty (1234, ctx); }, "#A6"); dummy2 = new Dummy (); ctx = new ValidationContext (dummy2, null, null) { MemberName = "NameProperty" }; AssertExtensions.Throws<ValidationException> (() => { Validator.ValidateProperty (String.Empty, ctx); }, "#A7"); AssertExtensions.Throws<ValidationException> (() => { Validator.ValidateProperty ("this value is way too long", ctx); }, "#A8"); try { Validator.ValidateProperty ("good value", ctx); } catch (Exception ex) { Assert.Fail ("#A9 (exception {0} thrown: {1})", ex.GetType (), ex.Message); } dummy2 = new Dummy (); ctx = new ValidationContext (dummy2, null, null) { MemberName = "CustomValidatedProperty" }; AssertExtensions.Throws<ValidationException> (() => { Validator.ValidateProperty (String.Empty, ctx); }, "#A10"); AssertExtensions.Throws<ValidationException> (() => { Validator.ValidateProperty ("fail", ctx); }, "#A11"); AssertExtensions.Throws<ValidationException> (() => { Validator.ValidateProperty ("f", ctx); }, "#A12"); try { Validator.ValidateProperty ("good value", ctx); } catch (Exception ex) { Assert.Fail ("#A13 (exception {0} thrown: {1})", ex.GetType (), ex.Message); } }