@Transactional @Test public void testJobWithDefaultJobIdentifier() throws Exception { String testDefaultJob = "testDefault"; // Create job. jobInstance = jobInstanceDao.createJobInstance(testDefaultJob, jobParameters); JobInstance instance = jobInstanceDao.getJobInstance(testDefaultJob, jobParameters); assertNotNull(instance); }
@Test public void testJobInstanceWildcard() { dao.createJobInstance("anotherJob", new JobParameters()); dao.createJobInstance("someJob", new JobParameters()); List<JobInstance> jobInstances = dao.findJobInstancesByName("*Job", 0, 2); assertEquals(2, jobInstances.size()); for (JobInstance instance : jobInstances) { assertTrue(instance.getJobName().contains("Job")); } jobInstances = dao.getJobInstances("Job*", 0, 2); assertTrue(jobInstances.isEmpty()); } }
@Override public List<String> getJobNames() { return jobInstanceDao.getJobNames(); }
/** * Create and retrieve a job instance. */ @Transactional @Test public void testGetLastInstancesPastEnd() throws Exception { testCreateAndRetrieve(); // unrelated job instance that should be ignored by the query dao.createJobInstance("anotherJob", new JobParameters()); // we need two instances of the same job to check ordering dao.createJobInstance(fooJob, new JobParameters()); List<JobInstance> jobInstances = dao.getJobInstances(fooJob, 4, 2); assertEquals(0, jobInstances.size()); }
@Override public boolean isJobInstanceExists(String jobName, JobParameters jobParameters) { return jobInstanceDao.getJobInstance(jobName, jobParameters) != null; }
@Override public JobInstance createJobInstance(String jobName, JobParameters jobParameters) { Assert.notNull(jobName, "A job name is required to create a JobInstance"); Assert.notNull(jobParameters, "Job parameters are required to create a JobInstance"); JobInstance jobInstance = jobInstanceDao.createJobInstance(jobName, jobParameters); return jobInstance; }
@Override public List<JobInstance> getJobInstances(String jobName, int start, int count) { return jobInstanceDao.getJobInstances(jobName, start, count); }
@Override public int getJobInstanceCount(@Nullable String jobName) throws NoSuchJobException { return jobInstanceDao.getJobInstanceCount(jobName); }
@Override public List<JobInstance> findJobInstancesByJobName(String jobName, int start, int count) { return jobInstanceDao.findJobInstancesByName(jobName, start, count); } }
@Override public JobInstance getJobInstance(@Nullable Long instanceId) { return jobInstanceDao.getJobInstance(instanceId); }
/** * Trying to create instance twice for the same job+parameters causes error */ @Transactional @Test public void testCreateDuplicateInstance() { dao.createJobInstance(fooJob, fooParams); try { dao.createJobInstance(fooJob, fooParams); fail(); } catch (IllegalStateException e) { // expected } }
/** * Create and retrieve a job instance. */ @Transactional @Test public void testGetLastInstances() throws Exception { testCreateAndRetrieve(); // unrelated job instance that should be ignored by the query dao.createJobInstance("anotherJob", new JobParameters()); // we need two instances of the same job to check ordering dao.createJobInstance(fooJob, new JobParameters()); List<JobInstance> jobInstances = dao.getJobInstances(fooJob, 0, 2); assertEquals(2, jobInstances.size()); assertEquals(fooJob, jobInstances.get(0).getJobName()); assertEquals(fooJob, jobInstances.get(1).getJobName()); assertEquals(Integer.valueOf(0), jobInstances.get(0).getVersion()); assertEquals(Integer.valueOf(0), jobInstances.get(1).getVersion()); assertTrue("Last instance should be first on the list", jobInstances.get(0).getId() > jobInstances.get(1) .getId()); }
@Test public void testGetLastJobInstances() throws Exception { jobInstanceDao.getJobInstances("foo", 0, 1); jobExplorer.getJobInstances("foo", 0, 1); }
@Test public void testGetJobInstanceCount() throws Exception { when(jobInstanceDao.getJobInstanceCount("myJob")).thenReturn(4); assertEquals(4, jobExplorer.getJobInstanceCount("myJob")); }
@Override public List<JobInstance> findJobInstancesByJobName(String jobName, int start, int count) { return jobInstanceDao.findJobInstancesByName(jobName, start, count); } }
@Transactional @Test public void testFindJobInstanceByExecution() { JobParameters jobParameters = new JobParameters(); JobInstance jobInstance = dao.createJobInstance("testInstance", jobParameters); JobExecution jobExecution = new JobExecution(jobInstance, 2L, jobParameters, null); jobExecutionDao.saveJobExecution(jobExecution); JobInstance returnedInstance = dao.getJobInstance(jobExecution); assertEquals(jobInstance, returnedInstance); }
@Override @Nullable public JobExecution getLastJobExecution(String jobName, JobParameters jobParameters) { JobInstance jobInstance = jobInstanceDao.getJobInstance(jobName, jobParameters); if (jobInstance == null) { return null; } JobExecution jobExecution = jobExecutionDao.getLastJobExecution(jobInstance); if (jobExecution != null) { jobExecution.setExecutionContext(ecDao.getExecutionContext(jobExecution)); stepExecutionDao.addStepExecutions(jobExecution); } return jobExecution; }
/** * Trying to create instance twice for the same job+parameters causes error */ @Transactional @Test public void testCreateDuplicateInstance() { jobParameters = new JobParameters(); jobInstanceDao.createJobInstance(jobName, jobParameters); try { jobInstanceDao.createJobInstance(jobName, jobParameters); fail(); } catch (IllegalStateException e) { // expected } }
/** * Create and retrieve a job instance. */ @Transactional @Test public void testGetLastInstancesPaged() throws Exception { testCreateAndRetrieve(); // unrelated job instance that should be ignored by the query dao.createJobInstance("anotherJob", new JobParameters()); // we need multiple instances of the same job to check ordering String multiInstanceJob = "multiInstanceJob"; String paramKey = "myID"; int instanceCount = 6; for (int i = 1; i <= instanceCount; i++) { JobParameters params = new JobParametersBuilder().addLong(paramKey, Long.valueOf(i)).toJobParameters(); dao.createJobInstance(multiInstanceJob, params); } int startIndex = 3; int queryCount = 2; List<JobInstance> jobInstances = dao.getJobInstances(multiInstanceJob, startIndex, queryCount); assertEquals(queryCount, jobInstances.size()); for (int i = 0; i < queryCount; i++) { JobInstance returnedInstance = jobInstances.get(i); assertEquals(multiInstanceJob, returnedInstance.getJobName()); assertEquals(Integer.valueOf(0), returnedInstance.getVersion()); //checks the correct instances are returned and the order is descending // assertEquals(instanceCount - startIndex - i , returnedInstance.getJobParameters().getLong(paramKey)); } }
@Test public void testGetJobNames() throws Exception { jobInstanceDao.getJobNames(); jobExplorer.getJobNames(); }