/* * 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.JobBuilder.newJob; import static org.quartz.JobKey.jobKey; import junit.framework.TestCase; /** * Test JobBuilder functionality */ public class JobBuilderTest 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 testJobBuilder() throws Exception { JobDetail job = newJob() .ofType(TestJob.class) .withIdentity("j1") .storeDurably() .build(); assertTrue("Unexpected job name: " + job.getKey().getName(), job.getKey().getName().equals("j1")); assertTrue("Unexpected job group: " + job.getKey().getGroup(), job.getKey().getGroup().equals(JobKey.DEFAULT_GROUP)); assertTrue("Unexpected job key: " + job.getKey(), job.getKey().equals(jobKey("j1"))); assertTrue("Unexpected job description: " + job.getDescription(), job.getDescription() == null); assertTrue("Expected isDurable == true ", job.isDurable()); assertFalse("Expected requestsRecovery == false ", job.requestsRecovery()); assertFalse("Expected isConcurrentExectionDisallowed == false ", job.isConcurrentExectionDisallowed()); assertFalse("Expected isPersistJobDataAfterExecution == false ", job.isPersistJobDataAfterExecution()); assertTrue("Unexpected job class: " + job.getJobClass(), job.getJobClass().equals(TestJob.class)); job = newJob() .ofType(TestAnnotatedJob.class) .withIdentity("j1") .withDescription("my description") .storeDurably(true) .requestRecovery() .build(); assertTrue("Unexpected job description: " + job.getDescription(), job.getDescription().equals("my description")); assertTrue("Expected isDurable == true ", job.isDurable()); assertTrue("Expected requestsRecovery == true ", job.requestsRecovery()); assertTrue("Expected isConcurrentExectionDisallowed == true ", job.isConcurrentExectionDisallowed()); assertTrue("Expected isPersistJobDataAfterExecution == true ", job.isPersistJobDataAfterExecution()); job = newJob() .ofType(TestStatefulJob.class) .withIdentity("j1", "g1") .requestRecovery(false) .build(); assertTrue("Unexpected job group: " + job.getKey().getName(), job.getKey().getGroup().equals("g1")); assertFalse("Expected isDurable == false ", job.isDurable()); assertFalse("Expected requestsRecovery == false ", job.requestsRecovery()); assertTrue("Expected isConcurrentExectionDisallowed == true ", job.isConcurrentExectionDisallowed()); assertTrue("Expected isPersistJobDataAfterExecution == true ", job.isPersistJobDataAfterExecution()); } }