public void TestNestingCollectionValidator() { Society soc = new Society(); soc.Members.Add(new Inventor("Nikola Tesla", new DateTime(1856, 7, 9), "Serbian")); soc.Members.Add(new Inventor("Mihajlo Pupin", new DateTime(1854, 10, 9), "Serbian")); RequiredValidator req = new RequiredValidator("Name", "true"); RegularExpressionValidator reg = new RegularExpressionValidator("Name", "true", @"[a-z]*\s[a-z]*"); reg.Options = RegexOptions.IgnoreCase; CollectionValidator validator = new CollectionValidator(); validator.Validators.Add(req); validator.Validators.Add(reg); validator.Context = Expression.Parse("Members"); Assert.IsTrue(validator.Validate(soc, new ValidationErrors())); validator.Context = null; Assert.IsTrue(validator.Validate(soc.Members, new ValidationErrors())); }
public void TestWithNull() { CollectionValidator validator = new CollectionValidator(); //This should cause the ArgumentException because we passed null into Validate method Assert.IsTrue(validator.Validate(null, new ValidationErrors())); }
public void TestDifferentCollectionTypes() { const string xml = @"<?xml version='1.0' encoding='UTF-8' ?> <objects xmlns='http://www.springframework.net' xmlns:v='http://www.springframework.net/validation'> <v:group id='validatePerson' when='T(Spring.Objects.TestObject) == #this.GetType()'> <v:required id ='req' when='true' test='Name'/> <v:regex id ='reg' test='Name'> <v:property name='Expression' value='[a-z]*\s[a-z]*'/> <v:property name='Options' value='IgnoreCase'/> <v:message id='reg1' providers='regularni' when='true'> <v:param value='#this.ToString()'/> </v:message> </v:regex> </v:group> <v:collection id='collectionValidator' validate-all='true'> <v:ref name='validatePerson'/> </v:collection> </objects>"; MemoryStream stream = new MemoryStream(new UTF8Encoding().GetBytes(xml)); IResource resource = new InputStreamResource(stream, "collectionValidator"); XmlObjectFactory objectFactory = new XmlObjectFactory(resource, null); CollectionValidator validator = (CollectionValidator)objectFactory.GetObject("collectionValidator"); IList listPersons = new ArrayList(); IDictionary dictPersons = new Hashtable(); ISet setPersons = new ListSet(); listPersons.Add(new TestObject("DAMJAN Tomic", 24)); listPersons.Add(new TestObject("Goran Milosavljevic", 24)); listPersons.Add(new TestObject("Ivan CIKIC", 28)); dictPersons.Add(1, listPersons[0]); dictPersons.Add(2, listPersons[1]); dictPersons.Add(3, listPersons[2]); setPersons.AddAll(listPersons); IValidationErrors ve = new ValidationErrors(); Assert.IsTrue(validator.Validate(listPersons, ve)); Assert.IsTrue(ve.IsEmpty); Assert.IsTrue(validator.Validate(dictPersons, ve)); Assert.IsTrue(ve.IsEmpty); Assert.IsTrue(validator.Validate(setPersons, ve)); Assert.IsTrue(ve.IsEmpty); }
public void TestWithWrongArgumentType() { RequiredValidator req = new RequiredValidator("Name", "true"); CollectionValidator validator = new CollectionValidator(); validator.Validators.Add(req); TestObject tObj = new TestObject("Damjan Tomic", 24); //This should cause the ArgumentException because tObj is not a Collection Assert.IsTrue(validator.Validate(tObj, new ValidationErrors())); }
public void TestCollection() { IList persons = new ArrayList(); persons.Add(new TestObject("Damjan Tomic", 24)); persons.Add(new TestObject("Goran Milosavljevic", 24)); persons.Add(new TestObject("Ivan Cikic", 28)); RequiredValidator req = new RequiredValidator("Name", "true"); RegularExpressionValidator reg = new RegularExpressionValidator("Name", "true", @"[a-z]*\s[a-z]*"); reg.Options = RegexOptions.IgnoreCase; CollectionValidator validator = new CollectionValidator(); validator.Validators.Add(req); validator.Validators.Add(reg); Assert.IsTrue(validator.Validate(persons, new ValidationErrors())); }
public void TestCollection() { IList persons = new ArrayList(); persons.Add(new TestObject("Damjan Tomic", 24)); persons.Add(new TestObject("Goran Milosavljevic", 24)); persons.Add(new TestObject("Ivan Cikic", 28)); RequiredValidator req = new RequiredValidator("Name", "true"); RegularExpressionValidator reg = new RegularExpressionValidator("Name", "true", @"[a-z]*\s[a-z]*"); reg.Options = RegexOptions.IgnoreCase; CollectionValidator validator = new CollectionValidator(); validator.Validators.Add(req); validator.Validators.Add(reg); Assert.IsTrue(validator.Validate(persons, new ValidationErrors())); }
public void TestValidationErrorsAreCollected() { IList persons = new ArrayList(); persons.Add(new TestObject(null, 24)); persons.Add(new TestObject("Goran Milosavljevic", 24)); persons.Add(new TestObject("Ivan Cikic", 28)); persons.Add(new TestObject(null, 20)); RequiredValidator req = new RequiredValidator("Name", "true"); req.Actions.Add(new ErrorMessageAction("1", new string[] { "firstProvider", "secondProvider" })); CollectionValidator validator = new CollectionValidator(true, true); validator.Validators.Add(req); IValidationErrors ve = new ValidationErrors(); Assert.IsFalse(validator.Validate(persons, ve)); Assert.IsFalse(ve.IsEmpty); }
public void TestNestingCollectionValidator() { Society soc = new Society(); soc.Members.Add(new Inventor("Nikola Tesla", new DateTime(1856, 7, 9), "Serbian")); soc.Members.Add(new Inventor("Mihajlo Pupin", new DateTime(1854, 10, 9), "Serbian")); RequiredValidator req = new RequiredValidator("Name", "true"); RegularExpressionValidator reg = new RegularExpressionValidator("Name", "true", @"[a-z]*\s[a-z]*"); reg.Options = RegexOptions.IgnoreCase; CollectionValidator validator = new CollectionValidator(); validator.Validators.Add(req); validator.Validators.Add(reg); validator.Context = Expression.Parse("Members"); Assert.IsTrue(validator.Validate(soc, new ValidationErrors())); validator.Context = null; Assert.IsTrue(validator.Validate(soc.Members, new ValidationErrors())); }
public void TestWithNull() { CollectionValidator validator = new CollectionValidator(); //This should cause the ArgumentException because we passed null into Validate method Assert.IsTrue(validator.Validate(null, new ValidationErrors())); }
public void TestValidationErrorsAreCollected() { IList persons = new ArrayList(); persons.Add(new TestObject(null, 24)); persons.Add(new TestObject("Goran Milosavljevic", 24)); persons.Add(new TestObject("Ivan Cikic", 28)); persons.Add(new TestObject(null, 20)); RequiredValidator req = new RequiredValidator("Name", "true"); req.Actions.Add(new ErrorMessageAction("1", new string[] { "firstProvider", "secondProvider" })); CollectionValidator validator = new CollectionValidator(true,true); validator.Validators.Add(req); IValidationErrors ve = new ValidationErrors(); Assert.IsFalse(validator.Validate(persons, ve)); Assert.IsFalse(ve.IsEmpty); }
public void TestWithWrongArgumentType() { RequiredValidator req = new RequiredValidator("Name", "true"); CollectionValidator validator = new CollectionValidator(); validator.Validators.Add(req); TestObject tObj = new TestObject("Damjan Tomic", 24); //This should cause the ArgumentException because tObj is not a Collection Assert.IsTrue(validator.Validate(tObj, new ValidationErrors())); }