1
2
3
4
5
6
7 package org.mule.module.cxf;
8
9 import org.mule.api.MuleException;
10 import org.mule.api.MuleMessage;
11 import org.mule.module.client.MuleClient;
12 import org.mule.module.xml.stax.StaxSource;
13 import org.mule.tck.junit4.FunctionalTestCase;
14
15 import java.io.InputStream;
16
17 import javax.xml.stream.XMLInputFactory;
18 import javax.xml.stream.XMLStreamReader;
19 import javax.xml.transform.dom.DOMSource;
20 import javax.xml.transform.sax.SAXSource;
21
22 import org.apache.cxf.helpers.DOMUtils;
23 import org.junit.Test;
24 import org.w3c.dom.Document;
25 import org.xml.sax.InputSource;
26
27 import static org.junit.Assert.assertNotNull;
28 import static org.junit.Assert.assertTrue;
29
30 public class DirectXmlTestCase extends FunctionalTestCase
31 {
32
33 @Override
34 protected String getConfigResources()
35 {
36 return "direct/direct-xml-conf.xml";
37 }
38
39 @Test
40 public void testInputStream() throws Exception
41 {
42 MuleClient client = new MuleClient(muleContext);
43 InputStream xml = getClass().getResourceAsStream("/direct/direct-request.xml");
44 assertNotNull(xml);
45
46 test(client, xml);
47 }
48
49 @Test
50 public void testInputStreamWithXslt() throws Exception
51 {
52 MuleClient client = new MuleClient(muleContext);
53 InputStream xml = getClass().getResourceAsStream("/direct/direct-request.xml");
54 assertNotNull(xml);
55
56 MuleMessage result = client.send("vm://echoWithTransform", xml, null);
57 String resultStr = result.getPayloadAsString();
58 assertTrue("echoResponse not found in result: " + resultStr, resultStr.indexOf("echoResponse") != -1);
59 }
60
61 private void test(MuleClient client, Object xml) throws MuleException, Exception
62 {
63 MuleMessage result = client.send("vm://echo",
64 xml,
65 null);
66
67
68 assertTrue(result.getPayloadAsString().indexOf("echoResponse") != -1);
69 }
70
71 @Test
72 public void testDom() throws Exception
73 {
74 MuleClient client = new MuleClient(muleContext);
75 InputStream xml = getClass().getResourceAsStream("/direct/direct-request.xml");
76 Document dom = DOMUtils.readXml(xml);
77 test(client, dom);
78 }
79
80 @Test
81 public void testDomSource() throws Exception
82 {
83 MuleClient client = new MuleClient(muleContext);
84 InputStream xml = getClass().getResourceAsStream("/direct/direct-request.xml");
85 Document dom = DOMUtils.readXml(xml);
86 test(client, new DOMSource(dom));
87 }
88
89 @Test
90 public void testSAXSource() throws Exception
91 {
92 MuleClient client = new MuleClient(muleContext);
93 InputStream xml = getClass().getResourceAsStream("/direct/direct-request.xml");
94 SAXSource source = new SAXSource(new InputSource(xml));
95 test(client, source);
96 }
97
98 @Test
99 public void testStaxSource() throws Exception
100 {
101 MuleClient client = new MuleClient(muleContext);
102 InputStream xml = getClass().getResourceAsStream("/direct/direct-request.xml");
103
104 XMLStreamReader reader = XMLInputFactory.newInstance().createXMLStreamReader(xml);
105 test(client, new StaxSource(reader));
106 }
107
108 @Test
109 public void testXMLStreamReader() throws Exception
110 {
111 MuleClient client = new MuleClient(muleContext);
112 InputStream xml = getClass().getResourceAsStream("/direct/direct-request.xml");
113
114 XMLStreamReader reader = XMLInputFactory.newInstance().createXMLStreamReader(xml);
115 test(client, reader);
116 }
117
118 }