mixedmodeltest.java
来自「JXPath」· Java 代码 · 共 532 行 · 第 1/2 页
JAVA
532 行
/*
* Copyright 1999-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 org.apache.commons.jxpath.ri.model;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Vector;
import junit.framework.Test;
import junit.framework.TestSuite;
import junit.textui.TestRunner;
import org.apache.commons.jxpath.JXPathContext;
import org.apache.commons.jxpath.JXPathTestCase;
import org.apache.commons.jxpath.Pointer;
import org.apache.commons.jxpath.TestBean;
import org.apache.commons.jxpath.TestMixedModelBean;
import org.apache.commons.jxpath.TestNull;
import org.apache.commons.jxpath.Variables;
/**
* Tests JXPath with mixed model: beans, maps, DOM etc.
*
* @author Dmitri Plotnikov
* @version $Revision: 1.9 $ $Date: 2004/04/04 22:06:36 $
*/
public class MixedModelTest extends JXPathTestCase {
private JXPathContext context;
/**
* Construct a new instance of this test case.
*
* @param name Name of the test case
*/
public MixedModelTest(String name) {
super(name);
}
public static void main(String[] args) {
TestRunner.run(new MixedModelTest("testContainerWithCollection"));
}
/**
* Return the tests included in this test suite.
*/
public static Test suite() {
return (new TestSuite(MixedModelTest.class));
}
public void setUp() {
TestMixedModelBean bean = new TestMixedModelBean();
context = JXPathContext.newContext(bean);
context.setFactory(new TestMixedModelFactory());
context.setLocale(Locale.US);
Variables vars = context.getVariables();
vars.declareVariable("string", bean.getString());
vars.declareVariable("bean", bean.getBean());
vars.declareVariable("map", bean.getMap());
vars.declareVariable("list", bean.getList());
vars.declareVariable("document", bean.getDocument());
vars.declareVariable("element", bean.getElement());
vars.declareVariable("container", bean.getContainer());
vars.declareVariable("testnull", new TestNull());
int[][] matrix = new int[1][];
matrix[0] = new int[1];
matrix[0][0] = 3;
vars.declareVariable("matrix", matrix);
}
public void testVar() {
context.getVariables().declareVariable("foo:bar", "baz");
assertXPathValueAndPointer(context,
"$foo:bar",
"baz",
"$foo:bar");
}
public void testVarPrimitive() {
assertXPathValueAndPointer(context, "$string", "string", "$string");
}
public void testVarBean() {
assertXPathValueAndPointer(
context,
"$bean/int",
new Integer(1),
"$bean/int");
}
public void testVarMap() {
assertXPathValueAndPointer(
context,
"$map/string",
"string",
"$map[@name='string']");
}
public void testVarList() {
assertXPathValueAndPointer(context, "$list[1]", "string", "$list[1]");
}
public void testVarDocument() {
assertXPathValueAndPointer(
context,
"$document/vendor/location/address/city",
"Fruit Market",
"$document/vendor[1]/location[2]/address[1]/city[1]");
}
public void testVarElement() {
assertXPathValueAndPointer(
context,
"$element/location/address/city",
"Fruit Market",
"$element/location[2]/address[1]/city[1]");
}
public void testVarContainer() {
assertXPathValueAndPointer(
context,
"$container/vendor/location/address/city",
"Fruit Market",
"$container/vendor[1]/location[2]/address[1]/city[1]");
}
// ----------------------------------------------------------------------
public void testBeanPrimitive() {
assertXPathValueAndPointer(context, "string", "string", "/string");
}
public void testBeanBean() {
assertXPathValueAndPointer(
context,
"bean/int",
new Integer(1),
"/bean/int");
}
public void testBeanMap() {
assertXPathValueAndPointer(
context,
"map/string",
"string",
"/map[@name='string']");
}
public void testBeanList() {
assertXPathValueAndPointer(context, "list[1]", "string", "/list[1]");
}
public void testBeanDocument() {
assertXPathValueAndPointer(
context,
"document/vendor/location/address/city",
"Fruit Market",
"/document/vendor[1]/location[2]/address[1]/city[1]");
}
public void testBeanElement() {
assertXPathValueAndPointer(
context,
"element/location/address/city",
"Fruit Market",
"/element/location[2]/address[1]/city[1]");
}
public void testBeanContainer() {
assertXPathValueAndPointer(
context,
"container/vendor/location/address/city",
"Fruit Market",
"/container/vendor[1]/location[2]/address[1]/city[1]");
}
// ----------------------------------------------------------------------
public void testMapPrimitive() {
assertXPathValueAndPointer(
context,
"map/string",
"string",
"/map[@name='string']");
}
public void testMapBean() {
assertXPathValueAndPointer(
context,
"map/bean/int",
new Integer(1),
"/map[@name='bean']/int");
}
public void testMapMap() {
assertXPathValueAndPointer(
context,
"map/map/string",
"string",
"/map[@name='map'][@name='string']");
}
public void testMapList() {
assertXPathValueAndPointer(
context,
"map/list[1]",
"string",
"/map[@name='list'][1]");
}
public void testMapDocument() {
assertXPathValueAndPointer(
context,
"map/document/vendor/location/address/city",
"Fruit Market",
"/map[@name='document']"
+ "/vendor[1]/location[2]/address[1]/city[1]");
}
public void testMapElement() {
assertXPathValueAndPointer(
context,
"map/element/location/address/city",
"Fruit Market",
"/map[@name='element']/location[2]/address[1]/city[1]");
}
public void testMapContainer() {
assertXPathValueAndPointer(
context,
"map/container/vendor/location/address/city",
"Fruit Market",
"/map[@name='container']"
+ "/vendor[1]/location[2]/address[1]/city[1]");
}
// ----------------------------------------------------------------------
public void testListPrimitive() {
assertXPathValueAndPointer(context, "list[1]", "string", "/list[1]");
}
public void testListBean() {
assertXPathValueAndPointer(
context,
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?