1   /*
2    * $Id: CxfBasicTestCase.java 11405 2008-03-18 00:13:00Z dirk.olmes $
3    * --------------------------------------------------------------------------------------
4    * Copyright (c) MuleSource, Inc.  All rights reserved.  http://www.mulesource.com
5    *
6    * The software in this package is published under the terms of the CPAL v1.0
7    * license, a copy of which has been included with this distribution in the
8    * LICENSE.txt file.
9    */
10  
11  package org.mule.transport.cxf;
12  
13  import org.mule.api.MuleException;
14  import org.mule.api.MuleMessage;
15  import org.mule.module.client.MuleClient;
16  import org.mule.module.xml.stax.StaxSource;
17  import org.mule.tck.FunctionalTestCase;
18  
19  import java.io.InputStream;
20  
21  import javax.xml.stream.XMLInputFactory;
22  import javax.xml.stream.XMLStreamReader;
23  import javax.xml.transform.dom.DOMSource;
24  import javax.xml.transform.sax.SAXSource;
25  
26  import org.apache.cxf.helpers.DOMUtils;
27  import org.w3c.dom.Document;
28  import org.xml.sax.InputSource;
29  
30  public class DirectXmlTestCase extends FunctionalTestCase
31  {
32      public void testInputStream() throws Exception
33      {
34          MuleClient client = new MuleClient();
35          InputStream xml = getClass().getResourceAsStream("/direct/direct-request.xml");
36          assertNotNull(xml);
37          
38          test(client, xml);
39      }
40      
41      public void testInputStreamWithXslt() throws Exception
42      {
43          MuleClient client = new MuleClient();
44          InputStream xml = getClass().getResourceAsStream("/direct/direct-request.xml");
45          assertNotNull(xml);
46  
47          MuleMessage result = client.send("vm://echoWithTransform", xml, null);
48          String resultStr = result.getPayloadAsString();        
49          assertTrue("echoResponse not found in result: " + resultStr, resultStr.indexOf("echoResponse") != -1);
50      }
51      
52      private void test(MuleClient client, Object xml) throws MuleException, Exception
53      {
54          MuleMessage result = client.send("vm://echo", 
55              xml,
56              null);
57          
58  //        System.out.println(result.getPayloadAsString()); 
59          assertTrue(result.getPayloadAsString().indexOf("echoResponse") != -1);
60      }
61      
62      public void testDom() throws Exception
63      {
64          MuleClient client = new MuleClient();
65          InputStream xml = getClass().getResourceAsStream("/direct/direct-request.xml");
66          Document dom = DOMUtils.readXml(xml);
67          test(client, dom);
68      }
69  
70      public void testDomSource() throws Exception
71      {
72          MuleClient client = new MuleClient();
73          InputStream xml = getClass().getResourceAsStream("/direct/direct-request.xml");
74          Document dom = DOMUtils.readXml(xml);
75          test(client, new DOMSource(dom));
76      }
77  
78      public void testSAXSource() throws Exception
79      {
80          MuleClient client = new MuleClient();
81          InputStream xml = getClass().getResourceAsStream("/direct/direct-request.xml");
82          SAXSource source = new SAXSource(new InputSource(xml));
83          test(client, source);
84      }
85      
86      public void testStaxSource() throws Exception
87      {
88          MuleClient client = new MuleClient();
89          InputStream xml = getClass().getResourceAsStream("/direct/direct-request.xml");
90          
91          XMLStreamReader reader = XMLInputFactory.newInstance().createXMLStreamReader(xml);
92          test(client, new StaxSource(reader));
93      }
94      
95      public void testXMLStreamReader() throws Exception
96      {
97          MuleClient client = new MuleClient();
98          InputStream xml = getClass().getResourceAsStream("/direct/direct-request.xml");
99  
100         XMLStreamReader reader = XMLInputFactory.newInstance().createXMLStreamReader(xml);
101         test(client, reader);
102     }
103 
104     protected String getConfigResources()
105     {
106         return "direct/direct-xml-conf.xml";
107     }
108 
109 }