1 package org.codehaus.xfire.util; 2 3 import java.io.ByteArrayOutputStream; 4 import java.io.StringReader; 5 6 import javax.xml.stream.FactoryConfigurationError; 7 import javax.xml.stream.XMLInputFactory; 8 import javax.xml.stream.XMLOutputFactory; 9 import javax.xml.stream.XMLStreamException; 10 import javax.xml.stream.XMLStreamReader; 11 import javax.xml.stream.XMLStreamWriter; 12 13 import org.codehaus.xfire.AbstractXFireTest; 14 import org.dom4j.Document; 15 import org.dom4j.io.SAXReader; 16 17 /*** 18 * @author <a href="mailto:dan@envoisolutions.com">Dan Diephouse</a> 19 * @since Oct 26, 2004 20 */ 21 public class STAXUtilsTest 22 extends AbstractXFireTest 23 { 24 public void testAmazonDoc() throws Exception 25 { 26 String outS = doCopy("amazon.xml"); 27 28 SAXReader sax = new SAXReader(); 29 Document doc = sax.read( new StringReader(outS) ); 30 31 addNamespace("a", "http://xml.amazon.com/AWSECommerceService/2004-08-01"); 32 assertValid("/a:ItemLookup", doc); 33 assertValid("/a:ItemLookup/a:Request/a:IdType", doc); 34 } 35 36 public void testAmazonDoc2() throws Exception 37 { 38 String outS = doCopy("amazon2.xml"); 39 40 SAXReader sax = new SAXReader(); 41 Document doc = sax.read( new StringReader(outS) ); 42 43 addNamespace("a", "http://webservices.amazon.com/AWSECommerceService/2004-10-19"); 44 assertValid("//a:ItemLookupResponse", doc); 45 assertValid("//a:ItemLookupResponse/a:Items", doc); 46 } 47 48 /*** 49 * @return 50 * @throws FactoryConfigurationError 51 * @throws XMLStreamException 52 */ 53 private String doCopy(String resource) throws FactoryConfigurationError, XMLStreamException 54 { 55 XMLInputFactory ifactory = XMLInputFactory.newInstance(); 56 XMLStreamReader reader = ifactory.createXMLStreamReader(getClass().getResourceAsStream(resource)); 57 58 ByteArrayOutputStream out = new ByteArrayOutputStream(); 59 XMLOutputFactory factory = XMLOutputFactory.newInstance(); 60 XMLStreamWriter writer = factory.createXMLStreamWriter(out); 61 62 writer.writeStartDocument(); 63 STAXUtils.copy(reader, writer); 64 writer.writeEndDocument(); 65 66 writer.close(); 67 String outS = out.toString(); 68 69 System.out.println(outS); 70 return outS; 71 } 72 }