Ejemplo n.º 1
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void testMigrateMultipleBoundaryEvents()
        public virtual void testMigrateMultipleBoundaryEvents()
        {
            // given
            BpmnModelInstance testProcess = modify(ProcessModels.SUBPROCESS_PROCESS).activityBuilder("subProcess").boundaryEvent("timerBoundary1").timerWithDate(TIMER_DATE).moveToActivity("subProcess").boundaryEvent("messageBoundary1").message(MESSAGE_NAME).moveToActivity("subProcess").boundaryEvent("signalBoundary1").signal(SIGNAL_NAME).moveToActivity("subProcess").boundaryEvent("conditionalBoundary1").condition(VAR_CONDITION).moveToActivity(USER_TASK_ID).boundaryEvent("timerBoundary2").timerWithDate(TIMER_DATE).moveToActivity(USER_TASK_ID).boundaryEvent("messageBoundary2").message(MESSAGE_NAME).moveToActivity(USER_TASK_ID).boundaryEvent("signalBoundary2").signal(SIGNAL_NAME).moveToActivity(USER_TASK_ID).boundaryEvent("conditionalBoundary2").condition(VAR_CONDITION).done();

            ProcessDefinition sourceProcessDefinition = testHelper.deployAndGetDefinition(testProcess);
            ProcessDefinition targetProcessDefinition = testHelper.deployAndGetDefinition(testProcess);

            MigrationPlan migrationPlan = rule.RuntimeService.createMigrationPlan(sourceProcessDefinition.Id, targetProcessDefinition.Id).mapActivities("subProcess", "subProcess").mapActivities("timerBoundary1", "timerBoundary1").mapActivities("signalBoundary1", "signalBoundary1").mapActivities("conditionalBoundary1", "conditionalBoundary1").updateEventTrigger().mapActivities(USER_TASK_ID, USER_TASK_ID).mapActivities("messageBoundary2", "messageBoundary2").build();

            // when
            testHelper.createProcessInstanceAndMigrate(migrationPlan);

            // then
            testHelper.assertEventSubscriptionRemoved("messageBoundary1", MESSAGE_NAME);
            testHelper.assertEventSubscriptionRemoved("signalBoundary2", SIGNAL_NAME);
            testHelper.assertEventSubscriptionRemoved("conditionalBoundary2", null);
            testHelper.assertEventSubscriptionMigrated("signalBoundary1", "signalBoundary1", SIGNAL_NAME);
            testHelper.assertEventSubscriptionMigrated("messageBoundary2", "messageBoundary2", MESSAGE_NAME);
            testHelper.assertEventSubscriptionMigrated("conditionalBoundary1", "conditionalBoundary1", null);
            testHelper.assertEventSubscriptionCreated("messageBoundary1", MESSAGE_NAME);
            testHelper.assertEventSubscriptionCreated("signalBoundary2", SIGNAL_NAME);
            testHelper.assertEventSubscriptionCreated("conditionalBoundary2", null);
            testHelper.assertBoundaryTimerJobRemoved("timerBoundary2");
            testHelper.assertBoundaryTimerJobMigrated("timerBoundary1", "timerBoundary1");
            testHelper.assertBoundaryTimerJobCreated("timerBoundary2");

            // and it is possible to successfully complete the migrated instance
            testHelper.completeTask(USER_TASK_ID);
            testHelper.assertProcessEnded(testHelper.snapshotBeforeMigration.ProcessInstanceId);
        }