View Javadoc

1   /*
2    * $Id: RssNamespaceHandlerTestCase.java 22551 2011-07-25 06:32:00Z mike.schilling $
3    * --------------------------------------------------------------------------------------
4    * Copyright (c) MuleSoft, Inc.  All rights reserved.  http://www.mulesoft.com
5    *
6    * The software in this package is published under the terms of the CPAL v1.0
7    * license, a copy of which has been included with this distribution in the
8    * LICENSE.txt file.
9    */
10  package org.mule.module.rss.config;
11  
12  import org.mule.api.endpoint.InboundEndpoint;
13  import org.mule.api.processor.MessageProcessor;
14  import org.mule.api.transformer.Transformer;
15  import org.mule.construct.Flow;
16  import org.mule.module.rss.routing.EntryLastUpdatedFilter;
17  import org.mule.module.rss.routing.FeedLastUpdatedFilter;
18  import org.mule.module.rss.routing.FeedSplitter;
19  import org.mule.module.rss.transformers.ObjectToRssFeed;
20  import org.mule.routing.MessageFilter;
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      @Override
35      protected String getConfigResources()
36      {
37          return "namespace-config.xml";
38      }
39  
40      @Test
41      public void testFlowConfig() throws Exception
42      {
43          Flow flowConstruct = muleContext.getRegistry().lookupObject("flowTest");
44          assertNotNull(flowConstruct);
45          assertTrue(flowConstruct.getMessageSource() instanceof InboundEndpoint);
46          InboundEndpoint ep = ((InboundEndpoint)flowConstruct.getMessageSource());
47          assertEquals(3, ep.getMessageProcessors().size());
48          MessageProcessor mp = ep.getMessageProcessors().get(0);
49          assertTrue(mp instanceof FeedSplitter);
50          mp = ep.getMessageProcessors().get(1);
51          assertTrue(mp instanceof MessageFilter);
52  
53          SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
54  
55          assertEquals(sdf.parse("2009-10-01"), ((EntryLastUpdatedFilter)((MessageFilter)mp).getFilter()).getLastUpdate());
56      }
57  
58      @Test
59      public void testGlobalFilterConfig() throws Exception
60      {
61          FeedLastUpdatedFilter filter = muleContext.getRegistry().lookupObject("feedFilter");
62          assertNotNull(filter);
63  
64          SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
65  
66          assertEquals(sdf.parse("2009-10-01 13:00:00"), filter.getLastUpdate());
67          assertFalse(filter.isAcceptWithoutUpdateDate());
68      }
69  
70      @Test
71      public void testObjectToFeedTransformer() throws Exception
72      {
73          Transformer transformer = muleContext.getRegistry().lookupTransformer("ObjectToFeed");
74          assertNotNull(transformer);
75          assertTrue(transformer instanceof ObjectToRssFeed);
76      }
77  }