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