1 package org.objectweb.celtix.bus.bindings.xml; 2 3 import java.io.*; 4 import javax.xml.namespace.QName ; 5 import org.w3c.dom.*; 6 import junit.framework.TestCase; 7 8 import org.objectweb.celtix.helpers.XMLUtils; 9 10 public class XMLMessageTest extends TestCase { 11 12 protected XMLMessageFactory msgFactory = XMLMessageFactory.newInstance(); 13 private XMLUtils xmlUtils = new XMLUtils(); 14 15 protected void setUp() throws Exception { 16 } 17 18 public void testXMLMessageFactory() { 19 assertNotNull(msgFactory); 20 } 21 22 public void testDefaultXMLMessage() throws Exception { 23 XMLMessage message = msgFactory.createMessage(); 24 assertNotNull(message); 25 assertNotNull(message.getRoot()); 26 String expected = "<?xml version=\"1.0\" encoding=\"utf-8\"?>"; 27 ByteArrayOutputStream out = new ByteArrayOutputStream(); 28 message.writeTo(out); 29 assertTrue(expected.equalsIgnoreCase(out.toString())); 30 } 31 32 public void testStreamXMLMessage() { 33 InputStream is = getClass().getResourceAsStream("resources/SayHiWrappedResp.xml"); 34 XMLMessage message = msgFactory.createMessage(is); 35 assertNotNull(message); 36 assertNotNull(message.getRoot()); 37 } 38 39 public void testXMLFaultMessage() throws Exception { 40 XMLMessage message = msgFactory.createMessage(); 41 XMLFault fault = message.addFault(); 42 assertNotNull(fault); 43 fault.addFaultString("exception raised"); 44 assertEquals("exception raised", fault.getFaultString()); 45 ByteArrayOutputStream out = new ByteArrayOutputStream(); 46 message.writeTo(out); 47 String expected = "<?xml version=\"1.0\" encoding=\"utf-8\"?>"; 48 expected += "<XMLFault xmlns=\"http://celtix.objectweb.org/bindings/xmlformat\">"; 49 expected += "<faultstring>exception raised</faultstring></XMLFault>"; 50 assertTrue(expected.equalsIgnoreCase(out.toString())); 51 } 52 53 public void testXMLFaultDetail() throws Exception { 54 XMLMessage message = msgFactory.createMessage(); 55 XMLFault fault = message.addFault(); 56 assertNotNull(fault); 57 58 fault.addFaultDetail(); 59 String namespace = "http://objectweb.org/hello_world_soap_http/types"; 60 Node detailNode = xmlUtils.createElementNS(fault.getFaultRoot(), new QName (namespace, "faultDetail")); 61 Node minor = xmlUtils.createElementNS(detailNode, new QName (namespace, "minor")); 62 Node major = xmlUtils.createElementNS(detailNode, new QName (namespace, "major")); 63 64 Text minorValue = xmlUtils.createTextNode(minor, "1"); 65 Text majorValue = xmlUtils.createTextNode(major, "2"); 66 minor.appendChild(minorValue); 67 major.appendChild(majorValue); 68 detailNode.appendChild(minor); 69 detailNode.appendChild(major); 70 71 fault.appendFaultDetail(detailNode); 72 73 ByteArrayOutputStream out = new ByteArrayOutputStream(); 74 message.writeTo(out); 75 76 InputStream is = getClass().getResourceAsStream("resources/xmlfaultdetail.xml"); 77 Document expectDOM = xmlUtils.parse(is); 78 79 assertEquals(xmlUtils.toString(expectDOM), message.toString()); 80 } 81 82 public void testCreateFaultXMLMessage() throws Exception { 83 InputStream is = getClass().getResourceAsStream("resources/xmlfault.xml"); 84 XMLMessage message = msgFactory.createMessage(is); 85 assertNotNull(message); 86 87 XMLFault xmlFault = message.getFault(); 88 assertNotNull(xmlFault); 89 90 assertEquals("org.objectweb.hello_world_xml_http.wrapped.PingMeFault: PingMeFault raised by server", 91 xmlFault.getFaultString()); 92 assertNotNull(xmlFault.getFaultDetail()); 93 } 94 } 95 | Popular Tags |