提交 747cbf6d 编写于 作者: T Tijs Rademakers

Added deployment id in query option

上级 ae214a86
......@@ -21,6 +21,7 @@ import java.util.Set;
import org.activiti.engine.ProcessEngineConfiguration;
import org.activiti.engine.query.Query;
import org.activiti.engine.runtime.ProcessInstanceQuery;
import org.activiti.engine.task.TaskQuery;
/**
* Allows programmatic querying of {@link HistoricProcessInstance}s.
......@@ -56,6 +57,11 @@ public interface HistoricProcessInstanceQuery extends Query<HistoricProcessInsta
/** Only select historic process instances that are defined by a process
* definition with the given deployment identifier. */
HistoricProcessInstanceQuery deploymentId(String deploymentId);
/**
* Only select historic process instances that are defined by a process
* definition with one of the given deployment identifiers. */
HistoricProcessInstanceQuery deploymentIdIn(List<String> deploymentIds);
/** Only select historic process instances that are completely finished. */
HistoricProcessInstanceQuery finished();
......
......@@ -96,6 +96,12 @@ public interface HistoricTaskInstanceQuery extends Query<HistoricTaskInstanceQu
*/
HistoricTaskInstanceQuery deploymentId(String deploymentId);
/**
* Only select historic task instances which are part of a (historic) process instance
* which has one of the given deployment ids.
*/
HistoricTaskInstanceQuery deploymentIdIn(List<String> deploymentIds);
/**
* Only select historic task instances with the given task name.
* This is the last name given to the task.
......
......@@ -38,6 +38,7 @@ public class HistoricProcessInstanceQueryImpl extends AbstractVariableQueryImpl<
protected String processDefinitionId;
protected String businessKey;
protected String deploymentId;
protected List<String> deploymentIds;
protected boolean finished = false;
protected boolean unfinished = false;
protected boolean deleted = false;
......@@ -134,6 +135,15 @@ public class HistoricProcessInstanceQueryImpl extends AbstractVariableQueryImpl<
}
return this;
}
public HistoricProcessInstanceQuery deploymentIdIn(List<String> deploymentIds) {
if (inOrStatement) {
orQueryObject.deploymentIds = deploymentIds;
} else {
this.deploymentIds = deploymentIds;
}
return this;
}
public HistoricProcessInstanceQuery finished() {
if (inOrStatement) {
......@@ -582,6 +592,10 @@ public class HistoricProcessInstanceQueryImpl extends AbstractVariableQueryImpl<
public String getDeploymentId() {
return deploymentId;
}
public List<String> getDeploymentIds() {
return deploymentIds;
}
public boolean isFinished() {
return finished;
......
......@@ -41,6 +41,7 @@ public class HistoricTaskInstanceQueryImpl extends AbstractVariableQueryImpl<His
protected String processDefinitionName;
protected String processDefinitionNameLike;
protected String deploymentId;
protected List<String> deploymentIds;
protected String processInstanceId;
protected String processInstanceBusinessKey;
protected String processInstanceBusinessKeyLike;
......@@ -233,6 +234,15 @@ public class HistoricTaskInstanceQueryImpl extends AbstractVariableQueryImpl<His
}
return this;
}
public HistoricTaskInstanceQuery deploymentIdIn(List<String> deploymentIds) {
if (inOrStatement) {
orQueryObject.deploymentIds = deploymentIds;
} else {
this.deploymentIds = deploymentIds;
}
return this;
}
public HistoricTaskInstanceQuery taskId(String taskId) {
if (inOrStatement) {
......@@ -1051,6 +1061,9 @@ public class HistoricTaskInstanceQueryImpl extends AbstractVariableQueryImpl<His
public String getDeploymentId() {
return deploymentId;
}
public List<String> getDeploymentIds() {
return deploymentIds;
}
public String getProcessInstanceBusinessKeyLike() {
return processInstanceBusinessKeyLike;
}
......
......@@ -45,6 +45,7 @@ public class ProcessInstanceQueryImpl extends AbstractVariableQueryImpl<ProcessI
protected Set<String> processInstanceIds;
protected String processDefinitionKey;
protected String deploymentId;
protected List<String> deploymentIds;
protected String superProcessInstanceId;
protected String subProcessInstanceId;
protected boolean excludeSubprocesses;
......@@ -212,6 +213,15 @@ public class ProcessInstanceQueryImpl extends AbstractVariableQueryImpl<ProcessI
return this;
}
public ProcessInstanceQueryImpl deploymentIdIn(List<String> deploymentIds) {
if (inOrStatement) {
this.orQueryObject.deploymentIds = deploymentIds;
} else {
this.deploymentIds = deploymentIds;
}
return this;
}
public ProcessInstanceQuery superProcessInstanceId(String superProcessInstanceId) {
if (inOrStatement) {
this.orQueryObject.superProcessInstanceId = superProcessInstanceId;
......@@ -576,6 +586,10 @@ public class ProcessInstanceQueryImpl extends AbstractVariableQueryImpl<ProcessI
public String getDeploymentId() {
return deploymentId;
}
public List<String> getDeploymentIds() {
return deploymentIds;
}
public boolean isIncludeProcessVariables() {
return includeProcessVariables;
......
......@@ -79,6 +79,7 @@ public class TaskQueryImpl extends AbstractVariableQueryImpl<TaskQuery, Task> im
protected String processDefinitionName;
protected String processDefinitionNameLike;
protected String deploymentId;
protected List<String> deploymentIds;
protected String processInstanceBusinessKey;
protected String processInstanceBusinessKeyLike;
protected String processInstanceBusinessKeyLikeIgnoreCase;
......@@ -808,6 +809,15 @@ public class TaskQueryImpl extends AbstractVariableQueryImpl<TaskQuery, Task> im
return this;
}
public TaskQuery deploymentIdIn(List<String> deploymentIds) {
if(orActive) {
orQueryObject.deploymentIds = deploymentIds;
} else {
this.deploymentIds = deploymentIds;
}
return this;
}
public TaskQuery dueDate(Date dueDate) {
if(orActive) {
orQueryObject.dueDate = dueDate;
......@@ -1169,6 +1179,10 @@ public class TaskQueryImpl extends AbstractVariableQueryImpl<TaskQuery, Task> im
public String getDeploymentId() {
return deploymentId;
}
public List<String> getDeploymentIds() {
return deploymentIds;
}
public String getProcessInstanceBusinessKeyLike() {
return processInstanceBusinessKeyLike;
......
......@@ -13,6 +13,7 @@
package org.activiti.engine.runtime;
import java.io.Serializable;
import java.util.List;
import java.util.Set;
import org.activiti.engine.ProcessEngineConfiguration;
......@@ -75,6 +76,11 @@ public interface ProcessInstanceQuery extends Query<ProcessInstanceQuery, Proces
* with the given id.
*/
ProcessInstanceQuery deploymentId(String deploymentId);
/**
* Select the process instances which are defined by one of the given deployment ids
*/
ProcessInstanceQuery deploymentIdIn(List<String> deploymentIds);
/**
* Select the process instances which are a sub process instance of the given
......
......@@ -434,6 +434,12 @@ public interface TaskQuery extends Query<TaskQuery, Task>{
*/
TaskQuery deploymentId(String deploymentId);
/**
* Only select tasks which are part of a process instance which has one of the given
* deployment ids.
*/
TaskQuery deploymentIdIn(List<String> deploymentIds);
/**
* Only select tasks with the given due date.
*/
......
......@@ -333,7 +333,7 @@
<if test="businessKey != null and includeChildExecutionsWithBusinessKeyQuery">
inner join ${prefix}ACT_RU_EXECUTION INST on RES.PROC_INST_ID_ = INST.ID_
</if>
<if test="deploymentId != null || (orQueryObject != null &amp;&amp; orQueryObject.deploymentId != null)">
<if test="deploymentId != null || (deploymentIds != null &amp;&amp; deploymentIds.size() &gt; 0) || (orQueryObject != null &amp;&amp; (orQueryObject.deploymentId != null || (orQueryObject.deploymentIds != null &amp;&amp; orQueryObject.deploymentIds.size() &gt; 0)))">
left outer join ${prefix}ACT_RE_PROCDEF DEPLOY_P ON RES.PROC_DEF_ID_ = DEPLOY_P.ID_
</if>
<where>
......@@ -376,6 +376,13 @@
<if test="deploymentId != null">
and DEPLOY_P.DEPLOYMENT_ID_ = #{deploymentId}
</if>
<if test="deploymentIds != null &amp;&amp; deploymentIds.size() &gt; 0">
and DEPLOY_P.DEPLOYMENT_ID_ IN
<foreach item="deployment" index="index" collection="deploymentIds"
open="(" separator="," close=")">
#{deployment}
</foreach>
</if>
<if test="superProcessInstanceId != null">
<!-- A sub process instance is stored under a certain *execution*, potentially nested.
A sub process instance is NOT stored under the process instanc, hence the following: -->
......@@ -517,6 +524,13 @@
<if test="orQueryObject.deploymentId != null">
or DEPLOY_P.DEPLOYMENT_ID_ = #{orQueryObject.deploymentId}
</if>
<if test="orQueryObject.deploymentIds != null &amp;&amp; orQueryObject.deploymentIds.size() &gt; 0">
or DEPLOY_P.DEPLOYMENT_ID_ IN
<foreach item="deployment" index="index" collection="orQueryObject.deploymentIds"
open="(" separator="," close=")">
#{deployment}
</foreach>
</if>
<if test="orQueryObject.superProcessInstanceId != null">
<!-- A sub process instance is stored under a certain *execution*, potentially nested.
A sub process instance is NOT stored under the process instanc, hence the following: -->
......
......@@ -225,7 +225,7 @@
left outer join ${prefix}ACT_HI_VARINST A_OR${index} on RES.PROC_INST_ID_ = A_OR${index}.PROC_INST_ID_
</foreach>
</if>
<if test="deploymentId != null || (orQueryObject != null &amp;&amp; orQueryObject.deploymentId != null)">
<if test="deploymentId != null || (deploymentIds != null &amp;&amp; deploymentIds.size() &gt; 0) || (orQueryObject != null &amp;&amp; (orQueryObject.deploymentId != null || (orQueryObject.deploymentIds != null &amp;&amp; orQueryObject.deploymentIds.size() &gt; 0)))">
left outer join ${prefix}ACT_RE_PROCDEF DEPLOY_P ON RES.PROC_DEF_ID_ = DEPLOY_P.ID_
</if>
<where>
......@@ -250,6 +250,13 @@
<if test="deploymentId != null">
and DEPLOY_P.DEPLOYMENT_ID_ = #{deploymentId}
</if>
<if test="deploymentIds != null &amp;&amp; deploymentIds.size() &gt; 0">
and DEPLOY_P.DEPLOYMENT_ID_ IN
<foreach item="deployment" index="index" collection="deploymentIds"
open="(" separator="," close=")">
#{deployment}
</foreach>
</if>
<if test="startedBefore != null">
and RES.START_TIME_ &lt;= #{startedBefore}
</if>
......@@ -389,6 +396,13 @@
<if test="orQueryObject.deploymentId != null">
or DEPLOY_P.DEPLOYMENT_ID_ = #{orQueryObject.deploymentId}
</if>
<if test="orQueryObject.deploymentIds != null &amp;&amp; orQueryObject.deploymentIds.size() &gt; 0">
or DEPLOY_P.DEPLOYMENT_ID_ IN
<foreach item="deployment" index="index" collection="orQueryObject.deploymentIds"
open="(" separator="," close=")">
#{deployment}
</foreach>
</if>
<if test="orQueryObject.startedBefore != null">
or RES.START_TIME_ &lt;= #{orQueryObject.startedBefore}
</if>
......
......@@ -265,7 +265,7 @@
<if test="processDefinitionKey != null || processDefinitionKeyLike != null || processDefinitionKeyLikeIgnoreCase != null || processDefinitionName != null || processDefinitionNameLike != null || (orQueryObject != null &amp;&amp; (orQueryObject.processDefinitionKey != null || orQueryObject.processDefinitionKeyLike != null || orQueryObject.processDefinitionKeyLikeIgnoreCase != null || orQueryObject.processDefinitionName != null || orQueryObject.processDefinitionNameLike != null))">
inner join ${prefix}ACT_RE_PROCDEF D on RES.PROC_DEF_ID_ = D.ID_
</if>
<if test="deploymentId != null || (orQueryObject != null &amp;&amp; orQueryObject.deploymentId != null)">
<if test="deploymentId != null || (deploymentIds != null &amp;&amp; deploymentIds.size() &gt; 0) || (orQueryObject != null &amp;&amp; (orQueryObject.deploymentId != null || (orQueryObject.deploymentIds != null &amp;&amp; orQueryObject.deploymentIds.size() &gt; 0)))">
left outer join ${prefix}ACT_RE_PROCDEF DEPLOY_P ON RES.PROC_DEF_ID_ = DEPLOY_P.ID_
</if>
<foreach collection="queryVariableValues" index="index" item="var">
......@@ -315,6 +315,13 @@
<if test="deploymentId != null">
and DEPLOY_P.DEPLOYMENT_ID_ = #{deploymentId}
</if>
<if test="deploymentIds != null &amp;&amp; deploymentIds.size() &gt; 0">
and DEPLOY_P.DEPLOYMENT_ID_ IN
<foreach item="deployment" index="index" collection="deploymentIds"
open="(" separator="," close=")">
#{deployment}
</foreach>
</if>
<if test="processInstanceId != null">
and RES.PROC_INST_ID_ = #{processInstanceId}
</if>
......@@ -556,6 +563,13 @@
<if test="orQueryObject.deploymentId != null">
or DEPLOY_P.DEPLOYMENT_ID_ = #{orQueryObject.deploymentId}
</if>
<if test="orQueryObject.deploymentIds != null &amp;&amp; orQueryObject.deploymentIds.size() &gt; 0">
or DEPLOY_P.DEPLOYMENT_ID_ IN
<foreach item="deployment" index="index" collection="orQueryObject.deploymentIds"
open="(" separator="," close=")">
#{deployment}
</foreach>
</if>
<if test="orQueryObject.processInstanceId != null">
or RES.PROC_INST_ID_ = #{orQueryObject.processInstanceId}
</if>
......
......@@ -315,7 +315,7 @@
<if test="processInstanceBusinessKey != null || processInstanceBusinessKeyLike != null || processInstanceBusinessKeyLikeIgnoreCase != null || (orQueryObject != null &amp;&amp; (orQueryObject.processInstanceBusinessKey != null || orQueryObject.processInstanceBusinessKeyLike != null || orQueryObject.processInstanceBusinessKeyLikeIgnoreCase != null))">
inner join ${prefix}ACT_RU_EXECUTION E on RES.PROC_INST_ID_ = E.ID_
</if>
<if test="deploymentId != null || (orQueryObject != null &amp;&amp; orQueryObject.deploymentId != null)">
<if test="deploymentId != null || (deploymentIds != null &amp;&amp; deploymentIds.size() &gt; 0) || (orQueryObject != null &amp;&amp; (orQueryObject.deploymentId != null || (orQueryObject.deploymentIds != null &amp;&amp; orQueryObject.deploymentIds.size() &gt; 0)))">
left outer join ${prefix}ACT_RE_PROCDEF DEPLOY_P ON RES.PROC_DEF_ID_ = DEPLOY_P.ID_
</if>
<where>
......@@ -427,6 +427,13 @@
<if test="deploymentId != null">
and DEPLOY_P.DEPLOYMENT_ID_ = #{deploymentId}
</if>
<if test="deploymentIds != null &amp;&amp; deploymentIds.size() &gt; 0">
and DEPLOY_P.DEPLOYMENT_ID_ IN
<foreach item="deployment" index="index" collection="deploymentIds"
open="(" separator="," close=")">
#{deployment}
</foreach>
</if>
<if test="dueDate != null">
and RES.DUE_DATE_ = #{dueDate}
</if>
......@@ -686,6 +693,13 @@
<if test="orQueryObject.deploymentId != null">
or DEPLOY_P.DEPLOYMENT_ID_ = #{orQueryObject.deploymentId}
</if>
<if test="orQueryObject.deploymentIds != null &amp;&amp; orQueryObject.deploymentIds.size() &gt; 0">
or DEPLOY_P.DEPLOYMENT_ID_ IN
<foreach item="deployment" index="index" collection="orQueryObject.deploymentIds"
open="(" separator="," close=")">
#{deployment}
</foreach>
</if>
<if test="orQueryObject.dueDate != null">
or RES.DUE_DATE_ = #{orQueryObject.dueDate}
</if>
......
......@@ -266,6 +266,31 @@ public class HistoryServiceTest extends PluggableActivitiTestCase {
assertEquals(0, processInstanceQuery.count());
}
@Deployment(resources = { "org/activiti/engine/test/api/oneTaskProcess.bpmn20.xml", "org/activiti/engine/test/api/runtime/oneTaskProcess2.bpmn20.xml" })
public void testHistoricProcessInstanceQueryByDeploymentIdIn() {
org.activiti.engine.repository.Deployment deployment = repositoryService.createDeploymentQuery().singleResult();
HashSet<String> processInstanceIds = new HashSet<String>();
for (int i = 0; i < 4; i++) {
processInstanceIds.add(runtimeService.startProcessInstanceByKey("oneTaskProcess", i + "").getId());
}
processInstanceIds.add(runtimeService.startProcessInstanceByKey("oneTaskProcess2", "1").getId());
List<String> deploymentIds = new ArrayList<String>();
deploymentIds.add(deployment.getId());
deploymentIds.add("invalid");
HistoricProcessInstanceQuery processInstanceQuery = historyService.createHistoricProcessInstanceQuery().deploymentIdIn(deploymentIds);
assertEquals(5, processInstanceQuery.count());
List<HistoricProcessInstance> processInstances = processInstanceQuery.list();
assertNotNull(processInstances);
assertEquals(5, processInstances.size());
deploymentIds = new ArrayList<String>();
deploymentIds.add("invalid");
processInstanceQuery = historyService.createHistoricProcessInstanceQuery().deploymentIdIn(deploymentIds);
assertEquals(0, processInstanceQuery.count());
}
@Deployment(resources = { "org/activiti/engine/test/api/oneTaskProcess.bpmn20.xml", "org/activiti/engine/test/api/runtime/oneTaskProcess2.bpmn20.xml" })
public void testHistoricTaskInstanceQueryByDeploymentId() {
org.activiti.engine.repository.Deployment deployment = repositoryService.createDeploymentQuery().singleResult();
......@@ -286,6 +311,34 @@ public class HistoryServiceTest extends PluggableActivitiTestCase {
assertEquals(0, taskInstanceQuery.count());
}
@Deployment(resources = { "org/activiti/engine/test/api/oneTaskProcess.bpmn20.xml", "org/activiti/engine/test/api/runtime/oneTaskProcess2.bpmn20.xml" })
public void testHistoricTaskInstanceQueryByDeploymentIdIn() {
org.activiti.engine.repository.Deployment deployment = repositoryService.createDeploymentQuery().singleResult();
HashSet<String> processInstanceIds = new HashSet<String>();
for (int i = 0; i < 4; i++) {
processInstanceIds.add(runtimeService.startProcessInstanceByKey("oneTaskProcess", i + "").getId());
}
processInstanceIds.add(runtimeService.startProcessInstanceByKey("oneTaskProcess2", "1").getId());
List<String> deploymentIds = new ArrayList<String>();
deploymentIds.add(deployment.getId());
HistoricTaskInstanceQuery taskInstanceQuery = historyService.createHistoricTaskInstanceQuery().deploymentIdIn(deploymentIds);
assertEquals(5, taskInstanceQuery.count());
List<HistoricTaskInstance> taskInstances = taskInstanceQuery.list();
assertNotNull(taskInstances);
assertEquals(5, taskInstances.size());
deploymentIds.add("invalid");
taskInstanceQuery = historyService.createHistoricTaskInstanceQuery().deploymentIdIn(deploymentIds);
assertEquals(5, taskInstanceQuery.count());
deploymentIds = new ArrayList<String>();
deploymentIds.add("invalid");
taskInstanceQuery = historyService.createHistoricTaskInstanceQuery().deploymentIdIn(deploymentIds);
assertEquals(0, taskInstanceQuery.count());
}
@Deployment(resources = { "org/activiti/engine/test/api/oneTaskProcess.bpmn20.xml", "org/activiti/engine/test/api/runtime/oneTaskProcess2.bpmn20.xml" })
public void testHistoricTaskInstanceOrQueryByDeploymentId() {
org.activiti.engine.repository.Deployment deployment = repositoryService.createDeploymentQuery().singleResult();
......@@ -311,6 +364,40 @@ public class HistoryServiceTest extends PluggableActivitiTestCase {
taskInstanceQuery = historyService.createHistoricTaskInstanceQuery().taskDefinitionKey("theTask").or().deploymentId("invalid").endOr();
assertEquals(0, taskInstanceQuery.count());
}
@Deployment(resources = { "org/activiti/engine/test/api/oneTaskProcess.bpmn20.xml", "org/activiti/engine/test/api/runtime/oneTaskProcess2.bpmn20.xml" })
public void testHistoricTaskInstanceOrQueryByDeploymentIdIn() {
org.activiti.engine.repository.Deployment deployment = repositoryService.createDeploymentQuery().singleResult();
HashSet<String> processInstanceIds = new HashSet<String>();
for (int i = 0; i < 4; i++) {
processInstanceIds.add(runtimeService.startProcessInstanceByKey("oneTaskProcess", i + "").getId());
}
processInstanceIds.add(runtimeService.startProcessInstanceByKey("oneTaskProcess2", "1").getId());
List<String> deploymentIds = new ArrayList<String>();
deploymentIds.add(deployment.getId());
HistoricTaskInstanceQuery taskInstanceQuery = historyService.createHistoricTaskInstanceQuery().or().deploymentIdIn(deploymentIds).processDefinitionId("invalid").endOr();
assertEquals(5, taskInstanceQuery.count());
List<HistoricTaskInstance> taskInstances = taskInstanceQuery.list();
assertNotNull(taskInstances);
assertEquals(5, taskInstances.size());
deploymentIds.add("invalid");
taskInstanceQuery = historyService.createHistoricTaskInstanceQuery().or().deploymentIdIn(deploymentIds).processDefinitionId("invalid").endOr();
assertEquals(5, taskInstanceQuery.count());
deploymentIds = new ArrayList<String>();
deploymentIds.add("invalid");
taskInstanceQuery = historyService.createHistoricTaskInstanceQuery().or().deploymentIdIn(deploymentIds).processDefinitionId("invalid").endOr();
assertEquals(0, taskInstanceQuery.count());
taskInstanceQuery = historyService.createHistoricTaskInstanceQuery().or().taskDefinitionKey("theTask").deploymentIdIn(deploymentIds).endOr();
assertEquals(5, taskInstanceQuery.count());
taskInstanceQuery = historyService.createHistoricTaskInstanceQuery().taskDefinitionKey("theTask").or().deploymentIdIn(deploymentIds).endOr();
assertEquals(0, taskInstanceQuery.count());
}
@Deployment(resources = { "org/activiti/engine/test/api/runtime/concurrentExecution.bpmn20.xml" })
public void testHistoricVariableInstancesOnParallelExecution() {
......
......@@ -227,6 +227,21 @@ public class ProcessInstanceQueryTest extends PluggableActivitiTestCase {
assertEquals(5, runtimeService.createProcessInstanceQuery().deploymentId(deployment.getId()).count());
}
public void testQueryByDeploymentIdIn() {
List<String> deploymentIds = new ArrayList<String>();
deploymentIds.add(deployment.getId());
List<ProcessInstance> instances = runtimeService.createProcessInstanceQuery().deploymentIdIn(deploymentIds).list();
assertEquals(5, instances.size());
ProcessInstance processInstance = instances.get(0);
assertEquals(deployment.getId(), processInstance.getDeploymentId());
assertEquals(new Integer(1), processInstance.getProcessDefinitionVersion());
assertEquals(PROCESS_DEFINITION_KEY, processInstance.getProcessDefinitionKey());
assertEquals("oneTaskProcessName", processInstance.getProcessDefinitionName());
assertEquals(5, runtimeService.createProcessInstanceQuery().deploymentIdIn(deploymentIds).count());
}
public void testOrQueryByDeploymentId() {
List<ProcessInstance> instances = runtimeService.createProcessInstanceQuery().or().deploymentId(deployment.getId()).processDefinitionId("undefined").endOr().list();
assertEquals(5, instances.size());
......@@ -235,7 +250,22 @@ public class ProcessInstanceQueryTest extends PluggableActivitiTestCase {
assertEquals(new Integer(1), processInstance.getProcessDefinitionVersion());
assertEquals(PROCESS_DEFINITION_KEY, processInstance.getProcessDefinitionKey());
assertEquals("oneTaskProcessName", processInstance.getProcessDefinitionName());
assertEquals(5, runtimeService.createProcessInstanceQuery().deploymentId(deployment.getId()).count());
assertEquals(5, runtimeService.createProcessInstanceQuery().or().deploymentId(deployment.getId()).processDefinitionId("undefined").endOr().count());
}
public void testOrQueryByDeploymentIdIn() {
List<String> deploymentIds = new ArrayList<String>();
deploymentIds.add(deployment.getId());
List<ProcessInstance> instances = runtimeService.createProcessInstanceQuery().or().deploymentIdIn(deploymentIds).processDefinitionId("undefined").endOr().list();
assertEquals(5, instances.size());
ProcessInstance processInstance = instances.get(0);
assertEquals(deployment.getId(), processInstance.getDeploymentId());
assertEquals(new Integer(1), processInstance.getProcessDefinitionVersion());
assertEquals(PROCESS_DEFINITION_KEY, processInstance.getProcessDefinitionKey());
assertEquals("oneTaskProcessName", processInstance.getProcessDefinitionName());
assertEquals(5, runtimeService.createProcessInstanceQuery().or().deploymentIdIn(deploymentIds).processDefinitionId("undefined").endOr().count());
}
public void testQueryByInvalidDeploymentId() {
......
......@@ -2251,6 +2251,61 @@ public class TaskQueryTest extends PluggableActivitiTestCase {
.deploymentId("invalid").count());
}
@Deployment(resources={"org/activiti/engine/test/api/task/TaskQueryTest.testProcessDefinition.bpmn20.xml"})
public void testQueryByDeploymentIdIn() throws Exception {
org.activiti.engine.repository.Deployment deployment = repositoryService.createDeploymentQuery().singleResult();
runtimeService.startProcessInstanceByKey("oneTaskProcess");
List<String> deploymentIds = new ArrayList<String>();
deploymentIds.add(deployment.getId());
assertNotNull(taskService.createTaskQuery().deploymentIdIn(deploymentIds).singleResult());
assertEquals(1, taskService.createTaskQuery().deploymentIdIn(deploymentIds).count());
deploymentIds.add("invalid");
assertNotNull(taskService.createTaskQuery().deploymentIdIn(deploymentIds).singleResult());
assertEquals(1, taskService.createTaskQuery().deploymentIdIn(deploymentIds).count());
deploymentIds = new ArrayList<String>();
deploymentIds.add("invalid");
assertNull(taskService.createTaskQuery().deploymentIdIn(deploymentIds).singleResult());
assertEquals(0, taskService.createTaskQuery().deploymentIdIn(deploymentIds).count());
}
@Deployment(resources={"org/activiti/engine/test/api/task/TaskQueryTest.testProcessDefinition.bpmn20.xml"})
public void testQueryByDeploymentIdInOr() throws Exception {
org.activiti.engine.repository.Deployment deployment = repositoryService.createDeploymentQuery().singleResult();
runtimeService.startProcessInstanceByKey("oneTaskProcess");
List<String> deploymentIds = new ArrayList<String>();
deploymentIds.add(deployment.getId());
assertNotNull(taskService.createTaskQuery()
.or()
.taskId("invalid")
.deploymentIdIn(deploymentIds).singleResult());
assertEquals(1, taskService.createTaskQuery()
.or()
.taskId("invalid")
.deploymentIdIn(deploymentIds).count());
deploymentIds.add("invalid");
assertNotNull(taskService.createTaskQuery()
.or()
.taskId("invalid")
.deploymentIdIn(deploymentIds).singleResult());
assertEquals(1, taskService.createTaskQuery()
.or()
.taskId("invalid")
.deploymentIdIn(deploymentIds).count());
deploymentIds = new ArrayList<String>();
deploymentIds.add("invalid");
assertNull(taskService.createTaskQuery().deploymentIdIn(deploymentIds).singleResult());
assertEquals(0, taskService.createTaskQuery()
.or()
.taskId("invalid")
.deploymentIdIn(deploymentIds).count());
}
public void testQueryByTaskNameLikeIgnoreCase() {
// Runtime
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册