1
2
3
4
5
6
7 package org.mule.module.rss.config;
8
9 import org.mule.api.endpoint.InboundEndpoint;
10 import org.mule.api.processor.MessageProcessor;
11 import org.mule.api.service.Service;
12 import org.mule.api.transformer.Transformer;
13 import org.mule.construct.SimpleFlowConstruct;
14 import org.mule.module.rss.endpoint.RssInboundEndpoint;
15 import org.mule.module.rss.routing.EntryLastUpdatedFilter;
16 import org.mule.module.rss.routing.FeedLastUpdatedFilter;
17 import org.mule.module.rss.routing.FeedSplitter;
18 import org.mule.module.rss.transformers.ObjectToRssFeed;
19 import org.mule.routing.MessageFilter;
20 import org.mule.service.ServiceCompositeMessageSource;
21 import org.mule.tck.junit4.FunctionalTestCase;
22
23 import java.text.SimpleDateFormat;
24
25 import org.junit.Test;
26
27 import static org.junit.Assert.assertEquals;
28 import static org.junit.Assert.assertFalse;
29 import static org.junit.Assert.assertNotNull;
30 import static org.junit.Assert.assertTrue;
31
32 public class RssNamespaceHandlerTestCase extends FunctionalTestCase
33 {
34
35 @Override
36 protected String getConfigResources()
37 {
38 return "namespace-config.xml";
39 }
40
41 @Test
42 public void testEndpointConfig() throws Exception
43 {
44 Service service = muleContext.getRegistry().lookupService("test");
45 assertNotNull(service);
46 assertTrue(((ServiceCompositeMessageSource) service.getMessageSource()).getEndpoints().get(0) instanceof RssInboundEndpoint);
47 RssInboundEndpoint ep = (RssInboundEndpoint) ((ServiceCompositeMessageSource) service.getMessageSource()).getEndpoints().get(0);
48 assertEquals(FeedSplitter.class, ep.getMessageProcessors().get(0).getClass());
49 assertNotNull(ep.getLastUpdate());
50 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
51
52 assertEquals(sdf.parse("2009-10-01"), ep.getLastUpdate());
53 }
54
55 @Test
56 public void testFlowConfig() throws Exception
57 {
58 SimpleFlowConstruct flowConstruct = muleContext.getRegistry().lookupObject("flowTest");
59 assertNotNull(flowConstruct);
60 assertTrue(flowConstruct.getMessageSource() instanceof InboundEndpoint);
61 InboundEndpoint ep = ((InboundEndpoint)flowConstruct.getMessageSource());
62 assertEquals(3, ep.getMessageProcessors().size());
63 MessageProcessor mp = ep.getMessageProcessors().get(0);
64 assertTrue(mp instanceof FeedSplitter);
65 mp = ep.getMessageProcessors().get(1);
66 assertTrue(mp instanceof MessageFilter);
67
68 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
69
70 assertEquals(sdf.parse("2009-10-01"), ((EntryLastUpdatedFilter)((MessageFilter)mp).getFilter()).getLastUpdate());
71 }
72
73 @Test
74 public void testGlobalFilterConfig() throws Exception
75 {
76 FeedLastUpdatedFilter filter = muleContext.getRegistry().lookupObject("feedFilter");
77 assertNotNull(filter);
78
79 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
80
81 assertEquals(sdf.parse("2009-10-01 13:00:00"), filter.getLastUpdate());
82 assertFalse(filter.isAcceptWithoutUpdateDate());
83 }
84
85 @Test
86 public void testObjectToFeedTransformer() throws Exception
87 {
88 Transformer transformer = muleContext.getRegistry().lookupTransformer("ObjectToFeed");
89 assertNotNull(transformer);
90 assertTrue(transformer instanceof ObjectToRssFeed);
91 }
92 }