use of org.camunda.bpm.engine.test.standalone.pvm.activities.EmbeddedSubProcess in project camunda-bpm-platform by camunda.
the class PvmActivityInstanceCompleteTest method testSimpleSubProcess.
/**
* +-------------------------------+
* | embeddedsubprocess |
* | |
* +-----+ | +-----------+ +---------+ | +---+
* |start|-->| |startInside|-->|endInside| |-->|end|
* +-----+ | +-----------+ +---------+ | +---+
* | |
* | |
* +-------------------------------+
*/
public void testSimpleSubProcess() {
ActivityInstanceVerification verifier = new ActivityInstanceVerification();
PvmProcessDefinition processDefinition = new ProcessDefinitionBuilder().createActivity("start").initial().behavior(new Automatic()).executionListener(ExecutionListener.EVENTNAME_END, verifier).transition("embeddedsubprocess").endActivity().createActivity("embeddedsubprocess").scope().behavior(new EmbeddedSubProcess()).executionListener(ExecutionListener.EVENTNAME_END, verifier).createActivity("startInside").behavior(new Automatic()).executionListener(ExecutionListener.EVENTNAME_END, verifier).transition("endInside").endActivity().createActivity("endInside").behavior(new End()).executionListener(ExecutionListener.EVENTNAME_END, verifier).endActivity().transition("end").endActivity().createActivity("end").behavior(new End()).executionListener(ExecutionListener.EVENTNAME_END, verifier).endActivity().buildProcessDefinition();
PvmProcessInstance processInstance = processDefinition.createProcessInstance();
processInstance.start();
verifier.assertNonCompletingActivityInstance("start", 1);
verifier.assertNonCompletingActivityInstance("embeddedsubprocess", 1);
verifier.assertNonCompletingActivityInstance("startInside", 1);
verifier.assertIsCompletingActivityInstance("endInside", 1);
verifier.assertIsCompletingActivityInstance("end", 1);
}
use of org.camunda.bpm.engine.test.standalone.pvm.activities.EmbeddedSubProcess in project camunda-bpm-platform by camunda.
the class PvmActivityInstanceCompleteTest method testBoundaryEvent.
/**
* +----------+
* | userTask |
* | |
* +-----+ | | +------+
* |start|-->| |--->| end1 |
* +-----+ | +-----+ |
* +-|timer|--+
* +-----+
* | +------+
* +--------->| end2 |
* +------+
*/
public void testBoundaryEvent() {
ActivityInstanceVerification verifier = new ActivityInstanceVerification();
PvmProcessDefinition processDefinition = new ProcessDefinitionBuilder().createActivity("start").initial().behavior(new Automatic()).executionListener(ExecutionListener.EVENTNAME_END, verifier).transition("userTask").endActivity().createActivity("userTask").scope().behavior(new EmbeddedSubProcess()).executionListener(ExecutionListener.EVENTNAME_END, verifier).transition("end1").endActivity().createActivity("timer").behavior(new WaitState()).executionListener(ExecutionListener.EVENTNAME_END, verifier).attachedTo("userTask", true).transition("end2").endActivity().createActivity("end1").behavior(new End()).executionListener(ExecutionListener.EVENTNAME_END, verifier).endActivity().createActivity("end2").behavior(new End()).executionListener(ExecutionListener.EVENTNAME_END, verifier).endActivity().buildProcessDefinition();
PvmProcessInstance processInstance = processDefinition.createProcessInstance();
processInstance.start();
PvmExecution userTaskExecution = processInstance.findExecution("userTask");
((PvmExecutionImpl) userTaskExecution).executeActivity(processDefinition.findActivity("timer"));
PvmExecution timerExecution = processInstance.findExecution("timer");
timerExecution.signal(null, null);
verifier.assertNonCompletingActivityInstance("start", 1);
verifier.assertNonCompletingActivityInstance("userTask", 1);
verifier.assertIsCompletingActivityInstance("end2", 1);
}
use of org.camunda.bpm.engine.test.standalone.pvm.activities.EmbeddedSubProcess in project camunda-bpm-platform by camunda.
the class PvmEventScopesTest method testTransitionDestroysEventScope.
/**
* +----------------------------------------------------------------------+
* | embedded subprocess |
* | |
* | create evt scope --+ |
* | | |
* | v |
* | |
* | +--------------------------------+ |
* | | nested embedded subprocess | |
* +-----+ | +-----------+ | +-----------------+ | +----+ +---+ | +---+
* |start|-->| |startInside|--> | |startNestedInside| |-->|wait|-->|end| |-->|end|
* +-----+ | +-----------+ | +-----------------+ | +----+ +---+ | +---+
* | +--------------------------------+ |
* | |
* +----------------------------------------------------------------------+
*
* ^
* |
* destroy evt scope --+
*/
public void testTransitionDestroysEventScope() {
PvmProcessDefinition processDefinition = new ProcessDefinitionBuilder().createActivity("start").initial().behavior(new Automatic()).transition("embeddedsubprocess").endActivity().createActivity("embeddedsubprocess").scope().behavior(new EmbeddedSubProcess()).createActivity("startInside").behavior(new Automatic()).transition("nestedSubProcess").endActivity().createActivity("nestedSubProcess").scope().behavior(new EventScopeCreatingSubprocess()).createActivity("startNestedInside").behavior(new Automatic()).endActivity().transition("wait").endActivity().createActivity("wait").behavior(new WaitState()).transition("endInside").endActivity().createActivity("endInside").behavior(new Automatic()).endActivity().transition("end").endActivity().createActivity("end").behavior(new Automatic()).endActivity().buildProcessDefinition();
PvmProcessInstance processInstance = processDefinition.createProcessInstance();
processInstance.start();
List<String> expectedActiveActivityIds = new ArrayList<String>();
expectedActiveActivityIds.add("wait");
assertEquals(expectedActiveActivityIds, processInstance.findActiveActivityIds());
PvmExecution execution = processInstance.findExecution("wait");
execution.signal(null, null);
assertTrue(processInstance.isEnded());
}
use of org.camunda.bpm.engine.test.standalone.pvm.activities.EmbeddedSubProcess in project camunda-bpm-platform by camunda.
the class PvmActivityInstanceTest method testStartInSubProcess.
public void testStartInSubProcess() {
ActivityInstanceVerification verifier = new ActivityInstanceVerification();
PvmProcessDefinition processDefinition = new ProcessDefinitionBuilder().createActivity("start").initial().behavior(new Automatic()).executionListener(ExecutionListener.EVENTNAME_START, verifier).executionListener(ExecutionListener.EVENTNAME_END, verifier).transition("embeddedsubprocess").endActivity().createActivity("embeddedsubprocess").scope().behavior(new EmbeddedSubProcess()).executionListener(ExecutionListener.EVENTNAME_START, verifier).executionListener(ExecutionListener.EVENTNAME_END, verifier).createActivity("startInside").behavior(new Automatic()).executionListener(ExecutionListener.EVENTNAME_START, verifier).executionListener(ExecutionListener.EVENTNAME_END, verifier).transition("endInside").endActivity().createActivity("endInside").behavior(new End()).executionListener(ExecutionListener.EVENTNAME_START, verifier).executionListener(ExecutionListener.EVENTNAME_END, verifier).endActivity().transition("end").endActivity().executionListener(ExecutionListener.EVENTNAME_START, verifier).executionListener(ExecutionListener.EVENTNAME_END, verifier).createActivity("end").behavior(new End()).executionListener(ExecutionListener.EVENTNAME_START, verifier).executionListener(ExecutionListener.EVENTNAME_END, verifier).endActivity().buildProcessDefinition();
PvmProcessInstance processInstance = ((ProcessDefinitionImpl) processDefinition).createProcessInstanceForInitial((ActivityImpl) processDefinition.findActivity("endInside"));
processInstance.start();
assertTrue(processInstance.isEnded());
verifier.assertStartInstanceCount(0, "start");
verifier.assertStartInstanceCount(1, "embeddedsubprocess");
verifier.assertProcessInstanceParent("embeddedsubprocess", processInstance);
verifier.assertStartInstanceCount(0, "startInside");
verifier.assertIsCompletingActivityInstance("endInside", 1);
verifier.assertStartInstanceCount(1, "end");
}
use of org.camunda.bpm.engine.test.standalone.pvm.activities.EmbeddedSubProcess in project camunda-bpm-platform by camunda.
the class PvmEmbeddedSubProcessTest method testEmbeddedSubProcess.
/**
* +------------------------------+
* | embedded subprocess |
* +-----+ | +-----------+ +---------+ | +---+
* |start|-->| |startInside|-->|endInside| |-->|end|
* +-----+ | +-----------+ +---------+ | +---+
* +------------------------------+
*/
public void testEmbeddedSubProcess() {
PvmProcessDefinition processDefinition = new ProcessDefinitionBuilder().createActivity("start").initial().behavior(new Automatic()).transition("embeddedsubprocess").endActivity().createActivity("embeddedsubprocess").scope().behavior(new EmbeddedSubProcess()).createActivity("startInside").behavior(new Automatic()).transition("endInside").endActivity().createActivity("endInside").behavior(new End()).endActivity().transition("end").endActivity().createActivity("end").behavior(new WaitState()).endActivity().buildProcessDefinition();
PvmProcessInstance processInstance = processDefinition.createProcessInstance();
processInstance.start();
List<String> expectedActiveActivityIds = new ArrayList<String>();
expectedActiveActivityIds.add("end");
assertEquals(expectedActiveActivityIds, processInstance.findActiveActivityIds());
}
Aggregations