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.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  }