示例#1
0
        public void clone1()
        {
            modelname = "xml.xml";
            XmlDocument doc = new XmlDocument();

            doc.Load(AppDomain.CurrentDomain.BaseDirectory + @"\..\..\Xml\" + modelname);
            model   = doc.DocumentElement;
            changed = false;

            RuleEngine.Evidence.EvidenceValue.Xml x = new RuleEngine.Evidence.EvidenceValue.Xml("/root/person/firstname/text()", typeof(string), modelname);
            x.Changed     += Changed;
            x.ModelLookup += ModelLookup;
            x.Evaluate();

            Assert.Equal("Joe", x.Value);
            Assert.Equal(true, changed);

            //clone
            RuleEngine.Evidence.EvidenceValue.Xml y = (RuleEngine.Evidence.EvidenceValue.Xml)x.Clone();
            y.Changed     += Changed;
            y.ModelLookup += ModelLookup;

            //change the model, update this xpath expression.
            changed = false;
            model["person"]["firstname"].InnerText = "bob";
            y.Evaluate();

            Assert.Equal(true, changed);
            Assert.Equal("bob", (string)y.Value);
        }
示例#2
0
        public void clone1()
        {
            modelname = "xml.xml";
            XmlDocument doc = new XmlDocument();
            doc.Load(AppDomain.CurrentDomain.BaseDirectory + @"\..\..\Xml\" + modelname);
            model = doc.DocumentElement;
            changed = false;

            RuleEngine.Evidence.EvidenceValue.Xml x = new RuleEngine.Evidence.EvidenceValue.Xml("/root/person/firstname/text()", typeof(string), modelname);
            x.Changed += Changed;
            x.ModelLookup += ModelLookup;
            x.Evaluate();

            Assert.AreEqual("Joe", x.Value);
            Assert.AreEqual(true, changed);

            //clone
            RuleEngine.Evidence.EvidenceValue.Xml y = (RuleEngine.Evidence.EvidenceValue.Xml)x.Clone();
            y.Changed += Changed;
            y.ModelLookup += ModelLookup;

            //change the model, update this xpath expression.
            changed = false;
            model["person"]["firstname"].InnerText = "bob";
            y.Evaluate();

            Assert.AreEqual(true, changed);
            Assert.AreEqual("bob", (string)y.Value);
        }