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