@Test public void testProcessInstanceIdsListWithNullValue() { ProcessDefinition testProcessDefinition = migrationRule.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")).executeAsync(); fail("Should not succeed"); } catch (ProcessEngineException e) { assertThat(e.getMessage(), containsString("process instance ids contains null value")); } }
public Batch migrateProcessInstancesAsync(int numberOfProcessInstances, ProcessDefinition sourceProcessDefinition, ProcessDefinition targetProcessDefinition) { RuntimeService runtimeService = engineRule.getRuntimeService(); List<String> processInstanceIds = new ArrayList<String>(numberOfProcessInstances); for (int i = 0; i < numberOfProcessInstances; i++) { processInstanceIds.add( runtimeService.startProcessInstanceById(sourceProcessDefinition.getId()).getId()); } MigrationPlan migrationPlan = engineRule.getRuntimeService() .createMigrationPlan(sourceProcessDefinition.getId(), targetProcessDefinition.getId()) .mapEqualActivities() .build(); return runtimeService.newMigration(migrationPlan).processInstanceIds(processInstanceIds).executeAsync(); }
@Test public void testEmptyProcessInstanceIdsList() { ProcessDefinition testProcessDefinition = migrationRule.deployAndGetDefinition(ProcessModels.ONE_TASK_PROCESS); MigrationPlan migrationPlan = runtimeService.createMigrationPlan(testProcessDefinition.getId(), testProcessDefinition.getId()) .mapEqualActivities() .build(); try { runtimeService.newMigration(migrationPlan).processInstanceIds(Collections.<String>emptyList()).executeAsync(); fail("Should not succeed"); } catch (ProcessEngineException e) { assertThat(e.getMessage(), containsString("process instance ids is empty")); } }
@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 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 canCreateMigrationPlanForNoTenants() { // given ProcessDefinition sharedDefinition = testHelper.deployAndGetDefinition(ProcessModels.ONE_TASK_PROCESS); // when MigrationPlan migrationPlan = engineRule.getRuntimeService().createMigrationPlan(sharedDefinition.getId(), sharedDefinition.getId()) .mapEqualActivities() .build(); // then Assert.assertNotNull(migrationPlan); }
@Test public void canCreateMigrationPlanForDefinitionsOfAuthenticatedTenant() { // given ProcessDefinition tenant1Definition = testHelper.deployForTenantAndGetDefinition(TENANT_ONE, ProcessModels.ONE_TASK_PROCESS); ProcessDefinition tenant2Definition = testHelper.deployForTenantAndGetDefinition(TENANT_ONE, ProcessModels.ONE_TASK_PROCESS); // when engineRule.getIdentityService().setAuthentication("user", null, Arrays.asList(TENANT_ONE)); MigrationPlan migrationPlan = engineRule.getRuntimeService().createMigrationPlan(tenant1Definition.getId(), tenant2Definition.getId()) .mapEqualActivities() .build(); // then Assert.assertNotNull(migrationPlan); }
@Test public void testNullProcessInstanceQuery() { ProcessDefinition testProcessDefinition = migrationRule.deployAndGetDefinition(ProcessModels.ONE_TASK_PROCESS); MigrationPlan migrationPlan = runtimeService.createMigrationPlan(testProcessDefinition.getId(), testProcessDefinition.getId()) .mapEqualActivities() .build(); try { runtimeService.newMigration(migrationPlan).processInstanceQuery(null).executeAsync(); fail("Should not succeed"); } catch (ProcessEngineException e) { assertThat(e.getMessage(), containsString("process instance ids is empty")); } }
@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 = migrationRule.deployAndGetDefinition(ProcessModels.ONE_TASK_PROCESS); MigrationPlan migrationPlan = runtimeService.createMigrationPlan(testProcessDefinition.getId(), testProcessDefinition.getId()) .mapEqualActivities() .build(); try { runtimeService.newMigration(migrationPlan).processInstanceIds((List<String>) null).executeAsync(); fail("Should not succeed"); } catch (ProcessEngineException e) { assertThat(e.getMessage(), containsString("process instance ids is empty")); } }
@Test public void canCreateMigrationPlanFromTenantToNoTenant() { // given ProcessDefinition sharedDefinition = testHelper.deployAndGetDefinition(ProcessModels.ONE_TASK_PROCESS); ProcessDefinition tenantDefinition = testHelper.deployForTenantAndGetDefinition(TENANT_ONE, ProcessModels.ONE_TASK_PROCESS); // when MigrationPlan migrationPlan = engineRule.getRuntimeService().createMigrationPlan(tenantDefinition.getId(), sharedDefinition.getId()) .mapEqualActivities() .build(); // then Assert.assertNotNull(migrationPlan); }
@Test public void canCreateMigrationPlanFromNoTenantToTenant() { // given ProcessDefinition sharedDefinition = testHelper.deployAndGetDefinition(ProcessModels.ONE_TASK_PROCESS); ProcessDefinition tenantDefinition = testHelper.deployForTenantAndGetDefinition(TENANT_ONE, ProcessModels.ONE_TASK_PROCESS); // when MigrationPlan migrationPlan = engineRule.getRuntimeService().createMigrationPlan(sharedDefinition.getId(), tenantDefinition.getId()) .mapEqualActivities() .build(); // then Assert.assertNotNull(migrationPlan); }
protected Batch createFailingMigrationBatch() { BpmnModelInstance instance = createModelInstance(); ProcessDefinition sourceProcessDefinition = migrationRule.deployAndGetDefinition(instance); ProcessDefinition targetProcessDefinition = migrationRule.deployAndGetDefinition(instance); MigrationPlan migrationPlan = runtimeService .createMigrationPlan(sourceProcessDefinition.getId(), targetProcessDefinition.getId()) .mapEqualActivities() .build(); ProcessInstance processInstance = runtimeService.startProcessInstanceById(sourceProcessDefinition.getId()); Batch batch = runtimeService.newMigration(migrationPlan).processInstanceIds(Arrays.asList(processInstance.getId(), "unknownId")).executeAsync(); return batch; }
@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")); } }
private Batch createFailingMigrationBatch() { BpmnModelInstance instance = createModelInstance(); ProcessDefinition sourceProcessDefinition = migrationRule.deployAndGetDefinition(instance); ProcessDefinition targetProcessDefinition = migrationRule.deployAndGetDefinition(instance); MigrationPlan migrationPlan = runtimeService .createMigrationPlan(sourceProcessDefinition.getId(), targetProcessDefinition.getId()) .mapEqualActivities() .build(); ProcessInstance processInstance = runtimeService.startProcessInstanceById(sourceProcessDefinition.getId()); Batch batch = runtimeService.newMigration(migrationPlan).processInstanceIds(Arrays.asList(processInstance.getId(), "unknownId")).executeAsync(); return batch; }
@Test public void cannotCreateMigrationPlanForDefinitionsOfNonAuthenticatedTenantsCase1() { // given ProcessDefinition tenant1Definition = testHelper.deployForTenantAndGetDefinition(TENANT_ONE, ProcessModels.ONE_TASK_PROCESS); ProcessDefinition tenant2Definition = testHelper.deployForTenantAndGetDefinition(TENANT_ONE, ProcessModels.ONE_TASK_PROCESS); engineRule.getIdentityService().setAuthentication("user", null, Arrays.asList(TENANT_TWO)); // then exception.expect(ProcessEngineException.class); exception.expectMessage("Cannot get process definition '" + tenant1Definition.getId() + "' because it belongs to no authenticated tenant"); // when engineRule.getRuntimeService().createMigrationPlan(tenant1Definition.getId(), tenant2Definition.getId()) .mapEqualActivities() .build(); }
protected ProcessInstance createMigrationPlan() { ProcessDefinition sourceDefinition = testHelper.deployAndGetDefinition(ProcessModels.ONE_TASK_PROCESS); ProcessDefinition targetDefinition = testHelper.deployAndGetDefinition(ProcessModels.ONE_TASK_PROCESS); migrationPlan = engineRule.getRuntimeService().createMigrationPlan(sourceDefinition.getId(), targetDefinition.getId()) .mapEqualActivities() .build(); ProcessInstance pi = engineRule.getRuntimeService().startProcessInstanceById(sourceDefinition.getId()); return pi; } }
@Test public void testEmptyProcessInstanceQuery() { ProcessDefinition testProcessDefinition = migrationRule.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).executeAsync(); fail("Should not succeed"); } catch (ProcessEngineException e) { assertThat(e.getMessage(), containsString("process instance ids is empty")); } }
@Test public void canCreateMigrationPlanForSharedDefinitionsWithNoAuthenticatedTenants() { // given ProcessDefinition sourceDefinition = testHelper.deployAndGetDefinition(ProcessModels.ONE_TASK_PROCESS); ProcessDefinition targetDefinition = testHelper.deployAndGetDefinition(ProcessModels.ONE_TASK_PROCESS); // when engineRule.getIdentityService().setAuthentication("user", null, null); MigrationPlan migrationPlan = engineRule.getRuntimeService().createMigrationPlan(sourceDefinition.getId(), targetDefinition.getId()) .mapEqualActivities() .build(); // then Assert.assertNotNull(migrationPlan); }
@Test public void testMigrationPlanCreationWithEmptyDeploymentCache() { // given ProcessDefinition sourceDefinition = testHelper.deployAndGetDefinition(ProcessModels.ONE_TASK_PROCESS); ProcessDefinition targetDefinition = testHelper.deployAndGetDefinition(ProcessModels.ONE_TASK_PROCESS); rule.getProcessEngineConfiguration().getDeploymentCache().discardProcessDefinitionCache(); // when MigrationPlan migrationPlan = rule.getRuntimeService().createMigrationPlan(sourceDefinition.getId(), targetDefinition.getId()) .mapEqualActivities() .build(); // then assertNotNull(migrationPlan); }