protected void updateVariableEntities(VariableMap modifications, List<String> deletions) { RuntimeServiceImpl runtimeService = (RuntimeServiceImpl) engine.getRuntimeService(); runtimeService.updateVariablesLocal(resourceId, modifications, deletions); }
protected void updateVariableEntities(VariableMap modifications, List<String> deletions) { RuntimeServiceImpl runtimeService = (RuntimeServiceImpl) engine.getRuntimeService(); runtimeService.updateVariablesLocal(resourceId, modifications, deletions); }
@Test public void testLocalVariableModificationForNonExistingExecution() { doThrow(new ProcessEngineException("expected exception")).when(runtimeServiceMock).updateVariablesLocal(anyString(), any(Map.class), any(List.class)); Map<String, Object> messageBodyJson = new HashMap<String, Object>(); String variableKey = "aKey"; int variableValue = 123; Map<String, Object> modifications = VariablesBuilder.create().variable(variableKey, variableValue).getVariables(); messageBodyJson.put("modifications", modifications); given().pathParam("id", MockProvider.EXAMPLE_EXECUTION_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 execution " + MockProvider.EXAMPLE_EXECUTION_ID + ": expected exception")) .when().post(EXECUTION_LOCAL_VARIABLES_URL); }
@Test public void testLocalVariableModification() { Map<String, Object> messageBodyJson = new HashMap<String, Object>(); String variableKey = "aKey"; int variableValue = 123; 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_EXECUTION_ID).contentType(ContentType.JSON).body(messageBodyJson) .then().expect().statusCode(Status.NO_CONTENT.getStatusCode()) .when().post(EXECUTION_LOCAL_VARIABLES_URL); Map<String, Object> expectedModifications = new HashMap<String, Object>(); expectedModifications.put(variableKey, variableValue); verify(runtimeServiceMock).updateVariablesLocal(eq(MockProvider.EXAMPLE_EXECUTION_ID), argThat(new EqualsMap(expectedModifications)), argThat(new EqualsList(deletions))); }
@Test public void testLocalVariableModificationThrowsAuthorizationException() { String message = "expected exception"; doThrow(new AuthorizationException(message)).when(runtimeServiceMock).updateVariablesLocal(anyString(), any(Map.class), any(List.class)); Map<String, Object> messageBodyJson = new HashMap<String, Object>(); String variableKey = "aKey"; int variableValue = 123; Map<String, Object> modifications = VariablesBuilder.create().variable(variableKey, variableValue).getVariables(); messageBodyJson.put("modifications", modifications); given() .pathParam("id", MockProvider.EXAMPLE_EXECUTION_ID) .contentType(ContentType.JSON) .body(messageBodyJson) .then().expect() .statusCode(Status.FORBIDDEN.getStatusCode()) .contentType(ContentType.JSON) .body("type", equalTo(AuthorizationException.class.getSimpleName())) .body("message", equalTo(message)) .when() .post(EXECUTION_LOCAL_VARIABLES_URL); }
@Deployment(resources={ "org/camunda/bpm/engine/test/api/oneSubProcess.bpmn20.xml"}) @Test public void testUpdateVariablesLocal() { Map<String, Object> globalVars = new HashMap<String, Object>(); globalVars.put("variable4", "value4"); ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("startSimpleSubProcess", globalVars); Task currentTask = taskService.createTaskQuery().singleResult(); Map<String, Object> localVars = new HashMap<String, Object>(); localVars.put("variable1", "value1"); localVars.put("variable2", "value2"); localVars.put("variable3", "value3"); runtimeService.setVariablesLocal(currentTask.getExecutionId(), localVars); Map<String, Object> modifications = new HashMap<String, Object>(); modifications.put("variable1", "anotherValue1"); modifications.put("variable2", "anotherValue2"); List<String> deletions = new ArrayList<String>(); deletions.add("variable2"); deletions.add("variable3"); deletions.add("variable4"); ((RuntimeServiceImpl) runtimeService).updateVariablesLocal(currentTask.getExecutionId(), modifications, deletions); assertEquals("anotherValue1", runtimeService.getVariable(currentTask.getExecutionId(), "variable1")); assertNull(runtimeService.getVariable(currentTask.getExecutionId(), "variable2")); assertNull(runtimeService.getVariable(currentTask.getExecutionId(), "variable3")); assertEquals("value4", runtimeService.getVariable(processInstance.getId(), "variable4")); }
public void testUpdateVariablesLocalWithReadInstancePermissionOnProcessDefinition() { // given String processInstanceId = startProcessInstanceByKey(PROCESS_KEY).getId(); createGrantAuthorization(PROCESS_DEFINITION, PROCESS_KEY, userId, UPDATE_INSTANCE); VariableInstanceQuery query = runtimeService.createVariableInstanceQuery(); // when (1) ((RuntimeServiceImpl)runtimeService).updateVariablesLocal(processInstanceId, getVariables(), null); // then (1) disableAuthorization(); verifyQueryResults(query, 1); enableAuthorization(); // when (2) ((RuntimeServiceImpl)runtimeService).updateVariablesLocal(processInstanceId, null, Arrays.asList(VARIABLE_NAME)); // then (2) disableAuthorization(); verifyQueryResults(query, 0); enableAuthorization(); // when (3) ((RuntimeServiceImpl)runtimeService).updateVariablesLocal(processInstanceId, getVariables(), Arrays.asList(VARIABLE_NAME)); // then (3) disableAuthorization(); verifyQueryResults(query, 0); enableAuthorization(); }
public void testUpdateVariablesLocalWithReadPermissionOnProcessInstance() { // given String processInstanceId = startProcessInstanceByKey(PROCESS_KEY).getId(); createGrantAuthorization(PROCESS_INSTANCE, processInstanceId, userId, UPDATE); VariableInstanceQuery query = runtimeService.createVariableInstanceQuery(); // when (1) ((RuntimeServiceImpl)runtimeService).updateVariablesLocal(processInstanceId, getVariables(), null); // then (1) disableAuthorization(); verifyQueryResults(query, 1); enableAuthorization(); // when (2) ((RuntimeServiceImpl)runtimeService).updateVariablesLocal(processInstanceId, null, Arrays.asList(VARIABLE_NAME)); // then (2) disableAuthorization(); verifyQueryResults(query, 0); enableAuthorization(); // when (3) ((RuntimeServiceImpl)runtimeService).updateVariablesLocal(processInstanceId, getVariables(), Arrays.asList(VARIABLE_NAME)); // then (3) disableAuthorization(); verifyQueryResults(query, 0); enableAuthorization(); }
public void testUpdateVariablesLocalWithReadPermissionOnAnyProcessInstance() { // given String processInstanceId = startProcessInstanceByKey(PROCESS_KEY).getId(); createGrantAuthorization(PROCESS_INSTANCE, ANY, userId, UPDATE); VariableInstanceQuery query = runtimeService.createVariableInstanceQuery(); // when (1) ((RuntimeServiceImpl)runtimeService).updateVariablesLocal(processInstanceId, getVariables(), null); // then (1) disableAuthorization(); verifyQueryResults(query, 1); enableAuthorization(); // when (2) ((RuntimeServiceImpl)runtimeService).updateVariablesLocal(processInstanceId, null, Arrays.asList(VARIABLE_NAME)); // then (2) disableAuthorization(); verifyQueryResults(query, 0); enableAuthorization(); // when (3) ((RuntimeServiceImpl)runtimeService).updateVariablesLocal(processInstanceId, getVariables(), Arrays.asList(VARIABLE_NAME)); // then (3) disableAuthorization(); verifyQueryResults(query, 0); enableAuthorization(); }
public void testUpdateVariablesLocalWithReadInstancePermissionOnAnyProcessDefinition() { // given String processInstanceId = startProcessInstanceByKey(PROCESS_KEY).getId(); createGrantAuthorization(PROCESS_DEFINITION, ANY, userId, UPDATE_INSTANCE); VariableInstanceQuery query = runtimeService.createVariableInstanceQuery(); // when (1) ((RuntimeServiceImpl)runtimeService).updateVariablesLocal(processInstanceId, getVariables(), null); // then (1) disableAuthorization(); verifyQueryResults(query, 1); enableAuthorization(); // when (2) ((RuntimeServiceImpl)runtimeService).updateVariablesLocal(processInstanceId, null, Arrays.asList(VARIABLE_NAME)); // then (2) disableAuthorization(); verifyQueryResults(query, 0); enableAuthorization(); // when (3) ((RuntimeServiceImpl)runtimeService).updateVariablesLocal(processInstanceId, getVariables(), Arrays.asList(VARIABLE_NAME)); // then (3) disableAuthorization(); verifyQueryResults(query, 0); enableAuthorization(); }
protected void updateVariableEntities(VariableMap modifications, List<String> deletions) { RuntimeServiceImpl runtimeService = (RuntimeServiceImpl) engine.getRuntimeService(); runtimeService.updateVariablesLocal(resourceId, modifications, deletions); }
((RuntimeServiceImpl)runtimeService).updateVariablesLocal(processInstanceId, getVariables(), null); fail("Exception expected: It should not be to set a variable"); } catch (AuthorizationException e) { ((RuntimeServiceImpl)runtimeService).updateVariablesLocal(processInstanceId, null, Arrays.asList(VARIABLE_NAME)); fail("Exception expected: It should not be to set a variable"); } catch (AuthorizationException e) { ((RuntimeServiceImpl)runtimeService).updateVariablesLocal(processInstanceId, getVariables(), Arrays.asList(VARIABLE_NAME)); fail("Exception expected: It should not be to set a variable"); } catch (AuthorizationException e) {
@Deployment(resources={ "org/camunda/bpm/engine/test/api/oneSubProcess.bpmn20.xml"}) @Test public void testUpdateVariablesLocal() { Map<String, Object> globalVars = new HashMap<String, Object>(); globalVars.put("variable4", "value4"); ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("startSimpleSubProcess", globalVars); Task currentTask = taskService.createTaskQuery().singleResult(); Map<String, Object> localVars = new HashMap<String, Object>(); localVars.put("variable1", "value1"); localVars.put("variable2", "value2"); localVars.put("variable3", "value3"); runtimeService.setVariablesLocal(currentTask.getExecutionId(), localVars); Map<String, Object> modifications = new HashMap<String, Object>(); modifications.put("variable1", "anotherValue1"); modifications.put("variable2", "anotherValue2"); List<String> deletions = new ArrayList<String>(); deletions.add("variable2"); deletions.add("variable3"); deletions.add("variable4"); ((RuntimeServiceImpl) runtimeService).updateVariablesLocal(currentTask.getExecutionId(), modifications, deletions); assertEquals("anotherValue1", runtimeService.getVariable(currentTask.getExecutionId(), "variable1")); assertNull(runtimeService.getVariable(currentTask.getExecutionId(), "variable2")); assertNull(runtimeService.getVariable(currentTask.getExecutionId(), "variable3")); assertEquals("value4", runtimeService.getVariable(processInstance.getId(), "variable4")); }
public void testUpdateVariablesLocalWithReadInstancePermissionOnAnyProcessDefinition() { // given String processInstanceId = startProcessInstanceByKey(PROCESS_KEY).getId(); createGrantAuthorization(PROCESS_DEFINITION, ANY, userId, UPDATE_INSTANCE); VariableInstanceQuery query = runtimeService.createVariableInstanceQuery(); // when (1) ((RuntimeServiceImpl)runtimeService).updateVariablesLocal(processInstanceId, getVariables(), null); // then (1) disableAuthorization(); verifyQueryResults(query, 1); enableAuthorization(); // when (2) ((RuntimeServiceImpl)runtimeService).updateVariablesLocal(processInstanceId, null, Arrays.asList(VARIABLE_NAME)); // then (2) disableAuthorization(); verifyQueryResults(query, 0); enableAuthorization(); // when (3) ((RuntimeServiceImpl)runtimeService).updateVariablesLocal(processInstanceId, getVariables(), Arrays.asList(VARIABLE_NAME)); // then (3) disableAuthorization(); verifyQueryResults(query, 0); enableAuthorization(); }
public void testUpdateVariablesLocalWithReadPermissionOnProcessInstance() { // given String processInstanceId = startProcessInstanceByKey(PROCESS_KEY).getId(); createGrantAuthorization(PROCESS_INSTANCE, processInstanceId, userId, UPDATE); VariableInstanceQuery query = runtimeService.createVariableInstanceQuery(); // when (1) ((RuntimeServiceImpl)runtimeService).updateVariablesLocal(processInstanceId, getVariables(), null); // then (1) disableAuthorization(); verifyQueryResults(query, 1); enableAuthorization(); // when (2) ((RuntimeServiceImpl)runtimeService).updateVariablesLocal(processInstanceId, null, Arrays.asList(VARIABLE_NAME)); // then (2) disableAuthorization(); verifyQueryResults(query, 0); enableAuthorization(); // when (3) ((RuntimeServiceImpl)runtimeService).updateVariablesLocal(processInstanceId, getVariables(), Arrays.asList(VARIABLE_NAME)); // then (3) disableAuthorization(); verifyQueryResults(query, 0); enableAuthorization(); }
public void testUpdateVariablesLocalWithReadPermissionOnAnyProcessInstance() { // given String processInstanceId = startProcessInstanceByKey(PROCESS_KEY).getId(); createGrantAuthorization(PROCESS_INSTANCE, ANY, userId, UPDATE); VariableInstanceQuery query = runtimeService.createVariableInstanceQuery(); // when (1) ((RuntimeServiceImpl)runtimeService).updateVariablesLocal(processInstanceId, getVariables(), null); // then (1) disableAuthorization(); verifyQueryResults(query, 1); enableAuthorization(); // when (2) ((RuntimeServiceImpl)runtimeService).updateVariablesLocal(processInstanceId, null, Arrays.asList(VARIABLE_NAME)); // then (2) disableAuthorization(); verifyQueryResults(query, 0); enableAuthorization(); // when (3) ((RuntimeServiceImpl)runtimeService).updateVariablesLocal(processInstanceId, getVariables(), Arrays.asList(VARIABLE_NAME)); // then (3) disableAuthorization(); verifyQueryResults(query, 0); enableAuthorization(); }
public void testUpdateVariablesLocalWithReadInstancePermissionOnProcessDefinition() { // given String processInstanceId = startProcessInstanceByKey(PROCESS_KEY).getId(); createGrantAuthorization(PROCESS_DEFINITION, PROCESS_KEY, userId, UPDATE_INSTANCE); VariableInstanceQuery query = runtimeService.createVariableInstanceQuery(); // when (1) ((RuntimeServiceImpl)runtimeService).updateVariablesLocal(processInstanceId, getVariables(), null); // then (1) disableAuthorization(); verifyQueryResults(query, 1); enableAuthorization(); // when (2) ((RuntimeServiceImpl)runtimeService).updateVariablesLocal(processInstanceId, null, Arrays.asList(VARIABLE_NAME)); // then (2) disableAuthorization(); verifyQueryResults(query, 0); enableAuthorization(); // when (3) ((RuntimeServiceImpl)runtimeService).updateVariablesLocal(processInstanceId, getVariables(), Arrays.asList(VARIABLE_NAME)); // then (3) disableAuthorization(); verifyQueryResults(query, 0); enableAuthorization(); }
((RuntimeServiceImpl)runtimeService).updateVariablesLocal(processInstanceId, getVariables(), null); fail("Exception expected: It should not be to set a variable"); } catch (AuthorizationException e) { ((RuntimeServiceImpl)runtimeService).updateVariablesLocal(processInstanceId, null, Arrays.asList(VARIABLE_NAME)); fail("Exception expected: It should not be to set a variable"); } catch (AuthorizationException e) { ((RuntimeServiceImpl)runtimeService).updateVariablesLocal(processInstanceId, getVariables(), Arrays.asList(VARIABLE_NAME)); fail("Exception expected: It should not be to set a variable"); } catch (AuthorizationException e) {