1
2
3
4
5
6
7
8
9
10
11 package org.mule.providers.soap.xfire;
12
13 import org.mule.extras.client.MuleClient;
14 import org.mule.impl.MuleMessage;
15 import org.mule.tck.FunctionalTestCase;
16 import org.mule.umo.UMOMessage;
17
18 import java.util.List;
19
20 import org.dom4j.Document;
21 import org.dom4j.DocumentHelper;
22 import org.dom4j.Element;
23
24 public class XFireBadSoapRequestTestCase extends FunctionalTestCase
25 {
26
27 public XFireBadSoapRequestTestCase()
28 {
29 super();
30 this.setDisposeManagerPerSuite(true);
31 }
32
33 protected String getConfigResources()
34 {
35 return "xfire-soap-request-conf.xml";
36 }
37
38 public void testSoapDocumentError() throws Exception
39 {
40 MuleClient client = new MuleClient();
41
42 String soapRequest = "<soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">"
43 + "<soap:Body>"
44 + "<ssss xmlns=\"http://www.muleumo.org\">"
45 + "<request xmlns=\"http://www.muleumo.org\">Bad Request</request>"
46 + "</ssss>"
47 + "</soap:Body>" + "</soap:Envelope>";
48
49 UMOMessage reply = client.send("http://localhost:63381/services/TestComponent", new MuleMessage(
50 soapRequest));
51
52 assertNotNull(reply);
53 assertNotNull(reply.getPayload());
54
55 Document document = DocumentHelper.parseText(reply.getPayloadAsString());
56 List fault = document.selectNodes("//soap:Envelope/soap:Body/soap:Fault/faultcode");
57
58 assertEquals(1, fault.size());
59 Element faultCodeElement = (Element)fault.get(0);
60
61 assertEquals("soap:Client", faultCodeElement.getStringValue());
62
63 fault = document.selectNodes("//soap:Envelope/soap:Body/soap:Fault/faultstring");
64 assertEquals(1, fault.size());
65 Element faultStringElement = (Element)fault.get(0);
66
67 assertEquals("Invalid operation: {http://www.muleumo.org}ssss", faultStringElement.getStringValue());
68 }
69
70 }