Correct and/or/div/mod in path expressions
[yangtools.git] / xpath / yang-xpath-impl / src / test / java / org / opendaylight / yangtools / yang / xpath / impl / XPathParserTest.java
index ecd55ddcaa6d59d008ea5e48177bed79b192e57a..0942340023f53909a46b965c7d74fa4eba33c596 100644 (file)
@@ -12,6 +12,7 @@ import static org.hamcrest.Matchers.isA;
 import static org.junit.Assert.assertEquals;
 
 import com.google.common.collect.ImmutableBiMap;
+import java.util.List;
 import javax.xml.xpath.XPathExpressionException;
 import org.eclipse.jdt.annotation.Nullable;
 import org.junit.Before;
@@ -26,6 +27,7 @@ import org.opendaylight.yangtools.yang.xpath.api.YangBinaryOperator;
 import org.opendaylight.yangtools.yang.xpath.api.YangBooleanConstantExpr;
 import org.opendaylight.yangtools.yang.xpath.api.YangExpr;
 import org.opendaylight.yangtools.yang.xpath.api.YangLocationPath;
+import org.opendaylight.yangtools.yang.xpath.api.YangLocationPath.Relative;
 import org.opendaylight.yangtools.yang.xpath.api.YangXPathAxis;
 import org.opendaylight.yangtools.yang.xpath.api.YangXPathMathMode;
 
@@ -121,6 +123,21 @@ public class XPathParserTest {
             YangXPathAxis.CHILD.asStep(QName.create(DEFNS, "lower-port"))), binary.getRightExpr());
     }
 
+    @Test
+    public void testAnd() throws XPathExpressionException {
+        assertRelative("and");
+        assertRelative("or");
+        assertRelative("div");
+        assertRelative("mod");
+        assertRelative("andor");
+    }
+
+    private void assertRelative(final String str) throws XPathExpressionException {
+        final YangExpr expr = parseExpr(str);
+        assertThat(expr, isA(Relative.class));
+        assertEquals(List.of(YangXPathAxis.CHILD.asStep(QName.create(DEFNS, str))), ((Relative) expr).getSteps());
+    }
+
     private YangExpr parseExpr(final String xpath) throws XPathExpressionException {
         return parser.parseExpression(xpath).getRootExpr();
     }