DefaultJobService implements JobService { @Override public void attachJobInstance(final JobExecution jobExecution) { if (jobExecution != null) { if (jobExecution.getJobInstance() != null) { final JobInstance jobInstance = this.jobExplorer.getJobInstance(jobExecution.getJobInstance().getId()); jobExecution.setJobInstance(jobInstance); } else { throw new SpringBatchLightminApplicationException("JobInstance of JobExecution with id:" + jobExecution.getJobId() + "is null, cannot provide information"); } } else { throw new SpringBatchLightminApplicationException("jobExecution is null, cannot provide information"); } } DefaultJobService(final JobOperator jobOperator,
                             final JobRegistry jobRegistry,
                             final JobExplorer jobExplorer,
                             final LightminJobExecutionDao lightminJobExecutionDao); @Override int getJobInstanceCount(final String jobName); @Override int getJobExecutionCount(final JobInstance jobInstance); @Override Set<String> getJobNames(); @Override Job getJobByName(final String jobName); @Override Collection<JobInstance> getJobInstances(final String jobName, final int startIndex, final int pageSize); @Override Collection<JobExecution> getJobExecutions(final JobInstance jobInstance); @Override Collection<JobExecution> getJobExecutions(final JobInstance jobInstance, final int start, final int count); @Override JobExecution getJobExecution(final Long jobExecutionId); @Override JobInstance getJobInstance(final Long jobInstanceId); @Override void attachJobInstance(final JobExecution jobExecution); @Override void restartJobExecution(final Long jobExecutionId); @Override void stopJobExecution(final Long jobExecutionId); @Override JobParameters getLastJobParameters(final String jobName); @Override void afterPropertiesSet();  }
@Test public void attachJobInstanceTest() { final JobExecution jobExecution = DomainTestHelper.createJobExecution(10L); final JobInstance jobInstance = DomainTestHelper.createJobInstance(20L, JOB_NAME); jobExecution.setJobInstance(jobInstance); when(this.jobExplorer.getJobInstance(jobExecution.getJobInstance().getId())).thenReturn(jobInstance); this.jobService.attachJobInstance(jobExecution); assertThat(jobExecution.getJobInstance()).isEqualTo(jobInstance); }