* after 3 second, repeat forever, 2 second pause between repeat fire
*/
resetTestEnvironment();
jinfo = new JobInfo("TestJobPeriod", null/* default group */, AJob.class);
startTime = new Date(System.currentTimeMillis() + 1000);
PeriodInfo jpinfo = new PeriodInfo(startTime, null /* endTime */, 2/* repeatCount */, 1000/* period */);
service_.addPeriodJob(jinfo, jpinfo);
Thread.sleep(2100);
assertEquals("task has been run exactly two times", 2, AJob.repeatCounter_);
/*
* Test addJobPeriod(JobInfo jinfo,JobPeriodInfor pinfor) Job will fire
* after 1 second, stop after 2 second, 1 second pause between repeat fire
*/
resetTestEnvironment();
long currentTime = System.currentTimeMillis();
jinfo = new JobInfo("TestJobPeriod", null/* default group */, AJob.class);
startTime = new Date(currentTime + 1000);
endTime = new Date(currentTime + 2100);
jpinfo = new PeriodInfo(startTime, endTime, 0/* repeatCount */, 1000/* period */);
service_.addPeriodJob(jinfo, jpinfo);
Thread.sleep(2500);
assertEquals("task has been run exactly two times", 2, AJob.repeatCounter_);
/*
* test test addPeriodJob(JobInfo jinfo,JobperiodInfo pinfo) Job will run
* imediately, and exactly two times, 1 second pause between repeat run
*/
resetTestEnvironment();
jinfo = new JobInfo("ImediatelyPeriodJob", null/* default group */, AJob.class);
jpinfo = new PeriodInfo(null/* startTime */, null/* endTime */, 2/* repeatCount */, 500/* period */);
service_.addPeriodJob(jinfo, jpinfo);
Thread.sleep(1100);
assertEquals("task has been run exactly two times", 2, AJob.repeatCounter_);
service_.removeJob(jinfo);
/*
* test addCronJob(JobInfor jinfo, String exp); Job will fire at 10: am
* every day "0 15 10 ? * *"
*/
resetTestEnvironment();
String exp = "0 25 11 ? * *";
jinfo = new JobInfo("TestCronJob", "cronGroup"/* default group */, AJob.class);
service_.addCronJob(jinfo, exp);
assertEquals("task has been run exactly one times at " + exp, 0, AJob.repeatCounter_);
service_.removeJob(jinfo);
/*
* test test addPeriodJob(JobInfo jinfo,JobperiodInfo pinfo) Job will run
* imediately, and forever, 1 second pause between repeat run
*/
resetTestEnvironment();
jinfo = new JobInfo("ForeverPeriodJob", null/* default group */, AJob.class);
jpinfo = new PeriodInfo(null/* startTime */, null/* endTime */, 0/* repeatCount */, 500/* period */);
service_.addPeriodJob(jinfo, jpinfo);
Thread.sleep(1100);
assertEquals("task has been run forever: ", 3, AJob.repeatCounter_);
boolean b = service_.removeJob(jinfo);
assertTrue("expect Job is removed", b);