public void NullAttributesPassedToConstructorIsIgnored()
        {
            UniquePropertyCollectionValidator <ThePropertyClass> target =
                new UniquePropertyCollectionValidator <ThePropertyClass>((NameValueCollection)null);

            Assert.AreEqual("Name", target.UniquePropertyName);
        }
        public void CollectionWithEmptyPropertyElementsPasses()
        {
            UniquePropertyCollectionValidator <ThePropertyClass> target =
                new UniquePropertyCollectionValidator <ThePropertyClass>("Property");

            List <ThePropertyClass> coll = new List <ThePropertyClass>();

            coll.Add(new ThePropertyClass(null));
            coll.Add(new ThePropertyClass(""));

            ValidationResults results = target.Validate(coll);

            Assert.IsTrue(results.IsValid);
        }
        public void CollectionWithDuplicateNamedElementsFails()
        {
            UniquePropertyCollectionValidator <ThePropertyClass> target =
                new UniquePropertyCollectionValidator <ThePropertyClass>("Property");

            List <ThePropertyClass> coll = new List <ThePropertyClass>();

            coll.Add(new ThePropertyClass("same"));
            coll.Add(new ThePropertyClass("same"));

            ValidationResults       result  = target.Validate(coll);
            List <ValidationResult> results = new List <ValidationResult>(result);

            Assert.IsFalse(result.IsValid);
            Assert.AreEqual(1, results.Count);
        }
        public void CollectionWithDuplicateNamedElementsFailsWhenInitializedUsingAttributes()
        {
            NameValueCollection attributes = new NameValueCollection();

            attributes.Add("collectionElementUniqueIdProperty", "Property");
            UniquePropertyCollectionValidator <ThePropertyClass> target =
                new UniquePropertyCollectionValidator <ThePropertyClass>(attributes);

            List <ThePropertyClass> coll = new List <ThePropertyClass>();

            coll.Add(new ThePropertyClass("same"));
            coll.Add(new ThePropertyClass("same"));

            ValidationResults       result  = target.Validate(coll);
            List <ValidationResult> results = new List <ValidationResult>(result);

            Assert.IsFalse(result.IsValid);
            Assert.AreEqual(1, results.Count);
        }
        public void CollectionWithCaseSensitiveDuplicateNamedElementsPass()
        {
            NameValueCollection attributes = new NameValueCollection();

            attributes.Add("collectionElementUniqueIdProperty", "Property");
            attributes.Add("caseSensitive", "true");
            UniquePropertyCollectionValidator <ThePropertyClass> target =
                new UniquePropertyCollectionValidator <ThePropertyClass>(attributes);

            List <ThePropertyClass> coll = new List <ThePropertyClass>();

            coll.Add(new ThePropertyClass("Same"));
            coll.Add(new ThePropertyClass("same"));

            ValidationResults       result  = target.Validate(coll);
            List <ValidationResult> results = new List <ValidationResult>(result);

            Assert.IsTrue(result.IsValid);
            Assert.AreEqual(0, results.Count);
        }