package kr.ac.snu.selab.soot.util; import static org.junit.Assert.assertEquals; import java.io.ByteArrayInputStream; import java.io.CharArrayWriter; import java.io.IOException; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import org.junit.Test; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import org.xml.sax.ErrorHandler; import org.xml.sax.SAXException; import org.xml.sax.SAXParseException; public class XMLWriterTest { @Test public void test1() throws IOException, ParserConfigurationException, SAXException { CharArrayWriter w = new CharArrayWriter(); XMLWriter writer = new XMLWriter(w); writer.startElement("HI"); writer.pcData("Data"); writer.endElement(); writer.close(); String contents = w.toString(); ByteArrayInputStream bis = new ByteArrayInputStream(contents.getBytes()); DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder dBuilder = dbFactory.newDocumentBuilder(); dBuilder.setErrorHandler(new ErrorHandler() { @Override public void error(SAXParseException e) throws SAXException { throw e; } @Override public void fatalError(SAXParseException e) throws SAXException { throw e; } @Override public void warning(SAXParseException e) throws SAXException { throw e; } }); Document doc = dBuilder.parse(bis); doc.getDocumentElement().normalize(); NodeList nList = doc.getElementsByTagName("HI"); assertEquals(1, nList.getLength()); Node node = nList.item(0); assertEquals(Node.ELEMENT_NODE, node.getNodeType()); Element element = (Element) node; assertEquals("Data", element.getTextContent().trim()); } }