@Override public VariableMap getVariables(String executionId) { return getVariablesTyped(executionId); }
@Override public VariableMap getVariablesTyped(String executionId) { return getVariablesTyped(executionId, true); }
@Override public VariableMap getVariables(String executionId) { return getVariablesTyped(executionId); }
@Override public VariableMap getVariablesTyped(String executionId) { return getVariablesTyped(executionId, true); }
@Override public VariableMap getVariables(String executionId, Collection<String> variableNames) { return getVariablesTyped(executionId, variableNames, true); }
@Override public VariableMap getVariables(String executionId, Collection<String> variableNames) { return getVariablesTyped(executionId, variableNames, true); }
@Before public void setUpRuntimeData() { runtimeServiceMock = mock(RuntimeServiceImpl.class); mockManagementService = mock(ManagementServiceImpl.class); historyServiceMock = mock(HistoryServiceImpl.class); // variables when(runtimeServiceMock.getVariablesTyped(MockProvider.EXAMPLE_PROCESS_INSTANCE_ID, true)).thenReturn(EXAMPLE_VARIABLES); when(runtimeServiceMock.getVariablesTyped(MockProvider.ANOTHER_EXAMPLE_PROCESS_INSTANCE_ID, true)).thenReturn(EXAMPLE_OBJECT_VARIABLES); when(runtimeServiceMock.getVariablesTyped(EXAMPLE_PROCESS_INSTANCE_ID_WITH_NULL_VALUE_AS_VARIABLE, true)).thenReturn(EXAMPLE_VARIABLES_WITH_NULL_VALUE); // activity instances when(runtimeServiceMock.getActivityInstance(MockProvider.EXAMPLE_PROCESS_INSTANCE_ID)).thenReturn(EXAMPLE_ACTIVITY_INSTANCE); mockUpdateSuspensionStateSelectBuilder = mock(UpdateProcessInstanceSuspensionStateSelectBuilder.class); when(runtimeServiceMock.updateProcessInstanceSuspensionState()).thenReturn(mockUpdateSuspensionStateSelectBuilder); mockUpdateSuspensionStateBuilder = mock(UpdateProcessInstanceSuspensionStateTenantBuilder.class); when(mockUpdateSuspensionStateSelectBuilder.byProcessInstanceId(anyString())).thenReturn(mockUpdateSuspensionStateBuilder); when(mockUpdateSuspensionStateSelectBuilder.byProcessDefinitionId(anyString())).thenReturn(mockUpdateSuspensionStateBuilder); when(mockUpdateSuspensionStateSelectBuilder.byProcessDefinitionKey(anyString())).thenReturn(mockUpdateSuspensionStateBuilder); mockUpdateProcessInstancesSuspensionStateBuilder = mock(UpdateProcessInstancesSuspensionStateBuilder.class); when(mockUpdateSuspensionStateSelectBuilder.byProcessInstanceIds(anyList())).thenReturn(mockUpdateProcessInstancesSuspensionStateBuilder); when(mockUpdateSuspensionStateSelectBuilder.byProcessInstanceQuery(any(ProcessInstanceQuery.class))).thenReturn(mockUpdateProcessInstancesSuspensionStateBuilder); when(mockUpdateSuspensionStateSelectBuilder.byHistoricProcessInstanceQuery(any(HistoricProcessInstanceQuery.class))).thenReturn(mockUpdateProcessInstancesSuspensionStateBuilder); // runtime service when(processEngine.getRuntimeService()).thenReturn(runtimeServiceMock); when(processEngine.getManagementService()).thenReturn(mockManagementService); when(processEngine.getHistoryService()).thenReturn(historyServiceMock); }
@Test public void testGetVariablesForNonExistingProcessInstance() { when(runtimeServiceMock.getVariablesTyped(anyString(), anyBoolean())).thenThrow(new ProcessEngineException("expected exception")); given().pathParam("id", "aNonExistingProcessInstanceId") .then().expect().statusCode(Status.INTERNAL_SERVER_ERROR.getStatusCode()).contentType(ContentType.JSON) .body("type", equalTo(ProcessEngineException.class.getSimpleName())) .body("message", equalTo("expected exception")) .when().get(PROCESS_INSTANCE_VARIABLES_URL); }
@Test public void testGetVariablesThrowsAuthorizationException() { String message = "expected exception"; when(runtimeServiceMock.getVariablesTyped(anyString(), anyBoolean())).thenThrow(new AuthorizationException(message)); given() .pathParam("id", MockProvider.EXAMPLE_PROCESS_INSTANCE_ID) .then().expect() .statusCode(Status.FORBIDDEN.getStatusCode()) .contentType(ContentType.JSON) .body("type", equalTo(AuthorizationException.class.getSimpleName())) .body("message", equalTo(message)) .when() .get(PROCESS_INSTANCE_VARIABLES_URL); }
@Override public VariableMap getVariablesTyped(String executionId) { return getVariablesTyped(executionId, true); }
@Override public VariableMap getVariables(String executionId, Collection<String> variableNames) { return getVariablesTyped(executionId, variableNames, true); }
@Override public VariableMap getVariables(String executionId) { return getVariablesTyped(executionId); }
@Test public void testGetObjectVariablesSerialized() { // given String variableKey = "aVariableId"; ObjectValue variableValue = Variables .serializedObjectValue("a serialized value") .serializationDataFormat("application/json") .objectTypeName(ArrayList.class.getName()) .create(); when(runtimeServiceMock.getVariablesTyped(eq(EXAMPLE_PROCESS_INSTANCE_ID), anyBoolean())) .thenReturn(Variables.createVariables().putValueTyped(variableKey, variableValue)); // when given() .pathParam("id", EXAMPLE_PROCESS_INSTANCE_ID) .queryParam("deserializeValues", false) .then().expect().statusCode(Status.OK.getStatusCode()) .body(variableKey + ".value", equalTo("a serialized value")) .body(variableKey + ".type", equalTo("Object")) .body(variableKey + ".valueInfo." + SerializableValueType.VALUE_INFO_SERIALIZATION_DATA_FORMAT, equalTo("application/json")) .body(variableKey + ".valueInfo." + SerializableValueType.VALUE_INFO_OBJECT_TYPE_NAME, equalTo(ArrayList.class.getName())) .when().get(PROCESS_INSTANCE_VARIABLES_URL); // then verify(runtimeServiceMock).getVariablesTyped(EXAMPLE_PROCESS_INSTANCE_ID, false); }
@Test public void testGetObjectVariables() { // given String variableKey = "aVariableId"; List<String> payload = Arrays.asList("a", "b"); ObjectValue variableValue = MockObjectValue .fromObjectValue(Variables .objectValue(payload) .serializationDataFormat("application/json") .create()) .objectTypeName(ArrayList.class.getName()) .serializedValue("a serialized value"); // this should differ from the serialized json when(runtimeServiceMock.getVariablesTyped(eq(EXAMPLE_PROCESS_INSTANCE_ID), anyBoolean())) .thenReturn(Variables.createVariables().putValueTyped(variableKey, variableValue)); // when given().pathParam("id", EXAMPLE_PROCESS_INSTANCE_ID) .then().expect().statusCode(Status.OK.getStatusCode()) .body(variableKey + ".value", equalTo(payload)) .body(variableKey + ".type", equalTo("Object")) .body(variableKey + ".valueInfo." + SerializableValueType.VALUE_INFO_SERIALIZATION_DATA_FORMAT, equalTo("application/json")) .body(variableKey + ".valueInfo." + SerializableValueType.VALUE_INFO_OBJECT_TYPE_NAME, equalTo(ArrayList.class.getName())) .when().get(PROCESS_INSTANCE_VARIABLES_URL); // then verify(runtimeServiceMock).getVariablesTyped(EXAMPLE_PROCESS_INSTANCE_ID, true); }