1
2
3
4
5
6
7
8
9
10
11 package org.mule.module.xml.config;
12
13 import org.mule.api.routing.MatchableMessageProcessor;
14 import org.mule.api.routing.OutboundRouterCollection;
15 import org.mule.api.service.Service;
16 import org.mule.module.xml.filters.IsXmlFilter;
17 import org.mule.module.xml.filters.JXPathFilter;
18 import org.mule.routing.filters.logic.NotFilter;
19 import org.mule.routing.outbound.FilteringOutboundRouter;
20 import org.mule.tck.junit4.FunctionalTestCase;
21
22 import java.util.List;
23 import java.util.Map;
24
25 import org.junit.Test;
26
27 import static org.junit.Assert.assertEquals;
28 import static org.junit.Assert.assertNotNull;
29 import static org.junit.Assert.assertTrue;
30
31 public class XmlFilterNamespaceHandlerServiceTestCase extends FunctionalTestCase
32 {
33 @Override
34 protected String getConfigResources()
35 {
36 return "org/mule/module/xml/xml-filter-functional-test-service.xml";
37 }
38
39 @Test
40 public void testIsXmlFilter() throws Exception
41 {
42 Service service = muleContext.getRegistry().lookupService("test for xml");
43
44 List<MatchableMessageProcessor> routers = ((OutboundRouterCollection) (service).getOutboundMessageProcessor()).getRoutes();
45
46 assertEquals(2, routers.size());
47 assertTrue(routers.get(0).getClass().getName(), routers.get(0) instanceof FilteringOutboundRouter);
48 assertTrue(((FilteringOutboundRouter) routers.get(0)).getFilter() instanceof IsXmlFilter);
49 assertTrue(routers.get(1).getClass().getName(), routers.get(1) instanceof FilteringOutboundRouter);
50 assertTrue(((FilteringOutboundRouter) routers.get(1)).getFilter() instanceof NotFilter);
51 assertTrue(((NotFilter) ((FilteringOutboundRouter) routers.get(1)).getFilter()).getFilter() instanceof IsXmlFilter);
52
53 }
54
55 @Test
56 public void testJXPathFilter()
57 {
58 Service service = muleContext.getRegistry().lookupService("filter xml for content");
59
60 List<MatchableMessageProcessor> routers = ((OutboundRouterCollection) (service).getOutboundMessageProcessor()).getRoutes();
61
62 assertEquals(1, routers.size());
63 assertTrue(routers.get(0).getClass().getName(), routers.get(0) instanceof FilteringOutboundRouter);
64 assertTrue(((FilteringOutboundRouter) routers.get(0)).getFilter() instanceof JXPathFilter);
65 JXPathFilter filter = (JXPathFilter) ((FilteringOutboundRouter) routers.get(0)).getFilter();
66 assertEquals("filter xml for content", filter.getExpectedValue());
67 assertEquals("/mule:mule/mule:model/mule:service[2]/@name", filter.getPattern());
68 assertNotNull(filter.getNamespaces());
69 Map<?, ?> namespaces = filter.getNamespaces();
70 assertEquals(2, namespaces.size());
71 assertEquals("http://www.springframework.org/schema/beans", namespaces.get("spring"));
72 assertTrue(namespaces.get("mule").toString().startsWith("http://www.mulesoft.org/schema/mule/core"));
73
74 }
75 }