1
2
3
4
5
6
7
8
9
10
11 package org.mule.module.xml.config;
12
13 import org.mule.api.MuleException;
14 import org.mule.api.transformer.Transformer;
15 import org.mule.module.xml.transformer.AbstractXmlTransformer;
16 import org.mule.module.xml.transformer.DomDocumentToXml;
17 import org.mule.module.xml.transformer.JXPathExtractor;
18 import org.mule.module.xml.transformer.ObjectToXml;
19 import org.mule.module.xml.transformer.XmlToDomDocument;
20 import org.mule.module.xml.transformer.XmlToObject;
21 import org.mule.module.xml.transformer.XsltTransformer;
22 import org.mule.tck.FunctionalTestCase;
23 import org.mule.transformer.AbstractTransformer;
24
25 public class XmlTransformerNamespaceHandlerTestCase extends FunctionalTestCase
26 {
27
28 protected String getConfigResources()
29 {
30 return "org/mule/module/xml/xml-transformer-namespace-test.xml";
31 }
32
33 public void testDomToXml()
34 {
35 getAndTestTransformer("domToXml", DomDocumentToXml.class);
36 }
37
38 public void testJXPathExtractor()
39 {
40 JXPathExtractor extractor = (JXPathExtractor) getAndTestTransformer("jxpathExtractor",
41 JXPathExtractor.class);
42 assertEquals("/expression", extractor.getExpression());
43 assertFalse(extractor.isSingleResult());
44 }
45
46 public void testObjectToXml()
47 {
48 ObjectToXml objectToXml = (ObjectToXml) getAndTestTransformer("objectToXml", ObjectToXml.class);
49 assertTrue(objectToXml.isAcceptUMOMessage());
50 }
51
52 public void testXmlToDom()
53 {
54 getAndTestTransformer("xmlToDom", XmlToDomDocument.class);
55 }
56
57 public void testXmlToObject()
58 {
59 getAndTestTransformer("xmlToObject", XmlToObject.class);
60 }
61
62 public void testXslt()
63 {
64 XsltTransformer xslt = (XsltTransformer) getAndTestTransformer("xslt", XsltTransformer.class);
65 assertEquals(10, xslt.getMaxActiveTransformers());
66 assertEquals(10, xslt.getMaxIdleTransformers());
67 assertEquals(CustomXsltTransformerFactory.class.getName(), xslt.getXslTransformerFactory());
68 assertEquals("file", xslt.getXslFile());
69 assertNotNull(xslt.getXslt());
70 String transform = xslt.getXslt();
71 assertTrue(transform.indexOf("test for this string in test") > -1);
72
73 assertEquals("${header:foo}", xslt.getContextProperties().get("bar"));
74 }
75
76 public void testDomToXmlOnEndpoint() throws MuleException
77 {
78 getAndTestEndpointTransformer("ep1", DomDocumentToXml.class);
79 }
80
81 public void testJXPathExtractorOnEndpoint() throws MuleException
82 {
83 JXPathExtractor extractor = (JXPathExtractor) getAndTestEndpointTransformer("ep2",
84 JXPathExtractor.class);
85 assertEquals("/expression", extractor.getExpression());
86 assertFalse(extractor.isSingleResult());
87 }
88
89 public void testObjectToXmlOnEndpoint() throws MuleException
90 {
91 ObjectToXml objectToXml = (ObjectToXml) getAndTestEndpointTransformer("ep3", ObjectToXml.class);
92 assertTrue(objectToXml.isAcceptUMOMessage());
93 }
94
95 public void testXmlToDomOnEndpoint() throws MuleException
96 {
97 getAndTestEndpointTransformer("ep4", XmlToDomDocument.class);
98 }
99
100 public void testXmlToObjectOnEndpoint() throws MuleException
101 {
102 getAndTestEndpointTransformer("ep5", XmlToObject.class);
103 }
104
105 public void testXsltOnEndpoint() throws MuleException
106 {
107 XsltTransformer xslt = (XsltTransformer) getAndTestEndpointTransformer("ep6", XsltTransformer.class);
108 assertEquals(10, xslt.getMaxActiveTransformers());
109 assertEquals(10, xslt.getMaxIdleTransformers());
110 assertEquals(CustomXsltTransformerFactory.class.getName(), xslt.getXslTransformerFactory());
111 assertEquals("file", xslt.getXslFile());
112 assertNotNull(xslt.getXslt());
113 String transform = xslt.getXslt();
114 assertTrue(transform.indexOf("test for this string in test") > -1);
115
116 assertEquals("${header:foo}", xslt.getContextProperties().get("bar"));
117 }
118 protected AbstractTransformer getAndTestTransformer(String name, Class clazz)
119 {
120 assertTrue(AbstractTransformer.class.isAssignableFrom(clazz));
121 Transformer object= muleContext.getRegistry().lookupTransformer(name);
122
123 assertNotNull(object);
124 assertTrue(clazz.isAssignableFrom(object.getClass()));
125 AbstractTransformer transformer = (AbstractTransformer) object;
126 assertAbstractTransformerOk(transformer, name);
127 return transformer;
128 }
129
130 protected AbstractTransformer getAndTestEndpointTransformer(String endpointName, Class clazz) throws MuleException
131 {
132 assertTrue(AbstractTransformer.class.isAssignableFrom(clazz));
133 assertEquals(1, muleContext.getRegistry().lookupEndpointFactory().getInboundEndpoint(endpointName).getTransformers().size());
134 AbstractTransformer transformer= (AbstractTransformer) muleContext.getRegistry().lookupEndpointFactory().getInboundEndpoint(endpointName).getTransformers().get(0);
135
136 assertNotNull(transformer);
137 assertTrue(clazz.isAssignableFrom(transformer.getClass()));
138 return transformer;
139 }
140
141 protected void assertAbstractTransformerOk(AbstractTransformer transformer, String name)
142 {
143 assertTrue(transformer.isIgnoreBadInput());
144 assertEquals(Object.class, transformer.getReturnClass());
145 assertEquals(name, transformer.getName());
146
147 if (transformer instanceof AbstractXmlTransformer)
148 {
149 assertEquals("foo", ((AbstractXmlTransformer) transformer).getOutputEncoding());
150 }
151 }
152
153 }