1 package com.tonbeller.tbutils.xmlunit; 2 3 import java.io.IOException ; 4 import java.io.InputStream ; 5 import java.util.Calendar ; 6 import java.util.Date ; 7 import java.util.GregorianCalendar ; 8 import java.util.List ; 9 import java.util.Locale ; 10 11 import javax.xml.parsers.DocumentBuilder ; 12 import javax.xml.parsers.DocumentBuilderFactory ; 13 import javax.xml.parsers.ParserConfigurationException ; 14 import javax.xml.transform.Transformer ; 15 import javax.xml.transform.TransformerConfigurationException ; 16 import javax.xml.transform.TransformerException ; 17 import javax.xml.transform.TransformerFactory ; 18 import javax.xml.transform.TransformerFactoryConfigurationError ; 19 import javax.xml.transform.dom.DOMResult ; 20 import javax.xml.transform.dom.DOMSource ; 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 ; 28 import org.w3c.dom.Element ; 29 import org.w3c.dom.Node ; 30 import org.xml.sax.SAXException ; 31 32 37 public abstract class XmlTestCase extends TestCase { 38 39 public XmlTestCase(String name) { 40 super(name); 41 } 42 43 46 public Document load(String name) 47 throws ParserConfigurationException , SAXException , IOException { 48 DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); 49 dbf.setValidating(false); 50 dbf.setExpandEntityReferences(true); 51 52 DocumentBuilder parser = dbf.newDocumentBuilder(); 53 InputStream is = getClass().getResourceAsStream(name); 54 return parser.parse(is); 55 } 56 57 public Document transform(String name, Document src) throws TransformerFactoryConfigurationError , TransformerException { 58 Transformer tf = TransformerFactory.newInstance().newTransformer(); 59 DOMSource domsrc = new DOMSource (src); 60 DOMResult domres = new DOMResult (); 61 tf.transform(domsrc, domres); 62 return (Document )domres.getNode(); 63 } 64 65 69 public void assertNodeCount(Node node, String xpathExpr, int nodeCount) throws JaxenException { 70 XPath xpath = new DOMXPath(xpathExpr); 71 List list = xpath.selectNodes(node); 72 assertEquals("Node count" + xpathExpr, nodeCount, list.size()); 73 } 74 75 78 public Element getElement(Node node, String xpathExpr) throws JaxenException { 79 XPath xpath = new DOMXPath(xpathExpr); 80 List list = xpath.selectNodes(node); 81 assertEquals("Node count" + xpathExpr, 1, list.size()); 82 return (Element ) list.get(0); 83 } 84 85 88 public Date getDate(int day, int month, int year) { 89 Calendar 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
|