Exemplo n.º 1
0
        /// <summary>
        ///                   +----+
        ///              +--->|end1|
        ///              |    +----+
        ///              |
        /// +-----+   +----+
        /// |start|-->|fork|
        /// +-----+   +----+
        ///              |
        ///              |    +----+
        ///              +--->|end2|
        ///                   +----+
        /// </summary>
        public virtual void testTwoEnds()
        {
            ActivityInstanceVerification verifier = new ActivityInstanceVerification();

            PvmProcessDefinition processDefinition = (new ProcessDefinitionBuilder()).createActivity("start").initial().behavior(new Automatic()).executionListener([email protected]_Fields.EVENTNAME_END, verifier).transition("fork").endActivity().createActivity("fork").behavior(new ParallelGateway()).executionListener([email protected]_Fields.EVENTNAME_END, verifier).transition("end1").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();

            verifier.assertNonCompletingActivityInstance("start", 1);
            verifier.assertNonCompletingActivityInstance("fork", 1);
            verifier.assertIsCompletingActivityInstance("end1", 1);
            verifier.assertIsCompletingActivityInstance("end2", 1);
        }
Exemplo n.º 2
0
        /// <summary>
        ///           +-------------------------------+
        ///           | embeddedsubprocess            |
        ///           |                               |
        /// +-----+   |  +-----------+   +---------+  |   +---+
        /// |start|-->|  |startInside|-->|endInside|  |-->|end|
        /// +-----+   |  +-----------+   +---------+  |   +---+
        ///           |                               |
        ///           |                               |
        ///           +-------------------------------+
        /// </summary>
        public virtual void testSimpleSubProcess()
        {
            ActivityInstanceVerification verifier = new ActivityInstanceVerification();

            PvmProcessDefinition processDefinition = (new ProcessDefinitionBuilder()).createActivity("start").initial().behavior(new Automatic()).executionListener([email protected]_Fields.EVENTNAME_END, verifier).transition("embeddedsubprocess").endActivity().createActivity("embeddedsubprocess").scope().behavior(new EmbeddedSubProcess()).executionListener([email protected]_Fields.EVENTNAME_END, verifier).createActivity("startInside").behavior(new Automatic()).executionListener([email protected]_Fields.EVENTNAME_END, verifier).transition("endInside").endActivity().createActivity("endInside").behavior(new End()).executionListener([email protected]_Fields.EVENTNAME_END, verifier).endActivity().transition("end").endActivity().createActivity("end").behavior(new End()).executionListener([email protected]_Fields.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);
        }
Exemplo n.º 3
0
        public virtual void testStartInSubProcess()
        {
            ActivityInstanceVerification verifier = new ActivityInstanceVerification();

            PvmProcessDefinition processDefinition = (new ProcessDefinitionBuilder()).createActivity("start").initial().behavior(new Automatic()).executionListener([email protected]_Fields.EVENTNAME_START, verifier).executionListener([email protected]_Fields.EVENTNAME_END, verifier).transition("embeddedsubprocess").endActivity().createActivity("embeddedsubprocess").scope().behavior(new EmbeddedSubProcess()).executionListener([email protected]_Fields.EVENTNAME_START, verifier).executionListener([email protected]_Fields.EVENTNAME_END, verifier).createActivity("startInside").behavior(new Automatic()).executionListener([email protected]_Fields.EVENTNAME_START, verifier).executionListener([email protected]_Fields.EVENTNAME_END, verifier).transition("endInside").endActivity().createActivity("endInside").behavior(new End()).executionListener([email protected]_Fields.EVENTNAME_START, verifier).executionListener([email protected]_Fields.EVENTNAME_END, verifier).endActivity().transition("end").endActivity().executionListener([email protected]_Fields.EVENTNAME_START, verifier).executionListener([email protected]_Fields.EVENTNAME_END, verifier).createActivity("end").behavior(new End()).executionListener([email protected]_Fields.EVENTNAME_START, verifier).executionListener([email protected]_Fields.EVENTNAME_END, verifier).endActivity().buildProcessDefinition();

            PvmProcessInstance processInstance = ((ProcessDefinitionImpl)processDefinition).createProcessInstanceForInitial((ActivityImpl)processDefinition.findActivity("endInside"));

            processInstance.start();

            assertTrue(processInstance.Ended);

            verifier.assertStartInstanceCount(0, "start");
            verifier.assertStartInstanceCount(1, "embeddedsubprocess");
            verifier.assertProcessInstanceParent("embeddedsubprocess", processInstance);
            verifier.assertStartInstanceCount(0, "startInside");
            verifier.assertIsCompletingActivityInstance("endInside", 1);
            verifier.assertStartInstanceCount(1, "end");
        }
Exemplo n.º 4
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);
        }