public void executeMigrationPlan(MigrationExecutionDto migrationExecution) { createMigrationPlanExecutionBuilder(migrationExecution).execute(); }
public void executeMigrationPlan(MigrationExecutionDto migrationExecution) { createMigrationPlanExecutionBuilder(migrationExecution).execute(); }
protected void verifyMigrationPlanExecutionInteraction(Map<String, Object> migrationExecution) { InOrder inOrder = inOrder(runtimeServiceMock, migrationPlanExecutionBuilderMock); inOrder.verify(runtimeServiceMock).newMigration(any(MigrationPlan.class)); verifyMigrationExecutionBuilderInteraction(inOrder, migrationExecution); inOrder.verify(migrationPlanExecutionBuilderMock).execute(); inOrder.verifyNoMoreInteractions(); }
@Test public void testNullMigrationPlan() { try { runtimeService.newMigration(null).processInstanceIds(Collections.<String>emptyList()).execute(); fail("Should not be able to migrate"); } catch (ProcessEngineException e) { assertThat(e.getMessage(), CoreMatchers.containsString("migration plan is null")); } }
public void migrateProcessInstance(MigrationPlan migrationPlan, ProcessInstance processInstance) { snapshotBeforeMigration = takeFullProcessInstanceSnapshot(processInstance); RuntimeService runtimeService = processEngine.getRuntimeService(); runtimeService .newMigration(migrationPlan).processInstanceIds(Collections.singletonList(snapshotBeforeMigration.getProcessInstanceId())).execute(); // fetch updated process instance processInstance = runtimeService.createProcessInstanceQuery().processInstanceId(processInstance.getId()).singleResult(); snapshotAfterMigration = takeFullProcessInstanceSnapshot(processInstance); }
@Test public void testEmptyProcessInstanceIdsList() { ProcessDefinition testProcessDefinition = testHelper.deployAndGetDefinition(ProcessModels.ONE_TASK_PROCESS); MigrationPlan migrationPlan = runtimeService.createMigrationPlan(testProcessDefinition.getId(), testProcessDefinition.getId()) .mapEqualActivities() .build(); try { runtimeService.newMigration(migrationPlan).processInstanceIds(Collections.<String>emptyList()).execute(); fail("Should not be able to migrate"); } catch (ProcessEngineException e) { assertThat(e.getMessage(), CoreMatchers.containsString("process instance ids is empty")); } }
@Test public void testProcessInstanceIdsListWithNullValue() { ProcessDefinition testProcessDefinition = testHelper.deployAndGetDefinition(ProcessModels.ONE_TASK_PROCESS); MigrationPlan migrationPlan = runtimeService.createMigrationPlan(testProcessDefinition.getId(), testProcessDefinition.getId()) .mapEqualActivities() .build(); try { runtimeService.newMigration(migrationPlan).processInstanceIds(Arrays.asList("foo", null, "bar")).execute(); fail("Should not be able to migrate"); } catch (ProcessEngineException e) { assertThat(e.getMessage(), CoreMatchers.containsString("process instance ids contains null value")); } }
@Test public void testNotMigrateNullProcessInstance() { ProcessDefinition sourceProcessDefinition = testHelper.deployAndGetDefinition(ProcessModels.ONE_TASK_PROCESS); ProcessDefinition targetProcessDefinition = testHelper.deployAndGetDefinition(ProcessModels.ONE_TASK_PROCESS); MigrationPlan migrationPlan = runtimeService.createMigrationPlan(sourceProcessDefinition.getId(), targetProcessDefinition.getId()) .mapEqualActivities() .build(); try { runtimeService.newMigration(migrationPlan).processInstanceIds(Collections.<String>singletonList(null)).execute(); fail("Should not be able to migrate"); } catch (ProcessEngineException e) { assertThat(e.getMessage(), CoreMatchers.containsString("process instance ids contains null value")); } }
@Test public void testNullProcessInstanceQuery() { ProcessDefinition testProcessDefinition = testHelper.deployAndGetDefinition(ProcessModels.ONE_TASK_PROCESS); MigrationPlan migrationPlan = runtimeService.createMigrationPlan(testProcessDefinition.getId(), testProcessDefinition.getId()) .mapEqualActivities() .build(); try { runtimeService.newMigration(migrationPlan).processInstanceQuery(null).execute(); fail("Should not be able to migrate"); } catch (ProcessEngineException e) { assertThat(e.getMessage(), CoreMatchers.containsString("process instance ids is empty")); } }
@Test public void testNullProcessInstanceIdsList() { ProcessDefinition testProcessDefinition = testHelper.deployAndGetDefinition(ProcessModels.ONE_TASK_PROCESS); MigrationPlan migrationPlan = runtimeService.createMigrationPlan(testProcessDefinition.getId(), testProcessDefinition.getId()) .mapEqualActivities() .build(); try { runtimeService.newMigration(migrationPlan).processInstanceIds((List<String>) null).execute(); fail("Should not be able to migrate"); } catch (ProcessEngineException e) { assertThat(e.getMessage(), CoreMatchers.containsString("process instance ids is empty")); } }
@Test public void testNullProcessInstanceIdsArray() { ProcessDefinition testProcessDefinition = testHelper.deployAndGetDefinition(ProcessModels.ONE_TASK_PROCESS); MigrationPlan migrationPlan = runtimeService.createMigrationPlan(testProcessDefinition.getId(), testProcessDefinition.getId()) .mapEqualActivities() .build(); try { runtimeService.newMigration(migrationPlan).processInstanceIds((String[]) null).execute(); fail("Should not be able to migrate"); } catch (ProcessEngineException e) { assertThat(e.getMessage(), CoreMatchers.containsString("process instance ids is empty")); } }
@Test public void testProcessInstanceIdsArrayWithNullValue() { ProcessDefinition testProcessDefinition = testHelper.deployAndGetDefinition(ProcessModels.ONE_TASK_PROCESS); MigrationPlan migrationPlan = runtimeService.createMigrationPlan(testProcessDefinition.getId(), testProcessDefinition.getId()) .mapEqualActivities() .build(); try { runtimeService.newMigration(migrationPlan).processInstanceIds("foo", null, "bar").execute(); fail("Should not be able to migrate"); } catch (ProcessEngineException e) { assertThat(e.getMessage(), CoreMatchers.containsString("process instance ids contains null value")); } }
@Test public void testEmptyProcessInstanceIdsArray() { ProcessDefinition testProcessDefinition = testHelper.deployAndGetDefinition(ProcessModels.ONE_TASK_PROCESS); MigrationPlan migrationPlan = runtimeService.createMigrationPlan(testProcessDefinition.getId(), testProcessDefinition.getId()) .mapEqualActivities() .build(); try { runtimeService.newMigration(migrationPlan).processInstanceIds(new String[]{}).execute(); fail("Should not be able to migrate"); } catch (ProcessEngineException e) { assertThat(e.getMessage(), CoreMatchers.containsString("process instance ids is empty")); } }
@Test public void testNotMigrateUnknownProcessInstance() { ProcessDefinition sourceProcessDefinition = testHelper.deployAndGetDefinition(ProcessModels.ONE_TASK_PROCESS); ProcessDefinition targetProcessDefinition = testHelper.deployAndGetDefinition(ProcessModels.ONE_TASK_PROCESS); MigrationPlan migrationPlan = runtimeService.createMigrationPlan(sourceProcessDefinition.getId(), targetProcessDefinition.getId()) .mapEqualActivities() .build(); try { runtimeService.newMigration(migrationPlan).processInstanceIds(Collections.singletonList("unknown")).execute(); fail("Should not be able to migrate"); } catch (ProcessEngineException e) { assertThat(e.getMessage(), CoreMatchers.startsWith("ENGINE-23003")); } }
@Test public void testEmptyProcessInstanceQuery() { ProcessDefinition testProcessDefinition = testHelper.deployAndGetDefinition(ProcessModels.ONE_TASK_PROCESS); MigrationPlan migrationPlan = runtimeService.createMigrationPlan(testProcessDefinition.getId(), testProcessDefinition.getId()) .mapEqualActivities() .build(); ProcessInstanceQuery emptyProcessInstanceQuery = runtimeService.createProcessInstanceQuery(); assertEquals(0, emptyProcessInstanceQuery.count()); try { runtimeService.newMigration(migrationPlan).processInstanceQuery(emptyProcessInstanceQuery).execute(); fail("Should not be able to migrate"); } catch (ProcessEngineException e) { assertThat(e.getMessage(), CoreMatchers.containsString("process instance ids is empty")); } }
@Test public void canMigrateInstanceBetweenSameTenantCase2() { // given ProcessDefinition sharedDefinition = testHelper.deployAndGetDefinition(ProcessModels.ONE_TASK_PROCESS); ProcessDefinition targetDefinition = testHelper.deployForTenantAndGetDefinition(TENANT_ONE, ProcessModels.ONE_TASK_PROCESS); ProcessInstance processInstance = startInstanceForTenant(sharedDefinition, TENANT_ONE); MigrationPlan migrationPlan = engineRule.getRuntimeService().createMigrationPlan(sharedDefinition.getId(), targetDefinition.getId()) .mapEqualActivities() .build(); // when engineRule.getRuntimeService() .newMigration(migrationPlan) .processInstanceIds(Arrays.asList(processInstance.getId())) .execute(); // then assertInstanceOfDefinition(processInstance, targetDefinition); }
@Test public void canMigrateInstanceBetweenSameTenantCase1() { // given ProcessDefinition sourceDefinition = testHelper.deployForTenantAndGetDefinition(TENANT_ONE, ProcessModels.ONE_TASK_PROCESS); ProcessDefinition targetDefinition = testHelper.deployForTenantAndGetDefinition(TENANT_ONE, ProcessModels.ONE_TASK_PROCESS); ProcessInstance processInstance = engineRule.getRuntimeService().startProcessInstanceById(sourceDefinition.getId()); MigrationPlan migrationPlan = engineRule.getRuntimeService().createMigrationPlan(sourceDefinition.getId(), targetDefinition.getId()) .mapEqualActivities() .build(); // when engineRule.getRuntimeService() .newMigration(migrationPlan) .processInstanceIds(Arrays.asList(processInstance.getId())) .execute(); // then assertMigratedTo(processInstance, targetDefinition); }
@Test public void canMigrateInstanceWithTenantIdToDefinitionWithoutTenantId() { // given ProcessDefinition sourceDefinition = testHelper.deployForTenantAndGetDefinition(TENANT_ONE, ProcessModels.ONE_TASK_PROCESS); ProcessDefinition targetDefinition = testHelper.deployAndGetDefinition(ProcessModels.ONE_TASK_PROCESS); ProcessInstance processInstance = engineRule.getRuntimeService().startProcessInstanceById(sourceDefinition.getId()); MigrationPlan migrationPlan = engineRule.getRuntimeService().createMigrationPlan(sourceDefinition.getId(), targetDefinition.getId()) .mapEqualActivities() .build(); // when engineRule.getRuntimeService() .newMigration(migrationPlan) .processInstanceIds(Arrays.asList(processInstance.getId())) .execute(); // then assertMigratedTo(processInstance, targetDefinition); }
@Test public void testNotMigrateProcessInstanceOfWrongProcessDefinition() { ProcessDefinition sourceProcessDefinition = testHelper.deployAndGetDefinition(ProcessModels.ONE_TASK_PROCESS); ProcessDefinition targetProcessDefinition = testHelper.deployAndGetDefinition(ProcessModels.ONE_TASK_PROCESS); ProcessDefinition wrongProcessDefinition = testHelper.deployAndGetDefinition(ProcessModels.SUBPROCESS_PROCESS); ProcessInstance processInstance = runtimeService.startProcessInstanceById(wrongProcessDefinition.getId()); MigrationPlan migrationPlan = runtimeService.createMigrationPlan(sourceProcessDefinition.getId(), targetProcessDefinition.getId()) .mapEqualActivities() .build(); try { runtimeService.newMigration(migrationPlan).processInstanceIds(Collections.singletonList(processInstance.getId())).execute(); fail("Should not be able to migrate"); } catch (ProcessEngineException e) { assertThat(e.getMessage(), CoreMatchers.startsWith("ENGINE-23002")); } }
@Test public void testMigrateWithIdVarargsArray() { ProcessDefinition sourceDefinition = testHelper.deployAndGetDefinition(ProcessModels.ONE_TASK_PROCESS); ProcessDefinition targetDefinition = testHelper.deployAndGetDefinition(ProcessModels.ONE_TASK_PROCESS); MigrationPlan migrationPlan = runtimeService.createMigrationPlan(sourceDefinition.getId(), targetDefinition.getId()) .mapEqualActivities() .build(); ProcessInstance processInstance1 = runtimeService.startProcessInstanceById(sourceDefinition.getId()); ProcessInstance processInstance2 = runtimeService.startProcessInstanceById(sourceDefinition.getId()); // when runtimeService.newMigration(migrationPlan) .processInstanceIds(processInstance1.getId(), processInstance2.getId()) .execute(); // then Assert.assertEquals(2, runtimeService.createProcessInstanceQuery() .processDefinitionId(targetDefinition.getId()).count()); }