Skip to content

2582 test ci #5111

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 3 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,11 @@
"desc": "Restrict the query to all process instances that are top level process instances."
},

"rootProcessInstanceId": {
"type": "string",
"desc": "Filter by root process instance id."
},

"finished": {
"type": "boolean",
"desc": "Only include finished process instances. This flag includes all process instances
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -141,6 +141,11 @@
defaultValue = 'false'
desc = "Restrict the query to all process instances that are top level process instances."/>

<@lib.parameter name = "rootProcessInstanceId"
location = "query"
type = "string"
desc = "Filter by root process instance id."/>

<@lib.parameter name = "leafProcessInstances"
location = "query"
type = "boolean"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,7 @@ public class HistoricProcessInstanceQueryDto extends AbstractQueryDto<HistoricPr
private String processInstanceId;
private Set<String> processInstanceIds;
private List<String> processInstanceIdNotIn;
private String rootProcessInstanceId;
private String processDefinitionId;
private String processDefinitionKey;
private List<String> processDefinitionKeys;
Expand Down Expand Up @@ -152,6 +153,15 @@ public void setProcessInstanceIdNotIn(List<String> processInstanceIdNotIn) {
this.processInstanceIdNotIn = processInstanceIdNotIn;
}

public String getRootProcessInstanceId() {
return rootProcessInstanceId;
}

@CamundaQueryParam("rootProcessInstanceId")
public void setRootProcessInstanceId(String rootProcessInstanceId) {
this.rootProcessInstanceId = rootProcessInstanceId;
}

public String getProcessDefinitionId() {
return processDefinitionId;
}
Expand Down Expand Up @@ -428,6 +438,9 @@ protected void applyFilters(HistoricProcessInstanceQuery query) {
if (processInstanceIdNotIn != null && !processInstanceIdNotIn.isEmpty()) {
query.processInstanceIdNotIn(processInstanceIdNotIn.toArray(new String[0]));
}
if (rootProcessInstanceId != null) {
query.rootProcessInstanceId(rootProcessInstanceId);
}
if (processDefinitionId != null) {
query.processDefinitionId(processDefinitionId);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,7 @@ public class ProcessInstanceQueryDto extends AbstractQueryDto<ProcessInstanceQue
private Set<String> processInstanceIds;
private Boolean withIncident;
private String incidentId;
private String rootProcessInstanceId;
private String incidentType;
private String incidentMessage;
private String incidentMessageLike;
Expand Down Expand Up @@ -285,6 +286,15 @@ public void setIncidentId(String incidentId) {
this.incidentId = incidentId;
}

public String getRootProcessInstanceId() {
return rootProcessInstanceId;
}

@CamundaQueryParam("rootProcessInstanceId")
public void setRootProcessInstanceId(String rootProcessInstanceId) {
this.rootProcessInstanceId = rootProcessInstanceId;
}

public String getIncidentType() {
return incidentType;
}
Expand Down Expand Up @@ -442,6 +452,9 @@ protected void applyFilters(ProcessInstanceQuery query) {
if (incidentId != null) {
query.incidentId(incidentId);
}
if (rootProcessInstanceId != null) {
query.rootProcessInstanceId(rootProcessInstanceId);
}
if (incidentType != null) {
query.incidentType(incidentType);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -242,6 +242,7 @@ public void testAdditionalParametersExcludingVariables() {
verify(mockedQuery).incidentMessage(queryParameters.get("incidentMessage"));
verify(mockedQuery).incidentMessageLike(queryParameters.get("incidentMessageLike"));
verify(mockedQuery).incidentType(queryParameters.get("incidentType"));
verify(mockedQuery).rootProcessInstanceId(queryParameters.get("rootProcessInstanceId"));
verify(mockedQuery).list();
}

Expand All @@ -264,6 +265,7 @@ private Map<String, String> getCompleteQueryParameters() {
parameters.put("incidentMessageLike", "incMessageLike");
parameters.put("incidentType", "incType");
parameters.put("caseInstanceId", "aCaseInstanceId");
parameters.put("rootProcessInstanceId", "aRootProcessInstanceId");

return parameters;
}
Expand Down Expand Up @@ -917,9 +919,44 @@ public void testCompletePostParameters() {
verify(mockedQuery).incidentMessage(queryParameters.get("incidentMessage"));
verify(mockedQuery).incidentMessageLike(queryParameters.get("incidentMessageLike"));
verify(mockedQuery).incidentType(queryParameters.get("incidentType"));
verify(mockedQuery).rootProcessInstanceId(queryParameters.get("rootProcessInstanceId"));
verify(mockedQuery).list();
}

@Test
public void testGetProcessInstancesForRootProcessInstanceId() {
Response response = given().queryParam("rootProcessInstanceId", MockProvider.EXAMPLE_ROOT_PROCESS_INSTANCE_ID)
.header("accept", MediaType.APPLICATION_JSON)
.then()
.expect()
.statusCode(Status.OK.getStatusCode())
.contentType(ContentType.JSON)
.when()
.get(PROCESS_INSTANCE_QUERY_URL);

verify(mockedQuery).list();

String content = response.asString();
List<String> instances = from(content).getList("");
assertThat(instances).size().isGreaterThan(0);

String returnedProcessInstanceId = from(content).getString("[0].id");
String returnedProcessDefinitionId = from(content).getString("[0].definitionId");
String returnedProcessInstanceBusinessKey = from(content).getString("[0].businessKey");
String returnedCaseInstanceId = from(content).getString("[0].caseInstanceId");
Boolean returnedIsEnded = from(content).getBoolean("[0].ended");
Boolean returnedIsSuspended = from(content).getBoolean("[0].suspended");
String returnedTenantId = from(content).getString("[0].tenantId");

Assert.assertEquals(MockProvider.EXAMPLE_PROCESS_INSTANCE_ID, returnedProcessInstanceId);
Assert.assertEquals(MockProvider.EXAMPLE_PROCESS_DEFINITION_ID, returnedProcessDefinitionId);
Assert.assertEquals(MockProvider.EXAMPLE_PROCESS_INSTANCE_BUSINESS_KEY, returnedProcessInstanceBusinessKey);
Assert.assertEquals(MockProvider.EXAMPLE_CASE_INSTANCE_ID, returnedCaseInstanceId);
Assert.assertEquals(MockProvider.EXAMPLE_PROCESS_INSTANCE_IS_ENDED, returnedIsEnded);
Assert.assertEquals(MockProvider.EXAMPLE_PROCESS_INSTANCE_IS_SUSPENDED, returnedIsSuspended);
Assert.assertEquals(MockProvider.EXAMPLE_TENANT_ID, returnedTenantId);
}

@Test
public void testTenantIdListParameter() {
mockedQuery = setUpMockInstanceQuery(createMockProcessInstancesTwoTenants());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -247,6 +247,7 @@ public abstract class MockProvider {
public static final String EXAMPLE_PROCESS_INSTANCE_BUSINESS_KEY = "aKey";
public static final String EXAMPLE_PROCESS_INSTANCE_BUSINESS_KEY_LIKE = "aKeyLike";
public static final String EXAMPLE_PROCESS_INSTANCE_ID = "aProcInstId";
public static final String EXAMPLE_ROOT_PROCESS_INSTANCE_ID = "aRootProcessInstanceId";
public static final String EXAMPLE_ROOT_HISTORIC_PROCESS_INSTANCE_ID = "aRootProcInstId";
public static final String ANOTHER_EXAMPLE_PROCESS_INSTANCE_ID = "anotherId";
public static final boolean EXAMPLE_PROCESS_INSTANCE_IS_SUSPENDED = false;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -455,6 +455,70 @@ public void testSimpleHistoricProcessQuery() {
Assert.assertEquals(MockProvider.EXAMPLE_PROCESS_INSTANCE_ID, restartedProcessInstanceId);
}

@Test
public void testGetHistoryProcessInstancesForRootProcessInstanceId() {
Response response = given().queryParam("rootProcessInstanceId",
MockProvider.EXAMPLE_HISTORIC_PROCESS_INSTANCE_ROOT_PROCESS_INSTANCE_ID)
.header("accept", MediaType.APPLICATION_JSON)
.then()
.expect()
.statusCode(Status.OK.getStatusCode())
.contentType(ContentType.JSON)
.when()
.get(HISTORIC_PROCESS_INSTANCE_RESOURCE_URL);

verify(mockedQuery).list();

String content = response.asString();
List<String> instances = from(content).getList("");
assertThat(instances).size().isGreaterThan(0);

String returnedProcessInstanceId = from(content).getString("[0].id");
String returnedProcessInstanceBusinessKey = from(content).getString("[0].businessKey");
String returnedProcessDefinitionId = from(content).getString("[0].processDefinitionId");
String returnedProcessDefinitionKey = from(content).getString("[0].processDefinitionKey");
String returnedProcessDefinitionName = from(content).getString("[0].processDefinitionName");
int returnedProcessDefinitionVersion = from(content).getInt("[0].processDefinitionVersion");
String returnedStartTime = from(content).getString("[0].startTime");
String returnedEndTime = from(content).getString("[0].endTime");
String returnedRemovalTime = from(content).getString("[0].removalTime");
long returnedDurationInMillis = from(content).getLong("[0].durationInMillis");
String returnedStartUserId = from(content).getString("[0].startUserId");
String returnedStartActivityId = from(content).getString("[0].startActivityId");
String returnedDeleteReason = from(content).getString("[0].deleteReason");
String returnedRootProcessInstanceId = from(content).getString("[0].rootProcessInstanceId");
String returnedSuperProcessInstanceId = from(content).getString("[0].superProcessInstanceId");
String returnedSuperCaseInstanceId = from(content).getString("[0].superCaseInstanceId");
String returnedCaseInstanceId = from(content).getString("[0].caseInstanceId");
String returnedTenantId = from(content).getString("[0].tenantId");
String returnedState = from(content).getString("[0].state");
String restartedProcessInstanceId = from(content).getString("[0].restartedProcessInstanceId");

Assert.assertEquals(MockProvider.EXAMPLE_PROCESS_INSTANCE_ID, returnedProcessInstanceId);
Assert.assertEquals(MockProvider.EXAMPLE_PROCESS_INSTANCE_BUSINESS_KEY, returnedProcessInstanceBusinessKey);
Assert.assertEquals(MockProvider.EXAMPLE_PROCESS_DEFINITION_ID, returnedProcessDefinitionId);
Assert.assertEquals(MockProvider.EXAMPLE_PROCESS_DEFINITION_KEY, returnedProcessDefinitionKey);
Assert.assertEquals(MockProvider.EXAMPLE_PROCESS_DEFINITION_NAME, returnedProcessDefinitionName);
Assert.assertEquals(MockProvider.EXAMPLE_PROCESS_DEFINITION_VERSION, returnedProcessDefinitionVersion);
Assert.assertEquals(MockProvider.EXAMPLE_HISTORIC_PROCESS_INSTANCE_START_TIME, returnedStartTime);
Assert.assertEquals(MockProvider.EXAMPLE_HISTORIC_PROCESS_INSTANCE_END_TIME, returnedEndTime);
Assert.assertEquals(MockProvider.EXAMPLE_HISTORIC_PROCESS_INSTANCE_REMOVAL_TIME, returnedRemovalTime);
Assert.assertEquals(MockProvider.EXAMPLE_HISTORIC_PROCESS_INSTANCE_DURATION_MILLIS, returnedDurationInMillis);
Assert.assertEquals(MockProvider.EXAMPLE_HISTORIC_PROCESS_INSTANCE_START_USER_ID, returnedStartUserId);
Assert.assertEquals(MockProvider.EXAMPLE_HISTORIC_PROCESS_INSTANCE_START_ACTIVITY_ID, returnedStartActivityId);
Assert.assertEquals(MockProvider.EXAMPLE_HISTORIC_PROCESS_INSTANCE_DELETE_REASON, returnedDeleteReason);
Assert.assertEquals(MockProvider.EXAMPLE_HISTORIC_PROCESS_INSTANCE_ROOT_PROCESS_INSTANCE_ID,
returnedRootProcessInstanceId);
Assert.assertEquals(MockProvider.EXAMPLE_HISTORIC_PROCESS_INSTANCE_SUPER_PROCESS_INSTANCE_ID,
returnedSuperProcessInstanceId);
Assert.assertEquals(MockProvider.EXAMPLE_HISTORIC_PROCESS_INSTANCE_SUPER_CASE_INSTANCE_ID,
returnedSuperCaseInstanceId);
Assert.assertEquals(MockProvider.EXAMPLE_HISTORIC_PROCESS_INSTANCE_CASE_INSTANCE_ID, returnedCaseInstanceId);
Assert.assertEquals(MockProvider.EXAMPLE_TENANT_ID, returnedTenantId);
Assert.assertEquals(MockProvider.EXAMPLE_HISTORIC_PROCESS_INSTANCE_STATE, returnedState);
Assert.assertEquals(MockProvider.EXAMPLE_PROCESS_INSTANCE_ID, restartedProcessInstanceId);
}

@Test
public void testAdditionalParametersExcludingProcesses() {
Map<String, String> stringQueryParameters = getCompleteStringQueryParameters();
Expand Down Expand Up @@ -504,6 +568,7 @@ private Map<String, String> getCompleteStringQueryParameters() {
parameters.put("caseInstanceId", MockProvider.EXAMPLE_HISTORIC_PROCESS_INSTANCE_CASE_INSTANCE_ID);
parameters.put("state", MockProvider.EXAMPLE_HISTORIC_PROCESS_INSTANCE_STATE);
parameters.put("incidentType", MockProvider.EXAMPLE_INCIDENT_TYPE);
parameters.put("rootProcessInstanceId", MockProvider.EXAMPLE_HISTORIC_PROCESS_INSTANCE_ROOT_PROCESS_INSTANCE_ID);

return parameters;
}
Expand All @@ -525,6 +590,7 @@ private void verifyStringParameterQueryInvocations() {
verify(mockedQuery).subCaseInstanceId(stringQueryParameters.get("subCaseInstanceId"));
verify(mockedQuery).caseInstanceId(stringQueryParameters.get("caseInstanceId"));
verify(mockedQuery).incidentType(stringQueryParameters.get("incidentType"));
verify(mockedQuery).rootProcessInstanceId(stringQueryParameters.get("rootProcessInstanceId"));

verify(mockedQuery).list();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,11 @@ public interface HistoricProcessInstanceQuery extends Query<HistoricProcessInsta
*/
HistoricProcessInstanceQuery processInstanceIdNotIn(String... processInstanceIdNotIn);

/**
* Only select historic process instances for the given root process instance id
*/
HistoricProcessInstanceQuery rootProcessInstanceId(String rootProcessInstanceId);

/**
* Only select historic process instances for the given process definition
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@ public class HistoricProcessInstanceQueryImpl extends AbstractVariableQueryImpl<

private static final long serialVersionUID = 1L;
protected String processInstanceId;
protected String rootProcessInstanceId;
protected String processDefinitionId;
protected String processDefinitionName;
protected String processDefinitionNameLike;
Expand Down Expand Up @@ -128,6 +129,12 @@ public HistoricProcessInstanceQuery processInstanceIdNotIn(String... processInst
return this;
}

public HistoricProcessInstanceQuery rootProcessInstanceId(String rootProcessInstanceId) {
ensureNotNull("Root process instance id", rootProcessInstanceId);
this.rootProcessInstanceId = rootProcessInstanceId;
return this;
}

public HistoricProcessInstanceQueryImpl processDefinitionId(String processDefinitionId) {
this.processDefinitionId = processDefinitionId;
return this;
Expand Down Expand Up @@ -189,7 +196,7 @@ public HistoricProcessInstanceQuery withRootIncidents() {
this.withRootIncidents = true;
return this;
}

public HistoricProcessInstanceQuery incidentIdIn(String... incidentIds) {
ensureNotNull("incidentIds", (Object[]) incidentIds);
this.incidentIds = incidentIds;
Expand Down Expand Up @@ -571,6 +578,10 @@ public String getProcessInstanceId() {
return processInstanceId;
}

public String getRootProcessInstanceId() {
return rootProcessInstanceId;
}

public Set<String> getProcessInstanceIds() {
return processInstanceIds;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ public class ProcessInstanceQueryImpl extends AbstractVariableQueryImpl<ProcessI

private static final long serialVersionUID = 1L;
protected String processInstanceId;
protected String rootProcessInstanceId;
protected String businessKey;
protected String businessKeyLike;
protected String processDefinitionId;
Expand Down Expand Up @@ -92,6 +93,12 @@ public ProcessInstanceQueryImpl processInstanceId(String processInstanceId) {
return this;
}

public ProcessInstanceQueryImpl rootProcessInstanceId(String rootProcessInstanceId) {
ensureNotNull("Root process instance id", rootProcessInstanceId);
this.rootProcessInstanceId = rootProcessInstanceId;
return this;
}

public ProcessInstanceQuery processInstanceIds(Set<String> processInstanceIds) {
ensureNotEmpty("Set of process instance ids", processInstanceIds);
this.processInstanceIds = processInstanceIds;
Expand Down Expand Up @@ -370,6 +377,10 @@ public String getProcessInstanceId() {
return processInstanceId;
}

public String getRootProcessInstanceId() {
return rootProcessInstanceId;
}

public Set<String> getProcessInstanceIds() {
return processInstanceIds;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,11 @@ public interface ProcessInstanceQuery extends Query<ProcessInstanceQuery, Proces
*/
ProcessInstanceQuery processInstanceIds(Set<String> processInstanceIds);

/**
* Select process instances for the given root process instance id
*/
ProcessInstanceQuery rootProcessInstanceId(String rootProcessInstanceId);

/**
* Select process instances with the given business key
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -306,6 +306,9 @@
<if test="query.processInstanceId != null">
${queryType} RES.PROC_INST_ID_ = #{query.processInstanceId}
</if>
<if test="query.rootProcessInstanceId != null">
${queryType} RES.ROOT_PROC_INST_ID_ = #{query.rootProcessInstanceId}
</if>
<if test="query.processInstanceIds != null and !query.processInstanceIds.isEmpty()">
${queryType}
<bind name="listOfIds" value="query.processInstanceIds" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -465,6 +465,9 @@
<if test="query.processInstanceId != null">
${queryType} SELF.PROC_INST_ID_ = #{query.processInstanceId}
</if>
<if test="query.rootProcessInstanceId != null">
${queryType} SELF.ROOT_PROC_INST_ID_ = #{query.rootProcessInstanceId}
</if>
<if test="query.processInstanceIds != null and !query.processInstanceIds.isEmpty()">
${queryType}
<bind name="listOfIds" value="query.processInstanceIds" />
Expand Down
Loading