public void TestWrongObjectNum2WithStopOnError()
        {
            var s1pf             = new Simple1Field1Property();
            var v                = new Core.Validator();
            ValidationResult res = v.ValidateObject(s1pf, ValidationFlags.StopOnFirstError);

            Assert.IsFalse(res, "Object does not validate well");
            Assert.AreEqual(1, res.ErrorMessages.Count, "Wrong number of error detected");
        }
        public void TestScanForSinglePropertyAndSingleField()
        {
            var obj = new Simple1Field1Property();
            var ts  = new TypeScanner(obj.GetType());
            ValidationUnitCollection vc = ts.Scan();

            Assert.AreEqual(2, vc.Count, "Wrong Number of Attributes scanned");
            Assert.That(((SingleValidatorValidationUnit)vc[0]).Validator, Is.InstanceOf(typeof(RequiredValidator)), "Wrong Attribute Type");
            Assert.That(((SingleValidatorValidationUnit)vc[1]).Validator, Is.InstanceOf(typeof(RequiredValidator)), "Wrong Attribute Type");
        }
        public void TestWrongObjectNum2()
        {
            var s1pf             = new Simple1Field1Property();
            var v                = new Core.Validator();
            ValidationResult res = v.ValidateObject(s1pf);

            Assert.IsFalse(res, "Object does not validate well");
            Assert.AreEqual(2, res.ErrorMessages.Count, "Wrong number of error detected");
            Assert.IsTrue(res.ErrorMessages.Contains(cAlternativeErrorMessage));
            Assert.IsTrue(res.ErrorMessages.Contains(cSimpleErrorMessage));
        }
        public void TestWrongObjectNum1()
        {
            var s1pf = new Simple1Field1Property();

            s1pf.Property = cDefaultValueSimple1Property;
            s1pf.field    = "notnullvalue";
            var v = new Core.Validator();
            ValidationResult res = v.ValidateObject(s1pf);

            Assert.IsFalse(res, "Object does not validate well");
            Assert.AreEqual(1, res.ErrorMessages.Count, "Wrong number of error detected");
            Assert.AreEqual(cAlternativeErrorMessage, res.ErrorMessages[0]);
        }
        public void VerifyWithCustomValidationCAnSelectPropertyName()
        {
            var s1pf = new Simple1Field1Property()
            {
                field = "a", Property = "b"
            };
            var v = new Core.Validator();

            v.AddRule(Rule.For <Simple1Field1Property>(l => l, "Property")
                      .Custom <Simple1Field1Property>(l => l.Property == "bla bla bla")
                      .Message("Property is not equal to bla bla bla"));

            var res = v.ValidateObject(s1pf);

            Assert.That(res.Errors[0].SourceName, Is.EqualTo("Property"));
        }
		public void TestScanForSinglePropertyAndSingleField()
		{
			var obj = new Simple1Field1Property();
			var ts = new TypeScanner(obj.GetType());
			ValidationUnitCollection vc = ts.Scan();
			Assert.AreEqual(2, vc.Count, "Wrong Number of Attributes scanned");
			Assert.That(((SingleValidatorValidationUnit)vc[0]).Validator, Is.InstanceOf(typeof(RequiredValidator)), "Wrong Attribute Type");
			Assert.That(((SingleValidatorValidationUnit)vc[1]).Validator, Is.InstanceOf(typeof(RequiredValidator)), "Wrong Attribute Type");
		}
		public void TestWrongObjectNum2WithStopOnError()
		{
			var s1pf = new Simple1Field1Property();
			var v = new Core.Validator();
			ValidationResult res = v.ValidateObject(s1pf, ValidationFlags.StopOnFirstError);
			Assert.IsFalse(res, "Object does not validate well");
			Assert.AreEqual(1, res.ErrorMessages.Count, "Wrong number of error detected");
		}
		public void TestWrongObjectNum2()
		{
			var s1pf = new Simple1Field1Property();
			var v = new Core.Validator();
			ValidationResult res = v.ValidateObject(s1pf);
			Assert.IsFalse(res, "Object does not validate well");
			Assert.AreEqual(2, res.ErrorMessages.Count, "Wrong number of error detected");
			Assert.IsTrue(res.ErrorMessages.Contains(cAlternativeErrorMessage));
			Assert.IsTrue(res.ErrorMessages.Contains(cSimpleErrorMessage));
		}
		public void VerifyWithCustomValidationCAnSelectPropertyName()
		{
			var s1pf = new Simple1Field1Property() {field = "a", Property="b"};
			var v = new Core.Validator();
			v.AddRule(Rule.For<Simple1Field1Property>(l => l, "Property")
				 .Custom<Simple1Field1Property>(l => l.Property == "bla bla bla")
				 .Message("Property is not equal to bla bla bla"));
			
			var res = v.ValidateObject(s1pf);
			Assert.That(res.Errors[0].SourceName, Is.EqualTo("Property")); 
		}
		public void TestWrongObjectNum1()
		{
			var s1pf = new Simple1Field1Property();
			s1pf.Property = cDefaultValueSimple1Property;
			s1pf.field = "notnullvalue";
			var v = new Core.Validator();
			ValidationResult res = v.ValidateObject(s1pf);
			Assert.IsFalse(res, "Object does not validate well");
			Assert.AreEqual(1, res.ErrorMessages.Count, "Wrong number of error detected");
			Assert.AreEqual(cAlternativeErrorMessage, res.ErrorMessages[0]);
		}