package org.activiti.engine.test.api.repository; import java.util.List; import org.activiti.engine.ActivitiException; import org.activiti.engine.impl.test.PluggableActivitiTestCase; import org.activiti.engine.repository.ProcessDefinition; import org.activiti.engine.test.Deployment; /** * * @author Daniel Meyer */ public class ProcessDefinitionSuspensionTest extends PluggableActivitiTestCase { @Deployment(resources={"org/activiti/engine/test/db/processOne.bpmn20.xml"}) public void testProcessDefinitionActiveByDefault() { ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery().singleResult(); assertFalse(processDefinition.isSuspended()); } @Deployment(resources={"org/activiti/engine/test/db/processOne.bpmn20.xml"}) public void testSuspendActivateProcessDefinitionById() { ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery().singleResult(); assertFalse(processDefinition.isSuspended()); // suspend repositoryService.suspendProcessDefinitionById(processDefinition.getId()); processDefinition = repositoryService.createProcessDefinitionQuery().singleResult(); assertTrue(processDefinition.isSuspended()); // activate repositoryService.activateProcessDefinitionById(processDefinition.getId()); processDefinition = repositoryService.createProcessDefinitionQuery().singleResult(); assertFalse(processDefinition.isSuspended()); } @Deployment(resources={"org/activiti/engine/test/db/processOne.bpmn20.xml"}) public void testSuspendActivateProcessDefinitionByKey() { ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery().singleResult(); assertFalse(processDefinition.isSuspended()); //suspend repositoryService.suspendProcessDefinitionByKey(processDefinition.getKey()); processDefinition = repositoryService.createProcessDefinitionQuery().singleResult(); assertTrue(processDefinition.isSuspended()); //activate repositoryService.activateProcessDefinitionByKey(processDefinition.getKey()); processDefinition = repositoryService.createProcessDefinitionQuery().singleResult(); assertFalse(processDefinition.isSuspended()); } @Deployment(resources={"org/activiti/engine/test/db/processOne.bpmn20.xml"}) public void testCannotActivateActiveProcessDefinition() { ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery().singleResult(); assertFalse(processDefinition.isSuspended()); try { repositoryService.activateProcessDefinitionById(processDefinition.getId()); fail("Exception exprected"); }catch (ActivitiException e) { // expected } } @Deployment(resources={"org/activiti/engine/test/db/processOne.bpmn20.xml"}) public void testCannotSuspendActiveProcessDefinition() { ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery().singleResult(); assertFalse(processDefinition.isSuspended()); repositoryService.suspendProcessDefinitionById(processDefinition.getId()); try { repositoryService.suspendProcessDefinitionById(processDefinition.getId()); fail("Exception exprected"); }catch (ActivitiException e) { // expected } } @Deployment(resources={ "org/activiti/engine/test/db/processOne.bpmn20.xml", "org/activiti/engine/test/db/processTwo.bpmn20.xml" }) public void testQueryForActiveDefinitions() { // default = all definitions List<ProcessDefinition> processDefinitionList = repositoryService.createProcessDefinitionQuery() .list(); assertEquals(2, processDefinitionList.size()); assertEquals(2, repositoryService.createProcessDefinitionQuery().active().count()); ProcessDefinition processDefinition = processDefinitionList.get(0); repositoryService.suspendProcessDefinitionById(processDefinition.getId()); assertEquals(2, repositoryService.createProcessDefinitionQuery().count()); assertEquals(1, repositoryService.createProcessDefinitionQuery().active().count()); } @Deployment(resources={ "org/activiti/engine/test/db/processOne.bpmn20.xml", "org/activiti/engine/test/db/processTwo.bpmn20.xml" }) public void testQueryForSuspendedDefinitions() { // default = all definitions List<ProcessDefinition> processDefinitionList = repositoryService.createProcessDefinitionQuery() .list(); assertEquals(2, processDefinitionList.size()); assertEquals(2, repositoryService.createProcessDefinitionQuery().active().count()); ProcessDefinition processDefinition = processDefinitionList.get(0); repositoryService.suspendProcessDefinitionById(processDefinition.getId()); assertEquals(2, repositoryService.createProcessDefinitionQuery().count()); assertEquals(1, repositoryService.createProcessDefinitionQuery().suspended().count()); } }