1
2
3
4
5
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
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 }