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