blob: 14141131a590294a6e26905a05981eee06ed1b56 [file] [log] [blame]
/* Copyright 2004 The Apache Software Foundation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package xmlcursor.xpath.common;
import org.junit.Before;
import org.junit.Ignore;
import xmlcursor.common.BasicCursorTestCase;
import java.util.HashMap;
@Ignore("abstract class")
public abstract class BaseXPathTest extends BasicCursorTestCase {
protected final HashMap<String,String[]> testMap = new HashMap<String,String[]>();
@Before
public void setUp() throws Exception {
String[] add = new String[]{"//price[position()=0+1]"};
String[] sub = new String[]{"//price[position()=4-2]"};
String[] mult = new String[]{"//price[position()=2*1]"};
String[] div = new String[]{
"//price[ position()= last() div 2 ]",
"//price[ position()= 4 div 2 ]",
"//price[ position()=10 div 0 ]",
"//price[position()=round(22 div 7)-1]"
};
String[] mod = new String[]{
"//price[ position() mod 2 = 0 ]",
"//price[position() = 5 mod 3]"
};
String[] eq = new String[]{"//bar[price=5.00]"};
String[] eq_ns = new String[]{"//bar[price=3]"};
String[] neq = new String[]{"//bar[price!=3]"};
String[] lt = new String[]{"//bar[price < 2 ]"};
String[] lteq = new String[]{"//bar[price <=2 ]"};
String[] gt = new String[]{"//bar[price > 2 ]"};
String[] gteq = new String[]{"//bar[price >= 2 ]"};
String[] or = new String[]{"//price[text()>3 or @at=\"val1\"]"};
String[] and = new String[]{"//price[text()>2 and @at=\"val1\"]"};
testMap.put("testAddition", add);
testMap.put("testSubtraction", sub);
testMap.put("testMultiplication", mult);
testMap.put("testDiv", div);
testMap.put("testMod", mod);
testMap.put("testEqual", eq);
testMap.put("testEqualityNodeset", eq_ns);
testMap.put("testNotEqual", neq);
testMap.put("testLessThan", lt);
testMap.put("testLessOrEqual", lteq);
testMap.put("testGreaterThan", gt);
testMap.put("testGreaterOrEqual", gteq);
testMap.put("testOr", or);
testMap.put("testAnd", and);
testMap.put("testFunctionId", new String[]{
"id(\"bobdylan\")",
"id(\"foobar\")",
"id(\"*\")/child::cd[position()=3]"});
testMap.put("testFunctionLast", new String[]{
"/catalog/cd[last()]"});
testMap.put("testFunctionNamespaceURI", new String[]{
"//*[namespace-uri(.)=\"uri.org\"]"});
testMap.put("testFunctionNumber", new String[]{
"/foo/bar[number(price)+1=4]"});
testMap.put("testFunctionRound", new String[]{
"//bar//*[round(text())=3]"});
testMap.put("testFunctionSum", new String[]{
"//bar[position()=sum(price)-4]"});
testMap.put("testFunctionBoolean", new String[]{
"/foo[boolean(.//@at)]"});
testMap.put("testFunctionFalse", new String[]{
"//foo[boolean(price)=false()]"});
testMap.put("testFunctionLang", new String[]{
"//price[xf:lang(\"en\")=true()]",
"//foo[xf:lang(\"en\")=true()]"});
testMap.put("testFunctionTrue", new String[]{
"//*[xf:boolean(@at)=true()]"});
}
public abstract String getQuery(String testName, int testCase);
}