Search in sources :

Example 11 with XpathAnalysis

use of org.drools.compiler.rule.builder.XpathAnalysis in project drools by kiegroup.

the class XpathAnalysisTest method testConditionIterate.

@Test
public void testConditionIterate() {
    final String xpath = "/address/street[name == \"Elm\"]/";
    final XpathAnalysis result = XpathAnalysis.analyze(xpath);
    assertEquals("The XPath should be valid.", false, result.hasError());
    assertNull(result.getError());
    final Iterator<XpathAnalysis.XpathPart> iterator = getNonEmptyIterator(result);
    verifyXpathPart(new XpathAnalysis.XpathPart("address", true, false, new ArrayList<String>(), null, -1, 0), iterator.next());
    verifyXpathPart(new XpathAnalysis.XpathPart("street", true, false, new ArrayList<String>(Arrays.asList("name == \"Elm\"")), null, -1, 0), iterator.next());
    verifyXpathPart(new XpathAnalysis.XpathPart("", true, false, new ArrayList<String>(), null, -1, 0), iterator.next());
    assertEquals(false, iterator.hasNext());
}
Also used : XpathAnalysis(org.drools.compiler.rule.builder.XpathAnalysis) ArrayList(java.util.ArrayList) Test(org.junit.Test)

Example 12 with XpathAnalysis

use of org.drools.compiler.rule.builder.XpathAnalysis in project drools by kiegroup.

the class XpathAnalysisTest method testAttributeDereferenceMixedIterate.

@Test
public void testAttributeDereferenceMixedIterate() {
    final String xpath = "/address.street/name/";
    final XpathAnalysis result = XpathAnalysis.analyze(xpath);
    assertEquals("The XPath should be valid.", false, result.hasError());
    assertNull(result.getError());
    final Iterator<XpathAnalysis.XpathPart> iterator = getNonEmptyIterator(result);
    verifyXpathPart(new XpathAnalysis.XpathPart("address", true, false, new ArrayList<String>(), null, -1, 0), iterator.next());
    verifyXpathPart(new XpathAnalysis.XpathPart("street", false, false, new ArrayList<String>(), null, -1, 0), iterator.next());
    verifyXpathPart(new XpathAnalysis.XpathPart("name", true, false, new ArrayList<String>(), null, -1, 0), iterator.next());
    verifyXpathPart(new XpathAnalysis.XpathPart("", true, false, new ArrayList<String>(), null, -1, 0), iterator.next());
    assertEquals(false, iterator.hasNext());
}
Also used : XpathAnalysis(org.drools.compiler.rule.builder.XpathAnalysis) ArrayList(java.util.ArrayList) Test(org.junit.Test)

Example 13 with XpathAnalysis

use of org.drools.compiler.rule.builder.XpathAnalysis in project drools by kiegroup.

the class XpathAnalysisTest method testEmptyXPath.

@Test
public void testEmptyXPath() {
    final String xpath = "/";
    final XpathAnalysis result = XpathAnalysis.analyze(xpath);
    assertEquals("The empty XPath should be valid.", false, result.hasError());
    assertNull(result.getError());
    final Iterator<XpathAnalysis.XpathPart> iterator = getNonEmptyIterator(result);
    verifyXpathPart(new XpathAnalysis.XpathPart("", true, false, new ArrayList<String>(), null, -1, 0), iterator.next());
    assertEquals(false, iterator.hasNext());
}
Also used : XpathAnalysis(org.drools.compiler.rule.builder.XpathAnalysis) ArrayList(java.util.ArrayList) Test(org.junit.Test)

Example 14 with XpathAnalysis

use of org.drools.compiler.rule.builder.XpathAnalysis in project drools by kiegroup.

the class XpathAnalysisTest method testCondition.

@Test
public void testCondition() {
    final String xpath = "/address/street[name == \"Elm\"]";
    final XpathAnalysis result = XpathAnalysis.analyze(xpath);
    assertEquals("The XPath should be valid.", false, result.hasError());
    assertNull(result.getError());
    final Iterator<XpathAnalysis.XpathPart> iterator = getNonEmptyIterator(result);
    verifyXpathPart(new XpathAnalysis.XpathPart("address", true, false, new ArrayList<String>(), null, -1, 0), iterator.next());
    verifyXpathPart(new XpathAnalysis.XpathPart("street", true, false, new ArrayList<String>(Arrays.asList("name == \"Elm\"")), null, -1, 0), iterator.next());
    assertEquals(false, iterator.hasNext());
}
Also used : XpathAnalysis(org.drools.compiler.rule.builder.XpathAnalysis) ArrayList(java.util.ArrayList) Test(org.junit.Test)

Example 15 with XpathAnalysis

use of org.drools.compiler.rule.builder.XpathAnalysis in project drools by kiegroup.

the class XpathAnalysisTest method testAttribute.

@Test
public void testAttribute() {
    final String xpath = "/address";
    final XpathAnalysis result = XpathAnalysis.analyze(xpath);
    assertEquals("The XPath should be valid.", false, result.hasError());
    assertNull(result.getError());
    final Iterator<XpathAnalysis.XpathPart> iterator = getNonEmptyIterator(result);
    verifyXpathPart(new XpathAnalysis.XpathPart("address", true, false, new ArrayList<String>(), null, -1, 0), iterator.next());
    assertEquals(false, iterator.hasNext());
}
Also used : XpathAnalysis(org.drools.compiler.rule.builder.XpathAnalysis) ArrayList(java.util.ArrayList) Test(org.junit.Test)

Aggregations

XpathAnalysis (org.drools.compiler.rule.builder.XpathAnalysis)19 Test (org.junit.Test)18 ArrayList (java.util.ArrayList)16 ExprConstraintDescr (org.drools.drl.ast.descr.ExprConstraintDescr)1 FromDescr (org.drools.drl.ast.descr.FromDescr)1 MVELExprDescr (org.drools.drl.ast.descr.MVELExprDescr)1 PatternDescr (org.drools.drl.ast.descr.PatternDescr)1