public void ConvertNullObjectRuleDataNullFieldAndValue()
        {
            var ruleData = new RuleData
            {
                Field             = null,
                Value             = null,
                RuleOperator      = "",
                ValidationMessage = "Name should be equal to Faenor."
            };

            var engine         = new RuleEngine();
            var translatedRule = engine.Convert(ruleData);

            Assert.AreEqual(RuleOperator.None, translatedRule.Operator);
            Assert.AreEqual("Name should be equal to Faenor.", translatedRule.ValidationMessage);
        }
        public void ConvertNullObjectRuleDataWithCompile()
        {
            var ruleData = new RuleData
            {
                Field             = "Name",
                Value             = "Faenor",
                RuleOperator      = "",
                ValidationMessage = "Name should be equal to Faenor."
            };

            var engine         = new RuleEngine();
            var translatedRule = engine.Convert(ruleData);
            var compiledRule   = engine.CompileRules <Person>(translatedRule);

            Assert.IsNotNull(compiledRule.Rule);
            Assert.AreEqual("Name should be equal to Faenor.", compiledRule.ValidationMessage);
        }
        public void ConvertEqualRuleDataNullValue()
        {
            var ruleData = new RuleData
            {
                Field             = "Name",
                Value             = null,
                RuleOperator      = RuleOperator.Equal.ToString(),
                ValidationMessage = "Name should be equal to Faenor."
            };

            var engine         = new RuleEngine();
            var translatedRule = engine.Convert(ruleData);

            Assert.AreEqual(ruleData.Field, translatedRule.LeftNode);
            Assert.AreEqual(ruleData.Value, translatedRule.RightNode);
            Assert.AreEqual(ruleData.ValidationMessage, translatedRule.ValidationMessage);
            Assert.AreEqual(RuleOperator.Equal, translatedRule.Operator);
            Assert.AreEqual(typeof(EqualRule), translatedRule.GetType());
        }
        public void ConvertEqualRuleDataAndCompileNullValue()
        {
            var ruleData = new RuleData
            {
                Field             = "Name",
                Value             = null,
                RuleOperator      = RuleOperator.Equal.ToString(),
                ValidationMessage = "Name should be equal to Faenor."
            };

            var engine         = new RuleEngine();
            var translatedRule = engine.Convert(ruleData);
            var compiledRule   = engine.CompileRules <Person>(translatedRule);

            Assert.IsNotNull(compiledRule.Rule);
            Assert.AreEqual(ruleData.Field, translatedRule.LeftNode);
            Assert.AreEqual(ruleData.Value, translatedRule.RightNode);
            Assert.AreEqual(ruleData.ValidationMessage, translatedRule.ValidationMessage);
            Assert.AreEqual("Name should be equal to Faenor.", compiledRule.ValidationMessage);
        }
        public void ExecuteConvertNullObjectRuleData()
        {
            var ruleData = new RuleData
            {
                Field             = "Name",
                Value             = "Faenor",
                RuleOperator      = "",
                ValidationMessage = "Name should be equal to Faenor."
            };

            var person = new Person {
                Name = "Faenor"
            };

            var engine           = new RuleEngine();
            var translatedRule   = engine.Convert(ruleData);
            var compiledRule     = engine.CompileRules <Person>(translatedRule);
            var validationResult = engine.Validate(person, compiledRule);

            Assert.IsTrue(validationResult.Passed);
            Assert.AreEqual(string.Empty, validationResult.ValidationMessageSummary);
        }