View Javadoc

1   /*
2    * $Id: DirectXmlTestCase.java 22471 2011-07-20 10:36:17Z claude.mamo $
3    * --------------------------------------------------------------------------------------
4    * Copyright (c) MuleSoft, Inc.  All rights reserved.  http://www.mulesoft.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.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  //        System.out.println(result.getPayloadAsString());
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 }