View Javadoc

1   /*
2    * $Id: QuartzNamespaceHandlerServiceTestCase.java 22586 2011-08-04 17:29:56Z svacas $
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.transport.quartz.config;
11  
12  import static org.junit.Assert.assertEquals;
13  import static org.junit.Assert.assertNotNull;
14  import static org.junit.Assert.assertNull;
15  import static org.junit.Assert.assertTrue;
16  
17  import org.mule.api.endpoint.InboundEndpoint;
18  import org.mule.api.endpoint.OutboundEndpoint;
19  import org.mule.api.routing.OutboundRouterCollection;
20  import org.mule.api.service.Service;
21  import org.mule.routing.outbound.AbstractOutboundRouter;
22  import org.mule.service.ServiceCompositeMessageSource;
23  import org.mule.tck.junit4.FunctionalTestCase;
24  import org.mule.transport.quartz.QuartzConnector;
25  import org.mule.transport.quartz.jobs.CustomJobConfig;
26  import org.mule.transport.quartz.jobs.CustomJobFromMessageConfig;
27  import org.mule.transport.quartz.jobs.EndpointPollingJob;
28  import org.mule.transport.quartz.jobs.EndpointPollingJobConfig;
29  import org.mule.transport.quartz.jobs.EventGeneratorJob;
30  import org.mule.transport.quartz.jobs.EventGeneratorJobConfig;
31  import org.mule.transport.quartz.jobs.ScheduledDispatchJob;
32  import org.mule.transport.quartz.jobs.ScheduledDispatchJobConfig;
33  
34  import org.junit.Test;
35  import org.quartz.impl.StdScheduler;
36  
37  
38  /**
39   * Tests the "quartz" namespace.
40   */
41  public class QuartzNamespaceHandlerServiceTestCase extends FunctionalTestCase
42  {
43  
44      @Override
45      protected String getConfigResources()
46      {
47          return "quartz-namespace-config-service.xml";
48      }
49  
50      @Test
51      public void testDefaultConfig() throws Exception
52      {
53          QuartzConnector c = (QuartzConnector)muleContext.getRegistry().lookupConnector("quartzConnectorDefaults");
54          assertNotNull(c);
55          
56          assertNotNull(c.getQuartzScheduler());
57          assertEquals(StdScheduler.class, c.getQuartzScheduler().getClass());
58          StdScheduler scheduler = (StdScheduler) c.getQuartzScheduler();
59          String defaultSchedulerName = "scheduler-" + muleContext.getConfiguration().getId();
60          assertEquals(defaultSchedulerName, scheduler.getSchedulerName());
61          
62          assertTrue(c.isConnected());
63          assertTrue(c.isStarted());
64      }
65      
66      @Test
67      public void testInjectedSchedulerBean() throws Exception
68      {
69          QuartzConnector c = (QuartzConnector)muleContext.getRegistry().lookupConnector("quartzConnector1");
70          assertNotNull(c);
71          
72          assertNotNull(c.getQuartzScheduler());
73          assertEquals(StdScheduler.class, c.getQuartzScheduler().getClass());
74          StdScheduler scheduler = (StdScheduler) c.getQuartzScheduler();
75          assertEquals("MuleScheduler1", scheduler.getSchedulerName());
76          
77          assertTrue(c.isConnected());
78          assertTrue(c.isStarted());
79      }
80      
81      @Test
82      public void testFactoryProperties() throws Exception
83      {
84          QuartzConnector c = (QuartzConnector)muleContext.getRegistry().lookupConnector("quartzConnector2");
85          assertNotNull(c);
86          
87          assertNotNull(c.getQuartzScheduler());
88          assertEquals(StdScheduler.class, c.getQuartzScheduler().getClass());
89          StdScheduler scheduler = (StdScheduler) c.getQuartzScheduler();
90          assertEquals("MuleScheduler2", scheduler.getSchedulerName());
91          
92          assertTrue(c.isConnected());
93          assertTrue(c.isStarted());
94      }
95  
96      @Test
97      public void testEndpoint1Config() throws Exception
98      {
99          Service service = muleContext.getRegistry().lookupService("testService1");
100         assertNotNull(service);
101 
102         InboundEndpoint ep = ((ServiceCompositeMessageSource) service.getMessageSource()).getEndpoint("qEP1");
103         assertNotNull(ep);
104         assertNotNull(ep.getProperty("jobConfig"));
105         assertTrue(ep.getProperty("jobConfig") instanceof EventGeneratorJobConfig);
106         EventGeneratorJobConfig config = (EventGeneratorJobConfig)ep.getProperty("jobConfig");
107         assertEquals("foo", config.getPayload());
108     }
109 
110     @Test
111     public void testEndpoint2Config() throws Exception
112     {
113         Service service = muleContext.getRegistry().lookupService("testService2");
114         assertNotNull(service);
115 
116         InboundEndpoint ep = ((ServiceCompositeMessageSource) service.getMessageSource()).getEndpoint("qEP2");
117         assertNotNull(ep.getProperty("jobConfig"));
118         assertTrue(ep.getProperty("jobConfig") instanceof EventGeneratorJobConfig);
119         EventGeneratorJobConfig config = (EventGeneratorJobConfig)ep.getProperty("jobConfig");
120         assertEquals("foo bar", config.getPayload());
121     }
122 
123     @Test
124     public void testEndpoint3Config() throws Exception
125     {
126         Service service = muleContext.getRegistry().lookupService("testService3");
127         assertNotNull(service);
128 
129         OutboundEndpoint ep = (OutboundEndpoint) ((AbstractOutboundRouter)getOutboundRouterCollection(service).getRoutes().get(0)).getRoute("qEP3");
130         assertNotNull(ep.getProperty("jobConfig"));
131         assertTrue(ep.getProperty("jobConfig") instanceof CustomJobFromMessageConfig);
132         CustomJobFromMessageConfig config = (CustomJobFromMessageConfig)ep.getProperty("jobConfig");
133         assertEquals("header", config.getEvaluator());
134         assertEquals("jobConfig", config.getExpression());
135         assertNull(config.getCustomEvaluator());
136         //Test grabbing the Job instance
137     }
138 
139     @Test
140     public void testEndpoint4Config() throws Exception
141     {
142         Service service = muleContext.getRegistry().lookupService("testService4");
143         assertNotNull(service);
144 
145         OutboundEndpoint ep = (OutboundEndpoint) ((AbstractOutboundRouter)getOutboundRouterCollection(service).getRoutes().get(0)).getRoute("qEP4");
146 
147         assertNotNull(ep.getProperty("jobConfig"));
148         assertTrue(ep.getProperty("jobConfig") instanceof CustomJobConfig);
149         CustomJobConfig config = (CustomJobConfig)ep.getProperty("jobConfig");
150         assertTrue(config.getJob() instanceof EventGeneratorJob);
151     }
152 
153     @Test
154     public void testEndpoint5Config() throws Exception
155     {
156         Service service = muleContext.getRegistry().lookupService("testService5");
157         assertNotNull(service);
158 
159         InboundEndpoint ep = ((ServiceCompositeMessageSource) service.getMessageSource()).getEndpoint("qEP5");
160         assertNotNull(ep.getProperty("jobConfig"));
161         assertTrue(ep.getProperty("jobConfig") instanceof EndpointPollingJobConfig);
162         EndpointPollingJobConfig config = (EndpointPollingJobConfig)ep.getProperty("jobConfig");
163         assertEquals(EndpointPollingJob.class, config.getJobClass());
164         assertEquals("file:///N/drop-data/in", config.getEndpointRef());
165         assertEquals(4000, config.getTimeout());
166     }
167 
168     @Test
169     public void testEndpoint6Config() throws Exception
170     {
171         Service service = muleContext.getRegistry().lookupService("testService6");
172         assertNotNull(service);
173 
174         OutboundEndpoint ep = (OutboundEndpoint) ((AbstractOutboundRouter) getOutboundRouterCollection(
175             service).getRoutes().get(0)).getRoute("qEP6");
176         
177         assertNotNull(ep.getProperty("jobConfig"));
178         assertTrue(ep.getProperty("jobConfig") instanceof ScheduledDispatchJobConfig);
179         ScheduledDispatchJobConfig config = (ScheduledDispatchJobConfig)ep.getProperty("jobConfig");
180         assertEquals(ScheduledDispatchJob.class, config.getJobClass());
181         assertEquals("scheduledDispatchEndpoint", config.getEndpointRef());
182     }
183     
184     private OutboundRouterCollection getOutboundRouterCollection(Service service)
185     {
186         return (OutboundRouterCollection) service.getOutboundMessageProcessor();
187     }
188     
189 }