}
@Test
public void testAfterStep() throws Exception {
final ExitStatus customStatus = new ExitStatus("COMPLETED_CUSTOM");
step.setStepExecutionListeners(new StepExecutionListener[] { new StepExecutionListenerSupport() {
@Override
public ExitStatus afterStep(StepExecution stepExecution) {
list.add("afterStepCalled");
return customStatus;
}
} });
RepeatTemplate stepTemplate = new RepeatTemplate();
stepTemplate.setCompletionPolicy(new SimpleCompletionPolicy(5));
step.setStepOperations(stepTemplate);
JobExecution jobExecution = new JobExecution(jobInstance, jobParameters);
StepExecution stepExecution = new StepExecution(step.getName(), jobExecution);
step.execute(stepExecution);
assertEquals(1, list.size());
ExitStatus returnedStatus = stepExecution.getExitStatus();
assertEquals(customStatus.getExitCode(), returnedStatus.getExitCode());
assertEquals(customStatus.getExitDescription(), returnedStatus.getExitDescription());
}