public void updateVariables(String executionId, Map<String, ? extends Object> modifications, Collection<String> deletions) { updateVariables(executionId, modifications, deletions, false); }
public void updateVariables(String executionId, Map<String, ? extends Object> modifications, Collection<String> deletions) { updateVariables(executionId, modifications, deletions, false); }
public void updateVariablesLocal(String executionId, Map<String, ? extends Object> modifications, Collection<String> deletions) { updateVariables(executionId, modifications, deletions, true); }
public void updateVariablesLocal(String executionId, Map<String, ? extends Object> modifications, Collection<String> deletions) { updateVariables(executionId, modifications, deletions, true); }
protected void updateVariableEntities(VariableMap modifications, List<String> deletions) { RuntimeServiceImpl runtimeService = (RuntimeServiceImpl) engine.getRuntimeService(); runtimeService.updateVariables(resourceId, modifications, deletions); }
protected void updateVariableEntities(VariableMap modifications, List<String> deletions) { RuntimeServiceImpl runtimeService = (RuntimeServiceImpl) engine.getRuntimeService(); runtimeService.updateVariables(resourceId, modifications, deletions); }
@Deployment(resources={ "org/camunda/bpm/engine/test/api/oneTaskProcess.bpmn20.xml"}) @Test public void testUpdateVariables() { Map<String, Object> modifications = new HashMap<String, Object>(); modifications.put("variable1", "value1"); modifications.put("variable2", "value2"); List<String> deletions = new ArrayList<String>(); deletions.add("variable1"); Map<String, Object> initialVariables = new HashMap<String, Object>(); initialVariables.put("variable1", "initialValue"); ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("oneTaskProcess", initialVariables); ((RuntimeServiceImpl) runtimeService).updateVariables(processInstance.getId(), modifications, deletions); assertNull(runtimeService.getVariable(processInstance.getId(), "variable1")); assertEquals("value2", runtimeService.getVariable(processInstance.getId(), "variable2")); }
@Test public void testVariableModificationForNonExistingProcessInstance() { doThrow(new ProcessEngineException("expected exception")).when(runtimeServiceMock).updateVariables(anyString(), anyMapOf(String.class, Object.class), anyCollectionOf(String.class)); String variableKey = "aKey"; int variableValue = 123; Map<String, Object> messageBodyJson = new HashMap<String, Object>(); Map<String, Object> modifications = VariablesBuilder.create().variable(variableKey, variableValue).getVariables(); messageBodyJson.put("modifications", modifications); given().pathParam("id", MockProvider.EXAMPLE_PROCESS_INSTANCE_ID).contentType(ContentType.JSON).body(messageBodyJson) .then().expect().statusCode(Status.INTERNAL_SERVER_ERROR.getStatusCode()).contentType(ContentType.JSON) .body("type", equalTo(RestException.class.getSimpleName())) .body("message", equalTo("Cannot modify variables for process instance " + MockProvider.EXAMPLE_PROCESS_INSTANCE_ID + ": expected exception")) .when().post(PROCESS_INSTANCE_VARIABLES_URL); }
@Test public void testVariableModification() { String variableKey = "aKey"; int variableValue = 123; Map<String, Object> messageBodyJson = new HashMap<String, Object>(); Map<String, Object> modifications = VariablesBuilder.create().variable(variableKey, variableValue).getVariables(); messageBodyJson.put("modifications", modifications); List<String> deletions = new ArrayList<String>(); deletions.add("deleteKey"); messageBodyJson.put("deletions", deletions); given().pathParam("id", MockProvider.EXAMPLE_PROCESS_INSTANCE_ID).contentType(ContentType.JSON).body(messageBodyJson) .then().expect().statusCode(Status.NO_CONTENT.getStatusCode()) .when().post(PROCESS_INSTANCE_VARIABLES_URL); Map<String, Object> expectedModifications = new HashMap<String, Object>(); expectedModifications.put(variableKey, variableValue); verify(runtimeServiceMock).updateVariables(eq(MockProvider.EXAMPLE_PROCESS_INSTANCE_ID), argThat(new EqualsMap(expectedModifications)), argThat(new EqualsList(deletions))); }
@Test public void testVariableModificationThrowsAuthorizationException() { String variableKey = "aKey"; int variableValue = 123; Map<String, Object> messageBodyJson = new HashMap<String, Object>(); Map<String, Object> modifications = VariablesBuilder.create().variable(variableKey, variableValue).getVariables(); messageBodyJson.put("modifications", modifications); String message = "excpected exception"; doThrow(new AuthorizationException(message)).when(runtimeServiceMock).updateVariables(anyString(), anyMapOf(String.class, Object.class), anyCollectionOf(String.class)); given() .pathParam("id", MockProvider.EXAMPLE_PROCESS_INSTANCE_ID) .contentType(ContentType.JSON) .body(messageBodyJson) .then().expect() .statusCode(Status.FORBIDDEN.getStatusCode()) .body("type", is(AuthorizationException.class.getSimpleName())) .body("message", is(message)) .when() .post(PROCESS_INSTANCE_VARIABLES_URL); }
public void testUpdateVariablesWithReadInstancePermissionOnAnyProcessDefinition() { // given String processInstanceId = startProcessInstanceByKey(PROCESS_KEY).getId(); createGrantAuthorization(PROCESS_DEFINITION, ANY, userId, UPDATE_INSTANCE); VariableInstanceQuery query = runtimeService.createVariableInstanceQuery(); // when (1) ((RuntimeServiceImpl)runtimeService).updateVariables(processInstanceId, getVariables(), null); // then (1) disableAuthorization(); verifyQueryResults(query, 1); enableAuthorization(); // when (2) ((RuntimeServiceImpl)runtimeService).updateVariables(processInstanceId, null, Arrays.asList(VARIABLE_NAME)); // then (2) disableAuthorization(); verifyQueryResults(query, 0); enableAuthorization(); // when (3) ((RuntimeServiceImpl)runtimeService).updateVariables(processInstanceId, getVariables(), Arrays.asList(VARIABLE_NAME)); // then (3) disableAuthorization(); verifyQueryResults(query, 0); enableAuthorization(); }
public void testUpdateVariablesWithReadPermissionOnProcessInstance() { // given String processInstanceId = startProcessInstanceByKey(PROCESS_KEY).getId(); createGrantAuthorization(PROCESS_INSTANCE, processInstanceId, userId, UPDATE); VariableInstanceQuery query = runtimeService.createVariableInstanceQuery(); // when (1) ((RuntimeServiceImpl)runtimeService).updateVariables(processInstanceId, getVariables(), null); // then (1) disableAuthorization(); verifyQueryResults(query, 1); enableAuthorization(); // when (2) ((RuntimeServiceImpl)runtimeService).updateVariables(processInstanceId, null, Arrays.asList(VARIABLE_NAME)); // then (2) disableAuthorization(); verifyQueryResults(query, 0); enableAuthorization(); // when (3) ((RuntimeServiceImpl)runtimeService).updateVariables(processInstanceId, getVariables(), Arrays.asList(VARIABLE_NAME)); // then (3) disableAuthorization(); verifyQueryResults(query, 0); enableAuthorization(); }
public void testUpdateVariablesWithReadPermissionOnAnyProcessInstance() { // given String processInstanceId = startProcessInstanceByKey(PROCESS_KEY).getId(); createGrantAuthorization(PROCESS_INSTANCE, ANY, userId, UPDATE); VariableInstanceQuery query = runtimeService.createVariableInstanceQuery(); // when (1) ((RuntimeServiceImpl)runtimeService).updateVariables(processInstanceId, getVariables(), null); // then (1) disableAuthorization(); verifyQueryResults(query, 1); enableAuthorization(); // when (2) ((RuntimeServiceImpl)runtimeService).updateVariables(processInstanceId, null, Arrays.asList(VARIABLE_NAME)); // then (2) disableAuthorization(); verifyQueryResults(query, 0); enableAuthorization(); // when (3) ((RuntimeServiceImpl)runtimeService).updateVariables(processInstanceId, getVariables(), Arrays.asList(VARIABLE_NAME)); // then (3) disableAuthorization(); verifyQueryResults(query, 0); enableAuthorization(); }
public void testUpdateVariablesWithReadInstancePermissionOnProcessDefinition() { // given String processInstanceId = startProcessInstanceByKey(PROCESS_KEY).getId(); createGrantAuthorization(PROCESS_DEFINITION, PROCESS_KEY, userId, UPDATE_INSTANCE); VariableInstanceQuery query = runtimeService.createVariableInstanceQuery(); // when (1) ((RuntimeServiceImpl)runtimeService).updateVariables(processInstanceId, getVariables(), null); // then (1) disableAuthorization(); verifyQueryResults(query, 1); enableAuthorization(); // when (2) ((RuntimeServiceImpl)runtimeService).updateVariables(processInstanceId, null, Arrays.asList(VARIABLE_NAME)); // then (2) disableAuthorization(); verifyQueryResults(query, 0); enableAuthorization(); // when (3) ((RuntimeServiceImpl)runtimeService).updateVariables(processInstanceId, getVariables(), Arrays.asList(VARIABLE_NAME)); // then (3) disableAuthorization(); verifyQueryResults(query, 0); enableAuthorization(); }
@Deployment(resources = {ONE_TASK_PROCESS}) public void testQueryPatchExecutionVariablesOperation() { // given process = runtimeService.startProcessInstanceByKey("oneTaskProcess"); // when ((RuntimeServiceImpl) runtimeService) .updateVariables(process.getId(), createMapForVariableAddition(), createCollectionForVariableDeletion()); // then verifyVariableOperationAsserts(1, UserOperationLogEntry.OPERATION_TYPE_MODIFY_VARIABLE); }
@Test @Deployment(resources = {ONE_TASK_PROCESS}) public void testQueryPatchExecutionVariablesOperation() { // given process = runtimeService.startProcessInstanceByKey("oneTaskProcess"); // when ((RuntimeServiceImpl) runtimeService) .updateVariables(process.getId(), createMapForVariableAddition(), createCollectionForVariableDeletion()); // then verifyVariableOperationAsserts(1, UserOperationLogEntry.OPERATION_TYPE_MODIFY_VARIABLE); }
@Test @Deployment(resources = {ONE_TASK_PROCESS}) public void testQueryPatchExecutionVariablesOperation() { // given process = runtimeService.startProcessInstanceByKey("oneTaskProcess"); // when ((RuntimeServiceImpl) runtimeService) .updateVariables(process.getId(), createMapForVariableAddition(), createCollectionForVariableDeletion()); // then verifyVariableOperationAsserts(UserOperationLogEntry.OPERATION_TYPE_MODIFY_VARIABLE); }
((RuntimeServiceImpl)runtimeService).updateVariables(processInstanceId, getVariables(), null); fail("Exception expected: It should not be to set a variable"); } catch (AuthorizationException e) { ((RuntimeServiceImpl)runtimeService).updateVariables(processInstanceId, null, Arrays.asList(VARIABLE_NAME)); fail("Exception expected: It should not be to set a variable"); } catch (AuthorizationException e) { ((RuntimeServiceImpl)runtimeService).updateVariables(processInstanceId, getVariables(), Arrays.asList(VARIABLE_NAME)); fail("Exception expected: It should not be to set a variable"); } catch (AuthorizationException e) {
@Deployment(resources = {ONE_TASK_PROCESS}) public void testQueryPatchExecutionVariablesOperation() { // given process = runtimeService.startProcessInstanceByKey("oneTaskProcess"); // when ((RuntimeServiceImpl) runtimeService) .updateVariables(process.getId(), createMapForVariableAddition(), createCollectionForVariableDeletion()); // then verifyVariableOperationAsserts(1, UserOperationLogEntry.OPERATION_TYPE_MODIFY_VARIABLE); }
@Test @Deployment(resources = {ONE_TASK_PROCESS}) public void testQueryPatchExecutionVariablesOperation() { // given process = runtimeService.startProcessInstanceByKey("oneTaskProcess"); // when ((RuntimeServiceImpl) runtimeService) .updateVariables(process.getId(), createMapForVariableAddition(), createCollectionForVariableDeletion()); // then verifyVariableOperationAsserts(UserOperationLogEntry.OPERATION_TYPE_MODIFY_VARIABLE); }