View Javadoc

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