@Test public void testRunRestartableJobInstanceTwice() throws Exception { job = new JobSupport("foo") { @Override public boolean isRestartable() { return true; } @Override public void execute(JobExecution execution) { execution.setExitStatus(ExitStatus.COMPLETED); return; } }; testRun(); reset(jobRepository); expect(jobRepository.getLastJobExecution(job.getName(), jobParameters)) .andReturn(new JobExecution(new JobInstance(1L, jobParameters, job.getName()))); expect(jobRepository.createJobExecution(job.getName(), jobParameters)) .andReturn(new JobExecution(new JobInstance(1L, jobParameters, job.getName()))); replay(jobRepository); jobLauncher.run(job, jobParameters); verify(jobRepository); }
@Test public void testTaskExecutorRejects() throws Exception { final List<String> list = new ArrayList<String>(); jobLauncher.setTaskExecutor( new TaskExecutor() { @Override public void execute(Runnable task) { list.add("execute"); throw new TaskRejectedException("Planned failure"); } }); JobExecution jobExecution = new JobExecution(null, null); expect(jobRepository.getLastJobExecution(job.getName(), jobParameters)).andReturn(null); expect(jobRepository.createJobExecution(job.getName(), jobParameters)).andReturn(jobExecution); jobRepository.update(jobExecution); expectLastCall(); replay(jobRepository); jobLauncher.afterPropertiesSet(); try { jobLauncher.run(job, jobParameters); } finally { assertEquals(BatchStatus.FAILED, jobExecution.getStatus()); assertEquals(ExitStatus.FAILED.getExitCode(), jobExecution.getExitStatus().getExitCode()); verify(jobRepository); } assertEquals(1, list.size()); }
private void run(ExitStatus exitStatus) throws Exception { JobExecution jobExecution = new JobExecution(null, null); expect(jobRepository.getLastJobExecution(job.getName(), jobParameters)).andReturn(null); expect(jobRepository.createJobExecution(job.getName(), jobParameters)).andReturn(jobExecution); replay(jobRepository); jobLauncher.afterPropertiesSet(); try { jobLauncher.run(job, jobParameters); } finally { assertEquals(exitStatus, jobExecution.getExitStatus()); verify(jobRepository); } }
@Test(expected = JobParametersInvalidException.class) public void testRunWithValidator() throws Exception { job.setJobParametersValidator( new DefaultJobParametersValidator(new String[] {"missing-and-required"}, new String[0])); expect(jobRepository.getLastJobExecution(job.getName(), jobParameters)).andReturn(null); replay(jobRepository); jobLauncher.afterPropertiesSet(); try { jobLauncher.run(job, jobParameters); } finally { verify(jobRepository); } }