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