protected List<VariableInstance> queryVariablesInstancesByVariableScopeIds(Collection<String> variableNames, Collection<String> variableScopeIds) { IdentityService identityService = processEngine.getIdentityService(); Authentication currentAuthentication = identityService.getCurrentAuthentication(); try { identityService.clearAuthentication(); return getProcessEngine().getRuntimeService() .createVariableInstanceQuery() .disableBinaryFetching() .disableCustomObjectDeserialization() .variableNameIn(variableNames.toArray(new String[variableNames.size()])) .variableScopeIdIn(variableScopeIds.toArray(new String[variableScopeIds.size()])) .list(); } finally { identityService.setAuthentication(currentAuthentication); } }
protected List<VariableInstance> queryVariablesInstancesByVariableScopeIds(Collection<String> variableNames, Collection<String> variableScopeIds) { IdentityService identityService = processEngine.getIdentityService(); Authentication currentAuthentication = identityService.getCurrentAuthentication(); try { identityService.clearAuthentication(); return getProcessEngine().getRuntimeService() .createVariableInstanceQuery() .disableBinaryFetching() .disableCustomObjectDeserialization() .variableNameIn(variableNames.toArray(new String[variableNames.size()])) .variableScopeIdIn(variableScopeIds.toArray(new String[variableScopeIds.size()])) .list(); } finally { identityService.setAuthentication(currentAuthentication); } }
query.variableScopeIdIn(variableScopeIdIn);
verify(mockedQuery).caseExecutionIdIn(queryParameters.get("caseExecutionIdIn")); verify(mockedQuery).taskIdIn(queryParameters.get("taskIdIn")); verify(mockedQuery).variableScopeIdIn(queryParameters.get("variableScopeIdIn")); verify(mockedQuery).activityInstanceIdIn(queryParameters.get("activityInstanceIdIn")); verify(mockedQuery).tenantIdIn(queryParameters.get("tenantIdIn"));
query.variableScopeIdIn(variableScopeIdIn);
@Test public void testHalTaskQueryWithWrongFormatVariablesProperties() { // mock properties with variable name list in wrong format Map<String, Object> properties = new HashMap<String, Object>(); properties.put("variables", "foo"); Filter filter = mockFilter().properties(properties).build(); when(filterServiceMock.getFilter(eq(EXAMPLE_FILTER_ID))).thenReturn(filter); given() .pathParam("id", EXAMPLE_FILTER_ID) .header(ACCEPT_HAL_HEADER) .expect() .statusCode(Status.INTERNAL_SERVER_ERROR.getStatusCode()) .when() .get(EXECUTE_SINGLE_RESULT_FILTER_URL); verify(filterServiceMock, times(1)).getFilter(eq(EXAMPLE_FILTER_ID)); verify(variableInstanceQueryMock, never()).variableScopeIdIn((String) anyVararg()); verify(variableInstanceQueryMock, never()).variableNameIn((String) anyVararg()); verify(variableInstanceQueryMock, never()).list(); }
verify(mockedQuery).executionIdIn(anExecutionId, anotherExecutionId); verify(mockedQuery).taskIdIn(aTaskId, anotherTaskId); verify(mockedQuery).variableScopeIdIn(aVariableScopeId, anotherVariableScopeId); verify(mockedQuery).activityInstanceIdIn(anActivityInstanceId, anotherActivityInstanceId); verify(mockedQuery).disableBinaryFetching();
verify(mockedQuery).executionIdIn(anExecutionId); verify(mockedQuery).taskIdIn(aTaskId); verify(mockedQuery).variableScopeIdIn(aVariableScopeId); verify(mockedQuery).activityInstanceIdIn(anActivityInstanceId); verify(mockedQuery).tenantIdIn(aTenantId);
@Test public void testHalTaskQueryWithEmptyVariablesProperties() { // mock properties with variable name list in wrong format Map<String, Object> properties = new HashMap<String, Object>(); properties.put("variables", Collections.emptyList()); Filter filter = mockFilter().properties(properties).build(); when(filterServiceMock.getFilter(eq(EXAMPLE_FILTER_ID))).thenReturn(filter); given() .pathParam("id", EXAMPLE_FILTER_ID) .header(ACCEPT_HAL_HEADER) .expect() .statusCode(Status.OK.getStatusCode()) .body("_embedded", equalTo(null)) .when() .get(EXECUTE_SINGLE_RESULT_FILTER_URL); verify(filterServiceMock, times(1)).getFilter(eq(EXAMPLE_FILTER_ID)); verify(variableInstanceQueryMock, never()).variableScopeIdIn((String) anyVararg()); verify(variableInstanceQueryMock, never()).variableNameIn((String) anyVararg()); verify(variableInstanceQueryMock, never()).list(); }
when(processEngine.getRuntimeService().createVariableInstanceQuery()) .thenReturn(variableInstanceQueryMock); when(variableInstanceQueryMock.variableScopeIdIn((String) anyVararg())) .thenReturn(variableInstanceQueryMock); when(variableInstanceQueryMock.variableNameIn((String) anyVararg()))
verify(variableInstanceQueryMock, times(1)).variableScopeIdIn((String) anyVararg()); verify(variableInstanceQueryMock).variableScopeIdIn(TASK_A_ID, EXECUTION_A_ID, PROCESS_INSTANCE_A_ID); verify(variableInstanceQueryMock, times(1)).variableNameIn((String) anyVararg()); verify(variableInstanceQueryMock).variableNameIn("foo", "bar");
variableInstances = runtimeService.createVariableInstanceQuery().variableScopeIdIn(variableScopeId).list(); assertEquals(1, variableInstances.size()); assertEquals(variableName, variableInstances.get(0).getName()); variableInstances = runtimeService.createVariableInstanceQuery().variableScopeIdIn(taskId, executionId, processInstanceId).list(); assertEquals(3, variableInstances.size()); variableInstances = runtimeService.createVariableInstanceQuery().variableScopeIdIn(taskId).list(); assertEquals(0, variableInstances.size()); variableInstances = runtimeService.createVariableInstanceQuery().variableScopeIdIn(taskId, executionId, processInstanceId).list(); assertEquals(2, variableInstances.size()); variableInstances = runtimeService.createVariableInstanceQuery().variableScopeIdIn(processInstanceId, taskId).list(); assertEquals(0, variableInstances.size()); variableInstances = runtimeService.createVariableInstanceQuery().variableScopeIdIn(taskId, executionId, processInstanceId).list(); assertEquals(1, variableInstances.size()); variableInstances = runtimeService.createVariableInstanceQuery().variableScopeIdIn(taskId, executionId, processInstanceId).list(); assertEquals(0, variableInstances.size());
@Test public void testMultipleParameters() { String aProcessInstanceId = "aProcessInstanceId"; String anotherProcessInstanceId = "anotherProcessInstanceId"; String anExecutionId = "anExecutionId"; String anotherExecutionId = "anotherExecutionId"; String aTaskId = "aTaskId"; String anotherTaskId = "anotherTaskId"; String aVariableScopeId = "aVariableScopeId"; String anotherVariableScopeId = "anotherVariableScopeId"; String anActivityInstanceId = "anActivityInstanceId"; String anotherActivityInstanceId = "anotherActivityInstanceId"; given() .queryParam("processInstanceIdIn", aProcessInstanceId + "," + anotherProcessInstanceId) .queryParam("executionIdIn", anExecutionId + "," + anotherExecutionId) .queryParam("taskIdIn", aTaskId + "," + anotherTaskId) .queryParam("variableScopeIdIn", aVariableScopeId + "," + anotherVariableScopeId) .queryParam("activityInstanceIdIn", anActivityInstanceId + "," + anotherActivityInstanceId) .then().expect().statusCode(Status.OK.getStatusCode()) .when().get(VARIABLE_INSTANCE_QUERY_URL); verify(mockedQuery).processInstanceIdIn(aProcessInstanceId, anotherProcessInstanceId); verify(mockedQuery).executionIdIn(anExecutionId, anotherExecutionId); verify(mockedQuery).taskIdIn(aTaskId, anotherTaskId); verify(mockedQuery).variableScopeIdIn(aVariableScopeId, anotherVariableScopeId); verify(mockedQuery).activityInstanceIdIn(anActivityInstanceId, anotherActivityInstanceId); verify(mockedQuery).disableBinaryFetching(); // requirement to not break existing API; should be: // verify(variableInstanceQueryMock).disableCustomObjectDeserialization(); verify(mockedQuery, never()).disableCustomObjectDeserialization(); }
verify(variableInstanceQueryMock, times(1)).variableScopeIdIn((String) anyVararg()); verify(variableInstanceQueryMock).variableScopeIdIn(TASK_A_ID, EXECUTION_A_ID, PROCESS_INSTANCE_A_ID, CASE_EXECUTION_A_ID, CASE_INSTANCE_A_ID); verify(variableInstanceQueryMock, times(1)).variableNameIn((String) anyVararg()); verify(variableInstanceQueryMock).variableNameIn("foo", "bar");
verify(variableInstanceQueryMock, times(1)).variableScopeIdIn((String) anyVararg()); verify(variableInstanceQueryMock).variableScopeIdIn(TASK_A_ID, EXECUTION_A_ID, PROCESS_INSTANCE_A_ID, TASK_B_ID, EXECUTION_B_ID, TASK_C_ID, CASE_EXECUTION_A_ID, CASE_INSTANCE_A_ID); verify(variableInstanceQueryMock, times(1)).variableNameIn((String) anyVararg()); verify(variableInstanceQueryMock).variableNameIn("foo", "bar");
protected List<VariableInstance> queryVariablesInstancesByVariableScopeIds(Collection<String> variableNames, Collection<String> variableScopeIds) { IdentityService identityService = processEngine.getIdentityService(); Authentication currentAuthentication = identityService.getCurrentAuthentication(); try { identityService.clearAuthentication(); return getProcessEngine().getRuntimeService() .createVariableInstanceQuery() .disableBinaryFetching() .disableCustomObjectDeserialization() .variableNameIn(variableNames.toArray(new String[variableNames.size()])) .variableScopeIdIn(variableScopeIds.toArray(new String[variableScopeIds.size()])) .list(); } finally { identityService.setAuthentication(currentAuthentication); } }
query.variableScopeIdIn(variableScopeIdIn);
variableInstances = runtimeService.createVariableInstanceQuery().variableScopeIdIn(variableScopeId).list(); assertEquals(1, variableInstances.size()); assertEquals(variableName, variableInstances.get(0).getName()); variableInstances = runtimeService.createVariableInstanceQuery().variableScopeIdIn(taskId, executionId, processInstanceId).list(); assertEquals(3, variableInstances.size()); variableInstances = runtimeService.createVariableInstanceQuery().variableScopeIdIn(taskId).list(); assertEquals(0, variableInstances.size()); variableInstances = runtimeService.createVariableInstanceQuery().variableScopeIdIn(taskId, executionId, processInstanceId).list(); assertEquals(2, variableInstances.size()); variableInstances = runtimeService.createVariableInstanceQuery().variableScopeIdIn(processInstanceId, taskId).list(); assertEquals(0, variableInstances.size()); variableInstances = runtimeService.createVariableInstanceQuery().variableScopeIdIn(taskId, executionId, processInstanceId).list(); assertEquals(1, variableInstances.size()); variableInstances = runtimeService.createVariableInstanceQuery().variableScopeIdIn(taskId, executionId, processInstanceId).list(); assertEquals(0, variableInstances.size());