public void TestFluentForErrorMessageWithLambda()
        {
            var s1f = new Simple1FieldWithoutAttribute();

            s1f.intField = -50;
            Core.Validator v = new Core.Validator();
            v.AddRule(Rule.For <Simple1FieldWithoutAttribute>(o => o.intField)
                      .IsInRange(0, 100)
                      .Message(() => TestRes.Test));
            ValidationResult res = v.ValidateObject(s1f);

            Assert.That(res.Errors[0].Message, Is.EqualTo("This is a test message"));
        }
        public void TestGoodObjectFluent()
        {
            var s1f = new Simple1FieldWithoutAttribute();

            s1f.field = null;
            Core.Validator v = new Core.Validator();
            v.AddRule <Simple1FieldWithoutAttribute>(
                new RequiredValidator(new NamedValueExtractor("field")),
                "ErrorMessage");
            ValidationResult res = v.ValidateObject(s1f);

            Assert.IsFalse(res, "Object does not validate well");
            Assert.That(res.ErrorMessages, Has.Count.EqualTo(1));
            Assert.That(res.ErrorMessages[0], Is.EqualTo("ErrorMessage"));
        }
        public void TestGoodObjectFluentLambdaExtractor()
        {
            var s1f = new Simple1FieldWithoutAttribute();

            s1f.intField = 50;
            Core.Validator v = new Core.Validator();
            v.AddRule(Rule.For <Simple1FieldWithoutAttribute>(o => o.intField)
                      .IsInRange(0, 100)
                      .Message("ErrorMessage"));
            ValidationResult res = v.ValidateObject(s1f);

            Assert.IsTrue(res, "Object does not validate well");
            s1f.intField = -1;
            res          = v.ValidateObject(s1f);
            Assert.IsFalse(res, "Object does not validate well");
        }
        public void TestGoodObjectFluent3()
        {
            var s1f = new Simple1FieldWithoutAttribute();

            s1f.field = "Test";
            Core.Validator v = new Core.Validator();
            v.AddRule(Rule.For <Simple1FieldWithoutAttribute>()
                      .OnMember("field")
                      .LengthInRange(10, 40)
                      .Message("ErrorMessage"));
            ValidationResult res = v.ValidateObject(s1f);

            Assert.IsFalse(res, "Object does not validate well");
            Assert.That(res.ErrorMessages, Has.Count.EqualTo(1));
            Assert.That(res.ErrorMessages[0], Is.EqualTo("ErrorMessage"));
        }
        public void TestGoodObjectFluentInsertRangeBeforeExtractor()
        {
            var s1f = new Simple1FieldWithoutAttribute();

            s1f.intField = 101;
            Core.Validator v = new Core.Validator();
            v.AddRule(Rule.For <Simple1FieldWithoutAttribute>()
                      .IsInRange(0, 100)
                      .OnMember("intField")
                      .Message("ErrorMessage"));

            ValidationResult res = v.ValidateObject(s1f);

            Assert.IsFalse(res, "Object does not validate well");
            Assert.That(res.ErrorMessages, Has.Count.EqualTo(1));
            Assert.That(res.ErrorMessages[0], Is.EqualTo("ErrorMessage"));
        }
		public void TestFluentForErrorMessageWithLambda()
		{
			var s1f = new Simple1FieldWithoutAttribute();
			s1f.intField = -50;
			Core.Validator v = new Core.Validator();
			v.AddRule(Rule.For<Simple1FieldWithoutAttribute>(o => o.intField)
				.IsInRange(0, 100)
				.Message(() => TestRes.Test));
			ValidationResult res = v.ValidateObject(s1f);
			Assert.That(res.Errors[0].Message, Is.EqualTo("This is a test message"));
		}
		public void TestGoodObjectFluentLambdaExtractor()
		{
			var s1f = new Simple1FieldWithoutAttribute();
			s1f.intField = 50;
			Core.Validator v = new Core.Validator();
			v.AddRule(Rule.For<Simple1FieldWithoutAttribute>(o => o.intField)
				.IsInRange(0, 100)
				.Message("ErrorMessage"));
			ValidationResult res = v.ValidateObject(s1f);
			Assert.IsTrue(res, "Object does not validate well");
			s1f.intField = -1;
			res = v.ValidateObject(s1f);
			Assert.IsFalse(res, "Object does not validate well");
		}
		public void TestGoodObjectFluentInsertRangeBeforeExtractor()
		{
			var s1f = new Simple1FieldWithoutAttribute();
			s1f.intField = 101;
			Core.Validator v = new Core.Validator();
			v.AddRule(Rule.For<Simple1FieldWithoutAttribute>()
				.IsInRange(0, 100)
				.OnMember("intField")
				.Message("ErrorMessage"));

			ValidationResult res = v.ValidateObject(s1f);
			Assert.IsFalse(res, "Object does not validate well");
			Assert.That(res.ErrorMessages, Has.Count.EqualTo(1));
			Assert.That(res.ErrorMessages[0], Is.EqualTo("ErrorMessage"));
		}		
		public void TestGoodObjectFluent3()
		{
			var s1f = new Simple1FieldWithoutAttribute();
			s1f.field = "Test";
			Core.Validator v = new Core.Validator();
			v.AddRule(Rule.For<Simple1FieldWithoutAttribute>()
					.OnMember("field")
					.LengthInRange(10, 40)
					.Message("ErrorMessage"));
			ValidationResult res = v.ValidateObject(s1f);
			Assert.IsFalse(res, "Object does not validate well");
			Assert.That(res.ErrorMessages, Has.Count.EqualTo(1));
			Assert.That(res.ErrorMessages[0], Is.EqualTo("ErrorMessage"));
		}
		public void TestGoodObjectFluent()
		{
			var s1f = new Simple1FieldWithoutAttribute();
			s1f.field = null;
			Core.Validator v = new Core.Validator();
			v.AddRule<Simple1FieldWithoutAttribute>(
				new RequiredValidator(new NamedValueExtractor("field")),
				"ErrorMessage");
			ValidationResult res = v.ValidateObject(s1f);
			Assert.IsFalse(res, "Object does not validate well");
			Assert.That(res.ErrorMessages, Has.Count.EqualTo(1));
			Assert.That(res.ErrorMessages[0], Is.EqualTo("ErrorMessage"));
		}