Exemple #1
0
        public void string7()
        {
            //init variables
            string modelname = "1.xml";

            changed = false;

            RuleEngine.Evidence.Fact f = new RuleEngine.Evidence.Fact("f1", 1, "Joe", typeof(string));
            f.Changed        += Changed;
            f.ModelLookup    += ModelLookup;
            f.EvidenceLookup += EvidenceLookup;
            f.IsEvaluatable   = true;

            //init model
            XmlDocument doc = new XmlDocument();

            doc.Load(AppDomain.CurrentDomain.BaseDirectory + @"\..\..\Fact\" + modelname);
            model1 = doc.DocumentElement;
            f.Evaluate();

            //clone
            RuleEngine.Evidence.Fact a = (RuleEngine.Evidence.Fact)f.Clone();
            a.Changed        += Changed;
            a.ModelLookup    += ModelLookup;
            a.EvidenceLookup += EvidenceLookup;
            a.IsEvaluatable   = true;

            a.Value = "Bob";
            a.Evaluate();
            f.Evaluate();

            Assert.IsTrue((string)f.Value == "Joe");
            Assert.IsTrue((string)a.Value == "Bob");
            Assert.IsTrue(changed == true);
        }
Exemple #2
0
        public void string6()
        {
            string modelname = "1.xml";

            changed = false;

            RuleEngine.Evidence.Fact f = new RuleEngine.Evidence.Fact("f1", 1, "/root/person/firstname/text()", typeof(string), modelname);
            f.Changed        += Changed;
            f.ModelLookup    += ModelLookup;
            f.EvidenceLookup += EvidenceLookup;
            f.IsEvaluatable   = true;

            //init model
            XmlDocument doc = new XmlDocument();

            doc.Load(AppDomain.CurrentDomain.BaseDirectory + @"\..\..\Fact\" + modelname);
            model1 = doc.DocumentElement;
            f.Evaluate();

            //clone
            RuleEngine.Evidence.Fact a = (RuleEngine.Evidence.Fact)f.Clone();
            a.Changed        += Changed;
            a.ModelLookup    += ModelLookup;
            a.EvidenceLookup += EvidenceLookup;
            a.IsEvaluatable   = true;

            model1["person"]["firstname"].InnerText = "Bob";
            a.Evaluate();

            Assert.True((string)f.Value == "Joe");
            Assert.True((string)a.Value == "Bob");
            Assert.True(changed == true);
        }
        public void string7()
        {
            //init variables
            string modelname = "1.xml";
            changed = false;

            RuleEngine.Evidence.Fact f = new RuleEngine.Evidence.Fact("f1", 1, "Joe", typeof(string));
            f.Changed += Changed;
            f.ModelLookup += ModelLookup;
            f.EvidenceLookup += EvidenceLookup;
            f.IsEvaluatable = true;

            //init model
            XmlDocument doc = new XmlDocument();
            doc.Load(AppDomain.CurrentDomain.BaseDirectory + @"\..\..\Fact\" + modelname);
            model1 = doc.DocumentElement;
            f.Evaluate();

            //clone
            RuleEngine.Evidence.Fact a = (RuleEngine.Evidence.Fact)f.Clone();
            a.Changed += Changed;
            a.ModelLookup += ModelLookup;
            a.EvidenceLookup += EvidenceLookup;
            a.IsEvaluatable = true;

            a.Value = "Bob";
            a.Evaluate();
            f.Evaluate();

            Assert.IsTrue((string)f.Value == "Joe");
            Assert.IsTrue((string)a.Value == "Bob");
            Assert.IsTrue(changed == true);
        }