private void setUpMockDefinitionQuery(ProcessDefinition mockDefinition) { processDefinitionQueryMock = mock(ProcessDefinitionQuery.class); when(processDefinitionQueryMock.processDefinitionKey(MockProvider.EXAMPLE_PROCESS_DEFINITION_KEY)).thenReturn(processDefinitionQueryMock); when(processDefinitionQueryMock.processDefinitionId(MockProvider.EXAMPLE_PROCESS_DEFINITION_ID)).thenReturn(processDefinitionQueryMock); when(processDefinitionQueryMock.tenantIdIn(anyString())).thenReturn(processDefinitionQueryMock); when(processDefinitionQueryMock.withoutTenantId()).thenReturn(processDefinitionQueryMock); when(processDefinitionQueryMock.latestVersion()).thenReturn(processDefinitionQueryMock); when(processDefinitionQueryMock.singleResult()).thenReturn(mockDefinition); when(processDefinitionQueryMock.count()).thenReturn(1L); when(processDefinitionQueryMock.list()).thenReturn(Collections.singletonList(mockDefinition)); when(repositoryServiceMock.createProcessDefinitionQuery()).thenReturn(processDefinitionQueryMock); }
private void setupProcessDefinitionMock() { ProcessDefinition mockDefinition = MockProvider.createMockDefinition(); processDefinitionQueryMock = mock(ProcessDefinitionQuery.class); when(processDefinitionQueryMock.processDefinitionKey(MockProvider.EXAMPLE_PROCESS_DEFINITION_KEY)).thenReturn(processDefinitionQueryMock); when(processDefinitionQueryMock.tenantIdIn(anyString())).thenReturn(processDefinitionQueryMock); when(processDefinitionQueryMock.withoutTenantId()).thenReturn(processDefinitionQueryMock); when(processDefinitionQueryMock.latestVersion()).thenReturn(processDefinitionQueryMock); when(processDefinitionQueryMock.singleResult()).thenReturn(mockDefinition); when(processDefinitionQueryMock.list()).thenReturn(Collections.singletonList(mockDefinition)); when(processDefinitionQueryMock.count()).thenReturn(1L); when(processEngine.getRepositoryService().createProcessDefinitionQuery()).thenReturn(processDefinitionQueryMock); }
public void testFailQueryByTenantIdNull() { try { repositoryService.createProcessDefinitionQuery() .tenantIdIn((String) null); fail("expected exception"); } catch (NullValueException e) { } }
public void testQueryByTenantId() { ProcessDefinitionQuery query = repositoryService .createProcessDefinitionQuery() .tenantIdIn(TENANT_ONE); assertThat(query.count(), is(1L)); query = repositoryService. createProcessDefinitionQuery() .tenantIdIn(TENANT_TWO); assertThat(query.count(), is(1L)); }
public void testQueryByNonExistingTenantId() { ProcessDefinitionQuery query = repositoryService .createProcessDefinitionQuery() .tenantIdIn("nonExisting"); assertThat(query.count(), is(0L)); }
public void testQueryByTenantIds() { ProcessDefinitionQuery query = repositoryService .createProcessDefinitionQuery() .tenantIdIn(TENANT_ONE, TENANT_TWO); assertThat(query.count(), is(2L)); }
public void testQueryAuthenticatedTenant() { identityService.setAuthentication("user", null, Arrays.asList(TENANT_ONE)); ProcessDefinitionQuery query = repositoryService.createProcessDefinitionQuery(); assertThat(query.count(), is(2L)); assertThat(query.tenantIdIn(TENANT_ONE).count(), is(1L)); assertThat(query.tenantIdIn(TENANT_TWO).count(), is(0L)); assertThat(query.tenantIdIn(TENANT_ONE, TENANT_TWO).includeProcessDefinitionsWithoutTenantId().count(), is(2L)); }
public void testQuerySortingAsc() { // exclude definitions without tenant id because of database-specific ordering List<ProcessDefinition> processDefinitions = repositoryService .createProcessDefinitionQuery() .tenantIdIn(TENANT_ONE, TENANT_TWO) .orderByTenantId() .asc() .list(); assertThat(processDefinitions.size(), is(2)); assertThat(processDefinitions.get(0).getTenantId(), is(TENANT_ONE)); assertThat(processDefinitions.get(1).getTenantId(), is(TENANT_TWO)); }
public void testQueryAuthenticatedTenants() { identityService.setAuthentication("user", null, Arrays.asList(TENANT_ONE, TENANT_TWO)); ProcessDefinitionQuery query = repositoryService.createProcessDefinitionQuery(); assertThat(query.count(), is(3L)); assertThat(query.tenantIdIn(TENANT_ONE).count(), is(1L)); assertThat(query.tenantIdIn(TENANT_TWO).count(), is(1L)); assertThat(query.withoutTenantId().count(), is(1L)); }
public void testQuerySortingDesc() { // exclude definitions without tenant id because of database-specific ordering List<ProcessDefinition> processDefinitions = repositoryService .createProcessDefinitionQuery() .tenantIdIn(TENANT_ONE, TENANT_TWO) .orderByTenantId() .desc() .list(); assertThat(processDefinitions.size(), is(2)); assertThat(processDefinitions.get(0).getTenantId(), is(TENANT_TWO)); assertThat(processDefinitions.get(1).getTenantId(), is(TENANT_ONE)); }
protected void startProcessInstance(String tenant) { String processDefinitionId = repositoryService .createProcessDefinitionQuery() .tenantIdIn(tenant) .singleResult() .getId(); runtimeService.startProcessInstanceById(processDefinitionId); }
public void testQueryByLatestWithTenantIds() { // deploy a second version for tenant one deploymentForTenant(TENANT_ONE, emptyProcess); ProcessDefinitionQuery query = repositoryService .createProcessDefinitionQuery() .processDefinitionKey(PROCESS_DEFINITION_KEY) .latestVersion() .tenantIdIn(TENANT_ONE, TENANT_TWO); // one definition for each tenant assertThat(query.count(), is(2L)); Map<String, ProcessDefinition> processDefinitionsForTenant = getProcessDefinitionsForTenant(query.list()); assertThat(processDefinitionsForTenant.get(TENANT_ONE).getVersion(), is(2)); assertThat(processDefinitionsForTenant.get(TENANT_TWO).getVersion(), is(1)); }
@Test public void getReportByMultipleProcessDefinitionIdByMonthWithAuthenticatedTenant() { testRule.deployForTenant(TENANT_ONE, BPMN_PROCESS); testRule.deployForTenant(TENANT_TWO, BPMN_PROCESS); startAndCompleteProcessInstance(TENANT_ONE); startAndCompleteProcessInstance(TENANT_TWO); String processDefinitionIdOne = repositoryService.createProcessDefinitionQuery().tenantIdIn(TENANT_ONE).singleResult().getId(); String processDefinitionIdTwo = repositoryService.createProcessDefinitionQuery().tenantIdIn(TENANT_TWO).singleResult().getId(); identityService.setAuthentication("user", null, Arrays.asList(TENANT_ONE)); List<DurationReportResult> result = historyService .createHistoricProcessInstanceReport() .processDefinitionIdIn(processDefinitionIdOne, processDefinitionIdTwo) .duration(MONTH); assertThat(result.size(), is(1)); }
protected void startProcessInstanceForTenant(String tenant) { String processDefinitionId = repositoryService .createProcessDefinitionQuery() .tenantIdIn(tenant) .singleResult() .getId(); VariableMap variables = Variables .createVariables() .putValue("var", "test"); runtimeService.startProcessInstanceById(processDefinitionId, variables); }
@Test public void getReportByMultipleProcessDefinitionIdByMonthNoAuthenticatedTenants() { testRule.deployForTenant(TENANT_ONE, BPMN_PROCESS); testRule.deployForTenant(TENANT_TWO, BPMN_PROCESS); startAndCompleteProcessInstance(TENANT_ONE); startAndCompleteProcessInstance(TENANT_TWO); String processDefinitionIdOne = repositoryService.createProcessDefinitionQuery().tenantIdIn(TENANT_ONE).singleResult().getId(); String processDefinitionIdTwo = repositoryService.createProcessDefinitionQuery().tenantIdIn(TENANT_TWO).singleResult().getId(); identityService.setAuthentication("user", null, null); List<DurationReportResult> result = historyService .createHistoricProcessInstanceReport() .processDefinitionIdIn(processDefinitionIdOne, processDefinitionIdTwo) .duration(MONTH); assertThat(result.size(), is(0)); }
@Test public void testSimpleProcessInstantiation_ByKeyAndTenantId() { ProcessDefinition mockDefinition = MockProvider.mockDefinition().tenantId(MockProvider.EXAMPLE_TENANT_ID).build(); setUpRuntimeDataForDefinition(mockDefinition); given() .pathParam("key", MockProvider.EXAMPLE_PROCESS_DEFINITION_KEY) .pathParam("tenant-id", MockProvider.EXAMPLE_TENANT_ID) .contentType(POST_JSON_CONTENT_TYPE).body(EMPTY_JSON_OBJECT) .then().expect() .statusCode(Status.OK.getStatusCode()) .body("id", equalTo(MockProvider.EXAMPLE_PROCESS_INSTANCE_ID)) .when().post(START_PROCESS_INSTANCE_BY_KEY_AND_TENANT_ID_URL); verify(processDefinitionQueryMock).tenantIdIn(MockProvider.EXAMPLE_TENANT_ID); }
public void testStartProcessInstanceWithLatestBindingDifferentVersion() { deploymentForTenant(TENANT_ONE, CMMN_LATEST_WITH_MANUAL_ACTIVATION, PROCESS); deploymentForTenant(TENANT_TWO, CMMN_LATEST_WITH_MANUAL_ACTIVATION, PROCESS); deploymentForTenant(TENANT_TWO, PROCESS); createCaseInstance("testCase", TENANT_ONE); createCaseInstance("testCase", TENANT_TWO); ProcessDefinition latestProcessTenantTwo = repositoryService.createProcessDefinitionQuery() .tenantIdIn(TENANT_TWO).processDefinitionKey("testProcess").latestVersion().singleResult(); ProcessInstanceQuery query = runtimeService.createProcessInstanceQuery().processDefinitionKey("testProcess"); assertThat(query.tenantIdIn(TENANT_ONE).count(), is(1L)); assertThat(query.tenantIdIn(TENANT_TWO).processDefinitionId(latestProcessTenantTwo.getId()).count(), is(1L)); }
@Test public void failToCorrelateMessageByProcessDefinitionIdNoAuthenticatedTenants() { testRule.deployForTenant(TENANT_ONE, MESSAGE_START_PROCESS); ProcessDefinition processDefinition = engineRule.getRepositoryService().createProcessDefinitionQuery(). processDefinitionKey("messageStart").tenantIdIn(TENANT_ONE).singleResult(); // declare expected exception thrown.expect(ProcessEngineException.class); thrown.expectMessage("Cannot create an instance of the process definition"); engineRule.getIdentityService().setAuthentication("user", null, null); engineRule.getRuntimeService().createMessageCorrelation("message") .processDefinitionId(processDefinition.getId()) .correlateStartMessage(); }
@Test public void failToSuspendProcessInstanceByProcessDefinitionIdNoAuthenticatedTenants() { ProcessDefinition processDefinition = engineRule.getRepositoryService().createProcessDefinitionQuery() .processDefinitionKey(PROCESS_DEFINITION_KEY).tenantIdIn(TENANT_ONE).singleResult(); // declare expected exception thrown.expect(ProcessEngineException.class); thrown.expectMessage("Cannot update the process definition '" + processDefinition.getId() +"' because it belongs to no authenticated tenant"); engineRule.getIdentityService().setAuthentication("user", null, null); engineRule.getRuntimeService() .updateProcessInstanceSuspensionState() .byProcessDefinitionId(processDefinition.getId()) .suspend(); }
@Test public void failToSuspendProcessDefinitionByIdNoAuthenticatedTenants() { ProcessDefinition processDefinition = engineRule.getRepositoryService().createProcessDefinitionQuery() .processDefinitionKey(PROCESS_DEFINITION_KEY).tenantIdIn(TENANT_ONE).singleResult(); // declare expected exception thrown.expect(ProcessEngineException.class); thrown.expectMessage("Cannot update the process definition '"+ processDefinition.getId() + "' because it belongs to no authenticated tenant"); engineRule.getIdentityService().setAuthentication("user", null, null); engineRule.getRepositoryService() .updateProcessDefinitionSuspensionState() .byProcessDefinitionId(processDefinition.getId()) .suspend(); }