/// <summary> /// +----------+ /// | userTask | /// | | /// +-----+ | | +------+ /// |start|-->| |--->| end1 | /// +-----+ | +-----+ | /// +-|timer|--+ /// +-----+ /// | +------+ /// +--------->| end2 | /// +------+ /// </summary> public virtual void testBoundaryEvent() { ActivityInstanceVerification verifier = new ActivityInstanceVerification(); PvmProcessDefinition processDefinition = (new ProcessDefinitionBuilder()).createActivity("start").initial().behavior(new Automatic()).executionListener([email protected]_Fields.EVENTNAME_END, verifier).transition("userTask").endActivity().createActivity("userTask").scope().behavior(new EmbeddedSubProcess()).executionListener([email protected]_Fields.EVENTNAME_END, verifier).transition("end1").endActivity().createActivity("timer").behavior(new WaitState()).executionListener([email protected]_Fields.EVENTNAME_END, verifier).attachedTo("userTask", true).transition("end2").endActivity().createActivity("end1").behavior(new End()).executionListener([email protected]_Fields.EVENTNAME_END, verifier).endActivity().createActivity("end2").behavior(new End()).executionListener([email protected]_Fields.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); }
public virtual void testPvmWaitState() { PvmProcessDefinition processDefinition = (new ProcessDefinitionBuilder()).createActivity("a").initial().behavior(new WaitState()).transition("b").endActivity().createActivity("b").behavior(new WaitState()).transition("c").endActivity().createActivity("c").behavior(new WaitState()).endActivity().buildProcessDefinition(); PvmProcessInstance processInstance = processDefinition.createProcessInstance(); processInstance.start(); PvmExecution activityInstance = processInstance.findExecution("a"); assertNotNull(activityInstance); activityInstance.signal(null, null); activityInstance = processInstance.findExecution("b"); assertNotNull(activityInstance); activityInstance.signal(null, null); activityInstance = processInstance.findExecution("c"); assertNotNull(activityInstance); }