protected HistoricVariableInstanceQuery baseQuery() { return getEngine().getHistoryService().createHistoricVariableInstanceQuery().variableId(getId()); }
protected HistoricVariableInstanceQuery baseQuery() { return getEngine().getHistoryService().createHistoricVariableInstanceQuery().variableId(getId()); }
@Test public void testGetBinaryDataForNonExistingVariableInstance() { String nonExistingId = "nonExistingId"; when(variableInstanceQueryMock.variableId(nonExistingId)).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("Historic variable instance with Id 'nonExistingId' does not exist.")) .when().get(VARIABLE_INSTANCE_BINARY_DATA_URL); verify(variableInstanceQueryMock, never()).disableBinaryFetching(); }
@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("Historic variable instance with Id 'nonExistingId' does not exist.")) .when().get(VARIABLE_INSTANCE_URL); verify(variableInstanceQueryMock, times(1)).disableBinaryFetching(); }
@Test public void testBinaryDataForNonBinaryVariable() { HistoricVariableInstance variableInstanceMock = MockProvider.createMockHistoricVariableInstance(); when(variableInstanceQueryMock.variableId(variableInstanceMock.getId())).thenReturn(variableInstanceQueryMock); when(variableInstanceQueryMock.disableCustomObjectDeserialization()).thenReturn(variableInstanceQueryMock); when(variableInstanceQueryMock.singleResult()).thenReturn(variableInstanceMock); given().pathParam("id", MockProvider.EXAMPLE_VARIABLE_INSTANCE_ID) .then().expect() .statusCode(Status.BAD_REQUEST.getStatusCode()) .body(containsString("Value of variable with id "+variableInstanceMock.getId()+" is not a binary value")) .when().get(VARIABLE_INSTANCE_BINARY_DATA_URL); verify(variableInstanceQueryMock, never()).disableBinaryFetching(); }
@Test public void testGetSingleVariableInstanceForBinaryVariable() { MockHistoricVariableInstanceBuilder builder = MockProvider.mockHistoricVariableInstance(); HistoricVariableInstance variableInstanceMock = builder .typedValue(Variables.byteArrayValue(null)) .build(); when(variableInstanceQueryMock.variableId(variableInstanceMock.getId())).thenReturn(variableInstanceQueryMock); when(variableInstanceQueryMock.disableBinaryFetching()).thenReturn(variableInstanceQueryMock); when(variableInstanceQueryMock.disableCustomObjectDeserialization()).thenReturn(variableInstanceQueryMock); when(variableInstanceQueryMock.singleResult()).thenReturn(variableInstanceMock); given().pathParam("id", MockProvider.EXAMPLE_VARIABLE_INSTANCE_ID) .then().expect().statusCode(Status.OK.getStatusCode()) .and() .body("type", equalTo(VariableTypeHelper.toExpectedValueTypeName(ValueType.BYTES))) .body("value", nullValue()) .when().get(VARIABLE_INSTANCE_URL); verify(variableInstanceQueryMock, times(1)).disableBinaryFetching(); }
@Test public void testBinaryDataForBinaryVariable() { final byte[] byteContent = "some bytes".getBytes(); HistoricVariableInstance variableInstanceMock = MockProvider.mockHistoricVariableInstance() .typedValue(Variables.byteArrayValue(byteContent)) .build(); when(variableInstanceQueryMock.variableId(variableInstanceMock.getId())).thenReturn(variableInstanceQueryMock); when(variableInstanceQueryMock.disableCustomObjectDeserialization()).thenReturn(variableInstanceQueryMock); when(variableInstanceQueryMock.singleResult()).thenReturn(variableInstanceMock); Response response = given().pathParam("id", MockProvider.EXAMPLE_VARIABLE_INSTANCE_ID) .then().expect() .statusCode(Status.OK.getStatusCode()) .contentType(ContentType.BINARY.toString()) .when().get(VARIABLE_INSTANCE_BINARY_DATA_URL); byte[] responseBytes = response.getBody().asByteArray(); Assert.assertEquals(new String(byteContent), new String(responseBytes)); verify(variableInstanceQueryMock, never()).disableBinaryFetching(); }
@Test public void testGetBinaryDataForFileVariable() { String filename = "test.txt"; byte[] byteContent = "test".getBytes(); String encoding = "UTF-8"; FileValue variableValue = Variables.fileValue(filename).file(byteContent).mimeType(ContentType.TEXT.toString()).encoding(encoding).create(); HistoricVariableInstance variableInstanceMock = MockProvider.mockHistoricVariableInstance().typedValue(variableValue).build(); when(variableInstanceQueryMock.variableId(variableInstanceMock.getId())).thenReturn(variableInstanceQueryMock); when(variableInstanceQueryMock.disableCustomObjectDeserialization()).thenReturn(variableInstanceQueryMock); when(variableInstanceQueryMock.singleResult()).thenReturn(variableInstanceMock); Response response = given().pathParam("id", MockProvider.EXAMPLE_VARIABLE_INSTANCE_ID) .then().expect() .statusCode(Status.OK.getStatusCode()) .and() .body(is(equalTo(new String(byteContent)))) .header("Content-Disposition", "attachment; filename="+filename) .when().get(VARIABLE_INSTANCE_BINARY_DATA_URL); //due to some problems with wildfly we gotta check this separately String contentType = response.getContentType(); assertThat(contentType, is(either(CoreMatchers.<Object>equalTo(ContentType.TEXT.toString() + "; charset=UTF-8")).or(CoreMatchers.<Object>equalTo(ContentType.TEXT.toString() + ";charset=UTF-8")))); verify(variableInstanceQueryMock, never()).disableBinaryFetching(); }
@Test public void testGetBinaryDataForNullFileVariable() { String filename = "test.txt"; byte[] byteContent = null; FileValue variableValue = Variables.fileValue(filename).file(byteContent).mimeType(ContentType.TEXT.toString()).create(); HistoricVariableInstance variableInstanceMock = MockProvider.mockHistoricVariableInstance() .typedValue(variableValue) .build(); when(variableInstanceQueryMock.variableId(variableInstanceMock.getId())).thenReturn(variableInstanceQueryMock); when(variableInstanceQueryMock.disableCustomObjectDeserialization()).thenReturn(variableInstanceQueryMock); when(variableInstanceQueryMock.singleResult()).thenReturn(variableInstanceMock); given().pathParam("id", MockProvider.EXAMPLE_VARIABLE_INSTANCE_ID) .then().expect().statusCode(Status.OK.getStatusCode()) .and().contentType(ContentType.TEXT) .and().body(is(equalTo(new String()))) .when().get(VARIABLE_INSTANCE_BINARY_DATA_URL); }
when(variableInstanceQueryMock.variableId(variableInstanceMock.getId())).thenReturn(variableInstanceQueryMock); when(variableInstanceQueryMock.disableBinaryFetching()).thenReturn(variableInstanceQueryMock); when(variableInstanceQueryMock.disableCustomObjectDeserialization()).thenReturn(variableInstanceQueryMock);
HistoricVariableInstance variableInstanceMock = builder.build(); when(variableInstanceQueryMock.variableId(variableInstanceMock.getId())).thenReturn(variableInstanceQueryMock); when(variableInstanceQueryMock.disableBinaryFetching()).thenReturn(variableInstanceQueryMock); when(variableInstanceQueryMock.disableCustomObjectDeserialization()).thenReturn(variableInstanceQueryMock);
HistoricVariableInstance variableInstanceMock = builder.build(); when(variableInstanceQueryMock.variableId(variableInstanceMock.getId())).thenReturn(variableInstanceQueryMock); when(variableInstanceQueryMock.disableBinaryFetching()).thenReturn(variableInstanceQueryMock); when(variableInstanceQueryMock.singleResult()).thenReturn(variableInstanceMock);
@Deployment(resources = {"org/camunda/bpm/engine/test/api/oneTaskProcess.bpmn20.xml"}) public void testQueryByProcessInstanceIdAndVariableId() { // given ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("oneTaskProcess", Variables.createVariables().putValue("initial", "bar")); VariableInstance variable = runtimeService.createVariableInstanceQuery().variableName("initial").singleResult(); assertNotNull(variable); // when HistoricVariableInstance historyVariable = historyService.createHistoricVariableInstanceQuery() .processInstanceId(processInstance.getId()) .variableId(variable.getId()) .singleResult(); // then assertNotNull(historyVariable); assertEquals("initial", historyVariable.getName()); assertEquals("bar", historyVariable.getValue()); }
assertEquals(0, historyService.createHistoricVariableInstanceQuery().variableId("non-existing").count()); assertEquals(1, historyService.createHistoricVariableInstanceQuery().variableId(variable.get(0).getId()).count());
protected HistoricVariableInstanceQuery baseQuery() { return getEngine().getHistoryService().createHistoricVariableInstanceQuery().variableId(getId()); }
.createHistoricVariableInstanceQuery() .caseInstanceId(caseInstanceId) .variableId(variable.getId()) .singleResult();
.variableId(eventScopeVariable.getId()) .singleResult(); Assert.assertEquals(targetDefinition.getId(), historicVariableInstance.getProcessDefinitionId());
@Deployment(resources = {"org/camunda/bpm/engine/test/api/oneTaskProcess.bpmn20.xml"}) public void testQueryByProcessInstanceIdAndVariableId() { // given ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("oneTaskProcess", Variables.createVariables().putValue("initial", "bar")); VariableInstance variable = runtimeService.createVariableInstanceQuery().variableName("initial").singleResult(); assertNotNull(variable); // when HistoricVariableInstance historyVariable = historyService.createHistoricVariableInstanceQuery() .processInstanceId(processInstance.getId()) .variableId(variable.getId()) .singleResult(); // then assertNotNull(historyVariable); assertEquals("initial", historyVariable.getName()); assertEquals("bar", historyVariable.getValue()); }
.createHistoricVariableInstanceQuery() .caseInstanceId(caseInstanceId) .variableId(variable.getId()) .singleResult();
.variableId(eventScopeVariable.getId()) .singleResult(); Assert.assertEquals(targetDefinition.getId(), historicVariableInstance.getProcessDefinitionId());