1
2
3
4
5
6
7
8
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
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
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 }