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