View Javadoc
1   /*
2    * Copyright (c) MuleSoft, Inc.  All rights reserved.  http://www.mulesoft.com
3    * The software in this package is published under the terms of the CPAL v1.0
4    * license, a copy of which has been included with this distribution in the
5    * LICENSE.txt file.
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  //        System.out.println(result.getPayloadAsString());
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 }