View Javadoc
1   /*
2    * Copyright (c) MuleSoft, Inc.  All rights reserved.  http://www.mulesoft.com
3    * The software in this package is published under the terms of the CPAL v1.0
4    * license, a copy of which has been included with this distribution in the
5    * LICENSE.txt file.
6    */
7   package org.mule.module.xml.config;
8   
9   import org.mule.api.routing.OutboundRouterCollection;
10  import org.mule.api.service.Service;
11  import org.mule.module.xml.filters.IsXmlFilter;
12  import org.mule.module.xml.filters.JXPathFilter;
13  import org.mule.routing.filters.logic.NotFilter;
14  import org.mule.routing.outbound.FilteringOutboundRouter;
15  import org.mule.tck.junit4.FunctionalTestCase;
16  
17  import java.util.List;
18  import java.util.Map;
19  
20  import org.junit.Test;
21  
22  import static org.junit.Assert.assertEquals;
23  import static org.junit.Assert.assertNotNull;
24  import static org.junit.Assert.assertTrue;
25  
26  public class XmlFilterNamespaceHandlerTestCase extends FunctionalTestCase
27  {
28  
29      @Override
30      protected String getConfigResources()
31      {
32          return "org/mule/module/xml/xml-filter-functional-test.xml";
33      }
34  
35      /**
36       * IsXmlFilter doesn't have any properties to test, so just check it is created
37       */
38      @Test
39      public void testIsXmlFilter()
40      {
41          Service service = muleContext.getRegistry().lookupService("test for xml");
42          List routers = ((OutboundRouterCollection) service.getOutboundMessageProcessor()).getRoutes();
43          assertEquals(2, routers.size());
44          assertTrue(routers.get(0).getClass().getName(), routers.get(0) instanceof FilteringOutboundRouter);
45          assertTrue(((FilteringOutboundRouter) routers.get(0)).getFilter() instanceof IsXmlFilter);
46          assertTrue(routers.get(1).getClass().getName(), routers.get(1) instanceof FilteringOutboundRouter);
47          assertTrue(((FilteringOutboundRouter) routers.get(1)).getFilter() instanceof NotFilter);
48          assertTrue(((NotFilter) ((FilteringOutboundRouter) routers.get(1)).getFilter()).getFilter() instanceof IsXmlFilter);
49      }
50  
51      @Test
52      public void testJXPathFilter()
53      {
54          Service service = muleContext.getRegistry().lookupService("filter xml for content");
55          List routers = ((OutboundRouterCollection) service.getOutboundMessageProcessor()).getRoutes();
56          assertEquals(1, routers.size());
57          assertTrue(routers.get(0).getClass().getName(), routers.get(0) instanceof FilteringOutboundRouter);
58          assertTrue(((FilteringOutboundRouter) routers.get(0)).getFilter() instanceof JXPathFilter);
59          JXPathFilter filter = (JXPathFilter) ((FilteringOutboundRouter) routers.get(0)).getFilter();
60          assertEquals("filter xml for content", filter.getExpectedValue());
61          assertEquals("/mule:mule/mule:model/mule:service[2]/@name", filter.getPattern());
62          assertNotNull(filter.getNamespaces());
63          Map namespaces = filter.getNamespaces();
64          assertEquals(2, namespaces.size());
65          assertEquals("http://www.springframework.org/schema/beans", namespaces.get("spring"));
66          assertTrue(namespaces.get("mule").toString().startsWith("http://www.mulesoft.org/schema/mule/core"));
67      }
68  
69  }