1
2
3
4
5
6
7
8
9
10
11 package org.mule.transformers.xml;
12
13 import org.mule.api.transformer.Transformer;
14 import org.mule.module.xml.transformer.XmlToDomDocument;
15 import org.mule.transformer.types.DataTypeFactory;
16 import org.mule.util.IOUtils;
17
18 import java.io.InputStream;
19
20 import org.dom4j.DocumentHelper;
21 import org.dom4j.io.DOMWriter;
22
23 public class DomXmlTransformerEncodingByteArrayTestCase extends DomXmlTransformerEncodingTestCase
24 {
25 private byte[] srcData;
26 private String resultData;
27
28 @Override
29 protected void doSetUp() throws Exception
30 {
31 InputStream resourceStream = IOUtils.getResourceAsStream("cdcatalog-utf-8.xml", getClass());
32 srcData = IOUtils.toString(resourceStream, "UTF-8").getBytes("UTF-8");
33
34 resourceStream = IOUtils.getResourceAsStream("cdcatalog-us-ascii.xml", getClass());
35 resultData = IOUtils.toString(resourceStream, "US-ASCII");
36 }
37
38 @Override
39 public Transformer getRoundTripTransformer() throws Exception
40 {
41 XmlToDomDocument trans = createObject(XmlToDomDocument.class);
42 trans.setReturnDataType(DataTypeFactory.create(byte[].class));
43 return trans;
44 }
45
46 @Override
47 public Object getTestData()
48 {
49 return srcData;
50 }
51
52 @Override
53 public Object getResultData()
54 {
55 return resultData;
56 }
57
58 @Override
59 public boolean compareResults(Object expected, Object result)
60 {
61 try
62 {
63
64 if (expected instanceof byte[])
65 {
66 org.dom4j.Document dom4jDoc = null;
67 dom4jDoc = DocumentHelper.parseText(new String((byte[])expected, "UTF-8"));
68 expected = new DOMWriter().write(dom4jDoc);
69 dom4jDoc = DocumentHelper.parseText(new String((byte[])result, "UTF-8"));
70 result = new DOMWriter().write(dom4jDoc);
71 }
72 }
73 catch (Exception ex)
74 {
75
76 }
77
78 return super.compareResults(expected, result);
79 }
80 }