//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); }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void testMigrateCompensationSubscriptionAddRemoveSubProcess() public virtual void testMigrateCompensationSubscriptionAddRemoveSubProcess() { // given ProcessDefinition sourceProcessDefinition = testHelper.deployAndGetDefinition(CompensationModels.COMPENSATION_ONE_TASK_SUBPROCESS_MODEL); ProcessDefinition targetProcessDefinition = testHelper.deployAndGetDefinition(CompensationModels.COMPENSATION_ONE_TASK_SUBPROCESS_MODEL); // subProcess is not mapped MigrationPlan migrationPlan = rule.RuntimeService.createMigrationPlan(sourceProcessDefinition.Id, targetProcessDefinition.Id).mapActivities("userTask2", "userTask2").mapActivities("compensationBoundary", "compensationBoundary").build(); ProcessInstance processInstance = rule.RuntimeService.startProcessInstanceById(sourceProcessDefinition.Id); testHelper.completeTask("userTask1"); // when testHelper.migrateProcessInstance(migrationPlan, processInstance); // then testHelper.assertEventSubscriptionMigrated("compensationHandler", "compensationHandler", null); // and the compensation can be triggered and completed testHelper.completeTask("userTask2"); testHelper.completeTask("compensationHandler"); testHelper.assertProcessEnded(processInstance.Id); }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void testMigrateEventSubscription() public virtual void testMigrateEventSubscription() { // given ProcessDefinition sourceProcessDefinition = testHelper.deployAndGetDefinition(ONE_CONDITION_PROCESS); ProcessDefinition targetProcessDefinition = testHelper.deployAndGetDefinition(ONE_CONDITION_PROCESS); MigrationPlan migrationPlan = rule.RuntimeService.createMigrationPlan(sourceProcessDefinition.Id, targetProcessDefinition.Id).mapActivities(CONDITION_ID, CONDITION_ID).updateEventTrigger().build(); //when ProcessInstance processInstance = testHelper.createProcessInstanceAndMigrate(migrationPlan); testHelper.assertEventSubscriptionMigrated(CONDITION_ID, CONDITION_ID, null); //then it is possible to trigger the conditional event testHelper.setVariable(processInstance.Id, VAR_NAME, "1"); testHelper.completeTask(USER_TASK_ID); testHelper.assertProcessEnded(processInstance.Id); }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void testMigrateEventSubscription() public virtual void testMigrateEventSubscription() { // given ProcessDefinition sourceProcessDefinition = testHelper.deployAndGetDefinition(MessageReceiveModels.ONE_MESSAGE_CATCH_PROCESS); ProcessDefinition targetProcessDefinition = testHelper.deployAndGetDefinition(MessageReceiveModels.ONE_MESSAGE_CATCH_PROCESS); MigrationPlan migrationPlan = rule.RuntimeService.createMigrationPlan(sourceProcessDefinition.Id, targetProcessDefinition.Id).mapActivities("messageCatch", "messageCatch").build(); // when ProcessInstance processInstance = testHelper.createProcessInstanceAndMigrate(migrationPlan); testHelper.assertEventSubscriptionMigrated("messageCatch", "messageCatch", MessageReceiveModels.MESSAGE_NAME); // and it is possible to trigger the receive task rule.RuntimeService.correlateMessage(MessageReceiveModels.MESSAGE_NAME); testHelper.completeTask("userTask"); testHelper.assertProcessEnded(processInstance.Id); }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void testIntermediateConditionalEventWithSetVariableOnEndListener() public virtual void testIntermediateConditionalEventWithSetVariableOnEndListener() { // given //JAVA TO C# CONVERTER WARNING: The .NET Type.FullName property will not always yield results identical to the Java Class.getName method: ProcessDefinition sourceProcessDefinition = testHelper.deployAndGetDefinition(Bpmn.createExecutableProcess().startEvent().subProcess().camundaExecutionListenerClass([email protected]_Fields.EVENTNAME_END, typeof(SetVariableDelegate).FullName).embeddedSubProcess().startEvent().intermediateCatchEvent(CONDITION_ID).conditionalEventDefinition().condition(VAR_CONDITION).conditionalEventDefinitionDone().userTask(TASK_AFTER_CONDITION_ID).endEvent().subProcessDone().endEvent().done()); ProcessDefinition targetProcessDefinition = testHelper.deployAndGetDefinition(Bpmn.createExecutableProcess().startEvent().intermediateCatchEvent(CONDITION_ID).conditionalEventDefinition().condition(VAR_CONDITION).conditionalEventDefinitionDone().userTask(TASK_AFTER_CONDITION_ID).endEvent().done()); MigrationPlan migrationPlan = rule.RuntimeService.createMigrationPlan(sourceProcessDefinition.Id, targetProcessDefinition.Id).mapActivities(CONDITION_ID, CONDITION_ID).updateEventTrigger().build(); //when sub process is removed, end listener is called and sets variable ProcessInstance processInstance = testHelper.createProcessInstanceAndMigrate(migrationPlan); testHelper.assertEventSubscriptionMigrated(CONDITION_ID, CONDITION_ID, null); assertEquals(1, rule.RuntimeService.getVariable(processInstance.Id, VARIABLE_NAME)); //then conditional event is not triggered assertNull(rule.TaskService.createTaskQuery().singleResult()); //when any var is set testHelper.AnyVariable = processInstance.Id; //then condition is satisfied, since variable is already set which satisfies condition testHelper.completeTask(TASK_AFTER_CONDITION_ID); testHelper.assertProcessEnded(processInstance.Id); }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void testMigrateGatewayWithMessageEventMapEvent() public virtual void testMigrateGatewayWithMessageEventMapEvent() { // given ProcessDefinition sourceProcessDefinition = testHelper.deployAndGetDefinition(EventBasedGatewayModels.MESSAGE_EVENT_BASED_GW_PROCESS); ProcessDefinition targetProcessDefinition = testHelper.deployAndGetDefinition(EventBasedGatewayModels.MESSAGE_EVENT_BASED_GW_PROCESS); MigrationPlan migrationPlan = rule.RuntimeService.createMigrationPlan(sourceProcessDefinition.Id, targetProcessDefinition.Id).mapActivities("eventBasedGateway", "eventBasedGateway").mapActivities("messageCatch", "messageCatch").build(); // when ProcessInstance processInstance = testHelper.createProcessInstanceAndMigrate(migrationPlan); // then testHelper.assertEventSubscriptionMigrated("messageCatch", "messageCatch", EventBasedGatewayModels.MESSAGE_NAME); rule.RuntimeService.correlateMessage(EventBasedGatewayModels.MESSAGE_NAME); testHelper.completeTask("afterMessageCatch"); testHelper.assertProcessEnded(processInstance.Id); }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void testMigrateEventSubprocessMessageKeepTrigger() public virtual void testMigrateEventSubprocessMessageKeepTrigger() { ProcessDefinition sourceProcessDefinition = testHelper.deployAndGetDefinition(EventSubProcessModels.MESSAGE_EVENT_SUBPROCESS_PROCESS); ProcessDefinition targetProcessDefinition = testHelper.deployAndGetDefinition(EventSubProcessModels.MESSAGE_EVENT_SUBPROCESS_PROCESS); ProcessInstance processInstance = rule.RuntimeService.startProcessInstanceById(sourceProcessDefinition.Id); MigrationPlan migrationPlan = rule.RuntimeService.createMigrationPlan(sourceProcessDefinition.Id, targetProcessDefinition.Id).mapActivities(USER_TASK_ID, USER_TASK_ID).mapActivities(EVENT_SUB_PROCESS_START_ID, EVENT_SUB_PROCESS_START_ID).build(); // when testHelper.migrateProcessInstance(migrationPlan, processInstance); // then testHelper.assertEventSubscriptionMigrated(EVENT_SUB_PROCESS_START_ID, EVENT_SUB_PROCESS_START_ID, EventSubProcessModels.MESSAGE_NAME); // and it is possible to trigger the event subprocess rule.RuntimeService.correlateMessage(EventSubProcessModels.MESSAGE_NAME); Assert.assertEquals(1, rule.TaskService.createTaskQuery().count()); // and complete the process instance testHelper.completeTask(EVENT_SUB_PROCESS_TASK_ID); testHelper.assertProcessEnded(processInstance.Id); }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void testMigrateEventSubscription() public virtual void testMigrateEventSubscription() { // given ProcessDefinition sourceProcessDefinition = testHelper.deployAndGetDefinition(SignalCatchModels.ONE_SIGNAL_CATCH_PROCESS); ProcessDefinition targetProcessDefinition = testHelper.deployAndGetDefinition(SignalCatchModels.ONE_SIGNAL_CATCH_PROCESS); MigrationPlan migrationPlan = rule.RuntimeService.createMigrationPlan(sourceProcessDefinition.Id, targetProcessDefinition.Id).mapActivities("signalCatch", "signalCatch").build(); // when ProcessInstance processInstance = testHelper.createProcessInstanceAndMigrate(migrationPlan); // then testHelper.assertEventSubscriptionMigrated("signalCatch", "signalCatch", SignalCatchModels.SIGNAL_NAME); testHelper.assertExecutionTreeAfterMigration().hasProcessDefinitionId(targetProcessDefinition.Id).matches(describeExecutionTree(null).scope().id(testHelper.snapshotBeforeMigration.ProcessInstanceId).child("signalCatch").scope().id(testHelper.getSingleExecutionIdForActivityBeforeMigration("signalCatch")).done()); testHelper.assertActivityTreeAfterMigration().hasStructure(describeActivityInstanceTree(targetProcessDefinition.Id).activity("signalCatch", testHelper.getSingleActivityInstanceBeforeMigration("signalCatch").Id).done()); // and it is possible to trigger the event rule.RuntimeService.signalEventReceived(SignalCatchModels.SIGNAL_NAME); testHelper.completeTask("userTask"); testHelper.assertProcessEnded(processInstance.Id); }