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