use of org.camunda.bpm.engine.impl.persistence.entity.HistoricBatchManager in project camunda-bpm-platform by camunda.
the class HistoricInstanceForCleanupQueryTest method testSortHistoricBatchesForCleanup.
@SuppressWarnings("unchecked")
@Test
public void testSortHistoricBatchesForCleanup() {
Date startDate = ClockUtil.getCurrentTime();
int daysInThePast = -11;
ClockUtil.setCurrentTime(DateUtils.addDays(startDate, daysInThePast));
// given
List<Batch> list = Arrays.asList(helper.migrateProcessInstancesAsync(1), helper.migrateProcessInstancesAsync(1), helper.migrateProcessInstancesAsync(1));
String batchType = list.get(0).getType();
final Map<String, Integer> batchOperationsMap = new HashedMap();
batchOperationsMap.put(batchType, 4);
for (Batch batch : list) {
helper.executeSeedJob(batch);
helper.executeJobs(batch);
ClockUtil.setCurrentTime(DateUtils.addDays(startDate, ++daysInThePast));
helper.executeMonitorJob(batch);
}
ClockUtil.setCurrentTime(new Date());
// when
List<HistoricBatch> historicList = historyService.createHistoricBatchQuery().list();
assertEquals(3, historicList.size());
processEngineConfiguration.getCommandExecutorTxRequired().execute(new Command<Void>() {
public Void execute(CommandContext commandContext) {
HistoricBatchManager historicBatchManager = commandContext.getHistoricBatchManager();
List<String> ids = historicBatchManager.findHistoricBatchIdsForCleanup(7, batchOperationsMap);
assertEquals(3, ids.size());
HistoricBatchEntity instance0 = historicBatchManager.findHistoricBatchById(ids.get(0));
HistoricBatchEntity instance1 = historicBatchManager.findHistoricBatchById(ids.get(1));
HistoricBatchEntity instance2 = historicBatchManager.findHistoricBatchById(ids.get(2));
assertTrue(instance0.getEndTime().before(instance1.getEndTime()));
assertTrue(instance1.getEndTime().before(instance2.getEndTime()));
return null;
}
});
}
Aggregations