xformtest.java

来自「j2me mobile application for upload file 」· Java 代码 · 共 170 行

JAVA
170
字号
/**
 * 
 */
package org.celllife.clforms.api;

import j2meunit.framework.Test;
import j2meunit.framework.TestCase;
import j2meunit.framework.TestMethod;
import j2meunit.framework.TestSuite;

import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.util.Vector;

import org.celllife.clforms.Constants;
import org.kxml2.io.KXmlParser;
import org.kxml2.io.KXmlSerializer;
import org.kxml2.kdom.Document;
import org.kxml2.kdom.Element;
import org.xmlpull.v1.XmlPullParserException;

/**
 * @author Simon
 * 
 */
public class XFormTest extends TestCase {

	public XFormTest(String arg0, TestMethod arg1) {
		super(arg0, arg1);
	}

	public XFormTest() {
		super();
	}

	public XFormTest(String arg0) {
		super(arg0);
	}

	// suite method that returns all the tests to be run
	// Here it returns only one test – testAlwaysFails
	public Test suite() {
		TestSuite suite = new TestSuite();
		suite.addTest(new XFormTest("Populate model test", new TestMethod() {
			public void run(TestCase tc) {
				((XFormTest) tc).testPopulateModel();
			}
		}));

		suite.addTest(new XFormTest("Populate model test1", new TestMethod() {
			public void run(TestCase tc) {
				((XFormTest) tc).testPopulateModel1();
			}
		}));

		suite.addTest(new XFormTest("Xpath test", new TestMethod() {
			public void run(TestCase tc) {
				((XFormTest) tc).testXpathSingle();
			}
		}));

		suite.addTest(new XFormTest("Xpath test", new TestMethod() {
			public void run(TestCase tc) {
				((XFormTest) tc).testXpathMulti();
			}
		}));

		return suite;
	}

	public void testPopulateModel() {
		XForm xf = generateDummy();
		xf.populateModel();
		Element e = (Element) xf.evaluateXpath("/data/name/first").elementAt(0);
		String text = e.getText(0);
		assertTrue("wrong data in element", text.equals("NAMENAME"));
	}

	public void testPopulateModel1() {
		XForm xf = generateDummy();
		xf.populateModel();
		Element e = (Element) xf.evaluateXpath("/data/info/age").elementAt(0);
		String text = e.getText(0);
		assertTrue("wrong data in element", text.equals("24"));
	}

	public void testXpathSingle() {
		XForm xf = generateDummy();
		Vector resultSet = xf.evaluateXpath("/data/name/first");
		assertTrue("xpath returned wrong number of elements",
				resultSet.size() == 1);
		assertTrue("returned objects of wrong type",
				resultSet.elementAt(0) instanceof Element);
		Element e = (Element) resultSet.elementAt(0);
		assertTrue("wrong returned objects", e.getName().equals("first"));
	}

	public void testXpathMulti() {
		XForm xf = generateDummy();
		Vector resultSet = xf.evaluateXpath("/data/name/*");
		assertTrue("xpath returned wrong number of elements",
				resultSet.size() == 2);
		assertTrue("returned objects of wrong type",
				resultSet.elementAt(1) instanceof Element);
		Element e = (Element) resultSet.elementAt(1);
		assertTrue("wrong returned objects", e.getName().equals("second"));
	}

	/**
	 * @param xf
	 */
	private void printModel(XForm xf) {
		try {

			KXmlSerializer serializer = new KXmlSerializer();
			serializer.setOutput(System.out, null);
			xf.getXmlModel().write(serializer);
			serializer.flush();
		} catch (IOException e) {
			throw new RuntimeException("error writing model");
		}
	}

	public XForm generateDummy() {
		XForm f = new XForm();
		f.setName("Inquisition");
		XFElement e1 = new XFElement("Q1", "Whats your Name?", "Ciami e tu?",
				Constants.STRING, "/data/name/first", new String("NAMENAME"));
		XFElement e2 = new XFElement("Q2", "What is your Age?",
				"Quanto vecchi siete?", Constants.INT, "/data/info/age",
				new Integer(24));
		XFElement e3 = new XFElement("Q3", "What is your DOB?",
				"(Quando anniverrsare?)", Constants.DATE, "/data/info/dob",
				new String("12/10/2007"));

		f.addElement(e1);
		f.addElement(e2);
		f.addElement(e3);

		String modStr = "<data><name><first/><second/></name>"
				+ "<info><dob/><age/></info></data>";

		try {
			ByteArrayInputStream bais = new ByteArrayInputStream(modStr
					.getBytes());
			InputStreamReader isr = new InputStreamReader(bais, "UTF-8");
			KXmlParser parser = new KXmlParser();
			parser.setInput(isr);
			Document doc = new Document();
			doc.parse(parser);
			f.setXmlModel(doc);
		} catch (UnsupportedEncodingException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (XmlPullParserException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		return f;

	}

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?