View Javadoc

1   /*
2    * $Id: XmlNamespaceTestCase.java 19191 2010-08-25 21:05:23Z tcarlson $
3    * --------------------------------------------------------------------------------------
4    * Copyright (c) MuleSoft, Inc.  All rights reserved.  http://www.mulesoft.com
5    *
6    * The software in this package is published under the terms of the CPAL v1.0
7    * license, a copy of which has been included with this distribution in the
8    * LICENSE.txt file.
9    */
10  package org.mule.module.xml.config;
11  
12  import org.mule.api.endpoint.EndpointBuilder;
13  import org.mule.api.endpoint.InboundEndpoint;
14  import org.mule.jaxb.model.Person;
15  import org.mule.module.xml.filters.JXPathFilter;
16  import org.mule.module.xml.filters.JaxenFilter;
17  import org.mule.module.xml.transformer.JXPathExtractor;
18  import org.mule.module.xml.transformer.jaxb.JAXBMarshallerTransformer;
19  import org.mule.module.xml.transformer.jaxb.JAXBUnmarshallerTransformer;
20  import org.mule.module.xml.util.NamespaceManager;
21  import org.mule.tck.FunctionalTestCase;
22  
23  public class XmlNamespaceTestCase extends FunctionalTestCase
24  {
25      public XmlNamespaceTestCase()
26      {
27          setDisposeManagerPerSuite(true);
28      }
29  
30      protected String getConfigResources()
31      {
32          return "xml-namespace-config.xml";
33      }
34  
35      public void testGlobalNamespaces() throws Exception
36      {
37          NamespaceManager manager = muleContext.getRegistry().lookupObject(NamespaceManager.class);
38          assertNotNull(manager);
39          assertTrue(manager.isIncludeConfigNamespaces());
40          assertEquals(5, manager.getNamespaces().size());
41      }
42  
43      public void testJXPathFilterConfig() throws Exception
44      {
45          EndpointBuilder epb = muleContext.getRegistry().lookupEndpointBuilder("test.ep1");
46  
47          InboundEndpoint ep = epb.buildInboundEndpoint();
48          assertNotNull(ep.getFilter());
49          assertTrue(ep.getFilter() instanceof JXPathFilter);
50          JXPathFilter filter = (JXPathFilter)ep.getFilter();
51          assertEquals("/bar:foo/bar:bar", filter.getPattern());
52          assertEquals(6, filter.getNamespaces().size());
53          assertEquals("http://bar.com", filter.getNamespaces().get("bar"));
54      }
55  
56      public void testJaxenFilterConfig() throws Exception
57      {
58          EndpointBuilder epb = muleContext.getRegistry().lookupEndpointBuilder("test.ep2");
59  
60          InboundEndpoint ep = epb.buildInboundEndpoint();
61          assertNotNull(ep.getFilter());
62          assertTrue(ep.getFilter() instanceof JaxenFilter);
63          JaxenFilter filter = (JaxenFilter)ep.getFilter();
64          assertEquals("/car:foo/car:bar", filter.getPattern());
65          assertEquals(6, filter.getNamespaces().size());
66          assertEquals("http://car.com", filter.getNamespaces().get("car"));
67      }
68  
69      public void testJXPathExtractor() throws Exception
70      {
71          JXPathExtractor transformer = (JXPathExtractor)muleContext.getRegistry().lookupTransformer("jxpath-extractor");
72          assertNotNull(transformer);
73          assertNotNull(transformer.getNamespaces());
74          assertEquals(6, transformer.getNamespaces().size());
75          assertNotNull(transformer.getNamespaces().get("foo"));
76          assertNotNull(transformer.getNamespaces().get("bar"));
77      }
78  
79      public void testJaxbConfig() throws Exception
80      {
81          JAXBMarshallerTransformer t = (JAXBMarshallerTransformer)muleContext.getRegistry().lookupTransformer("ObjectToXml");
82          assertNotNull(t);
83          assertNotNull(t.getJaxbContext());
84  
85          JAXBUnmarshallerTransformer t2 = (JAXBUnmarshallerTransformer)muleContext.getRegistry().lookupTransformer("XmlToObject");
86          assertNotNull(t2);
87          assertEquals(Person.class, t2.getReturnDataType().getType());
88          assertNotNull(t2.getJaxbContext());
89      }
90  }