.when().get(VARIABLE_INSTANCE_QUERY_URL); verify(mockedQuery).variableName(queryParameters.get("variableName")); verify(mockedQuery).variableNameLike(queryParameters.get("variableNameLike")); verify(mockedQuery).processInstanceIdIn(queryParameters.get("processInstanceIdIn")); verify(mockedQuery).executionIdIn(queryParameters.get("executionIdIn")); verify(mockedQuery).caseInstanceIdIn(queryParameters.get("caseInstanceIdIn")); 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")); verify(mockedQuery).list(); verify(mockedQuery).disableBinaryFetching(); verify(mockedQuery, never()).disableCustomObjectDeserialization();
@Deployment(resources = {"org/camunda/bpm/engine/test/cmmn/listener/CaseExecutionListenerTest.testFieldInjectionByClass.cmmn"}) public void testFieldInjectionByClass() { // given // when String caseInstanceId = caseService .withCaseDefinitionByKey("case") .create() .getId(); // then VariableInstanceQuery query = runtimeService .createVariableInstanceQuery() .caseInstanceIdIn(caseInstanceId); assertEquals(4, query.count()); assertEquals("Hello from The Case", query.variableName("greeting").singleResult().getValue()); assertEquals("Hello World", query.variableName("helloWorld").singleResult().getValue()); assertEquals("cam", query.variableName("prefix").singleResult().getValue()); assertEquals("unda", query.variableName("suffix").singleResult().getValue()); }
@Override protected Query<VariableInstanceQuery, VariableInstance> baseQueryForVariable(boolean deserializeObjectValue) { VariableInstanceQuery baseQuery = baseQuery(); // do not fetch byte arrays baseQuery.disableBinaryFetching(); if (!deserializeObjectValue) { baseQuery.disableCustomObjectDeserialization(); } return baseQuery; }
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); } }
public void testQueryAuthenticatedTenant() { identityService.setAuthentication("user", null, Arrays.asList(TENANT_ONE)); VariableInstanceQuery query = runtimeService.createVariableInstanceQuery(); assertThat(query.count(), is(1L)); assertThat(query.tenantIdIn(TENANT_ONE).count(), is(1L)); assertThat(query.tenantIdIn(TENANT_TWO).count(), is(0L)); assertThat(query.tenantIdIn(TENANT_ONE, TENANT_TWO).count(), is(1L)); }
@Test @SuppressWarnings("unchecked") @OperateOnDeployment("clientDeployment") public void shouldSwitchContextWhenCallingFromBpmn() { ProcessInstance pi = runtimeService.startProcessInstanceByKey("testProcess"); VariableInstance decisionResult = runtimeService.createVariableInstanceQuery() .processInstanceIdIn(pi.getId()) .variableName("result").singleResult(); List<Map<String, Object>> result = (List<Map<String, Object>>) decisionResult.getValue(); assertEquals("ok", result.get(0).get("result")); }
@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(); }
private void checkErrorVariable(String variableName, Object expectedValue){ VariableInstance errorVariable = runtimeService.createVariableInstanceQuery().variableName(variableName).singleResult(); assertThat(errorVariable, is(notNullValue())); assertThat(errorVariable.getValue(), is(expectedValue)); }
@Test public void testNoParametersQuery() { expect().statusCode(Status.OK.getStatusCode()).when().get(VARIABLE_INSTANCE_QUERY_URL); verify(mockedQuery).list(); verify(mockedQuery).disableBinaryFetching(); verify(mockedQuery, never()).disableCustomObjectDeserialization(); verifyNoMoreInteractions(mockedQuery); }
@Test public void testGetNonExistingVariableInstance() { String nonExistingId = "nonExistingId"; when(variableInstanceQueryMock.variableId(nonExistingId)).thenReturn(variableInstanceQueryMock); when(variableInstanceQueryMock.disableBinaryFetching()).thenReturn(variableInstanceQueryMock); when(variableInstanceQueryMock.disableCustomObjectDeserialization()).thenReturn(variableInstanceQueryMock); when(variableInstanceQueryMock.singleResult()).thenReturn(null); given().pathParam("id", nonExistingId) .then().expect().statusCode(Status.NOT_FOUND.getStatusCode()) .body(containsString("Variable instance with Id 'nonExistingId' does not exist.")) .when().get(VARIABLE_INSTANCE_URL); verify(variableInstanceQueryMock, times(1)).disableBinaryFetching(); }
@Test @Deployment(resources={"org/camunda/bpm/engine/test/api/runtime/oneTaskProcess.bpmn20.xml"}) public void testQueryByExecutionIdWithoutAnyResult() { // given Map<String, Object> variables = new HashMap<String, Object>(); variables.put("stringVar", "test"); runtimeService.startProcessInstanceByKey("oneTaskProcess", variables); runtimeService.startProcessInstanceByKey("oneTaskProcess"); // when VariableInstanceQuery query = runtimeService.createVariableInstanceQuery().executionIdIn("anExecutionId"); // then List<VariableInstance> result = query.list(); assertTrue(result.isEmpty()); assertEquals(0, query.count()); }
@Test @Deployment(resources={"org/camunda/bpm/engine/test/api/runtime/oneTaskProcess.bpmn20.xml"}) public void testQueryByProcessInstanceIdWithoutAnyResult() { // given Map<String, Object> variables = new HashMap<String, Object>(); variables.put("stringVar", "test"); runtimeService.startProcessInstanceByKey("oneTaskProcess", variables); runtimeService.startProcessInstanceByKey("oneTaskProcess"); // when VariableInstanceQuery query = runtimeService.createVariableInstanceQuery().processInstanceIdIn("aProcessInstanceId"); // then List<VariableInstance> result = query.list(); assertTrue(result.isEmpty()); assertEquals(0, query.count()); }
public ProcessInstanceSnapshotBuilder variables() { List<VariableInstance> variables = processEngine.getRuntimeService().createVariableInstanceQuery().processInstanceIdIn(processInstanceId).list(); snapshot.setVariables(variables); return this; }
@Test @Deployment public void testSubProcessVariablesWithParallelGateway() { // given ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("processWithSubProcess"); ActivityInstance tree = runtimeService.getActivityInstance(processInstance.getId()); assertNotNull(tree); ActivityInstance[] subprocessInstances = tree.getActivityInstances("SubProcess_1"); assertEquals(5, subprocessInstances.length); //when String activityInstanceId1 = subprocessInstances[0].getId(); VariableInstanceQuery query1 = runtimeService.createVariableInstanceQuery().activityInstanceIdIn(activityInstanceId1); String activityInstanceId2 = subprocessInstances[1].getId(); VariableInstanceQuery query2 = runtimeService.createVariableInstanceQuery().activityInstanceIdIn(activityInstanceId2); String activityInstanceId3 = subprocessInstances[2].getId(); VariableInstanceQuery query3 = runtimeService.createVariableInstanceQuery().activityInstanceIdIn(activityInstanceId3); String activityInstanceId4 = subprocessInstances[3].getId(); VariableInstanceQuery query4 = runtimeService.createVariableInstanceQuery().activityInstanceIdIn(activityInstanceId4); String activityInstanceId5 = subprocessInstances[4].getId(); VariableInstanceQuery query5 = runtimeService.createVariableInstanceQuery().activityInstanceIdIn(activityInstanceId5); // then checkVariables(query1.list()); checkVariables(query2.list()); checkVariables(query3.list()); checkVariables(query4.list()); checkVariables(query5.list()); }
@Test public void testSuccessfulPagination() { int firstResult = 0; int maxResults = 10; given().queryParam("firstResult", firstResult).queryParam("maxResults", maxResults) .then().expect().statusCode(Status.OK.getStatusCode()) .when().get(VARIABLE_INSTANCE_QUERY_URL); verify(mockedQuery).listPage(firstResult, maxResults); verify(mockedQuery).disableBinaryFetching(); // requirement to not break existing API; should be: // verify(variableInstanceQueryMock).disableCustomObjectDeserialization(); verify(mockedQuery, never()).disableCustomObjectDeserialization(); }
@Test @Deployment(resources={"org/camunda/bpm/engine/test/api/runtime/oneTaskProcess.bpmn20.xml"}) public void testQueryByVariableNameLikeWithoutAnyResult() { // given Map<String, Object> variables = new HashMap<String, Object>(); variables.put("stringVar", "test"); runtimeService.startProcessInstanceByKey("oneTaskProcess", variables); // when VariableInstanceQuery query = runtimeService.createVariableInstanceQuery().variableNameLike("%ingV_"); // then List<VariableInstance> result = query.list(); assertTrue(result.isEmpty()); assertEquals(0, query.count()); }
@Deployment(resources={"org/camunda/bpm/engine/test/api/cmmn/oneTaskCase.cmmn"}) public void testCreateByKeyWithVariablesAndBusinessKeyNonFluent() { // given a deployed case definition // when Map<String, Object> variables = new HashMap<String, Object>(); variables.put("aVariable", "aValue"); CaseInstance caseInstance = caseService.createCaseInstanceByKey("oneTaskCase", "aBusinessKey", variables); // then assertNotNull(caseInstance); assertEquals("aBusinessKey", caseInstance.getBusinessKey()); assertEquals(1, runtimeService.createVariableInstanceQuery() .caseInstanceIdIn(caseInstance.getId()) .variableValueEquals("aVariable", "aValue") .count()); }
.activityInstanceIdIn(instance1.getId(), instance2.getId()) .orderByVariableName() .asc(); List<VariableInstance> result = query.list();
@Test @Deployment(resources = {"org/camunda/bpm/engine/test/api/cmmn/oneTaskCase.cmmn"}) public void testQueryByCaseExecutionIds() { CaseInstance instance1 = caseService .withCaseDefinitionByKey("oneTaskCase") .setVariable("aVariableName", "abc") .create(); CaseInstance instance2 = caseService .withCaseDefinitionByKey("oneTaskCase") .setVariable("anotherVariableName", "xyz") .create(); VariableInstanceQuery query = runtimeService.createVariableInstanceQuery(); query .caseExecutionIdIn(instance1.getId(), instance2.getId()) .orderByVariableName() .asc(); List<VariableInstance> result = query.list(); assertEquals(2, result.size()); for (VariableInstance variableInstance : result) { if (variableInstance.getName().equals("aVariableName")) { assertEquals("aVariableName", variableInstance.getName()); assertEquals("abc", variableInstance.getValue()); } else if (variableInstance.getName().equals("anotherVariableName")) { assertEquals("anotherVariableName", variableInstance.getName()); assertEquals("xyz", variableInstance.getValue()); } else { fail("Unexpected variable: " + variableInstance.getName()); } } }
public void testQuerySortingDesc() { List<VariableInstance> variableInstances = runtimeService.createVariableInstanceQuery() .orderByTenantId() .desc() .list(); assertThat(variableInstances.size(), is(2)); assertThat(variableInstances.get(0).getTenantId(), is(TENANT_TWO)); assertThat(variableInstances.get(1).getTenantId(), is(TENANT_ONE)); }