KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > oddjob > quartz > TriggerScheduleTest


1 /*
2  * (c) Rob Gordon 2005
3  */

4 package org.oddjob.quartz;
5
6 import junit.framework.TestCase;
7
8 import org.oddjob.Helper;
9 import org.oddjob.arooa.ArooaConstants;
10 import org.oddjob.arooa.ArooaContext;
11 import org.oddjob.arooa.registry.ComponentRegistry;
12 import org.oddjob.framework.RunnableWrapper;
13 import org.oddjob.jobs.DummyStateJob;
14 import org.oddjob.scheduling.ScheduleInstruction;
15 import org.oddjob.scheduling.TriggerScheduleInstruction;
16 import org.oddjob.state.JobState;
17
18 /**
19  *
20  */

21 public class TriggerScheduleTest extends TestCase {
22
23     public void test1() throws Exception JavaDoc {
24         ComponentRegistry cr = new ComponentRegistry();
25         ArooaContext arooaContext = new ArooaContext();
26         arooaContext.set(ArooaConstants.COMPONENT_REGISTRY, cr);
27         
28         final QuartzSchedulerJob sj = new QuartzSchedulerJob();
29         sj.setContext(arooaContext);
30         
31         class R implements Runnable JavaDoc {
32             boolean ran;
33             Exception JavaDoc e;
34             public void run() {
35                 ran = true;
36                 try {
37                     sj.stop();
38                 } catch (Exception JavaDoc e) {
39                     this.e = e;
40                 }
41             }
42         }
43         R r = new R();
44         
45         DummyStateJob d = new DummyStateJob();
46         d.setDesired("complete");
47         
48         TriggerScheduleInstruction ts = new TriggerScheduleInstruction();
49         ts.setOn(d);
50         ts.setJob(RunnableWrapper.wrapperFor(r));
51         ts.setId("whatever");
52         sj.setSchedules(new ScheduleInstruction[] { ts });
53
54         sj.start();
55         
56         Thread.sleep(2000);
57         d.run();
58         
59         while (!r.ran) {
60             try {
61                 Thread.sleep(1000);
62             } catch (InterruptedException JavaDoc e) {}
63         }
64         
65         assertTrue(r.ran);
66         assertNull(r.e);
67     }
68     
69     public void testSerialize() throws Exception JavaDoc {
70         // not serializable job
71
DummyStateJob sample = new DummyStateJob();
72         sample.setDesired("complete");
73         
74         DummyStateJob on = new DummyStateJob();
75         on.setDesired("complete");
76         
77         ComponentRegistry cr = new ComponentRegistry();
78         cr.register("x", sample);
79         cr.register("y", on);
80         
81         TriggerSchedule triggerSchedule = new TriggerSchedule();
82         
83         triggerSchedule.setId("whatever");
84         triggerSchedule.setComponentRegistry(cr);
85         triggerSchedule.setOn(on);
86         triggerSchedule.setJob(sample);
87             
88         TriggerSchedule copy = (TriggerSchedule) Helper.copy(triggerSchedule);
89         copy.setComponentRegistry(cr);
90         
91         MockScheduler scheduler = new MockScheduler();
92         copy.scheduleWith(scheduler);
93
94         assertNull(scheduler.jobDetail);
95         
96         on.run();
97         
98         OddjobData ojd = (OddjobData) scheduler.jobDetail.getJobDataMap()
99         .get(OddjobData.ODDJOB_DATA);
100
101         assertEquals(JobState.READY, sample.lastJobStateEvent().getJobState());
102         ojd.getJob().run();
103         assertEquals(JobState.COMPLETE, sample.lastJobStateEvent().getJobState());
104     }
105
106 }
107
Popular Tags