public virtual void testCallBpmnProcessAddParentScope() { // given var sourceProcessDefinition = testHelper.DeployAndGetDefinition(CallActivityModels.oneBpmnCallActivityProcess("oneTaskProcess")); var targetProcessDefinition = testHelper.DeployAndGetDefinition(CallActivityModels.subProcessBpmnCallActivityProcess("oneTaskProcess")); var migrationPlan = rule.RuntimeService.CreateMigrationPlan(sourceProcessDefinition.Id, targetProcessDefinition.Id) .MapActivities("callActivity", "callActivity") .Build(); // when var processInstance = testHelper.CreateProcessInstanceAndMigrate(migrationPlan); // then testHelper.AssertExecutionTreeAfterMigration() .HasProcessDefinitionId(targetProcessDefinition.Id) .Matches(ExecutionAssert.DescribeExecutionTree(null) .Scope() .Id(testHelper.SnapshotBeforeMigration.ProcessInstanceId) .Child(null) .Scope() .Child("callActivity") .Scope() .Id(testHelper.GetSingleExecutionIdForActivityBeforeMigration("callActivity")) .Done()); testHelper.AssertActivityTreeAfterMigration() .HasStructure(ActivityInstanceAssert.DescribeActivityInstanceTree(targetProcessDefinition.Id) .BeginScope("subProcess") .Activity("callActivity", testHelper.GetSingleActivityInstanceBeforeMigration("callActivity") .Id) .Done()); // and it is possible to complete the called process instance testHelper.CompleteTask("userTask"); // and the calling process instance testHelper.CompleteTask("userTask"); testHelper.AssertProcessEnded(processInstance.Id); }