KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > tonbeller > tbutils > xmlunit > XmlTestCase


1 package com.tonbeller.tbutils.xmlunit;
2
3 import java.io.IOException JavaDoc;
4 import java.io.InputStream JavaDoc;
5 import java.util.Calendar JavaDoc;
6 import java.util.Date JavaDoc;
7 import java.util.GregorianCalendar JavaDoc;
8 import java.util.List JavaDoc;
9 import java.util.Locale JavaDoc;
10
11 import javax.xml.parsers.DocumentBuilder JavaDoc;
12 import javax.xml.parsers.DocumentBuilderFactory JavaDoc;
13 import javax.xml.parsers.ParserConfigurationException JavaDoc;
14 import javax.xml.transform.Transformer JavaDoc;
15 import javax.xml.transform.TransformerConfigurationException JavaDoc;
16 import javax.xml.transform.TransformerException JavaDoc;
17 import javax.xml.transform.TransformerFactory JavaDoc;
18 import javax.xml.transform.TransformerFactoryConfigurationError JavaDoc;
19 import javax.xml.transform.dom.DOMResult JavaDoc;
20 import javax.xml.transform.dom.DOMSource JavaDoc;
21
22 import junit.framework.TestCase;
23
24 import org.jaxen.JaxenException;
25 import org.jaxen.XPath;
26 import org.jaxen.dom.DOMXPath;
27 import org.w3c.dom.Document JavaDoc;
28 import org.w3c.dom.Element JavaDoc;
29 import org.w3c.dom.Node JavaDoc;
30 import org.xml.sax.SAXException JavaDoc;
31
32 /**
33  * xml test utilities
34  *
35  * @author av
36  */

37 public abstract class XmlTestCase extends TestCase {
38
39   public XmlTestCase(String JavaDoc name) {
40     super(name);
41   }
42
43   /**
44    * loads a document from xml file
45    */

46   public Document JavaDoc load(String JavaDoc name)
47     throws ParserConfigurationException JavaDoc, SAXException JavaDoc, IOException JavaDoc {
48     DocumentBuilderFactory JavaDoc dbf = DocumentBuilderFactory.newInstance();
49     dbf.setValidating(false);
50     dbf.setExpandEntityReferences(true);
51
52     DocumentBuilder JavaDoc parser = dbf.newDocumentBuilder();
53     InputStream JavaDoc is = getClass().getResourceAsStream(name);
54     return parser.parse(is);
55   }
56   
57   public Document JavaDoc transform(String JavaDoc name, Document JavaDoc src) throws TransformerFactoryConfigurationError JavaDoc, TransformerException JavaDoc {
58     Transformer JavaDoc tf = TransformerFactory.newInstance().newTransformer();
59     DOMSource JavaDoc domsrc = new DOMSource JavaDoc(src);
60     DOMResult JavaDoc domres = new DOMResult JavaDoc();
61     tf.transform(domsrc, domres);
62     return (Document JavaDoc)domres.getNode();
63   }
64
65   /**
66    * evaluates xpathExpr on node and asserts that the
67    * result contains <code>nodeCount</code> nodes
68    */

69   public void assertNodeCount(Node JavaDoc node, String JavaDoc xpathExpr, int nodeCount) throws JaxenException {
70     XPath xpath = new DOMXPath(xpathExpr);
71     List JavaDoc list = xpath.selectNodes(node);
72     assertEquals("Node count" + xpathExpr, nodeCount, list.size());
73   }
74
75   /**
76    * returns the <code>Element</code> that <code>xpathExpr</code> identifies
77    */

78   public Element JavaDoc getElement(Node JavaDoc node, String JavaDoc xpathExpr) throws JaxenException {
79     XPath xpath = new DOMXPath(xpathExpr);
80     List JavaDoc list = xpath.selectNodes(node);
81     assertEquals("Node count" + xpathExpr, 1, list.size());
82     return (Element JavaDoc) list.get(0);
83   }
84
85   /**
86    * creates a date
87    */

88   public Date JavaDoc getDate(int day, int month, int year) {
89     Calendar JavaDoc cal = GregorianCalendar.getInstance(Locale.GERMANY);
90     cal.set(Calendar.DAY_OF_MONTH, day);
91     cal.set(Calendar.MONTH, month - 1);
92     cal.set(Calendar.YEAR, year);
93     cal.set(Calendar.HOUR_OF_DAY, 0);
94     cal.set(Calendar.MINUTE, 0);
95     cal.set(Calendar.SECOND, 0);
96     cal.set(Calendar.MILLISECOND, 0);
97     return cal.getTime();
98   }
99
100 }
101
Popular Tags