package org.activiti.engine.test.api.history;
import org.activiti.engine.history.HistoricProcessInstance;
import org.activiti.engine.impl.history.HistoryLevel;
import org.activiti.engine.impl.test.PluggableActivitiTestCase;
import org.activiti.engine.task.Task;
import org.junit.Test;
public class NonCascadeDeleteTest extends PluggableActivitiTestCase {
private static String PROCESS_DEFINITION_KEY = "oneTaskProcess";
private String deploymentId;
private String processInstanceId;
protected void setUp() throws Exception {
super.setUp();
}
protected void tearDown() throws Exception {
super.tearDown();
}
@Test
public void testHistoricProcessInstanceQuery(){
deploymentId = repositoryService.createDeployment()
.addClasspathResource("org/activiti/engine/test/api/runtime/oneTaskProcess.bpmn20.xml")
.deploy().getId();
processInstanceId = runtimeService.startProcessInstanceByKey(PROCESS_DEFINITION_KEY).getId();
Task task = taskService.createTaskQuery().processInstanceId(processInstanceId).singleResult();
taskService.complete(task.getId());
if (processEngineConfiguration.getHistoryLevel().isAtLeast(HistoryLevel.ACTIVITY)) {
HistoricProcessInstance processInstance = historyService.createHistoricProcessInstanceQuery().processInstanceId(processInstanceId).singleResult();
assertEquals(PROCESS_DEFINITION_KEY, processInstance.getProcessDefinitionKey());
// Delete deployment and historic process instance remains.
repositoryService.deleteDeployment(deploymentId, false);
HistoricProcessInstance processInstanceAfterDelete = historyService.createHistoricProcessInstanceQuery().processInstanceId(processInstanceId).singleResult();
assertEquals(null, processInstanceAfterDelete.getProcessDefinitionKey());
assertEquals(null, processInstanceAfterDelete.getProcessDefinitionName());
assertEquals(null, processInstanceAfterDelete.getProcessDefinitionVersion());
// clean
historyService.deleteHistoricProcessInstance(processInstanceId);
}
}
}