/*
* Copyright 2001-2009 Terracotta, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
* of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
*/
package org.quartz;
import static org.quartz.DateBuilder.evenSecondDateAfterNow;
import static org.quartz.DateBuilder.futureDate;
import static org.quartz.TriggerBuilder.newTrigger;
import java.util.Date;
import junit.framework.TestCase;
import org.quartz.DateBuilder.IntervalUnit;
/**
* Test TriggerBuilder functionality
*/
public class TriggerBuilderTest extends TestCase {
@SuppressWarnings("deprecation")
public static class TestStatefulJob implements StatefulJob {
public void execute(JobExecutionContext context)
throws JobExecutionException {
}
}
public static class TestJob implements Job {
public void execute(JobExecutionContext context)
throws JobExecutionException {
}
}
@DisallowConcurrentExecution
@PersistJobDataAfterExecution
public static class TestAnnotatedJob implements Job {
public void execute(JobExecutionContext context)
throws JobExecutionException {
}
}
@Override
protected void setUp() throws Exception {
}
public void testTriggerBuilder() throws Exception {
Trigger trigger = newTrigger()
.build();
assertTrue("Expected non-null trigger name ", trigger.getKey().getName() != null);
assertTrue("Unexpected trigger group: " + trigger.getKey().getGroup(), trigger.getKey().getGroup().equals(JobKey.DEFAULT_GROUP));
assertTrue("Unexpected job key: " + trigger.getJobKey(), trigger.getJobKey() == null);
assertTrue("Unexpected job description: " + trigger.getDescription(), trigger.getDescription() == null);
assertTrue("Unexpected trigger priortiy: " + trigger.getPriority(), trigger.getPriority() == Trigger.DEFAULT_PRIORITY);
assertTrue("Unexpected start-time: " + trigger.getStartTime(), trigger.getStartTime() != null);
assertTrue("Unexpected end-time: " + trigger.getEndTime(), trigger.getEndTime() == null);
Date stime = evenSecondDateAfterNow();
trigger = newTrigger()
.withIdentity("t1")
.withDescription("my description")
.withPriority(2)
.endAt(futureDate(10, IntervalUnit.WEEK))
.startAt(stime)
.build();
assertTrue("Unexpected trigger name " + trigger.getKey().getName(), trigger.getKey().getName().equals("t1"));
assertTrue("Unexpected trigger group: " + trigger.getKey().getGroup(), trigger.getKey().getGroup().equals(JobKey.DEFAULT_GROUP));
assertTrue("Unexpected job key: " + trigger.getJobKey(), trigger.getJobKey() == null);
assertTrue("Unexpected job description: " + trigger.getDescription(), trigger.getDescription().equals("my description"));
assertTrue("Unexpected trigger priortiy: " + trigger, trigger.getPriority() == 2);
assertTrue("Unexpected start-time: " + trigger.getStartTime(), trigger.getStartTime().equals(stime));
assertTrue("Unexpected end-time: " + trigger.getEndTime(), trigger.getEndTime() != null);
}
/** QTZ-157 */
public void testTriggerBuilderWithEndTimePriorCurrrentTime() throws Exception {
TriggerBuilder.newTrigger()
.withIdentity("some trigger name", "some trigger group")
.forJob("some job name", "some job group")
.startAt(new Date(System.currentTimeMillis() - 200000000))
.endAt(new Date(System.currentTimeMillis() - 100000000))
.withSchedule(CronScheduleBuilder.cronSchedule("0 0 0 * * ?"))
.build();
}
}