示例#1
0
        public void modelupdate2()
        {
            //init variables
            modelname = "xml.xml";
            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;

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

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

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

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

            Assert.Equal(true, changed);
            Assert.Equal("bob", (string)x.Value);
        }
示例#2
0
        public void node2()
        {
            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/address", typeof(XmlNode), modelname);
            RuleEngine.Evidence.EvidenceValue.Xml y = new RuleEngine.Evidence.EvidenceValue.Xml("/root/person/dis", typeof(XmlNode), modelname);
            x.Changed     += Changed;
            x.ModelLookup += ModelLookup;
            y.Changed     += Changed;
            y.ModelLookup += ModelLookup;
            x.Evaluate();
            y.Evaluate();

            //change the value and see if it was updated
            changed = false;
            x.Value = y.Value;

            Assert.AreEqual("dis", ((XmlNode)x.Value).Name);
            Assert.AreEqual(true, changed);
        }
示例#3
0
        public void modelUpdate3()
        {
            //init variables
            modelname = "xml.xml";
            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;

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

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

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

            x.Value = "JOEJOE";

            Assert.True((string)x.Value == "JOEJOE");
            Assert.True((string)y.Value != "JOEJOE");

            if (changed)
            {
                x.Evaluate();
                y.Evaluate();
            }

            Assert.True((string)x.Value == "JOEJOE");
            Assert.True((string)y.Value == "JOEJOE");
        }
示例#4
0
        public void boolean1()
        {
            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/address/attribute::node()[name(.)='optional']", typeof(bool), modelname);
            x.Changed += Changed;
            x.ModelLookup += ModelLookup;
            x.Evaluate();

            Assert.AreEqual(true, x.Value);
            Assert.AreEqual(true, changed);
        }
示例#5
0
        public void string3()
        {
            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", typeof(string), modelname);
            x.Changed     += Changed;
            x.ModelLookup += ModelLookup;
            x.Evaluate();

            Assert.Equal("Joe", x.Value);
            Assert.Equal(true, changed);
        }
示例#6
0
        public void boolean1()
        {
            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/address/attribute::node()[name(.)='optional']", typeof(bool), modelname);
            x.Changed     += Changed;
            x.ModelLookup += ModelLookup;
            x.Evaluate();

            Assert.Equal(true, x.Value);
            Assert.Equal(true, changed);
        }
示例#7
0
        public void boolean6()
        {
            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/address/@optional", typeof(bool), modelname);
            x.Changed     += Changed;
            x.ModelLookup += ModelLookup;
            x.Evaluate();

            //change the value and see if it was updated
            changed = false;
            x.Value = false;

            Assert.Equal(false, x.Value);
            Assert.Equal(true, changed);
        }
示例#8
0
        public void double8()
        {
            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/pin/attribute::node()[name(.)='id']", typeof(double), modelname);
            x.Changed     += Changed;
            x.ModelLookup += ModelLookup;
            x.Evaluate();

            //change the value and see if it was updated
            changed = false;
            x.Value = 555;

            Assert.Equal(555, x.Value);
            Assert.Equal(true, changed);
        }
示例#9
0
        public void string6()
        {
            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/address/@optional", typeof(string), modelname);
            x.Changed += Changed;
            x.ModelLookup += ModelLookup;
            x.Evaluate();

            //change the value and see if it was updated
            changed = false;
            x.Value = "false";

            Assert.AreEqual("false", x.Value);
            Assert.AreEqual(true, changed);
        }
示例#10
0
        public void string3()
        {
            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", typeof(string), modelname);
            x.Changed += Changed;
            x.ModelLookup += ModelLookup;
            x.Evaluate();

            Assert.AreEqual("Joe", x.Value);
            Assert.AreEqual(true, changed);
        }
示例#11
0
        public void node2()
        {
            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/address", typeof(XmlNode), modelname);
            RuleEngine.Evidence.EvidenceValue.Xml y = new RuleEngine.Evidence.EvidenceValue.Xml("/root/person/dis", typeof(XmlNode), modelname);
            x.Changed += Changed;
            x.ModelLookup += ModelLookup;
            y.Changed += Changed;
            y.ModelLookup += ModelLookup;
            x.Evaluate();
            y.Evaluate();

            //change the value and see if it was updated
            changed = false;
            x.Value = y.Value;

            Assert.AreEqual("dis", ((XmlNode)x.Value).Name );
            Assert.AreEqual(true, changed);
        }
示例#12
0
        public void modelUpdate3()
        {
            //init variables
            modelname = "xml.xml";
            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;

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

            //init model
            XmlDocument doc = new XmlDocument();
            doc.Load(AppDomain.CurrentDomain.BaseDirectory + @"\..\..\Xml\" + modelname);
            model = doc.DocumentElement;
            x.Evaluate();
            y.Evaluate();
            changed = false;

            x.Value = "JOEJOE";

            Assert.IsTrue((string)x.Value == "JOEJOE");
            Assert.IsTrue((string)y.Value != "JOEJOE");

            if (changed)
            {
                x.Evaluate();
                y.Evaluate();
            }

            Assert.IsTrue((string)x.Value == "JOEJOE");
            Assert.IsTrue((string)y.Value == "JOEJOE");
        }
示例#13
0
        public void modelupdate2()
        {
            //init variables
            modelname = "xml.xml";
            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;

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

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

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

            Assert.AreEqual(true, changed);
            Assert.AreEqual("bob", (string)x.Value);
        }
示例#14
0
        public void double8()
        {
            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/pin/attribute::node()[name(.)='id']", typeof(double), modelname);
            x.Changed += Changed;
            x.ModelLookup += ModelLookup;
            x.Evaluate();

            //change the value and see if it was updated
            changed = false;
            x.Value = 555;

            Assert.AreEqual(555, x.Value);
            Assert.AreEqual(true, changed);
        }