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.endpoint.EndpointURIEndpointBuilder;
17 import org.mule.module.xml.transformer.DomDocumentToXml;
18 import org.mule.module.xml.transformer.XmlToDomDocument;
19 import org.mule.transformer.types.DataTypeFactory;
20 import org.mule.util.IOUtils;
21
22 import org.dom4j.DocumentHelper;
23 import org.dom4j.io.DOMReader;
24 import org.dom4j.io.DOMWriter;
25 import org.w3c.dom.Document;
26
27 public class DomXmlTransformerEncodingTestCase extends AbstractXmlTransformerTestCase
28 {
29 private Document srcData;
30 private String resultData;
31
32 @Override
33 protected void doSetUp() throws Exception
34 {
35 org.dom4j.Document dom4jDoc = DocumentHelper.parseText(IOUtils.toString(IOUtils.getResourceAsStream(
36 "cdcatalog-utf-8.xml", getClass()), "UTF-8"));
37 srcData = new DOMWriter().write(dom4jDoc);
38 resultData = IOUtils.toString(IOUtils.getResourceAsStream("cdcatalog-us-ascii.xml", getClass()),
39 "US-ASCII");
40 }
41
42 @Override
43 public Transformer getTransformer() throws Exception
44 {
45 Transformer trans = createObject(DomDocumentToXml.class);
46 trans.setReturnDataType(DataTypeFactory.STRING);
47
48 EndpointBuilder builder = new EndpointURIEndpointBuilder("test://test", muleContext);
49 builder.setEncoding("US-ASCII");
50 ImmutableEndpoint endpoint = muleContext.getEndpointFactory().getInboundEndpoint(
51 builder);
52
53 trans.setEndpoint(endpoint);
54 return trans;
55 }
56
57 @Override
58 public Transformer getRoundTripTransformer() throws Exception
59 {
60 XmlToDomDocument trans = createObject(XmlToDomDocument.class);
61 trans.setReturnDataType(DataTypeFactory.create(org.w3c.dom.Document.class));
62 return trans;
63 }
64
65 @Override
66 public Object getTestData()
67 {
68 return srcData;
69 }
70
71 @Override
72 public Object getResultData()
73 {
74 return resultData;
75 }
76
77 @Override
78 public boolean compareResults(Object expected, Object result)
79 {
80
81
82 if (expected instanceof Document)
83 {
84 expected = new DOMReader().read((Document)expected).asXML();
85 result = new DOMReader().read((Document)result).asXML();
86 }
87
88 return super.compareResults(expected, result);
89 }
90
91 }