[jbpm-commits] JBoss JBPM SVN: r3704 - in jbpm4/trunk/modules: pvm/src/main/java/org/jbpm/pvm/internal/cmd and 6 other directories.
do-not-reply at jboss.org
do-not-reply at jboss.org
Thu Jan 22 15:25:15 EST 2009
Author: tom.baeyens at jboss.com
Date: 2009-01-22 15:25:15 -0500 (Thu, 22 Jan 2009)
New Revision: 3704
Added:
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/HqlQueryOldCmd.java
Removed:
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/HqlQueryCmd.java
jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/internal/cmd/GetPersonalTaskListCmd.java
Modified:
jbpm4/trunk/modules/api/src/main/java/org/jbpm/TaskQuery.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/svc/ExecutionQueryImpl.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/svc/ProcessDefinitionQueryImpl.java
jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/internal/hibernate/HibernateTaskDbSession.java
jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/internal/model/TaskQueryImpl.java
jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/internal/model/TaskServiceImpl.java
jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/session/TaskDbSession.java
jbpm4/trunk/modules/test-db/src/main/java/org/jbpm/test/task/TaskListTest.java
Log:
added task queries
Modified: jbpm4/trunk/modules/api/src/main/java/org/jbpm/TaskQuery.java
===================================================================
--- jbpm4/trunk/modules/api/src/main/java/org/jbpm/TaskQuery.java 2009-01-22 17:59:15 UTC (rev 3703)
+++ jbpm4/trunk/modules/api/src/main/java/org/jbpm/TaskQuery.java 2009-01-22 20:25:15 UTC (rev 3704)
@@ -31,6 +31,7 @@
*/
public interface TaskQuery {
+ public static final String NAME = "name";
public static final String ASSIGNEE = "assignee";
public static final String CREATEDATE = "create-date";
public static final String DUEDATE = "due-date";
Deleted: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/HqlQueryCmd.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/HqlQueryCmd.java 2009-01-22 17:59:15 UTC (rev 3703)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/HqlQueryCmd.java 2009-01-22 20:25:15 UTC (rev 3704)
@@ -1,74 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jbpm.pvm.internal.cmd;
-
-import java.util.List;
-
-import org.hibernate.Query;
-import org.hibernate.Session;
-import org.jbpm.JbpmException;
-import org.jbpm.cmd.Command;
-import org.jbpm.env.Environment;
-import org.jbpm.log.Log;
-
-
-/**
- * @author Tom Baeyens
- */
-public class HqlQueryCmd implements Command<List<Object>> {
-
- private static final long serialVersionUID = 1L;
-
- private static Log log = Log.getLog(HqlQueryCmd.class.getName());
-
- String hql;
- Integer firstResult;
- Integer maxResults;
-
- public HqlQueryCmd(String hql, Integer firstResult, Integer maxResults) {
- this.hql = hql;
- this.firstResult = firstResult;
- this.maxResults = maxResults;
- }
-
- public List<Object> execute(Environment environment) throws Exception {
- Session session = environment.get(Session.class);
- if (session==null) {
- throw new JbpmException("no hibernate-session defined in configuration");
- }
-
- Query query = session.createQuery(hql);
- if (firstResult!=null) {
- query.setFirstResult(firstResult);
- }
- if (maxResults!=null) {
- query.setMaxResults(maxResults);
- }
-
- if (log.isDebugEnabled()) {
- log.debug("executing hql: ");
- log.debug(hql);
- }
-
- return query.list();
- }
-}
Added: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/HqlQueryOldCmd.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/HqlQueryOldCmd.java (rev 0)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/HqlQueryOldCmd.java 2009-01-22 20:25:15 UTC (rev 3704)
@@ -0,0 +1,74 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jbpm.pvm.internal.cmd;
+
+import java.util.List;
+
+import org.hibernate.Query;
+import org.hibernate.Session;
+import org.jbpm.JbpmException;
+import org.jbpm.cmd.Command;
+import org.jbpm.env.Environment;
+import org.jbpm.log.Log;
+
+
+/**
+ * @author Tom Baeyens
+ */
+public class HqlQueryOldCmd implements Command<List<Object>> {
+
+ private static final long serialVersionUID = 1L;
+
+ private static Log log = Log.getLog(HqlQueryOldCmd.class.getName());
+
+ String hql;
+ Integer firstResult;
+ Integer maxResults;
+
+ public HqlQueryOldCmd(String hql, Integer firstResult, Integer maxResults) {
+ this.hql = hql;
+ this.firstResult = firstResult;
+ this.maxResults = maxResults;
+ }
+
+ public List<Object> execute(Environment environment) throws Exception {
+ Session session = environment.get(Session.class);
+ if (session==null) {
+ throw new JbpmException("no hibernate-session defined in configuration");
+ }
+
+ Query query = session.createQuery(hql);
+ if (firstResult!=null) {
+ query.setFirstResult(firstResult);
+ }
+ if (maxResults!=null) {
+ query.setMaxResults(maxResults);
+ }
+
+ if (log.isDebugEnabled()) {
+ log.debug("executing hql: ");
+ log.debug(hql);
+ }
+
+ return query.list();
+ }
+}
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/svc/ExecutionQueryImpl.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/svc/ExecutionQueryImpl.java 2009-01-22 17:59:15 UTC (rev 3703)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/svc/ExecutionQueryImpl.java 2009-01-22 20:25:15 UTC (rev 3704)
@@ -26,7 +26,7 @@
import org.jbpm.Execution;
import org.jbpm.ExecutionQuery;
import org.jbpm.cmd.CommandService;
-import org.jbpm.pvm.internal.cmd.HqlQueryCmd;
+import org.jbpm.pvm.internal.cmd.HqlQueryOldCmd;
import org.jbpm.pvm.internal.model.ExecutionImpl;
@@ -97,7 +97,7 @@
protected List<Execution> execute() {
String hql = buildHql();
- return (List) commandService.execute(new HqlQueryCmd(hql, firstResult, maxResults));
+ return (List) commandService.execute(new HqlQueryOldCmd(hql, firstResult, maxResults));
}
public ExecutionQuery onlyProcessInstances() {
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/svc/ProcessDefinitionQueryImpl.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/svc/ProcessDefinitionQueryImpl.java 2009-01-22 17:59:15 UTC (rev 3703)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/svc/ProcessDefinitionQueryImpl.java 2009-01-22 20:25:15 UTC (rev 3704)
@@ -26,7 +26,7 @@
import org.jbpm.ProcessDefinition;
import org.jbpm.ProcessDefinitionQuery;
import org.jbpm.cmd.CommandService;
-import org.jbpm.pvm.internal.cmd.HqlQueryCmd;
+import org.jbpm.pvm.internal.cmd.HqlQueryOldCmd;
import org.jbpm.pvm.internal.model.ProcessDefinitionImpl;
@@ -81,7 +81,7 @@
protected List<ProcessDefinition> execute() {
String hql = buildHql();
- return (List) commandService.execute(new HqlQueryCmd(hql, firstResult, maxResults));
+ return (List) commandService.execute(new HqlQueryOldCmd(hql, firstResult, maxResults));
}
Deleted: jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/internal/cmd/GetPersonalTaskListCmd.java
===================================================================
--- jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/internal/cmd/GetPersonalTaskListCmd.java 2009-01-22 17:59:15 UTC (rev 3703)
+++ jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/internal/cmd/GetPersonalTaskListCmd.java 2009-01-22 20:25:15 UTC (rev 3704)
@@ -1,53 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jbpm.task.internal.cmd;
-
-import java.util.List;
-
-import org.jbpm.cmd.Command;
-import org.jbpm.env.Environment;
-import org.jbpm.task.Task;
-import org.jbpm.task.session.TaskDbSession;
-
-
-/**
- * @author Tom Baeyens
- */
-public class GetPersonalTaskListCmd implements Command<List<Task>> {
-
- private static final long serialVersionUID = 1L;
-
- protected String userId;
- protected int firstResult;
- protected int maxResults;
-
- public GetPersonalTaskListCmd(String userId, int firstResult, int maxResults) {
- this.userId = userId;
- this.firstResult = firstResult;
- this.maxResults = maxResults;
- }
-
- public List<Task> execute(Environment environment) {
- TaskDbSession taskDbession = environment.get(TaskDbSession.class);
- return taskDbession.findPersonalTasks(userId, firstResult, maxResults);
- }
-}
Modified: jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/internal/hibernate/HibernateTaskDbSession.java
===================================================================
--- jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/internal/hibernate/HibernateTaskDbSession.java 2009-01-22 17:59:15 UTC (rev 3703)
+++ jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/internal/hibernate/HibernateTaskDbSession.java 2009-01-22 20:25:15 UTC (rev 3704)
@@ -22,11 +22,9 @@
package org.jbpm.task.internal.hibernate;
import java.io.Serializable;
-import java.util.List;
import org.hibernate.criterion.Restrictions;
import org.jbpm.pvm.internal.hibernate.HibernateDbSession;
-import org.jbpm.task.Task;
import org.jbpm.task.internal.model.TaskImpl;
import org.jbpm.task.session.TaskDbSession;
@@ -43,16 +41,6 @@
.uniqueResult();
}
- public List<Task> findPersonalTasks(String userId, int firstResult, int maxResults) {
- // TODO maybe we should move these criteria queries to hql queries in the
- // hbm file so that users can easily customize.
- return session.createCriteria(TaskImpl.class)
- .add(Restrictions.eq("assignee", userId))
- .setFirstResult(firstResult)
- .setMaxResults(maxResults)
- .list();
- }
-
public void saveTask(TaskImpl task) {
if (! task.isPersisted()) {
Serializable dbid = session.save(task);
Modified: jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/internal/model/TaskQueryImpl.java
===================================================================
--- jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/internal/model/TaskQueryImpl.java 2009-01-22 17:59:15 UTC (rev 3703)
+++ jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/internal/model/TaskQueryImpl.java 2009-01-22 20:25:15 UTC (rev 3704)
@@ -23,20 +23,30 @@
import java.util.List;
+import org.hibernate.Query;
+import org.hibernate.Session;
import org.jbpm.TaskQuery;
+import org.jbpm.cmd.Command;
import org.jbpm.cmd.CommandService;
+import org.jbpm.env.Environment;
import org.jbpm.task.Task;
-import org.jbpm.task.internal.cmd.HqlQueryCmd;
/**
* @author Tom Baeyens
*/
-public class TaskQueryImpl implements TaskQuery {
+public class TaskQueryImpl implements TaskQuery, Command<List<Task>> {
+ private static final long serialVersionUID = 1L;
+
+ private static final String UNASSIGNED = "unassigned";
+
protected CommandService commandService;
protected String assignee = null;
+ protected int[] page = null;
+ protected boolean hasWhereClause = false;
+ protected String orderByClause = null;
public TaskQueryImpl(CommandService commandService) {
this.commandService = commandService;
@@ -44,23 +54,79 @@
public TaskQuery assignee(String assignee) {
this.assignee = assignee;
+ this.hasWhereClause = true;
return this;
}
+ public TaskQuery unassigned() {
+ this.assignee = UNASSIGNED;
+ this.hasWhereClause = true;
+ return this;
+ }
+
public TaskQuery orderAsc(String property) {
- return null;
+ addOrderByClause(property, "asc");
+ return this;
}
public TaskQuery orderDesc(String property) {
- return null;
+ addOrderByClause(property, "desc");
+ return this;
}
+ protected void addOrderByClause(String property, String direction) {
+ if (orderByClause==null) {
+ orderByClause = "";
+ } else {
+ orderByClause += ", ";
+ }
+ orderByClause += "task."+property+" "+direction;
+ }
+
public TaskQuery page(int firstResult, int maxResults) {
- return null;
+ page = new int[]{firstResult, maxResults};
+ return this;
}
public List<Task> execute() {
- // TODO
- return commandService.execute(null);
+ return commandService.execute(this);
}
+
+ public List<Task> execute(Environment environment){
+ StringBuffer hql = new StringBuffer();
+ hql.append("select task ");
+ hql.append("from ");
+ hql.append(TaskImpl.class.getName());
+ hql.append(" as task ");
+
+ if (hasWhereClause) {
+ hql.append("where ");
+ }
+
+ if (assignee==UNASSIGNED) {
+ hql.append("task.assignee is null ");
+ } else if (assignee!=null) {
+ hql.append("task.assignee = :assignee ");
+ }
+
+ if (orderByClause!=null) {
+ hql.append("order by ");
+ hql.append(orderByClause);
+ }
+
+ Session session = environment.get(Session.class);
+ String hqlText = hql.toString();
+ Query query = session.createQuery(hqlText);
+
+ if ( (assignee!=UNASSIGNED) && (assignee!=null) ) {
+ query.setString("assignee", assignee);
+ }
+
+ if (page!=null) {
+ query.setFirstResult(page[0]);
+ query.setMaxResults(page[1]);
+ }
+
+ return query.list();
+ }
}
Modified: jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/internal/model/TaskServiceImpl.java
===================================================================
--- jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/internal/model/TaskServiceImpl.java 2009-01-22 17:59:15 UTC (rev 3703)
+++ jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/internal/model/TaskServiceImpl.java 2009-01-22 20:25:15 UTC (rev 3704)
@@ -28,10 +28,9 @@
import org.jbpm.cmd.CommandService;
import org.jbpm.task.Role;
import org.jbpm.task.Task;
-import org.jbpm.task.internal.cmd.NewTaskCmd;
import org.jbpm.task.internal.cmd.DeleteTaskCmd;
-import org.jbpm.task.internal.cmd.GetPersonalTaskListCmd;
import org.jbpm.task.internal.cmd.GetTaskCmd;
+import org.jbpm.task.internal.cmd.NewTaskCmd;
import org.jbpm.task.internal.cmd.SaveTaskCmd;
import org.jbpm.task.internal.cmd.SubmitTaskCmd;
@@ -89,8 +88,12 @@
return null;
}
- public List<Task> getPersonalTaskList(String userId, int firstResult, int maxResults) {
- return commandService.execute(new GetPersonalTaskListCmd(userId, firstResult, maxResults));
+ public List<Task> getPersonalTaskList(String assignee, int firstResult, int maxResults) {
+ return createTaskQuery()
+ .assignee(assignee)
+ .orderDesc(TaskQuery.PRIORITY)
+ .page(firstResult, maxResults)
+ .execute();
}
public List<Task> getGroupTaskList(String userId, int firstResult, int maxResults) {
Modified: jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/session/TaskDbSession.java
===================================================================
--- jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/session/TaskDbSession.java 2009-01-22 17:59:15 UTC (rev 3703)
+++ jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/session/TaskDbSession.java 2009-01-22 20:25:15 UTC (rev 3704)
@@ -21,10 +21,7 @@
*/
package org.jbpm.task.session;
-import java.util.List;
-
import org.jbpm.session.DbSession;
-import org.jbpm.task.Task;
import org.jbpm.task.internal.model.TaskImpl;
/**
@@ -35,7 +32,5 @@
TaskImpl findTaskById(String taskId);
- List<Task> findPersonalTasks(String userId, int firstResult, int maxResults);
-
void saveTask(TaskImpl task);
}
Modified: jbpm4/trunk/modules/test-db/src/main/java/org/jbpm/test/task/TaskListTest.java
===================================================================
--- jbpm4/trunk/modules/test-db/src/main/java/org/jbpm/test/task/TaskListTest.java 2009-01-22 17:59:15 UTC (rev 3703)
+++ jbpm4/trunk/modules/test-db/src/main/java/org/jbpm/test/task/TaskListTest.java 2009-01-22 20:25:15 UTC (rev 3704)
@@ -23,6 +23,7 @@
import java.util.List;
+import org.jbpm.TaskQuery;
import org.jbpm.task.Task;
import org.jbpm.test.DbTestCase;
@@ -32,46 +33,167 @@
*/
public class TaskListTest extends DbTestCase {
- public void testDefaultScenario() {
+ public void testPersonalTaskList() {
Task task = taskService.newTask();
task.setName("do laundry");
task.setAssignee("johndoe");
saveTask(task);
task = taskService.newTask();
+ task.setName("get good idea");
+ task.setAssignee("joesmoe");
+ saveTask(task);
+
+ task = taskService.newTask();
+ task.setName("find venture capital");
+ task.setAssignee("joesmoe");
+ saveTask(task);
+
+ task = taskService.newTask();
+ task.setName("start new business");
+ task.setAssignee("joesmoe");
+ saveTask(task);
+
+ List<Task> taskList = taskService.getPersonalTaskList("johndoe", 0, 10);
+ assertNotNull(taskList);
+
+ assertEquals("do laundry", taskList.get(0).getName());
+ assertEquals(1, taskList.size());
+
+ taskList = taskService.getPersonalTaskList("joesmoe", 0, 10);
+ assertNotNull(taskList);
+
+ assertContainsTask(taskList, "get good idea");
+ assertContainsTask(taskList, "start new business");
+ assertContainsTask(taskList, "find venture capital");
+
+ assertEquals(3, taskList.size());
+ }
+
+ public void testPersonalTaskListDefaultSortOrder() {
+ Task task = taskService.newTask();
+ task.setName("get good idea");
+ task.setAssignee("joesmoe");
+ task.setPriority(3);
+ saveTask(task);
+
+ task = taskService.newTask();
+ task.setName("find venture capital");
+ task.setAssignee("joesmoe");
+ task.setPriority(2);
+ saveTask(task);
+
+ task = taskService.newTask();
+ task.setName("start new business");
+ task.setAssignee("joesmoe");
+ task.setPriority(1);
+ saveTask(task);
+
+ task = taskService.newTask();
+ task.setName("take a day off");
+ task.setAssignee("joesmoe");
+ task.setPriority(-5);
+ saveTask(task);
+
+ task = taskService.newTask();
+ task.setName("make profit");
+ task.setAssignee("joesmoe");
+ task.setPriority(10);
+ saveTask(task);
+
+ List<Task> taskList = taskService.getPersonalTaskList("joesmoe", 0, 10);
+ assertNotNull(taskList);
+
+ assertEquals("make profit", taskList.get(0).getName());
+ assertEquals("get good idea", taskList.get(1).getName());
+ assertEquals("find venture capital", taskList.get(2).getName());
+ assertEquals("start new business", taskList.get(3).getName());
+ assertEquals("take a day off", taskList.get(4).getName());
+
+ assertEquals(5, taskList.size());
+ }
+
+ public void testSimplestTaskQuery() {
+ Task task = taskService.newTask();
+ task.setName("do laundry");
+ task.setAssignee("johndoe");
+ task.setPriority(3);
+ saveTask(task);
+
+ task = taskService.newTask();
task.setName("change dyper");
task.setAssignee("johndoe");
+ task.setPriority(1);
saveTask(task);
task = taskService.newTask();
task.setName("start new business");
task.setAssignee("joesmoe");
+ task.setPriority(4);
saveTask(task);
task = taskService.newTask();
task.setName("find venture capital");
- task.setAssignee("joesmoe");
+ task.setPriority(4);
saveTask(task);
- /*
- List<Task> taskList = taskService.getPersonalTaskList("johndoe", 0, 10);
+ List<Task> taskList = taskService
+ .createTaskQuery()
+ .execute();
assertNotNull(taskList);
- task = taskList.get(0);
- assertEquals("johndoe", task.getAssignee());
- assertEquals("do laundry", task.getName());
+ assertContainsTask(taskList, "do laundry");
+ assertContainsTask(taskList, "change dyper");
+ assertContainsTask(taskList, "start new business");
+ assertContainsTask(taskList, "find venture capital");
- task = taskList.get(1);
- assertEquals("johndoe", task.getAssignee());
- assertEquals("do laundry", task.getName());
+ assertEquals(4, taskList.size());
+ }
- assertEquals(2, taskList.size());
+ public void testSimplestTaskQuerySortBy() {
+ Task task = taskService.newTask();
+ task.setName("do laundry");
+ task.setAssignee("johndoe");
+ task.setPriority(3);
+ saveTask(task);
+
+ task = taskService.newTask();
+ task.setName("change dyper");
+ task.setAssignee("johndoe");
+ task.setPriority(1);
+ saveTask(task);
+
+ task = taskService.newTask();
+ task.setName("start new business");
+ task.setAssignee("joesmoe");
+ task.setPriority(4);
+ saveTask(task);
+
+ task = taskService.newTask();
+ task.setName("find venture capital");
+ task.setPriority(7);
+ saveTask(task);
+
+ List<Task> taskList = taskService
+ .createTaskQuery()
+ .orderAsc(TaskQuery.NAME)
+ .execute();
+ assertNotNull(taskList);
-
- taskService.submitTask(task.getId());
-
- assertEquals(0, taskService.getPersonalTaskList("johndoe", 0, 10).size());
-
- */
+ assertEquals("change dyper", taskList.get(0).getName());
+ assertEquals("do laundry", taskList.get(1).getName());
+ assertEquals("find venture capital", taskList.get(2).getName());
+ assertEquals("start new business", taskList.get(3).getName());
+
+ assertEquals(4, taskList.size());
}
+
+ public void assertContainsTask(List<Task> taskList, String taskName) {
+ for (Task task : taskList) {
+ if (taskName.equals(task.getName())) {
+ return;
+ }
+ }
+ fail("tasklist doesn't contain task '"+taskName+"': "+taskList);
+ }
}
More information about the jbpm-commits
mailing list