Exemplo n.º 1
0
        /// <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);
        }
Exemplo n.º 2
0
        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);
        }