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