1
2
3
4
5
6
7
8
9
10
11 package org.mule.transport.http.functional;
12
13 import org.mule.DefaultMuleMessage;
14 import org.mule.api.MuleMessage;
15 import org.mule.api.endpoint.InboundEndpoint;
16 import org.mule.module.client.MuleClient;
17 import org.mule.module.xml.transformer.XsltTransformer;
18 import org.mule.tck.FunctionalTestCase;
19 import org.mule.util.IOUtils;
20
21 import java.io.InputStream;
22
23 public class HttpContentLengthPropagationTestCase extends FunctionalTestCase
24 {
25 private static final String NAME_PAYLOAD = "test-xml-payload.xml";
26 private static final String NAME_STYLESHEET = "stylesheet.xsl";
27
28 @Override
29 protected String getConfigResources()
30 {
31 return "http-content-length-propagation-conf.xml";
32 }
33
34 public void testContentLengthPropagation() throws Exception
35 {
36 InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream(NAME_PAYLOAD);
37 assertNotNull("Payload test file not found.", is);
38 byte[] fileContents = IOUtils.toByteArray(is);
39
40 MuleClient client = new MuleClient(muleContext);
41 MuleMessage result = client.send(((InboundEndpoint) client.getMuleContext().getRegistry().lookupObject("httpEndpoint")).getAddress(),
42 new DefaultMuleMessage(fileContents, muleContext));
43
44 XsltTransformer trans = new XsltTransformer();
45 trans.setMuleContext(muleContext);
46 trans.setXslFile(NAME_STYLESHEET);
47 trans.initialise();
48 final byte[] locallyTransformedBytes = (byte[]) trans.doTransform(fileContents, "UTF-8");
49
50 assertEquals(new String(locallyTransformedBytes), result.getPayloadAsString());
51 }
52 }