public void Letting_Assert_String() { XmlDocument doc = new XmlDocument(); doc.LoadXml("<foo>bar</foo>"); XPathNavigator nav = doc.DocumentElement.CreateNavigator(); XPathQueryLanguage query = new XPathQueryLanguage(); object context = query.CreateMatchContext(null, doc); query.Let(context, "x", "'bar'"); Assertion assert = new Assertion(); assert.Test = ". = $x"; Assert.IsTrue(query.Assert(assert, context, nav)); context = query.CreateMatchContext(null, doc); query.Let(context, "x", "'foo'"); Assert.IsFalse(query.Assert(assert, context, nav)); }
public void Asserting() { XPathQueryLanguage query = new XPathQueryLanguage(); SchematronDocument a = Load("Schematron/Samples/All.sch"); Rule rule = FindRule(a, "foo"); Assertion assertion = (Assertion)rule.Assertions[0]; XmlDocument doc; object matchContext; doc = new XmlDocument(); doc.LoadXml("<doc><foo>bar</foo><foo>x</foo></doc>"); matchContext = query.CreateMatchContext(a, doc); XPathNavigator nav = doc.DocumentElement.CreateNavigator(); nav.MoveToFirstChild(); Assert.IsTrue(query.Assert(assertion, matchContext, nav)); nav.MoveToNext(); Assert.IsFalse(query.Assert(assertion, matchContext, nav)); }
public void Matching() { XPathQueryLanguage query = new XPathQueryLanguage(); SchematronDocument a = Load("Schematron/Samples/All.sch"); Rule rule = FindRule(a, "foo"); XmlDocument doc; object matchContext; bool matches; doc = new XmlDocument(); doc.LoadXml("<foo>bar</foo>"); matchContext = query.CreateMatchContext(a, doc); XPathNavigator nav = doc.CreateNavigator(); nav.MoveToFirstChild(); matches = query.Match(rule, matchContext, nav); Assert.IsTrue(matches); doc = new XmlDocument(); doc.LoadXml("<document><a></a></document>"); matchContext = query.CreateMatchContext(a, doc); matches = query.Match(rule, matchContext, doc.CreateNavigator()); Assert.IsFalse(matches); }
public void Letting_Match() { XmlDocument doc = new XmlDocument(); doc.LoadXml("<foo/>"); XPathNavigator nav = doc.DocumentElement.CreateNavigator(); XPathQueryLanguage query = new XPathQueryLanguage(); Rule rule = new Rule(); rule.Context = " $ename "; object context = query.CreateMatchContext(null, doc); query.Let(context, "ename", "foo"); Assert.IsTrue(query.Match(rule, context, nav)); context = query.CreateMatchContext(null, doc); query.Let(context, "ename", "bar"); Assert.IsFalse(query.Match(rule, context, nav)); }
public void MultipleLets() { XmlDocument doc = new XmlDocument(); doc.LoadXml("<foo><a/><a/><a/></foo>"); XPathNavigator nav = doc.DocumentElement.CreateNavigator(); XPathQueryLanguage query = new XPathQueryLanguage(); object context = query.CreateMatchContext(null, doc); query.Let(context, "x", "3"); query.Let(context, "x", "2"); }