package org.camunda.bpm.engine.rest.history;
import static com.jayway.restassured.RestAssured.expect;
import static com.jayway.restassured.RestAssured.given;
import static com.jayway.restassured.path.json.JsonPath.from;
import static org.hamcrest.Matchers.containsString;
import static org.hamcrest.Matchers.equalTo;
import static org.mockito.Mockito.inOrder;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyNoMoreInteractions;
import static org.mockito.Mockito.when;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.ws.rs.core.Response.Status;
import javax.xml.registry.InvalidRequestException;
import org.camunda.bpm.engine.history.HistoricTaskInstance;
import org.camunda.bpm.engine.history.HistoricTaskInstanceQuery;
import org.camunda.bpm.engine.impl.calendar.DateTimeUtil;
import org.camunda.bpm.engine.rest.AbstractRestServiceTest;
import org.camunda.bpm.engine.rest.helper.MockProvider;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.mockito.InOrder;
import org.mockito.Mockito;
import com.jayway.restassured.http.ContentType;
import com.jayway.restassured.response.Response;
public abstract class AbstractHistoricTaskInstanceRestServiceQueryTest extends AbstractRestServiceTest {
protected static final String HISTORIC_TASK_INSTANCE_RESOURCE_URL = TEST_RESOURCE_ROOT_PATH + "/history/task";
protected static final String HISTORIC_TASK_INSTANCE_COUNT_RESOURCE_URL = HISTORIC_TASK_INSTANCE_RESOURCE_URL + "/count";
protected HistoricTaskInstanceQuery mockedQuery;
@Before
public void setUpRuntimeData() {
mockedQuery = mock(HistoricTaskInstanceQuery.class);
List<HistoricTaskInstance> taskInstances = MockProvider.createMockHistoricTaskInstances();
when(mockedQuery.list()).thenReturn(taskInstances);
when(mockedQuery.count()).thenReturn((long) taskInstances.size());
when(processEngine.getHistoryService().createHistoricTaskInstanceQuery()).thenReturn(mockedQuery);
}
@Test
public void testEmptyQuery() {
String queryKey = "";
given()
.queryParam("processInstanceId", queryKey)
.then()
.expect()
.statusCode(Status.OK.getStatusCode())
.when()
.get(HISTORIC_TASK_INSTANCE_RESOURCE_URL);
}
@Test
public void testNoParametersQuery() {
expect()
.statusCode(Status.OK.getStatusCode())
.when()
.get(HISTORIC_TASK_INSTANCE_RESOURCE_URL);
verify(mockedQuery).list();
verifyNoMoreInteractions(mockedQuery);
}
@Test
public void testNoParametersQueryAsPost() {
given()
.contentType(POST_JSON_CONTENT_TYPE)
.body(EMPTY_JSON_OBJECT)
.expect()
.statusCode(Status.OK.getStatusCode())
.when()
.post(HISTORIC_TASK_INSTANCE_RESOURCE_URL);
verify(mockedQuery).list();
verifyNoMoreInteractions(mockedQuery);
}
@Test
public void testInvalidSortingOptions() {
executeAndVerifySorting("anInvalidSortByOption", "asc", Status.BAD_REQUEST);
executeAndVerifySorting("processInstanceId", "anInvalidSortOrderOption", Status.BAD_REQUEST);
}
protected void executeAndVerifySorting(String sortBy, String sortOrder, Status expectedStatus) {
given()
.queryParam("sortBy", sortBy)
.queryParam("sortOrder", sortOrder)
.then()
.expect()
.statusCode(expectedStatus.getStatusCode())
.when()
.get(HISTORIC_TASK_INSTANCE_RESOURCE_URL);
}
@Test
public void testSortOrderParameterOnly() {
given()
.queryParam("sortOrder", "asc")
.then()
.expect()
.statusCode(Status.BAD_REQUEST.getStatusCode())
.contentType(ContentType.JSON)
.body("type", equalTo(InvalidRequestException.class.getSimpleName()))
.body("message", containsString("Only a single sorting parameter specified. sortBy and sortOrder required"))
.when()
.get(HISTORIC_TASK_INSTANCE_RESOURCE_URL);
}
@Test
public void testSortingParameters() {
InOrder inOrder = Mockito.inOrder(mockedQuery);
executeAndVerifySorting("taskId", "asc", Status.OK);
inOrder.verify(mockedQuery).orderByTaskId();
inOrder.verify(mockedQuery).asc();
inOrder = Mockito.inOrder(mockedQuery);
executeAndVerifySorting("taskId", "desc", Status.OK);
inOrder.verify(mockedQuery).orderByTaskId();
inOrder.verify(mockedQuery).desc();
inOrder = Mockito.inOrder(mockedQuery);
executeAndVerifySorting("activityInstanceId", "asc", Status.OK);
inOrder.verify(mockedQuery).orderByHistoricActivityInstanceId();
inOrder.verify(mockedQuery).asc();
inOrder = Mockito.inOrder(mockedQuery);
executeAndVerifySorting("activityInstanceId", "desc", Status.OK);
inOrder.verify(mockedQuery).orderByHistoricActivityInstanceId();
inOrder.verify(mockedQuery).desc();
inOrder = Mockito.inOrder(mockedQuery);
executeAndVerifySorting("processDefinitionId", "asc", Status.OK);
inOrder.verify(mockedQuery).orderByProcessDefinitionId();
inOrder.verify(mockedQuery).asc();
inOrder = Mockito.inOrder(mockedQuery);
executeAndVerifySorting("processDefinitionId", "desc", Status.OK);
inOrder.verify(mockedQuery).orderByProcessDefinitionId();
inOrder.verify(mockedQuery).desc();
inOrder = Mockito.inOrder(mockedQuery);
executeAndVerifySorting("processInstanceId", "asc", Status.OK);
inOrder.verify(mockedQuery).orderByProcessInstanceId();
inOrder.verify(mockedQuery).asc();
inOrder = Mockito.inOrder(mockedQuery);
executeAndVerifySorting("processInstanceId", "desc", Status.OK);
inOrder.verify(mockedQuery).orderByProcessInstanceId();
inOrder.verify(mockedQuery).desc();
inOrder = Mockito.inOrder(mockedQuery);
executeAndVerifySorting("executionId", "asc", Status.OK);
inOrder.verify(mockedQuery).orderByExecutionId();
inOrder.verify(mockedQuery).asc();
inOrder = Mockito.inOrder(mockedQuery);
executeAndVerifySorting("executionId", "desc", Status.OK);
inOrder.verify(mockedQuery).orderByExecutionId();
inOrder.verify(mockedQuery).desc();
inOrder = Mockito.inOrder(mockedQuery);
executeAndVerifySorting("duration", "asc", Status.OK);
inOrder.verify(mockedQuery).orderByHistoricTaskInstanceDuration();
inOrder.verify(mockedQuery).asc();
inOrder = Mockito.inOrder(mockedQuery);
executeAndVerifySorting("duration", "desc", Status.OK);
inOrder.verify(mockedQuery).orderByHistoricTaskInstanceDuration();
inOrder.verify(mockedQuery).desc();
inOrder = Mockito.inOrder(mockedQuery);
executeAndVerifySorting("endTime", "asc", Status.OK);
inOrder.verify(mockedQuery).orderByHistoricTaskInstanceEndTime();
inOrder.verify(mockedQuery).asc();
inOrder = Mockito.inOrder(mockedQuery);
executeAndVerifySorting("endTime", "desc", Status.OK);
inOrder.verify(mockedQuery).orderByHistoricTaskInstanceEndTime();
inOrder.verify(mockedQuery).desc();
inOrder = Mockito.inOrder(mockedQuery);
executeAndVerifySorting("startTime", "asc", Status.OK);
inOrder.verify(mockedQuery).orderByHistoricActivityInstanceStartTime();
inOrder.verify(mockedQuery).asc();
inOrder = Mockito.inOrder(mockedQuery);
executeAndVerifySorting("startTime", "desc", Status.OK);
inOrder.verify(mockedQuery).orderByHistoricActivityInstanceStartTime();
inOrder.verify(mockedQuery).desc();
inOrder = Mockito.inOrder(mockedQuery);
executeAndVerifySorting("taskName", "asc", Status.OK);
inOrder.verify(mockedQuery).orderByTaskName();
inOrder.verify(mockedQuery).asc();
inOrder = Mockito.inOrder(mockedQuery);
executeAndVerifySorting("taskName", "desc", Status.OK);
inOrder.verify(mockedQuery).orderByTaskName();
inOrder.verify(mockedQuery).desc();
inOrder = Mockito.inOrder(mockedQuery);
executeAndVerifySorting("taskDescription", "asc", Status.OK);
inOrder.verify(mockedQuery).orderByTaskDescription();
inOrder.verify(mockedQuery).asc();
inOrder = Mockito.inOrder(mockedQuery);
executeAndVerifySorting("taskDescription", "desc", Status.OK);
inOrder.verify(mockedQuery).orderByTaskDescription();
inOrder.verify(mockedQuery).desc();
inOrder = Mockito.inOrder(mockedQuery);
executeAndVerifySorting("assignee", "asc", Status.OK);
inOrder.verify(mockedQuery).orderByTaskAssignee();
inOrder.verify(mockedQuery).asc();
inOrder = Mockito.inOrder(mockedQuery);
executeAndVerifySorting("assignee", "desc", Status.OK);
inOrder.verify(mockedQuery).orderByTaskAssignee();
inOrder.verify(mockedQuery).desc();
inOrder = Mockito.inOrder(mockedQuery);
executeAndVerifySorting("owner", "asc", Status.OK);
inOrder.verify(mockedQuery).orderByTaskOwner();
inOrder.verify(mockedQuery).asc();
inOrder = Mockito.inOrder(mockedQuery);
executeAndVerifySorting("owner", "desc", Status.OK);
inOrder.verify(mockedQuery).orderByTaskOwner();
inOrder.verify(mockedQuery).desc();
inOrder = Mockito.inOrder(mockedQuery);
executeAndVerifySorting("dueDate", "asc", Status.OK);
inOrder.verify(mockedQuery).orderByTaskDueDate();
inOrder.verify(mockedQuery).asc();
inOrder = Mockito.inOrder(mockedQuery);
executeAndVerifySorting("dueDate", "desc", Status.OK);
inOrder.verify(mockedQuery).orderByTaskDueDate();
inOrder.verify(mockedQuery).desc();
inOrder = Mockito.inOrder(mockedQuery);
executeAndVerifySorting("followUpDate", "asc", Status.OK);
inOrder.verify(mockedQuery).orderByTaskFollowUpDate();
inOrder.verify(mockedQuery).asc();
inOrder = Mockito.inOrder(mockedQuery);
executeAndVerifySorting("followUpDate", "desc", Status.OK);
inOrder.verify(mockedQuery).orderByTaskFollowUpDate();
inOrder.verify(mockedQuery).desc();
inOrder = Mockito.inOrder(mockedQuery);
executeAndVerifySorting("deleteReason", "asc", Status.OK);
inOrder.verify(mockedQuery).orderByDeleteReason();
inOrder.verify(mockedQuery).asc();
inOrder = Mockito.inOrder(mockedQuery);
executeAndVerifySorting("deleteReason", "desc", Status.OK);
inOrder.verify(mockedQuery).orderByDeleteReason();
inOrder.verify(mockedQuery).desc();
inOrder = Mockito.inOrder(mockedQuery);
executeAndVerifySorting("taskDefinitionKey", "asc", Status.OK);
inOrder.verify(mockedQuery).orderByTaskDefinitionKey();
inOrder.verify(mockedQuery).asc();
inOrder = Mockito.inOrder(mockedQuery);
executeAndVerifySorting("taskDefinitionKey", "desc", Status.OK);
inOrder.verify(mockedQuery).orderByTaskDefinitionKey();
inOrder.verify(mockedQuery).desc();
inOrder = Mockito.inOrder(mockedQuery);
executeAndVerifySorting("priority", "asc", Status.OK);
inOrder.verify(mockedQuery).orderByTaskPriority();
inOrder.verify(mockedQuery).asc();
inOrder = Mockito.inOrder(mockedQuery);
executeAndVerifySorting("priority", "desc", Status.OK);
inOrder.verify(mockedQuery).orderByTaskPriority();
inOrder.verify(mockedQuery).desc();
inOrder = Mockito.inOrder(mockedQuery);
executeAndVerifySorting("caseDefinitionId", "asc", Status.OK);
inOrder.verify(mockedQuery).orderByCaseDefinitionId();
inOrder.verify(mockedQuery).asc();
inOrder = Mockito.inOrder(mockedQuery);
executeAndVerifySorting("caseDefinitionId", "desc", Status.OK);
inOrder.verify(mockedQuery).orderByCaseDefinitionId();
inOrder.verify(mockedQuery).desc();
inOrder = Mockito.inOrder(mockedQuery);
executeAndVerifySorting("caseInstanceId", "asc", Status.OK);
inOrder.verify(mockedQuery).orderByCaseInstanceId();
inOrder.verify(mockedQuery).asc();
inOrder = Mockito.inOrder(mockedQuery);
executeAndVerifySorting("caseInstanceId", "desc", Status.OK);
inOrder.verify(mockedQuery).orderByCaseInstanceId();
inOrder.verify(mockedQuery).desc();
inOrder = Mockito.inOrder(mockedQuery);
executeAndVerifySorting("caseExecutionId", "asc", Status.OK);
inOrder.verify(mockedQuery).orderByCaseExecutionId();
inOrder.verify(mockedQuery).asc();
inOrder = Mockito.inOrder(mockedQuery);
executeAndVerifySorting("caseExecutionId", "desc", Status.OK);
inOrder.verify(mockedQuery).orderByCaseExecutionId();
inOrder.verify(mockedQuery).desc();
}
@Test
public void testSuccessfulPagination() {
int firstResult = 0;
int maxResults = 10;
given()
.queryParam("firstResult", firstResult)
.queryParam("maxResults", maxResults)
.then()
.expect()
.statusCode(Status.OK.getStatusCode())
.when()
.get(HISTORIC_TASK_INSTANCE_RESOURCE_URL);
verify(mockedQuery).listPage(firstResult, maxResults);
}
@Test
public void testMissingFirstResultParameter() {
int maxResults = 10;
given()
.queryParam("maxResults", maxResults)
.then()
.expect()
.statusCode(Status.OK.getStatusCode())
.when()
.get(HISTORIC_TASK_INSTANCE_RESOURCE_URL);
verify(mockedQuery).listPage(0, maxResults);
}
@Test
public void testMissingMaxResultsParameter() {
int firstResult = 10;
given()
.queryParam("firstResult", firstResult)
.then()
.expect()
.statusCode(Status.OK.getStatusCode())
.when()
.get(HISTORIC_TASK_INSTANCE_RESOURCE_URL);
verify(mockedQuery).listPage(firstResult, Integer.MAX_VALUE);
}
@Test
public void testQueryCount() {
expect()
.statusCode(Status.OK.getStatusCode())
.body("count", equalTo(1))
.when()
.get(HISTORIC_TASK_INSTANCE_COUNT_RESOURCE_URL);
verify(mockedQuery).count();
}
@Test
public void testQueryCountForPost() {
given()
.contentType(POST_JSON_CONTENT_TYPE)
.body(EMPTY_JSON_OBJECT)
.then()
.expect()
.body("count", equalTo(1))
.when()
.post(HISTORIC_TASK_INSTANCE_COUNT_RESOURCE_URL);
verify(mockedQuery).count();
}
@Test
public void testSimpleHistoricTaskInstanceQuery() {
Response response = given()
.then()
.expect()
.statusCode(Status.OK.getStatusCode())
.when()
.get(HISTORIC_TASK_INSTANCE_RESOURCE_URL);
InOrder inOrder = inOrder(mockedQuery);
inOrder.verify(mockedQuery).list();
String content = response.asString();
List<String> instances = from(content).getList("");
Assert.assertEquals("There should be one historic task instance returned.", 1, instances.size());
Assert.assertNotNull("The returned historic task instance should not be null.", instances.get(0));
String returnedId = from(content).getString("[0].id");
String returnedProcessDefinitionId = from(content).getString("[0].processDefinitionId");
String returnedProcessInstanceId = from(content).getString("[0].processInstanceId");
String returnedExecutionId = from(content).getString("[0].executionId");
String returnedActivityInstanceId = from(content).getString("[0].activityInstanceId");
String returnedName = from(content).getString("[0].name");
String returnedDescription = from(content).getString("[0].description");
String returnedDeleteReason = from(content).getString("[0].deleteReason");
String returnedOwner = from(content).getString("[0].owner");
String returnedAssignee = from(content).getString("[0].assignee");
Date returnedStartTime = DateTimeUtil.parseDate(from(content).getString("[0].startTime"));
Date returnedEndTime = DateTimeUtil.parseDate(from(content).getString("[0].endTime"));
Long returnedDurationInMillis = from(content).getLong("[0].duration");
String returnedTaskDefinitionKey = from(content).getString("[0].taskDefinitionKey");
int returnedPriority = from(content).getInt("[0].priority");
String returnedParentTaskId = from(content).getString("[0].parentTaskId");
Date returnedDue = DateTimeUtil.parseDate(from(content).getString("[0].due"));
Date returnedFollow = DateTimeUtil.parseDate(from(content).getString("[0].followUp"));
String returnedCaseDefinitionId = from(content).getString("[0].caseDefinitionId");
String returnedCaseInstanceId = from(content).getString("[0].caseInstanceId");
String returnedCaseExecutionId = from(content).getString("[0].caseExecutionId");
Assert.assertEquals(MockProvider.EXAMPLE_HISTORIC_TASK_INST_ID, returnedId);
Assert.assertEquals(MockProvider.EXAMPLE_HISTORIC_TASK_INST_PROC_INST_ID, returnedProcessInstanceId);
Assert.assertEquals(MockProvider.EXAMPLE_HISTORIC_TASK_INST_ACT_INST_ID, returnedActivityInstanceId);
Assert.assertEquals(MockProvider.EXAMPLE_HISTORIC_TASK_INST_EXEC_ID, returnedExecutionId);
Assert.assertEquals(MockProvider.EXAMPLE_HISTORIC_TASK_INST_PROC_DEF_ID, returnedProcessDefinitionId);
Assert.assertEquals(MockProvider.EXAMPLE_HISTORIC_TASK_INST_NAME, returnedName);
Assert.assertEquals(MockProvider.EXAMPLE_HISTORIC_TASK_INST_DESCRIPTION, returnedDescription);
Assert.assertEquals(MockProvider.EXAMPLE_HISTORIC_TASK_INST_DELETE_REASON, returnedDeleteReason);
Assert.assertEquals(MockProvider.EXAMPLE_HISTORIC_TASK_INST_OWNER, returnedOwner);
Assert.assertEquals(MockProvider.EXAMPLE_HISTORIC_TASK_INST_ASSIGNEE, returnedAssignee);
Assert.assertEquals(DateTimeUtil.parseDate(MockProvider.EXAMPLE_HISTORIC_TASK_INST_START_TIME), returnedStartTime);
Assert.assertEquals(DateTimeUtil.parseDate(MockProvider.EXAMPLE_HISTORIC_TASK_INST_END_TIME), returnedEndTime);
Assert.assertEquals(MockProvider.EXAMPLE_HISTORIC_TASK_INST_DURATION, returnedDurationInMillis);
Assert.assertEquals(MockProvider.EXAMPLE_HISTORIC_TASK_INST_DEF_KEY, returnedTaskDefinitionKey);
Assert.assertEquals(MockProvider.EXAMPLE_HISTORIC_TASK_INST_PRIORITY, returnedPriority);
Assert.assertEquals(DateTimeUtil.parseDate(MockProvider.EXAMPLE_HISTORIC_TASK_INST_DUE_DATE), returnedDue);
Assert.assertEquals(DateTimeUtil.parseDate(MockProvider.EXAMPLE_HISTORIC_TASK_INST_FOLLOW_UP_DATE), returnedFollow);
Assert.assertEquals(MockProvider.EXAMPLE_HISTORIC_TASK_INST_PARENT_TASK_ID, returnedParentTaskId);
Assert.assertEquals(MockProvider.EXAMPLE_HISTORIC_TASK_INST_CASE_DEF_ID, returnedCaseDefinitionId);
Assert.assertEquals(MockProvider.EXAMPLE_HISTORIC_TASK_INST_CASE_INST_ID, returnedCaseInstanceId);
Assert.assertEquals(MockProvider.EXAMPLE_HISTORIC_TASK_INST_CASE_EXEC_ID, returnedCaseExecutionId);
}
@Test
public void testSimpleHistoricTaskInstanceQueryAsPost() {
Response response = given()
.contentType(POST_JSON_CONTENT_TYPE)
.body(EMPTY_JSON_OBJECT)
.then()
.expect()
.statusCode(Status.OK.getStatusCode())
.when()
.post(HISTORIC_TASK_INSTANCE_RESOURCE_URL);
InOrder inOrder = inOrder(mockedQuery);
inOrder.verify(mockedQuery).list();
String content = response.asString();
List<String> instances = from(content).getList("");
Assert.assertEquals("There should be one historic task instance returned.", 1, instances.size());
Assert.assertNotNull("The returned historic task instance should not be null.", instances.get(0));
String returnedId = from(content).getString("[0].id");
String returnedProcessDefinitionId = from(content).getString("[0].processDefinitionId");
String returnedProcessInstanceId = from(content).getString("[0].processInstanceId");
String returnedExecutionId = from(content).getString("[0].executionId");
String returnedActivityInstanceId = from(content).getString("[0].activityInstanceId");
String returnedName = from(content).getString("[0].name");
String returnedDescription = from(content).getString("[0].description");
String returnedDeleteReason = from(content).getString("[0].deleteReason");
String returnedOwner = from(content).getString("[0].owner");
String returnedAssignee = from(content).getString("[0].assignee");
Date returnedStartTime = DateTimeUtil.parseDate(from(content).getString("[0].startTime"));
Date returnedEndTime = DateTimeUtil.parseDate(from(content).getString("[0].endTime"));
Long returnedDurationInMillis = from(content).getLong("[0].duration");
String returnedTaskDefinitionKey = from(content).getString("[0].taskDefinitionKey");
int returnedPriority = from(content).getInt("[0].priority");
String returnedParentTaskId = from(content).getString("[0].parentTaskId");
Date returnedDue = DateTimeUtil.parseDate(from(content).getString("[0].due"));
Date returnedFollow = DateTimeUtil.parseDate(from(content).getString("[0].followUp"));
String returnedCaseDefinitionId = from(content).getString("[0].caseDefinitionId");
String returnedCaseInstanceId = from(content).getString("[0].caseInstanceId");
String returnedCaseExecutionId = from(content).getString("[0].caseExecutionId");
Assert.assertEquals(MockProvider.EXAMPLE_HISTORIC_TASK_INST_ID, returnedId);
Assert.assertEquals(MockProvider.EXAMPLE_HISTORIC_TASK_INST_PROC_INST_ID, returnedProcessInstanceId);
Assert.assertEquals(MockProvider.EXAMPLE_HISTORIC_TASK_INST_ACT_INST_ID, returnedActivityInstanceId);
Assert.assertEquals(MockProvider.EXAMPLE_HISTORIC_TASK_INST_EXEC_ID, returnedExecutionId);
Assert.assertEquals(MockProvider.EXAMPLE_HISTORIC_TASK_INST_PROC_DEF_ID, returnedProcessDefinitionId);
Assert.assertEquals(MockProvider.EXAMPLE_HISTORIC_TASK_INST_NAME, returnedName);
Assert.assertEquals(MockProvider.EXAMPLE_HISTORIC_TASK_INST_DESCRIPTION, returnedDescription);
Assert.assertEquals(MockProvider.EXAMPLE_HISTORIC_TASK_INST_DELETE_REASON, returnedDeleteReason);
Assert.assertEquals(MockProvider.EXAMPLE_HISTORIC_TASK_INST_OWNER, returnedOwner);
Assert.assertEquals(MockProvider.EXAMPLE_HISTORIC_TASK_INST_ASSIGNEE, returnedAssignee);
Assert.assertEquals(DateTimeUtil.parseDate(MockProvider.EXAMPLE_HISTORIC_TASK_INST_START_TIME), returnedStartTime);
Assert.assertEquals(DateTimeUtil.parseDate(MockProvider.EXAMPLE_HISTORIC_TASK_INST_END_TIME), returnedEndTime);
Assert.assertEquals(MockProvider.EXAMPLE_HISTORIC_TASK_INST_DURATION, returnedDurationInMillis);
Assert.assertEquals(MockProvider.EXAMPLE_HISTORIC_TASK_INST_DEF_KEY, returnedTaskDefinitionKey);
Assert.assertEquals(MockProvider.EXAMPLE_HISTORIC_TASK_INST_PRIORITY, returnedPriority);
Assert.assertEquals(DateTimeUtil.parseDate(MockProvider.EXAMPLE_HISTORIC_TASK_INST_DUE_DATE), returnedDue);
Assert.assertEquals(DateTimeUtil.parseDate(MockProvider.EXAMPLE_HISTORIC_TASK_INST_FOLLOW_UP_DATE), returnedFollow);
Assert.assertEquals(MockProvider.EXAMPLE_HISTORIC_TASK_INST_PARENT_TASK_ID, returnedParentTaskId);
Assert.assertEquals(MockProvider.EXAMPLE_HISTORIC_TASK_INST_CASE_DEF_ID, returnedCaseDefinitionId);
Assert.assertEquals(MockProvider.EXAMPLE_HISTORIC_TASK_INST_CASE_INST_ID, returnedCaseInstanceId);
Assert.assertEquals(MockProvider.EXAMPLE_HISTORIC_TASK_INST_CASE_EXEC_ID, returnedCaseExecutionId);
}
@Test
public void testQueryByTaskId() {
String taskId = MockProvider.EXAMPLE_HISTORIC_TASK_INST_ID;
given()
.queryParam("taskId", taskId)
.then().expect().statusCode(Status.OK.getStatusCode())
.when().get(HISTORIC_TASK_INSTANCE_RESOURCE_URL);
verify(mockedQuery).taskId(taskId);
}
@Test
public void testQueryByTaskIdAsPost() {
String taskId = MockProvider.EXAMPLE_HISTORIC_TASK_INST_ID;
Map<String, Object> params = new HashMap<String, Object>();
params.put("taskId", taskId);
given()
.contentType(POST_JSON_CONTENT_TYPE)
.body(params)
.then().expect().statusCode(Status.OK.getStatusCode())
.when().post(HISTORIC_TASK_INSTANCE_RESOURCE_URL);
verify(mockedQuery).taskId(taskId);
}
@Test
public void testQueryByProcessInstanceId() {
String processInstanceId = MockProvider.EXAMPLE_HISTORIC_TASK_INST_PROC_INST_ID;
given()
.queryParam("processInstanceId", processInstanceId)
.then().expect().statusCode(Status.OK.getStatusCode())
.when().get(HISTORIC_TASK_INSTANCE_RESOURCE_URL);
verify(mockedQuery).processInstanceId(processInstanceId);
}
@Test
public void testQueryByProcessInstanceIdAsPost() {
String processInstanceId = MockProvider.EXAMPLE_HISTORIC_TASK_INST_PROC_INST_ID;
Map<String, Object> params = new HashMap<String, Object>();
params.put("processInstanceId", processInstanceId);
given()
.contentType(POST_JSON_CONTENT_TYPE)
.body(params)
.then().expect().statusCode(Status.OK.getStatusCode())
.when().post(HISTORIC_TASK_INSTANCE_RESOURCE_URL);
verify(mockedQuery).processInstanceId(processInstanceId);
}
@Test
public void testQueryByExecutionId() {
String executionId = MockProvider.EXAMPLE_HISTORIC_TASK_INST_EXEC_ID;
given()
.queryParam("executionId", executionId)
.then().expect().statusCode(Status.OK.getStatusCode())
.when().get(HISTORIC_TASK_INSTANCE_RESOURCE_URL);
verify(mockedQuery).executionId(executionId);
}
@Test
public void testQueryByExecutionIdAsPost() {
String executionId = MockProvider.EXAMPLE_HISTORIC_TASK_INST_EXEC_ID;
Map<String, Object> params = new HashMap<String, Object>();
params.put("executionId", executionId);
given()
.contentType(POST_JSON_CONTENT_TYPE)
.body(params)
.then().expect().statusCode(Status.OK.getStatusCode())
.when().post(HISTORIC_TASK_INSTANCE_RESOURCE_URL);
verify(mockedQuery).executionId(executionId);
}
@Test
public void testQueryByActivityInstanceId() {
String activityInstanceId = MockProvider.EXAMPLE_HISTORIC_TASK_INST_ACT_INST_ID;
given()
.queryParam("activityInstanceIdIn", activityInstanceId)
.then().expect().statusCode(Status.OK.getStatusCode())
.when().get(HISTORIC_TASK_INSTANCE_RESOURCE_URL);
verify(mockedQuery).activityInstanceIdIn(activityInstanceId);
}
@Test
public void testQueryByActivityInstanceIdAsPost() {
String activityInstanceId = MockProvider.EXAMPLE_HISTORIC_TASK_INST_ACT_INST_ID;
List<String> activityInstanceIds = new ArrayList<String>();
activityInstanceIds.add(activityInstanceId);
Map<String, Object> params = new HashMap<String, Object>();
params.put("activityInstanceIdIn", activityInstanceIds);
given()
.contentType(POST_JSON_CONTENT_TYPE)
.body(params)
.then().expect().statusCode(Status.OK.getStatusCode())
.when().post(HISTORIC_TASK_INSTANCE_RESOURCE_URL);
verify(mockedQuery).activityInstanceIdIn(activityInstanceId);
}
@Test
public void testQueryByActivityInstanceIds() {
String activityInstanceId = MockProvider.EXAMPLE_HISTORIC_TASK_INST_ACT_INST_ID;
String anotherActivityInstanceId = "anotherActivityInstanceId";
given()
.queryParam("activityInstanceIdIn", activityInstanceId + "," + anotherActivityInstanceId)
.then().expect().statusCode(Status.OK.getStatusCode())
.when().get(HISTORIC_TASK_INSTANCE_RESOURCE_URL);
verify(mockedQuery).activityInstanceIdIn(activityInstanceId, anotherActivityInstanceId);
}
@Test
public void testQueryByActivityInstanceIdsAsPost() {
String activityInstanceId = MockProvider.EXAMPLE_HISTORIC_TASK_INST_ACT_INST_ID;
String anotherActivityInstanceId = "anotherActivityInstanceId";
List<String> activityInstanceIds = new ArrayList<String>();
activityInstanceIds.add(activityInstanceId);
activityInstanceIds.add(anotherActivityInstanceId);
Map<String, Object> params = new HashMap<String, Object>();
params.put("activityInstanceIdIn", activityInstanceIds);
given()
.contentType(POST_JSON_CONTENT_TYPE)
.body(params)
.then().expect().statusCode(Status.OK.getStatusCode())
.when().post(HISTORIC_TASK_INSTANCE_RESOURCE_URL);
verify(mockedQuery).activityInstanceIdIn(activityInstanceId, anotherActivityInstanceId);
}
@Test
public void testQueryByProcessDefinitionId() {
String processDefinitionId = MockProvider.EXAMPLE_HISTORIC_TASK_INST_PROC_DEF_ID;
given()
.queryParam("processDefinitionId", processDefinitionId)
.then().expect().statusCode(Status.OK.getStatusCode())
.when().get(HISTORIC_TASK_INSTANCE_RESOURCE_URL);
verify(mockedQuery).processDefinitionId(processDefinitionId);
}
@Test
public void testQueryByProcessDefinitionIdAsPost() {
String processDefinitionId = MockProvider.EXAMPLE_HISTORIC_TASK_INST_PROC_DEF_ID;
Map<String, Object> params = new HashMap<String, Object>();
params.put("processDefinitionId", processDefinitionId);
given()
.contentType(POST_JSON_CONTENT_TYPE)
.body(params)
.then().expect().statusCode(Status.OK.getStatusCode())
.when().post(HISTORIC_TASK_INSTANCE_RESOURCE_URL);
verify(mockedQuery).processDefinitionId(processDefinitionId);
}
@Test
public void testQueryByProcessDefinitionKey() {
String processDefinitionKey = "aProcDefKey";
given()
.queryParam("processDefinitionKey", processDefinitionKey)
.then().expect().statusCode(Status.OK.getStatusCode())
.when().get(HISTORIC_TASK_INSTANCE_RESOURCE_URL);
verify(mockedQuery).processDefinitionKey(processDefinitionKey);
}
@Test
public void testQueryByProcessDefinitionKeyAsPost() {
String processDefinitionKey = "aProcDefKey";
Map<String, Object> params = new HashMap<String, Object>();
params.put("processDefinitionKey", processDefinitionKey);
given()
.contentType(POST_JSON_CONTENT_TYPE)
.body(params)
.then().expect().statusCode(Status.OK.getStatusCode())
.when().post(HISTORIC_TASK_INSTANCE_RESOURCE_URL);
verify(mockedQuery).processDefinitionKey(processDefinitionKey);
}
@Test
public void testQueryByProcessDefinitionName() {
String processDefinitionName = "aProcDefName";
given()
.queryParam("processDefinitionName", processDefinitionName)
.then().expect().statusCode(Status.OK.getStatusCode())
.when().get(HISTORIC_TASK_INSTANCE_RESOURCE_URL);
verify(mockedQuery).processDefinitionName(processDefinitionName);
}
@Test
public void testQueryByProcessDefinitionNameAsPost() {
String processDefinitionName = "aProcDefName";
Map<String, Object> params = new HashMap<String, Object>();
params.put("processDefinitionName", processDefinitionName);
given()
.contentType(POST_JSON_CONTENT_TYPE)
.body(params)
.then().expect().statusCode(Status.OK.getStatusCode())
.when().post(HISTORIC_TASK_INSTANCE_RESOURCE_URL);
verify(mockedQuery).processDefinitionName(processDefinitionName);
}
@Test
public void testQueryByTaskName() {
String taskName = "aTaskName";
given()
.queryParam("taskName", taskName)
.then().expect().statusCode(Status.OK.getStatusCode())
.when().get(HISTORIC_TASK_INSTANCE_RESOURCE_URL);
verify(mockedQuery).taskName(taskName);
}
@Test
public void testQueryByTaskNameAsPost() {
String taskName = "aTaskName";
Map<String, Object> params = new HashMap<String, Object>();
params.put("taskName", taskName);
given()
.contentType(POST_JSON_CONTENT_TYPE)
.body(params)
.then().expect().statusCode(Status.OK.getStatusCode())
.when().post(HISTORIC_TASK_INSTANCE_RESOURCE_URL);
verify(mockedQuery).taskName(taskName);
}
@Test
public void testQueryByTaskNameLike() {
String taskNameLike = "aTaskNameLike";
given()
.queryParam("taskNameLike", taskNameLike)
.then().expect().statusCode(Status.OK.getStatusCode())
.when().get(HISTORIC_TASK_INSTANCE_RESOURCE_URL);
verify(mockedQuery).taskNameLike(taskNameLike);
}
@Test
public void testQueryByTaskNameLikeAsPost() {
String taskNameLike = "aTaskNameLike";
Map<String, Object> params = new HashMap<String, Object>();
params.put("taskNameLike", taskNameLike);
given()
.contentType(POST_JSON_CONTENT_TYPE)
.body(params)
.then().expect().statusCode(Status.OK.getStatusCode())
.when().post(HISTORIC_TASK_INSTANCE_RESOURCE_URL);
verify(mockedQuery).taskNameLike(taskNameLike);
}
@Test
public void testQueryByTaskDescription() {
String taskDescription = MockProvider.EXAMPLE_HISTORIC_TASK_INST_DESCRIPTION;
given()
.queryParam("taskDescription", taskDescription)
.then().expect().statusCode(Status.OK.getStatusCode())
.when().get(HISTORIC_TASK_INSTANCE_RESOURCE_URL);
verify(mockedQuery).taskDescription(taskDescription);
}
@Test
public void testQueryByTaskDescriptionAsPost() {
String taskDescription = MockProvider.EXAMPLE_HISTORIC_TASK_INST_DESCRIPTION;
Map<String, Object> params = new HashMap<String, Object>();
params.put("taskDescription", taskDescription);
given()
.contentType(POST_JSON_CONTENT_TYPE)
.body(params)
.then().expect().statusCode(Status.OK.getStatusCode())
.when().post(HISTORIC_TASK_INSTANCE_RESOURCE_URL);
verify(mockedQuery).taskDescription(taskDescription);
}
@Test
public void testQueryByTaskDescriptionLike() {
String taskDescriptionLike = "aTaskDescriptionLike";
given()
.queryParam("taskDescriptionLike", taskDescriptionLike)
.then().expect().statusCode(Status.OK.getStatusCode())
.when().get(HISTORIC_TASK_INSTANCE_RESOURCE_URL);
verify(mockedQuery).taskDescriptionLike(taskDescriptionLike);
}
@Test
public void testQueryByTaskDescriptionLikeAsPost() {
String taskDescriptionLike = "aTaskDescriptionLike";
Map<String, Object> params = new HashMap<String, Object>();
params.put("taskDescriptionLike", taskDescriptionLike);
given()
.contentType(POST_JSON_CONTENT_TYPE)
.body(params)
.then().expect().statusCode(Status.OK.getStatusCode())
.when().post(HISTORIC_TASK_INSTANCE_RESOURCE_URL);
verify(mockedQuery).taskDescriptionLike(taskDescriptionLike);
}
@Test
public void testQueryByTaskDefinitionKey() {
String taskDefinitionKey = MockProvider.EXAMPLE_HISTORIC_TASK_INST_DEF_KEY;
given()
.queryParam("taskDefinitionKey", taskDefinitionKey)
.then().expect().statusCode(Status.OK.getStatusCode())
.when().get(HISTORIC_TASK_INSTANCE_RESOURCE_URL);
verify(mockedQuery).taskDefinitionKey(taskDefinitionKey);
}
@Test
public void testQueryByTaskDefinitionKeyAsPost() {
String taskDefinitionKey = MockProvider.EXAMPLE_HISTORIC_TASK_INST_DEF_KEY;
Map<String, Object> params = new HashMap<String, Object>();
params.put("taskDefinitionKey", taskDefinitionKey);
given()
.contentType(POST_JSON_CONTENT_TYPE)
.body(params)
.then().expect().statusCode(Status.OK.getStatusCode())
.when().post(HISTORIC_TASK_INSTANCE_RESOURCE_URL);
verify(mockedQuery).taskDefinitionKey(taskDefinitionKey);
}
@Test
public void testQueryByTaskDeleteReason() {
String taskDeleteReason = MockProvider.EXAMPLE_HISTORIC_TASK_INST_DELETE_REASON;
given()
.queryParam("taskDeleteReason", taskDeleteReason)
.then().expect().statusCode(Status.OK.getStatusCode())
.when().get(HISTORIC_TASK_INSTANCE_RESOURCE_URL);
verify(mockedQuery).taskDeleteReason(taskDeleteReason);
}
@Test
public void testQueryByTaskDeleteReasonAsPost() {
String taskDeleteReason = MockProvider.EXAMPLE_HISTORIC_TASK_INST_DELETE_REASON;
Map<String, Object> params = new HashMap<String, Object>();
params.put("taskDeleteReason", taskDeleteReason);
given()
.contentType(POST_JSON_CONTENT_TYPE)
.body(params)
.then().expect().statusCode(Status.OK.getStatusCode())
.when().post(HISTORIC_TASK_INSTANCE_RESOURCE_URL);
verify(mockedQuery).taskDeleteReason(taskDeleteReason);
}
@Test
public void testQueryByTaskDeleteReasonLike() {
String taskDeleteReasonLike = "aTaskDeleteReasonLike";
given()
.queryParam("taskDeleteReasonLike", taskDeleteReasonLike)
.then().expect().statusCode(Status.OK.getStatusCode())
.when().get(HISTORIC_TASK_INSTANCE_RESOURCE_URL);
verify(mockedQuery).taskDeleteReasonLike(taskDeleteReasonLike);
}
@Test
public void testQueryByTaskDeleteReasonLikeAsPost() {
String taskDeleteReasonLike = "aTaskDeleteReasonLike";
Map<String, Object> params = new HashMap<String, Object>();
params.put("taskDeleteReasonLike", taskDeleteReasonLike);
given()
.contentType(POST_JSON_CONTENT_TYPE)
.body(params)
.then().expect().statusCode(Status.OK.getStatusCode())
.when().post(HISTORIC_TASK_INSTANCE_RESOURCE_URL);
verify(mockedQuery).taskDeleteReasonLike(taskDeleteReasonLike);
}
@Test
public void testQueryByTaskAssignee() {
String taskAssignee = MockProvider.EXAMPLE_HISTORIC_TASK_INST_ASSIGNEE;
given()
.queryParam("taskAssignee", taskAssignee)
.then().expect().statusCode(Status.OK.getStatusCode())
.when().get(HISTORIC_TASK_INSTANCE_RESOURCE_URL);
verify(mockedQuery).taskAssignee(taskAssignee);
}
@Test
public void testQueryByTaskAssigneeAsPost() {
String taskAssignee = MockProvider.EXAMPLE_HISTORIC_TASK_INST_ASSIGNEE;
Map<String, Object> params = new HashMap<String, Object>();
params.put("taskAssignee", taskAssignee);
given()
.contentType(POST_JSON_CONTENT_TYPE)
.body(params)
.then().expect().statusCode(Status.OK.getStatusCode())
.when().post(HISTORIC_TASK_INSTANCE_RESOURCE_URL);
verify(mockedQuery).taskAssignee(taskAssignee);
}
@Test
public void testQueryByTaskAssigneeLike() {
String taskAssigneeLike = "aTaskAssigneeLike";
given()
.queryParam("taskAssigneeLike", taskAssigneeLike)
.then().expect().statusCode(Status.OK.getStatusCode())
.when().get(HISTORIC_TASK_INSTANCE_RESOURCE_URL);
verify(mockedQuery).taskAssigneeLike(taskAssigneeLike);
}
@Test
public void testQueryByTaskAssigneeLikeAsPost() {
String taskAssigneeLike = "aTaskAssigneeLike";
Map<String, Object> params = new HashMap<String, Object>();
params.put("taskAssigneeLike", taskAssigneeLike);
given()
.contentType(POST_JSON_CONTENT_TYPE)
.body(params)
.then().expect().statusCode(Status.OK.getStatusCode())
.when().post(HISTORIC_TASK_INSTANCE_RESOURCE_URL);
verify(mockedQuery).taskAssigneeLike(taskAssigneeLike);
}
@Test
public void testQueryByTaskOwner() {
String taskOwner = MockProvider.EXAMPLE_HISTORIC_TASK_INST_OWNER;
given()
.queryParam("taskOwner", taskOwner)
.then().expect().statusCode(Status.OK.getStatusCode())
.when().get(HISTORIC_TASK_INSTANCE_RESOURCE_URL);
verify(mockedQuery).taskOwner(taskOwner);
}
@Test
public void testQueryByTaskOwnerAsPost() {
String taskOwner = MockProvider.EXAMPLE_HISTORIC_TASK_INST_OWNER;
Map<String, Object> params = new HashMap<String, Object>();
params.put("taskOwner", taskOwner);
given()
.contentType(POST_JSON_CONTENT_TYPE)
.body(params)
.then().expect().statusCode(Status.OK.getStatusCode())
.when().post(HISTORIC_TASK_INSTANCE_RESOURCE_URL);
verify(mockedQuery).taskOwner(taskOwner);
}
@Test
public void testQueryByTaskOwnerLike() {
String taskOwnerLike = "aTaskOwnerLike";
given()
.queryParam("taskOwnerLike", taskOwnerLike)
.then().expect().statusCode(Status.OK.getStatusCode())
.when().get(HISTORIC_TASK_INSTANCE_RESOURCE_URL);
verify(mockedQuery).taskOwnerLike(taskOwnerLike);
}
@Test
public void testQueryByTaskOwnerLikeAsPost() {
String taskOwnerLike = "aTaskOwnerLike";
Map<String, Object> params = new HashMap<String, Object>();
params.put("taskOwnerLike", taskOwnerLike);
given()
.contentType(POST_JSON_CONTENT_TYPE)
.body(params)
.then().expect().statusCode(Status.OK.getStatusCode())
.when().post(HISTORIC_TASK_INSTANCE_RESOURCE_URL);
verify(mockedQuery).taskOwnerLike(taskOwnerLike);
}
@Test
public void testQueryByTaskPriority() {
int taskPriority = MockProvider.EXAMPLE_HISTORIC_TASK_INST_PRIORITY;
given()
.queryParam("taskPriority", taskPriority)
.then().expect().statusCode(Status.OK.getStatusCode())
.when().get(HISTORIC_TASK_INSTANCE_RESOURCE_URL);
verify(mockedQuery).taskPriority(taskPriority);
}
@Test
public void testQueryByTaskPriorityAsPost() {
int taskPriority = MockProvider.EXAMPLE_HISTORIC_TASK_INST_PRIORITY;
Map<String, Object> params = new HashMap<String, Object>();
params.put("taskPriority", taskPriority);
given()
.contentType(POST_JSON_CONTENT_TYPE)
.body(params)
.then().expect().statusCode(Status.OK.getStatusCode())
.when().post(HISTORIC_TASK_INSTANCE_RESOURCE_URL);
verify(mockedQuery).taskPriority(taskPriority);
}
@Test
public void testQueryByFinished() {
given()
.queryParam("finished", true)
.then().expect().statusCode(Status.OK.getStatusCode())
.when().get(HISTORIC_TASK_INSTANCE_RESOURCE_URL);
verify(mockedQuery).finished();
}
@Test
public void testQueryByFinishedAsPost() {
Map<String, Object> params = new HashMap<String, Object>();
params.put("finished", true);
given()
.contentType(POST_JSON_CONTENT_TYPE)
.body(params)
.then().expect().statusCode(Status.OK.getStatusCode())
.when().post(HISTORIC_TASK_INSTANCE_RESOURCE_URL);
verify(mockedQuery).finished();
}
@Test
public void testQueryByUnfinished() {
given()
.queryParam("unfinished", true)
.then().expect().statusCode(Status.OK.getStatusCode())
.when().get(HISTORIC_TASK_INSTANCE_RESOURCE_URL);
verify(mockedQuery).unfinished();
}
@Test
public void testQueryByUnfinishedAsPost() {
Map<String, Object> params = new HashMap<String, Object>();
params.put("unfinished", true);
given()
.contentType(POST_JSON_CONTENT_TYPE)
.body(params)
.then().expect().statusCode(Status.OK.getStatusCode())
.when().post(HISTORIC_TASK_INSTANCE_RESOURCE_URL);
verify(mockedQuery).unfinished();
}
@Test
public void testQueryByProcessFinished() {
given()
.queryParam("processFinished", true)
.then().expect().statusCode(Status.OK.getStatusCode())
.when().get(HISTORIC_TASK_INSTANCE_RESOURCE_URL);
verify(mockedQuery).processFinished();
}
@Test
public void testQueryByProcessFinishedAsPost() {
Map<String, Object> params = new HashMap<String, Object>();
params.put("processFinished", true);
given()
.contentType(POST_JSON_CONTENT_TYPE)
.body(params)
.then().expect().statusCode(Status.OK.getStatusCode())
.when().post(HISTORIC_TASK_INSTANCE_RESOURCE_URL);
verify(mockedQuery).processFinished();
}
@Test
public void testQueryByProcessUnfinished() {
given()
.queryParam("processUnfinished", true)
.then().expect().statusCode(Status.OK.getStatusCode())
.when().get(HISTORIC_TASK_INSTANCE_RESOURCE_URL);
verify(mockedQuery).processUnfinished();
}
@Test
public void testQueryByProcessUnfinishedAsPost() {
Map<String, Object> params = new HashMap<String, Object>();
params.put("processUnfinished", true);
given()
.contentType(POST_JSON_CONTENT_TYPE)
.body(params)
.then().expect().statusCode(Status.OK.getStatusCode())
.when().post(HISTORIC_TASK_INSTANCE_RESOURCE_URL);
verify(mockedQuery).processUnfinished();
}
@Test
public void testQueryByTaskParentTaskId() {
String taskParentTaskId = MockProvider.EXAMPLE_HISTORIC_TASK_INST_PARENT_TASK_ID;
given()
.queryParam("taskParentTaskId", taskParentTaskId)
.then().expect().statusCode(Status.OK.getStatusCode())
.when().get(HISTORIC_TASK_INSTANCE_RESOURCE_URL);
verify(mockedQuery).taskParentTaskId(taskParentTaskId);
}
@Test
public void testQueryByTaskParentTaskIdAsPost() {
String taskParentTaskId = MockProvider.EXAMPLE_HISTORIC_TASK_INST_PARENT_TASK_ID;
Map<String, Object> params = new HashMap<String, Object>();
params.put("taskParentTaskId", taskParentTaskId);
given()
.contentType(POST_JSON_CONTENT_TYPE)
.body(params)
.then().expect().statusCode(Status.OK.getStatusCode())
.when().post(HISTORIC_TASK_INSTANCE_RESOURCE_URL);
verify(mockedQuery).taskParentTaskId(taskParentTaskId);
}
@Test
public void testQueryByTaskDueDate() {
String due = MockProvider.EXAMPLE_HISTORIC_TASK_INST_DUE_DATE;
given()
.queryParam("taskDueDate", due)
.then().expect().statusCode(Status.OK.getStatusCode())
.when().get(HISTORIC_TASK_INSTANCE_RESOURCE_URL);
verify(mockedQuery).taskDueDate(DateTimeUtil.parseDate(due));
}
@Test
public void testQueryByTaskDueDateAsPost() {
String due = MockProvider.EXAMPLE_HISTORIC_TASK_INST_DUE_DATE;
Map<String, Object> params = new HashMap<String, Object>();
params.put("taskDueDate", DateTimeUtil.parseDate(due));
given()
.contentType(POST_JSON_CONTENT_TYPE)
.body(params)
.then().expect().statusCode(Status.OK.getStatusCode())
.when().post(HISTORIC_TASK_INSTANCE_RESOURCE_URL);
verify(mockedQuery).taskDueDate(DateTimeUtil.parseDate(due));
}
@Test
public void testQueryByTaskDueDateBefore() {
String due = MockProvider.EXAMPLE_HISTORIC_TASK_INST_DUE_DATE;
given()
.queryParam("taskDueDateBefore", due)
.then().expect().statusCode(Status.OK.getStatusCode())
.when().get(HISTORIC_TASK_INSTANCE_RESOURCE_URL);
verify(mockedQuery).taskDueBefore(DateTimeUtil.parseDate(due));
}
@Test
public void testQueryByTaskDueDateBeforeAsPost() {
String due = MockProvider.EXAMPLE_HISTORIC_TASK_INST_DUE_DATE;
Map<String, Object> params = new HashMap<String, Object>();
params.put("taskDueDateBefore", DateTimeUtil.parseDate(due));
given()
.contentType(POST_JSON_CONTENT_TYPE)
.body(params)
.then().expect().statusCode(Status.OK.getStatusCode())
.when().post(HISTORIC_TASK_INSTANCE_RESOURCE_URL);
verify(mockedQuery).taskDueBefore(DateTimeUtil.parseDate(due));
}
@Test
public void testQueryByTaskDueDateAfter() {
String due = MockProvider.EXAMPLE_HISTORIC_TASK_INST_DUE_DATE;
given()
.queryParam("taskDueDateAfter", due)
.then().expect().statusCode(Status.OK.getStatusCode())
.when().get(HISTORIC_TASK_INSTANCE_RESOURCE_URL);
verify(mockedQuery).taskDueAfter(DateTimeUtil.parseDate(due));
}
@Test
public void testQueryByTaskDueDateAfterAsPost() {
String due = MockProvider.EXAMPLE_HISTORIC_TASK_INST_DUE_DATE;
Map<String, Object> params = new HashMap<String, Object>();
params.put("taskDueDateAfter", DateTimeUtil.parseDate(due));
given()
.contentType(POST_JSON_CONTENT_TYPE)
.body(params)
.then().expect().statusCode(Status.OK.getStatusCode())
.when().post(HISTORIC_TASK_INSTANCE_RESOURCE_URL);
verify(mockedQuery).taskDueAfter(DateTimeUtil.parseDate(due));
}
@Test
public void testQueryByTaskFollowUpDate() {
String followUp = MockProvider.EXAMPLE_HISTORIC_TASK_INST_FOLLOW_UP_DATE;
given()
.queryParam("taskFollowUpDate", followUp)
.then().expect().statusCode(Status.OK.getStatusCode())
.when().get(HISTORIC_TASK_INSTANCE_RESOURCE_URL);
verify(mockedQuery).taskFollowUpDate(DateTimeUtil.parseDate(followUp));
}
@Test
public void testQueryByTaskFollowUpDateAsPost() {
String followUp = MockProvider.EXAMPLE_HISTORIC_TASK_INST_FOLLOW_UP_DATE;
Map<String, Object> params = new HashMap<String, Object>();
params.put("taskFollowUpDate", DateTimeUtil.parseDate(followUp));
given()
.contentType(POST_JSON_CONTENT_TYPE)
.body(params)
.then().expect().statusCode(Status.OK.getStatusCode())
.when().post(HISTORIC_TASK_INSTANCE_RESOURCE_URL);
verify(mockedQuery).taskFollowUpDate(DateTimeUtil.parseDate(followUp));
}
@Test
public void testQueryByTaskFollowUpDateBefore() {
String followUp = MockProvider.EXAMPLE_HISTORIC_TASK_INST_FOLLOW_UP_DATE;
given()
.queryParam("taskFollowUpDateBefore", followUp)
.then().expect().statusCode(Status.OK.getStatusCode())
.when().get(HISTORIC_TASK_INSTANCE_RESOURCE_URL);
verify(mockedQuery).taskFollowUpBefore(DateTimeUtil.parseDate(followUp));
}
@Test
public void testQueryByTaskFollowUpDateBeforeAsPost() {
String followUp = MockProvider.EXAMPLE_HISTORIC_TASK_INST_FOLLOW_UP_DATE;
Map<String, Object> params = new HashMap<String, Object>();
params.put("taskFollowUpDateBefore", DateTimeUtil.parseDate(followUp));
given()
.contentType(POST_JSON_CONTENT_TYPE)
.body(params)
.then().expect().statusCode(Status.OK.getStatusCode())
.when().post(HISTORIC_TASK_INSTANCE_RESOURCE_URL);
verify(mockedQuery).taskFollowUpBefore(DateTimeUtil.parseDate(followUp));
}
@Test
public void testQueryByTaskFollowUpDateAfter() {
String followUp = MockProvider.EXAMPLE_HISTORIC_TASK_INST_FOLLOW_UP_DATE;
given()
.queryParam("taskFollowUpDateAfter", followUp)
.then().expect().statusCode(Status.OK.getStatusCode())
.when().get(HISTORIC_TASK_INSTANCE_RESOURCE_URL);
verify(mockedQuery).taskFollowUpAfter(DateTimeUtil.parseDate(followUp));
}
@Test
public void testQueryByTaskFollowUpDateAfterAsPost() {
String followUp = MockProvider.EXAMPLE_HISTORIC_TASK_INST_FOLLOW_UP_DATE;
Map<String, Object> params = new HashMap<String, Object>();
params.put("taskFollowUpDateAfter", DateTimeUtil.parseDate(followUp));
given()
.contentType(POST_JSON_CONTENT_TYPE)
.body(params)
.then().expect().statusCode(Status.OK.getStatusCode())
.when().post(HISTORIC_TASK_INSTANCE_RESOURCE_URL);
verify(mockedQuery).taskFollowUpAfter(DateTimeUtil.parseDate(followUp));
}
@Test
public void testQueryByTaskVariable() {
String variableName = "varName";
String variableValue = "varValue";
String variableParameter = variableName + "_eq_" + variableValue;
String queryValue = variableParameter;
given()
.queryParam("taskVariables", queryValue)
.then()
.expect()
.statusCode(Status.OK.getStatusCode())
.when()
.get(HISTORIC_TASK_INSTANCE_RESOURCE_URL);
verify(mockedQuery).taskVariableValueEquals(variableName, variableValue);
}
@Test
public void testQueryByTaskVariableAsPost() {
String variableName = "varName";
String variableValue = "varValue";
Map<String, Object> variableJson = new HashMap<String, Object>();
variableJson.put("name", variableName);
variableJson.put("operator", "eq");
variableJson.put("value", variableValue);
List<Map<String, Object>> variables = new ArrayList<Map<String, Object>>();
variables.add(variableJson);
Map<String, Object> params = new HashMap<String, Object>();
params.put("taskVariables", variables);
given()
.contentType(POST_JSON_CONTENT_TYPE)
.body(params)
.then()
.expect()
.statusCode(Status.OK.getStatusCode())
.when()
.post(HISTORIC_TASK_INSTANCE_RESOURCE_URL);
verify(mockedQuery).taskVariableValueEquals(variableName, variableValue);
}
@Test
public void testQueryByInvalidTaskVariable() {
// invalid comparator
String invalidComparator = "anInvalidComparator";
String variableName = "varName";
String variableValue = "varValue";
String queryValue = variableName + "_" + invalidComparator + "_" + variableValue;
given()
.queryParam("taskVariables", queryValue)
.then()
.expect()
.statusCode(Status.BAD_REQUEST.getStatusCode())
.contentType(ContentType.JSON)
.body("type", equalTo(InvalidRequestException.class.getSimpleName()))
.body("message", containsString("Invalid variable comparator specified: " + invalidComparator))
.when()
.get(HISTORIC_TASK_INSTANCE_RESOURCE_URL);
// invalid format
queryValue = "invalidFormattedVariableQuery";
given()
.queryParam("taskVariables", queryValue)
.then()
.expect()
.statusCode(Status.BAD_REQUEST.getStatusCode())
.contentType(ContentType.JSON)
.body("type", equalTo(InvalidRequestException.class.getSimpleName()))
.body("message", containsString("variable query parameter has to have format KEY_OPERATOR_VALUE"))
.when()
.get(HISTORIC_TASK_INSTANCE_RESOURCE_URL);
}
@Test
public void testQueryByInvalidTaskVariableAsPost() {
// invalid comparator
String invalidComparator = "anInvalidComparator";
String variableName = "varName";
String variableValue = "varValue";
Map<String, Object> variableJson = new HashMap<String, Object>();
variableJson.put("name", variableName);
variableJson.put("operator", invalidComparator);
variableJson.put("value", variableValue);
List<Map<String, Object>> variables = new ArrayList<Map<String, Object>>();
variables.add(variableJson);
Map<String, Object> params = new HashMap<String, Object>();
params.put("taskVariables", variables);
given()
.contentType(POST_JSON_CONTENT_TYPE)
.body(params)
.then()
.expect()
.statusCode(Status.BAD_REQUEST.getStatusCode())
.contentType(ContentType.JSON)
.body("type", equalTo(InvalidRequestException.class.getSimpleName()))
.body("message", containsString("Invalid variable comparator specified: " + invalidComparator))
.when()
.post(HISTORIC_TASK_INSTANCE_RESOURCE_URL);
}
@Test
public void testQueryByProcessVariable() {
String variableName = "varName";
String variableValue = "varValue";
String variableParameter = variableName + "_eq_" + variableValue;
String queryValue = variableParameter;
given()
.queryParam("processVariables", queryValue)
.then()
.expect()
.statusCode(Status.OK.getStatusCode())
.when()
.get(HISTORIC_TASK_INSTANCE_RESOURCE_URL);
verify(mockedQuery).processVariableValueEquals(variableName, variableValue);
}
@Test
public void testQueryByProcessVariableAsPost() {
String variableName = "varName";
String variableValue = "varValue";
Map<String, Object> variableJson = new HashMap<String, Object>();
variableJson.put("name", variableName);
variableJson.put("operator", "eq");
variableJson.put("value", variableValue);
List<Map<String, Object>> variables = new ArrayList<Map<String, Object>>();
variables.add(variableJson);
Map<String, Object> params = new HashMap<String, Object>();
params.put("processVariables", variables);
given()
.contentType(POST_JSON_CONTENT_TYPE)
.body(params)
.then()
.expect()
.statusCode(Status.OK.getStatusCode())
.when()
.post(HISTORIC_TASK_INSTANCE_RESOURCE_URL);
verify(mockedQuery).processVariableValueEquals(variableName, variableValue);
}
@Test
public void testQueryByInvalidProcessVariable() {
// invalid comparator
String invalidComparator = "anInvalidComparator";
String variableName = "varName";
String variableValue = "varValue";
String queryValue = variableName + "_" + invalidComparator + "_" + variableValue;
given()
.queryParam("processVariables", queryValue)
.then()
.expect()
.statusCode(Status.BAD_REQUEST.getStatusCode())
.contentType(ContentType.JSON)
.body("type", equalTo(InvalidRequestException.class.getSimpleName()))
.body("message", containsString("Invalid variable comparator specified: " + invalidComparator))
.when()
.get(HISTORIC_TASK_INSTANCE_RESOURCE_URL);
// invalid format
queryValue = "invalidFormattedVariableQuery";
given()
.queryParam("processVariables", queryValue)
.then()
.expect()
.statusCode(Status.BAD_REQUEST.getStatusCode())
.contentType(ContentType.JSON)
.body("type", equalTo(InvalidRequestException.class.getSimpleName()))
.body("message", containsString("variable query parameter has to have format KEY_OPERATOR_VALUE"))
.when()
.get(HISTORIC_TASK_INSTANCE_RESOURCE_URL);
}
@Test
public void testQueryByInvalidProcessVariableAsPost() {
// invalid comparator
String invalidComparator = "anInvalidComparator";
String variableName = "varName";
String variableValue = "varValue";
Map<String, Object> variableJson = new HashMap<String, Object>();
variableJson.put("name", variableName);
variableJson.put("operator", invalidComparator);
variableJson.put("value", variableValue);
List<Map<String, Object>> variables = new ArrayList<Map<String, Object>>();
variables.add(variableJson);
Map<String, Object> params = new HashMap<String, Object>();
params.put("processVariables", variables);
given()
.contentType(POST_JSON_CONTENT_TYPE)
.body(params)
.then()
.expect()
.statusCode(Status.BAD_REQUEST.getStatusCode())
.contentType(ContentType.JSON)
.body("type", equalTo(InvalidRequestException.class.getSimpleName()))
.body("message", containsString("Invalid variable comparator specified: " + invalidComparator))
.when()
.post(HISTORIC_TASK_INSTANCE_RESOURCE_URL);
}
@Test
public void testQueryByCaseDefinitionId() {
String caseDefinitionId = MockProvider.EXAMPLE_HISTORIC_TASK_INST_CASE_DEF_ID;
given()
.queryParam("caseDefinitionId", caseDefinitionId)
.then().expect().statusCode(Status.OK.getStatusCode())
.when().get(HISTORIC_TASK_INSTANCE_RESOURCE_URL);
verify(mockedQuery).caseDefinitionId(caseDefinitionId);
}
@Test
public void testQueryByCaseDefinitionIdAsPost() {
String caseDefinitionId = MockProvider.EXAMPLE_HISTORIC_TASK_INST_CASE_DEF_ID;
Map<String, Object> params = new HashMap<String, Object>();
params.put("caseDefinitionId", caseDefinitionId);
given()
.contentType(POST_JSON_CONTENT_TYPE)
.body(params)
.then().expect().statusCode(Status.OK.getStatusCode())
.when().post(HISTORIC_TASK_INSTANCE_RESOURCE_URL);
verify(mockedQuery).caseDefinitionId(caseDefinitionId);
}
@Test
public void testQueryByCaseDefinitionKey() {
String caseDefinitionKey = "aCaseDefKey";
given()
.queryParam("caseDefinitionKey", caseDefinitionKey)
.then().expect().statusCode(Status.OK.getStatusCode())
.when().get(HISTORIC_TASK_INSTANCE_RESOURCE_URL);
verify(mockedQuery).caseDefinitionKey(caseDefinitionKey);
}
@Test
public void testQueryByCaseDefinitionKeyAsPost() {
String caseDefinitionKey = "aCaseDefKey";
Map<String, Object> params = new HashMap<String, Object>();
params.put("caseDefinitionKey", caseDefinitionKey);
given()
.contentType(POST_JSON_CONTENT_TYPE)
.body(params)
.then().expect().statusCode(Status.OK.getStatusCode())
.when().post(HISTORIC_TASK_INSTANCE_RESOURCE_URL);
verify(mockedQuery).caseDefinitionKey(caseDefinitionKey);
}
@Test
public void testQueryByCaseDefinitionName() {
String caseDefinitionName = "aCaseDefName";
given()
.queryParam("caseDefinitionName", caseDefinitionName)
.then().expect().statusCode(Status.OK.getStatusCode())
.when().get(HISTORIC_TASK_INSTANCE_RESOURCE_URL);
verify(mockedQuery).caseDefinitionName(caseDefinitionName);
}
@Test
public void testQueryByCaseDefinitionNameAsPost() {
String caseDefinitionName = "aCaseDefName";
Map<String, Object> params = new HashMap<String, Object>();
params.put("caseDefinitionName", caseDefinitionName);
given()
.contentType(POST_JSON_CONTENT_TYPE)
.body(params)
.then().expect().statusCode(Status.OK.getStatusCode())
.when().post(HISTORIC_TASK_INSTANCE_RESOURCE_URL);
verify(mockedQuery).caseDefinitionName(caseDefinitionName);
}
@Test
public void testQueryByCaseInstanceId() {
String caseInstanceId = MockProvider.EXAMPLE_HISTORIC_TASK_INST_CASE_INST_ID;
given()
.queryParam("caseInstanceId", caseInstanceId)
.then().expect().statusCode(Status.OK.getStatusCode())
.when().get(HISTORIC_TASK_INSTANCE_RESOURCE_URL);
verify(mockedQuery).caseInstanceId(caseInstanceId);
}
@Test
public void testQueryByCaseInstanceIdAsPost() {
String caseInstanceId = MockProvider.EXAMPLE_HISTORIC_TASK_INST_CASE_INST_ID;
Map<String, Object> params = new HashMap<String, Object>();
params.put("caseInstanceId", caseInstanceId);
given()
.contentType(POST_JSON_CONTENT_TYPE)
.body(params)
.then().expect().statusCode(Status.OK.getStatusCode())
.when().post(HISTORIC_TASK_INSTANCE_RESOURCE_URL);
verify(mockedQuery).caseInstanceId(caseInstanceId);
}
@Test
public void testQueryByCaseExecutionId() {
String caseExecutionId = MockProvider.EXAMPLE_HISTORIC_TASK_INST_CASE_EXEC_ID;
given()
.queryParam("caseExecutionId", caseExecutionId)
.then().expect().statusCode(Status.OK.getStatusCode())
.when().get(HISTORIC_TASK_INSTANCE_RESOURCE_URL);
verify(mockedQuery).caseExecutionId(caseExecutionId);
}
@Test
public void testQueryByCaseExecutionIdAsPost() {
String caseExecutionId = MockProvider.EXAMPLE_HISTORIC_TASK_INST_CASE_EXEC_ID;
Map<String, Object> params = new HashMap<String, Object>();
params.put("caseExecutionId", caseExecutionId);
given()
.contentType(POST_JSON_CONTENT_TYPE)
.body(params)
.then().expect().statusCode(Status.OK.getStatusCode())
.when().post(HISTORIC_TASK_INSTANCE_RESOURCE_URL);
verify(mockedQuery).caseExecutionId(caseExecutionId);
}
}