提交 91190a91 编写于 作者: F falko.menge

Changed behavior of...

Changed behavior of HistoricProcessInstanceQuery.processInstanceIds(Set<String> processInstanceIds) and ProcessInstanceQuery.processInstanceIds(Set<String> processInstanceIds) when the provided Set is empty but not null and added tests for both cases
上级 9cb5f841
......@@ -16,6 +16,7 @@ package org.activiti.engine.impl;
import java.util.List;
import java.util.Set;
import org.activiti.engine.ActivitiException;
import org.activiti.engine.history.HistoricProcessInstance;
import org.activiti.engine.history.HistoricProcessInstanceQuery;
import org.activiti.engine.impl.interceptor.CommandContext;
......@@ -56,6 +57,9 @@ public class HistoricProcessInstanceQueryImpl extends AbstractQuery<HistoricProc
}
public HistoricProcessInstanceQuery processInstanceIds(Set<String> processInstanceIds) {
if (processInstanceIds == null) {
throw new ActivitiException("Set of process instance ids is null");
}
this.processInstanceIds = processInstanceIds;
return this;
}
......
......@@ -127,7 +127,7 @@
<if test="processInstanceId != null">
and E.PROC_INST_ID_ = #{processInstanceId}
</if>
<if test="processInstanceIds != null and !processInstanceIds.isEmpty()">
<if test="processInstanceIds != null">
and E.PROC_INST_ID_ in
<foreach item="item" index="index" collection="processInstanceIds" open="(" separator="," close=")">
#{item}
......
......@@ -113,7 +113,7 @@
<if test="processInstanceId != null">
HPI.PROC_INST_ID_ = #{processInstanceId}
</if>
<if test="processInstanceIds != null and !processInstanceIds.isEmpty()">
<if test="processInstanceIds != null">
and HPI.PROC_INST_ID_ in
<foreach item="item" index="index" collection="processInstanceIds" open="(" separator="," close=")">
#{item}
......
......@@ -16,6 +16,7 @@ package org.activiti.engine.test.api.history;
import java.util.HashSet;
import java.util.List;
import org.activiti.engine.ActivitiException;
import org.activiti.engine.history.HistoricProcessInstance;
import org.activiti.engine.history.HistoricProcessInstanceQuery;
import org.activiti.engine.impl.test.PluggableActivitiTestCase;
......@@ -124,4 +125,24 @@ public class HistoryServiceTest extends PluggableActivitiTestCase {
assertTrue(processInstanceIds.contains(historicProcessInstance.getId()));
}
}
@Deployment(resources = {"org/activiti/engine/test/api/oneTaskProcess.bpmn20.xml"})
public void testHistoricProcessInstanceQueryByProcessInstanceIdsEmpty() {
runtimeService.startProcessInstanceByKey("oneTaskProcess");
HistoricProcessInstanceQuery processInstanceQuery = historyService.createHistoricProcessInstanceQuery().processInstanceIds(new HashSet<String>());
assertEquals(0, processInstanceQuery.count());
List<HistoricProcessInstance> processInstances = processInstanceQuery.list();
assertTrue(processInstances.isEmpty());
}
public void testHistoricProcessInstanceQueryByProcessInstanceIdsNull() {
try {
historyService.createHistoricProcessInstanceQuery().processInstanceIds(null);
fail("ActivitiException expected");
} catch (ActivitiException re) {
assertTextPresent("Set of process instance ids is null", re.getMessage());
}
}
}
......@@ -1081,4 +1081,23 @@ public class ProcessInstanceQueryTest extends PluggableActivitiTestCase {
}
}
public void testQueryByProcessInstanceIdsEmpty() {
Set<String> processInstanceIds = new HashSet<String>();
ProcessInstanceQuery processInstanceQuery = runtimeService.createProcessInstanceQuery().processInstanceIds(processInstanceIds);
assertEquals(0, processInstanceQuery.count());
List<ProcessInstance> processInstances = processInstanceQuery.list();
assertTrue(processInstances.isEmpty());
}
public void testQueryByProcessInstanceIdsNull() {
try {
runtimeService.createProcessInstanceQuery().processInstanceIds(null);
fail("ActivitiException expected");
} catch (ActivitiException re) {
assertTextPresent("Set of process instance ids is null", re.getMessage());
}
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册