@Test public void testGetNonExistingProcessInstance() { ProcessInstanceQuery sampleInstanceQuery = mock(ProcessInstanceQuery.class); when(runtimeServiceMock.createProcessInstanceQuery()).thenReturn(sampleInstanceQuery); when(sampleInstanceQuery.processInstanceId(anyString())).thenReturn(sampleInstanceQuery); when(sampleInstanceQuery.singleResult()).thenReturn(null); given().pathParam("id", "aNonExistingInstanceId") .then().expect().statusCode(Status.NOT_FOUND.getStatusCode()).contentType(ContentType.JSON) .body("type", equalTo(InvalidRequestException.class.getSimpleName())) .body("message", equalTo("Process instance with id aNonExistingInstanceId does not exist")) .when().get(SINGLE_PROCESS_INSTANCE_URL); }
@Test public void testGetSingleInstance() { ProcessInstance mockInstance = MockProvider.createMockInstance(); ProcessInstanceQuery sampleInstanceQuery = mock(ProcessInstanceQuery.class); when(runtimeServiceMock.createProcessInstanceQuery()).thenReturn(sampleInstanceQuery); when(sampleInstanceQuery.processInstanceId(MockProvider.EXAMPLE_PROCESS_INSTANCE_ID)).thenReturn(sampleInstanceQuery); when(sampleInstanceQuery.singleResult()).thenReturn(mockInstance); given().pathParam("id", MockProvider.EXAMPLE_PROCESS_INSTANCE_ID) .then().expect().statusCode(Status.OK.getStatusCode()) .body("id", equalTo(MockProvider.EXAMPLE_PROCESS_INSTANCE_ID)) .body("ended", equalTo(MockProvider.EXAMPLE_PROCESS_INSTANCE_IS_ENDED)) .body("definitionId", equalTo(MockProvider.EXAMPLE_PROCESS_DEFINITION_ID)) .body("businessKey", equalTo(MockProvider.EXAMPLE_PROCESS_INSTANCE_BUSINESS_KEY)) .body("suspended", equalTo(MockProvider.EXAMPLE_PROCESS_INSTANCE_IS_SUSPENDED)) .body("tenantId", equalTo(MockProvider.EXAMPLE_TENANT_ID)) .when().get(SINGLE_PROCESS_INSTANCE_URL); }
@Test public void testSetRetriesWithProcessInstanceQuery() { when(runtimeServiceMock.createProcessInstanceQuery()).thenReturn(new ProcessInstanceQueryImpl()); ProcessInstanceQueryDto processInstanceQuery = new ProcessInstanceQueryDto(); processInstanceQuery.setProcessDefinitionId(EXAMPLE_PROCESS_DEFINITION_ID); Map<String, Object> parameters = new HashMap<String, Object>(); parameters.put("retries", "5"); parameters.put("processInstanceQuery", processInstanceQuery); given() .contentType(POST_JSON_CONTENT_TYPE) .body(parameters) .then() .expect() .statusCode(Status.NO_CONTENT.getStatusCode()) .when() .put(RETRIES_EXTERNAL_TASK_SYNC_URL); ArgumentCaptor<ProcessInstanceQuery> queryCapture = ArgumentCaptor.forClass(ProcessInstanceQuery.class); verify(externalTaskService).updateRetries(); verifyNoMoreInteractions(externalTaskService); verify(updateRetriesBuilder).externalTaskIds((List<String>) null); verify(updateRetriesBuilder).processInstanceIds((List<String>) null); verify(updateRetriesBuilder).externalTaskQuery(null); verify(updateRetriesBuilder).processInstanceQuery(queryCapture.capture()); verify(updateRetriesBuilder).historicProcessInstanceQuery(null); verify(updateRetriesBuilder).set(5); verifyNoMoreInteractions(updateRetriesBuilder); ProcessInstanceQueryImpl actualQuery = (ProcessInstanceQueryImpl) queryCapture.getValue(); assertThat(actualQuery).isNotNull(); assertThat(actualQuery.getProcessDefinitionId()).isEqualTo(EXAMPLE_PROCESS_DEFINITION_ID); }
@Test public void testSetRetriesForExternalTasksAsyncWithProcessInstanceQuery() { when(runtimeServiceMock.createProcessInstanceQuery()).thenReturn(new ProcessInstanceQueryImpl()); ProcessInstanceQueryDto processInstanceQuery = new ProcessInstanceQueryDto(); processInstanceQuery.setProcessDefinitionId(EXAMPLE_PROCESS_DEFINITION_ID); Map<String, Object> parameters = new HashMap<String, Object>(); parameters.put("retries", "5"); parameters.put("processInstanceQuery", processInstanceQuery); given() .contentType(POST_JSON_CONTENT_TYPE) .body(parameters) .then() .expect() .statusCode(Status.OK.getStatusCode()) .when() .post(RETRIES_EXTERNAL_TASKS_ASYNC_URL); ArgumentCaptor<ProcessInstanceQuery> queryCapture = ArgumentCaptor.forClass(ProcessInstanceQuery.class); verify(externalTaskService).updateRetries(); verifyNoMoreInteractions(externalTaskService); verify(updateRetriesBuilder).externalTaskIds((List<String>) null); verify(updateRetriesBuilder).processInstanceIds((List<String>) null); verify(updateRetriesBuilder).externalTaskQuery(null); verify(updateRetriesBuilder).processInstanceQuery(queryCapture.capture()); verify(updateRetriesBuilder).historicProcessInstanceQuery(null); verify(updateRetriesBuilder).setAsync(5); verifyNoMoreInteractions(updateRetriesBuilder); ProcessInstanceQueryImpl actualQuery = (ProcessInstanceQueryImpl) queryCapture.getValue(); assertThat(actualQuery).isNotNull(); assertThat(actualQuery.getProcessDefinitionId()).isEqualTo(EXAMPLE_PROCESS_DEFINITION_ID); }