*/
@Test
public void testJobs2AddOrModify() throws SchedulerException
{
ERQSJobExecutionContext4Test jec = new ERQSJobExecutionContext4Test(true);
ERQSSchedulerFP4Test fp = new ERQSSchedulerFP4Test();
jec.setSchedulerFP(fp);
ERQSJobSupervisor js = new ERQSJobSupervisor();
js.execute(jec);
ERQSJobDescription4Test jd1 = new ERQSJobDescription4Test();
jd1.setName("jd1");
jd1.setClassPath("er.quartzscheduler.foundation.ERQSExtendedAbstractJob4Test");
jd1.setCronExpression("0 0 12 * * ?");
jd1.setIsEnterpriseObject(false);
ERQSJobDescription4Test jd2 = new ERQSJobDescription4Test();
jd2.setName("jd2");
jd2.setClassPath("er.quartzscheduler.foundation.ERQSExtendedAbstractJob4Test");
jd2.setCronExpression("0 0 12 * * ?");
jd2.setIsEnterpriseObject(false);
NSArray<ERQSJobDescription> jds = new NSArray<ERQSJobDescription>(new ERQSJobDescription4Test[] {jd1, jd2});
js.addOrModifyJobs(jds);
Set<JobKey> aSet = js.getScheduledJobKeys();
assertTrue(aSet.size() == 2);
jd2.setCronExpression("0 0 6 * * ?");
JobKey jobKey4jd2 = js.getJobKeyForJobDescription(jd2);
JobDetail job4jd2 = fp.getScheduler().getJobDetail(jobKey4jd2);
js.modifyJob(jd2, job4jd2);
List<? extends Trigger> triggers = fp.getScheduler().getTriggersOfJob(jobKey4jd2);
assertNotNull(triggers);
assertTrue(triggers.size() == 1);
CronTrigger aTrigger = (CronTrigger)triggers.get(0);
assertEquals(aTrigger.getCronExpression(), "0 0 6 * * ?");
jd2.setClassPath("er.quartzscheduler.foundation.ERQSJobSupervisor");
js.modifyJob(jd2, job4jd2);
job4jd2 = fp.getScheduler().getJobDetail(jobKey4jd2);
assertEquals("er.quartzscheduler.foundation.ERQSJobSupervisor", job4jd2.getJobClass().getName());
}