1
2
3
4
5
6
7
8
9
10
11 package org.mule.transformers.xml;
12
13 import org.mule.api.endpoint.EndpointBuilder;
14 import org.mule.api.endpoint.ImmutableEndpoint;
15 import org.mule.api.transformer.Transformer;
16 import org.mule.api.transport.OutputHandler;
17 import org.mule.endpoint.EndpointURIEndpointBuilder;
18 import org.mule.module.xml.transformer.XmlToOutputHandler;
19 import org.mule.transformer.types.DataTypeFactory;
20 import org.mule.util.IOUtils;
21
22 import java.io.ByteArrayOutputStream;
23 import java.io.InputStream;
24
25 import org.dom4j.DocumentHelper;
26 import org.dom4j.io.DOMWriter;
27
28 public class XmlToOutputHandlerByteArrayTestCase extends AbstractXmlTransformerTestCase
29 {
30 private byte[] srcData;
31 private String resultData;
32
33 @Override
34 protected void doSetUp() throws Exception
35 {
36 InputStream resourceStream = IOUtils.getResourceAsStream("cdcatalog-utf-8.xml", getClass());
37 resultData = IOUtils.toString(resourceStream, "UTF-8");
38
39 srcData = resultData.getBytes("UTF-8");
40 }
41
42 @Override
43 public Transformer getTransformer() throws Exception
44 {
45 Transformer trans = createObject(XmlToOutputHandler.class);
46 trans.setReturnDataType(DataTypeFactory.create(OutputHandler.class));
47
48 EndpointBuilder builder = new EndpointURIEndpointBuilder("test://test", muleContext);
49 builder.setEncoding("UTF-8");
50 ImmutableEndpoint endpoint =
51 muleContext.getEndpointFactory().getInboundEndpoint(builder);
52
53 trans.setEndpoint(endpoint);
54 return trans;
55 }
56
57 @Override
58 public Transformer getRoundTripTransformer() throws Exception
59 {
60 return null;
61 }
62
63 @Override
64 public Object getTestData()
65 {
66 return srcData;
67 }
68
69 @Override
70 public Object getResultData()
71 {
72 return resultData;
73 }
74
75 @Override
76 public boolean compareResults(Object expected, Object result)
77 {
78 if (result instanceof OutputHandler)
79 {
80 OutputHandler handler = (OutputHandler)result;
81 ByteArrayOutputStream bos = new ByteArrayOutputStream();
82 try
83 {
84 handler.write(null, bos);
85 org.dom4j.Document dom4jDoc = null;
86 dom4jDoc = DocumentHelper.parseText((String)expected);
87 expected = new DOMWriter().write(dom4jDoc);
88 dom4jDoc = DocumentHelper.parseText(new String(bos.toByteArray(), "UTF-8"));
89 result = new DOMWriter().write(dom4jDoc);
90 }
91 catch (Exception e)
92 {
93 fail();
94 }
95 }
96 return super.compareResults(expected, result);
97 }
98 }