jxpathcompiledexpressiontest.java
来自「JXPath」· Java 代码 · 共 492 行 · 第 1/2 页
JAVA
492 行
assertXPathExpression(
"1 - (1 - 2)",
CoreOperationSubtract.class);
}
public void testCoreOperationSum() {
assertXPathExpression(
"3 + 1 + 4",
CoreOperationAdd.class);
assertXPathExpression(
"(3 + 1) + 4",
CoreOperationAdd.class,
"3 + 1 + 4");
assertXPathExpression(
"3 + (1 + 4)",
CoreOperationAdd.class,
"3 + 1 + 4");
assertXPathExpression(
"3 + -1",
CoreOperationAdd.class,
"3 + -1");
assertXPathExpression(
"2*-3 + -1",
CoreOperationAdd.class,
"2 * -3 + -1");
}
public void testCoreOperationUnaryMinus() {
assertXPathExpression("-3", CoreOperationNegate.class);
assertXPathExpression("-(3 + 1)", CoreOperationNegate.class);
}
public void testCoreOperationUnion() {
assertXPathExpression(
"3 | 1 | 4",
CoreOperationUnion.class);
}
public void testExpressionPath() {
assertXPathExpression(
"$x/foo/bar",
ExpressionPath.class);
assertXPathExpression(
"(2 + 2)/foo/bar",
ExpressionPath.class);
assertXPathExpression(
"$x[3][2 + 2]/foo/bar",
ExpressionPath.class);
}
public void testExtensionFunction() {
assertXPathExpression(
"my:function(3, other.function())",
ExtensionFunction.class);
}
public void testLocationPathAxisSelf() {
assertXPathExpression(
"self::foo:bar",
LocationPath.class);
assertXPathExpression(
".",
LocationPath.class);
}
public void testLocationPathAxisChild() {
assertXPathExpression(
"child::foo:bar",
LocationPath.class,
"foo:bar");
assertXPathExpression(
"foo:bar",
LocationPath.class);
assertXPathExpression(
"/foo:bar",
LocationPath.class);
assertXPathExpression(
"/foo/bar",
LocationPath.class);
assertXPathExpression(
"*",
LocationPath.class);
assertXPathExpression(
"foo:*",
LocationPath.class);
}
public void testLocationPathAxisParent() {
assertXPathExpression(
"parent::foo:bar",
LocationPath.class);
assertXPathExpression(
"..",
LocationPath.class);
}
public void testLocationPathAxisAttribute() {
assertXPathExpression(
"attribute::foo:bar",
LocationPath.class,
"@foo:bar");
assertXPathExpression(
"@foo:bar",
LocationPath.class);
assertXPathExpression(
"../@foo:bar",
LocationPath.class);
assertXPathExpression(
"@*",
LocationPath.class);
assertXPathExpression(
"@*[last()]",
LocationPath.class);
}
public void testLocationPathAxisDescendant() {
assertXPathExpression(
"descendant::foo:bar",
LocationPath.class);
}
public void testLocationPathAxisDescendantOrSelf() {
assertXPathExpression(
"descendant-or-self::foo:bar",
LocationPath.class);
assertXPathExpression(
"//foo",
LocationPath.class);
assertXPathExpression(
"foo//bar",
LocationPath.class);
}
public void testLocationPathAxisOther() {
assertXPathExpression(
"ancestor::foo:bar",
LocationPath.class);
assertXPathExpression(
"ancestor-or-self::foo:bar",
LocationPath.class);
assertXPathExpression(
"namespace::foo:bar",
LocationPath.class);
assertXPathExpression(
"preceding::foo:bar",
LocationPath.class);
assertXPathExpression(
"preceding-sibling::foo:bar",
LocationPath.class);
assertXPathExpression(
"following::foo:bar",
LocationPath.class);
assertXPathExpression(
"following-sibling::foo:bar",
LocationPath.class);
}
public void testLocationPathNodeTest() {
assertXPathExpression(
"node()",
LocationPath.class);
assertXPathExpression(
"text()",
LocationPath.class);
assertXPathExpression(
"comment()",
LocationPath.class);
assertXPathExpression(
"processing-instruction()",
LocationPath.class);
assertXPathExpression(
"processing-instruction('test')",
LocationPath.class);
}
public void testVariableReference() {
assertXPathExpression(
"$x",
VariableReference.class);
assertXPathExpression(
"$x:y",
VariableReference.class);
}
/**
* Compiles the xpath into an Expression, checks the expression
* class, converts the expression to string and checks that the string
* matches the expected one.
*/
private void assertXPathExpression(
String xpath,
Class expectedClass,
String expected)
{
JXPathCompiledExpression expression =
(JXPathCompiledExpression) JXPathContext.compile(xpath);
assertEquals(
"Expression class for " + xpath,
expectedClass,
expression.getExpression().getClass());
assertEquals(
"Expression toString() for " + xpath,
expected,
expression.getExpression().toString());
}
private void assertXPathExpression(
String xpath,
Class expectedClass)
{
assertXPathExpression(xpath, expectedClass, xpath);
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?