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