1
2
3
4
5
6
7 package org.mule.module.xml.functional;
8
9 import org.mule.api.MuleException;
10 import org.mule.api.MuleMessage;
11 import org.mule.module.client.MuleClient;
12
13 import org.custommonkey.xmlunit.XMLAssert;
14 import org.junit.Test;
15 import org.w3c.dom.Document;
16
17 import static org.junit.Assert.assertEquals;
18 import static org.junit.Assert.assertNotNull;
19 import static org.junit.Assert.assertTrue;
20
21 public class XmlTransformerFunctionalTestCase extends AbstractXmlFunctionalTestCase
22 {
23
24 public static final String SIMPLE_XML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<parent><child name=\"poot\"/></parent>";
25 public static final String CHILDLESS_XML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<parent/>";
26 public static final String SERIALIZED = "<org.mule.module.xml.functional.XmlTransformerFunctionalTestCase_-Parent>\n" +
27 " <child/>\n" +
28 "</org.mule.module.xml.functional.XmlTransformerFunctionalTestCase_-Parent>";
29
30 @Override
31 protected String getConfigResources()
32 {
33 return "org/mule/module/xml/xml-transformer-functional-test.xml";
34 }
35
36 protected MuleClient sendXml() throws MuleException
37 {
38 MuleClient client = new MuleClient(muleContext);
39 client.dispatch("xml-in", SIMPLE_XML, null);
40 return client;
41 }
42
43 protected MuleClient sendObject() throws MuleException
44 {
45 return sendObject("object-in");
46 }
47
48 protected MuleClient sendObject(String endpoint) throws MuleException
49 {
50 MuleClient client = new MuleClient(muleContext);
51 client.dispatch(endpoint, new Parent(new Child()), null);
52 return client;
53 }
54
55 @Test
56 public void testXmlOut() throws Exception
57 {
58 String xml = (String) request(sendXml(), "xml-out", String.class);
59 XMLAssert.assertXMLEqual(SIMPLE_XML, xml);
60 }
61
62 @Test
63 public void testXmlDomOut() throws MuleException
64 {
65 Document dom = (Document) request(sendXml(), "xml-dom-out", Document.class);
66 assertEquals("parent", dom.getDocumentElement().getLocalName());
67 }
68
69 @Test
70 public void testXmlXsltOut() throws Exception
71 {
72 String xml = (String) request(sendXml(), "xml-xslt-out-string", String.class);
73 XMLAssert.assertXMLEqual(CHILDLESS_XML, xml);
74 }
75
76 @Test
77 public void testDomXmlOut() throws Exception
78 {
79 String xml = (String) request(sendXml(), "dom-xml-out", String.class);
80 XMLAssert.assertXMLEqual(SIMPLE_XML, xml);
81 }
82
83 @Test
84 public void testObjectOut() throws Exception
85 {
86 request(sendObject(), "object-out", Parent.class);
87 }
88
89 @Test
90 public void testObjectXmlOut() throws Exception
91 {
92 String xml = (String) request(sendObject(), "object-xml-out", String.class);
93 System.out.println(xml);
94 XMLAssert.assertXMLEqual(SERIALIZED, xml);
95 }
96
97
98
99
100
101
102
103
104 @Test
105 public void testXmlJxpathOut() throws Exception
106 {
107 String xml = (String) request(sendXml(), "xml-jxpath-out", String.class);
108 assertEquals("1", xml);
109 }
110
111 protected Object request(MuleClient client, String endpoint, Class clazz) throws MuleException
112 {
113 MuleMessage message = client.request(endpoint, TIMEOUT);
114 assertNotNull(message);
115 assertNotNull(message.getPayload());
116 assertTrue(message.getPayload().getClass().getName(), clazz.isAssignableFrom(message.getPayload().getClass()));
117 return message.getPayload();
118 }
119
120 public static class Parent
121 {
122 private Child child;
123
124 public Parent()
125 {
126 this(null);
127 }
128
129 public Parent(Child child)
130 {
131 setChild(child);
132 }
133
134 public Child getChild()
135 {
136 return child;
137 }
138
139 public void setChild(Child child)
140 {
141 this.child = child;
142 }
143 }
144
145 public static class Child
146 {
147
148 }
149
150 }