📄 quartzsupporttests.java
字号:
schedulerFactoryBean.destroy();
}
public void testSchedulerFactoryBeanWithPlainQuartzObjects() throws Exception {
TestBean tb = new TestBean("tb", 99);
JobDetail jobDetail0 = new JobDetail();
jobDetail0.setJobClass(Job.class);
jobDetail0.setName("myJob0");
jobDetail0.setGroup(Scheduler.DEFAULT_GROUP);
jobDetail0.getJobDataMap().put("testBean", tb);
assertEquals(tb, jobDetail0.getJobDataMap().get("testBean"));
CronTrigger trigger0 = new CronTrigger();
trigger0.setName("myTrigger0");
trigger0.setGroup(Scheduler.DEFAULT_GROUP);
trigger0.setJobName("myJob0");
trigger0.setJobGroup(Scheduler.DEFAULT_GROUP);
trigger0.setStartTime(new Date());
trigger0.setCronExpression("0/1 * * * * ?");
TestMethodInvokingTask task1 = new TestMethodInvokingTask();
MethodInvokingJobDetailFactoryBean mijdfb = new MethodInvokingJobDetailFactoryBean();
mijdfb.setName("myJob1");
mijdfb.setGroup(Scheduler.DEFAULT_GROUP);
mijdfb.setTargetObject(task1);
mijdfb.setTargetMethod("doSomething");
mijdfb.afterPropertiesSet();
JobDetail jobDetail1 = (JobDetail) mijdfb.getObject();
SimpleTrigger trigger1 = new SimpleTrigger();
trigger1.setName("myTrigger1");
trigger1.setGroup(Scheduler.DEFAULT_GROUP);
trigger1.setJobName("myJob1");
trigger1.setJobGroup(Scheduler.DEFAULT_GROUP);
trigger1.setStartTime(new Date());
trigger1.setRepeatCount(SimpleTrigger.REPEAT_INDEFINITELY);
trigger1.setRepeatInterval(20);
MockControl schedulerControl = MockControl.createControl(Scheduler.class);
final Scheduler scheduler = (Scheduler) schedulerControl.getMock();
scheduler.getJobDetail("myJob0", Scheduler.DEFAULT_GROUP);
schedulerControl.setReturnValue(null);
scheduler.getJobDetail("myJob1", Scheduler.DEFAULT_GROUP);
schedulerControl.setReturnValue(null);
scheduler.getTrigger("myTrigger0", Scheduler.DEFAULT_GROUP);
schedulerControl.setReturnValue(null);
scheduler.getTrigger("myTrigger1", Scheduler.DEFAULT_GROUP);
schedulerControl.setReturnValue(null);
scheduler.addJob(jobDetail0, true);
schedulerControl.setVoidCallable();
scheduler.addJob(jobDetail1, true);
schedulerControl.setVoidCallable();
scheduler.scheduleJob(trigger0);
schedulerControl.setReturnValue(new Date());
scheduler.scheduleJob(trigger1);
schedulerControl.setReturnValue(new Date());
scheduler.start();
schedulerControl.setVoidCallable();
scheduler.shutdown(false);
schedulerControl.setVoidCallable();
schedulerControl.replay();
SchedulerFactoryBean schedulerFactoryBean = new SchedulerFactoryBean() {
protected Scheduler createScheduler(SchedulerFactory schedulerFactory, String schedulerName) {
return scheduler;
}
};
schedulerFactoryBean.setJobDetails(new JobDetail[] {jobDetail0, jobDetail1});
schedulerFactoryBean.setTriggers(new Trigger[] {trigger0, trigger1});
try {
schedulerFactoryBean.afterPropertiesSet();
}
finally {
schedulerFactoryBean.destroy();
}
schedulerControl.verify();
}
public void testSchedulerFactoryBeanWithApplicationContext() throws Exception {
TestBean tb = new TestBean("tb", 99);
StaticApplicationContext ac = new StaticApplicationContext();
MockControl schedulerControl = MockControl.createControl(Scheduler.class);
final Scheduler scheduler = (Scheduler) schedulerControl.getMock();
SchedulerContext schedulerContext = new SchedulerContext();
scheduler.getContext();
schedulerControl.setReturnValue(schedulerContext, 4);
scheduler.start();
schedulerControl.setVoidCallable();
scheduler.shutdown(false);
schedulerControl.setVoidCallable();
schedulerControl.replay();
SchedulerFactoryBean schedulerFactoryBean = new SchedulerFactoryBean() {
protected Scheduler createScheduler(SchedulerFactory schedulerFactory, String schedulerName) {
return scheduler;
}
};
Map schedulerContextMap = new HashMap();
schedulerContextMap.put("testBean", tb);
schedulerFactoryBean.setSchedulerContextAsMap(schedulerContextMap);
schedulerFactoryBean.setApplicationContext(ac);
schedulerFactoryBean.setApplicationContextSchedulerContextKey("appCtx");
try {
schedulerFactoryBean.afterPropertiesSet();
Scheduler returnedScheduler = (Scheduler) schedulerFactoryBean.getObject();
assertEquals(tb, returnedScheduler.getContext().get("testBean"));
assertEquals(ac, returnedScheduler.getContext().get("appCtx"));
}
finally {
schedulerFactoryBean.destroy();
}
schedulerControl.verify();
}
public void testJobDetailBeanWithApplicationContext() throws Exception {
TestBean tb = new TestBean("tb", 99);
StaticApplicationContext ac = new StaticApplicationContext();
JobDetailBean jobDetail = new JobDetailBean();
jobDetail.setJobClass(Job.class);
jobDetail.setBeanName("myJob0");
Map jobData = new HashMap();
jobData.put("testBean", tb);
jobDetail.setJobDataAsMap(jobData);
jobDetail.setApplicationContext(ac);
jobDetail.setApplicationContextJobDataKey("appCtx");
jobDetail.afterPropertiesSet();
assertEquals(tb, jobDetail.getJobDataMap().get("testBean"));
assertEquals(ac, jobDetail.getJobDataMap().get("appCtx"));
}
public void testJobDetailBeanWithListenerNames() {
JobDetailBean jobDetail = new JobDetailBean();
String[] names = new String[]{"test1", "test2"};
jobDetail.setJobListenerNames(names);
List result = Arrays.asList(jobDetail.getJobListenerNames());
assertEquals(Arrays.asList(names), result);
}
public void testCronTriggerBeanWithListenerNames() {
CronTriggerBean trigger = new CronTriggerBean();
String[] names = new String[]{"test1", "test2"};
trigger.setTriggerListenerNames(names);
List result = Arrays.asList(trigger.getTriggerListenerNames());
assertEquals(Arrays.asList(names), result);
}
public void testSimpleTriggerBeanWithListenerNames() {
SimpleTriggerBean trigger = new SimpleTriggerBean();
String[] names = new String[]{"test1", "test2"};
trigger.setTriggerListenerNames(names);
List result = Arrays.asList(trigger.getTriggerListenerNames());
assertEquals(Arrays.asList(names), result);
}
/**
* Tests the creation of multiple schedulers (SPR-772)
*/
public void testMultipleSchedulers() throws Exception {
ClassPathXmlApplicationContext ctx =
new ClassPathXmlApplicationContext("/org/springframework/scheduling/quartz/multipleSchedulers.xml");
try {
Scheduler scheduler1 = (Scheduler) ctx.getBean("scheduler1");
Scheduler scheduler2 = (Scheduler) ctx.getBean("scheduler2");
assertNotSame(scheduler1, scheduler2);
assertFalse(scheduler1.getSchedulerName().equals(scheduler2.getSchedulerName()));
}
finally {
ctx.close();
}
}
public void testWithTwoAnonymousMethodInvokingJobDetailFactoryBeans() throws InterruptedException {
ClassPathXmlApplicationContext ctx =
new ClassPathXmlApplicationContext("/org/springframework/scheduling/quartz/multipleAnonymousMethodInvokingJobDetailFB.xml");
Thread.sleep(3000);
try {
QuartzTestBean exportService = (QuartzTestBean) ctx.getBean("exportService");
QuartzTestBean importService = (QuartzTestBean) ctx.getBean("importService");
assertEquals("doImport called exportService", 0, exportService.getImportCount());
assertEquals("doExport not called on exportService", 2, exportService.getExportCount());
assertEquals("doImport not called on importService", 2, importService.getImportCount());
assertEquals("doExport called on importService", 0, importService.getExportCount());
}
finally {
ctx.close();
}
}
private static class TestSchedulerListener implements SchedulerListener {
public void jobScheduled(Trigger trigger) {
}
public void jobUnscheduled(String triggerName, String triggerGroup) {
}
public void triggerFinalized(Trigger trigger) {
}
public void triggersPaused(String triggerName, String triggerGroup) {
}
public void triggersResumed(String triggerName, String triggerGroup) {
}
public void jobsPaused(String jobName, String jobGroup) {
}
public void jobsResumed(String jobName, String jobGroup) {
}
public void schedulerError(String msg, SchedulerException cause) {
}
public void schedulerShutdown() {
}
}
private static class TestJobListener implements JobListener {
public String getName() {
return null;
}
public void jobToBeExecuted(JobExecutionContext context) {
}
public void jobExecutionVetoed(JobExecutionContext context) {
}
public void jobWasExecuted(JobExecutionContext context, JobExecutionException jobException) {
}
}
private static class TestTriggerListener implements TriggerListener {
public String getName() {
return null;
}
public void triggerFired(Trigger trigger, JobExecutionContext context) {
}
public boolean vetoJobExecution(Trigger trigger, JobExecutionContext context) {
return false;
}
public void triggerMisfired(Trigger trigger) {
}
public void triggerComplete(Trigger trigger, JobExecutionContext context, int triggerInstructionCode) {
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -