| package test.encoding; |
| |
| import junit.framework.TestCase; |
| import org.apache.axis.Constants; |
| import org.apache.axis.Message; |
| import org.apache.axis.MessageContext; |
| import org.apache.axis.server.AxisServer; |
| import org.custommonkey.xmlunit.XMLTestCase; |
| |
| /** |
| * Test deserialization of SOAP responses |
| */ |
| public class TestOutputter extends XMLTestCase { |
| |
| private String header; |
| private String footer; |
| private AxisServer server = new AxisServer(); |
| |
| public TestOutputter(String name) { |
| this(name, Constants.URI_DEFAULT_SCHEMA_XSI, |
| Constants.URI_DEFAULT_SCHEMA_XSD); |
| } |
| |
| public TestOutputter(String name, String NS_XSI, String NS_XSD) { |
| super(name); |
| |
| header = |
| "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + |
| "<soap:Envelope " + |
| "xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\" " + |
| "xmlns:soapenc=\"http://schemas.xmlsoap.org/soap/encoding/\" " + |
| "xmlns:xsi=\"" + NS_XSI + "\" " + |
| "xmlns:xsd=\"" + NS_XSD + "\">\n" + |
| "<soap:Body>\n" + |
| "<methodResult xmlns=\"http://tempuri.org/\">\n"; |
| |
| footer = |
| "</methodResult>\n" + |
| "</soap:Body>\n" + |
| "</soap:Envelope>"; |
| } |
| |
| /** |
| * Verify that a given XML deserialized produces the expected result |
| */ |
| protected void roundtrip(String data) |
| throws Exception |
| { |
| Message message = new Message(header + data + footer); |
| message.setMessageContext(new MessageContext(server)); |
| |
| message.getSOAPEnvelope(); |
| |
| assertXMLEqual(header+data+footer, message.getSOAPPartAsString()); |
| } |
| |
| public void testString() throws Exception { |
| roundtrip("<result xsi:type=\"xsd:string\">abc</result>"); |
| } |
| |
| public void testEscapedText() throws Exception { |
| roundtrip("<abc><&></abc>"); |
| } |
| |
| public void testEscapedAttributes() throws Exception { |
| roundtrip("<abc foo=\"<&>\"/>"); |
| // roundtrip("<abc foo=\"<&>\"/>"); |
| } |
| |
| public static void main(String [] args) throws Exception |
| { |
| TestOutputter tester = new TestOutputter("test"); |
| tester.testString(); |
| } |
| } |