Fix object graph deletion in SimpleJobRepository#deleteJobInstance
Before this commit, SimpleJobRepository#deleteJobInstance was only deleting the given job instance and not the entire object graph, which leads to data inconsistency (orphan job executions and invalid foreign keys). This commit fixes the contract and the implementation of the method to delete the entire object graph. Resolves #4250
This commit is contained in:
@@ -366,4 +366,22 @@ class SimpleJobRepositoryTests {
|
||||
verify(this.jobExecutionDao).deleteJobExecution(jobExecution);
|
||||
}
|
||||
|
||||
@Test
|
||||
void testDeleteJobInstance() {
|
||||
// given
|
||||
JobExecution jobExecution1 = mock(JobExecution.class);
|
||||
JobExecution jobExecution2 = mock(JobExecution.class);
|
||||
JobInstance jobInstance = mock(JobInstance.class);
|
||||
when(this.jobExecutionDao.findJobExecutions(jobInstance))
|
||||
.thenReturn(Arrays.asList(jobExecution1, jobExecution2));
|
||||
|
||||
// when
|
||||
this.jobRepository.deleteJobInstance(jobInstance);
|
||||
|
||||
// then
|
||||
verify(this.jobExecutionDao).deleteJobExecution(jobExecution1);
|
||||
verify(this.jobExecutionDao).deleteJobExecution(jobExecution2);
|
||||
verify(this.jobInstanceDao).deleteJobInstance(jobInstance);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user