[jbpm-commits] JBoss JBPM SVN: r5484 - in jbpm3/branches/jbpm-3.2-soa/modules/core/src: test/java/org/jbpm/taskmgmt/exe and 1 other directory.

do-not-reply at jboss.org do-not-reply at jboss.org
Mon Aug 17 22:20:19 EDT 2009


Author: alex.guizar at jboss.com
Date: 2009-08-17 22:20:19 -0400 (Mon, 17 Aug 2009)
New Revision: 5484

Modified:
   jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/taskmgmt/exe/TaskInstance.java
   jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/taskmgmt/exe/TaskVariablesDbTest.java
Log:
test task variable query

Modified: jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/taskmgmt/exe/TaskInstance.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/taskmgmt/exe/TaskInstance.java	2009-08-18 02:06:38 UTC (rev 5483)
+++ jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/taskmgmt/exe/TaskInstance.java	2009-08-18 02:20:19 UTC (rev 5484)
@@ -335,8 +335,8 @@
   }
 
   /**
-   * cancels this task. This task intance will be marked as cancelled and as ended. But cancellation
-   * doesn't influence singalling and continuation of process execution.
+   * cancels this task. This task instance will be marked as cancelled and as ended. But cancellation
+   * doesn't influence signalling and continuation of process execution.
    */
   public void cancel() {
     markAsCancelled();

Modified: jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/taskmgmt/exe/TaskVariablesDbTest.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/taskmgmt/exe/TaskVariablesDbTest.java	2009-08-18 02:06:38 UTC (rev 5483)
+++ jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/taskmgmt/exe/TaskVariablesDbTest.java	2009-08-18 02:20:19 UTC (rev 5484)
@@ -24,10 +24,17 @@
 import java.util.HashMap;
 import java.util.Map;
 
+import org.hibernate.Hibernate;
+import org.hibernate.criterion.Restrictions;
+
 import org.jbpm.context.exe.ContextInstance;
 import org.jbpm.db.AbstractDbTestCase;
+import org.jbpm.graph.def.ActionHandler;
 import org.jbpm.graph.def.ProcessDefinition;
+import org.jbpm.graph.exe.ExecutionContext;
 import org.jbpm.graph.exe.ProcessInstance;
+import org.jbpm.graph.node.TaskNode;
+import org.jbpm.taskmgmt.def.Task;
 
 public class TaskVariablesDbTest extends AbstractDbTestCase {
 
@@ -39,8 +46,8 @@
     newTransaction();
     try {
       ProcessInstance processInstance = new ProcessInstance(processDefinition);
-      TaskInstance taskInstance = processInstance.getTaskMgmtInstance().createTaskInstance(
-          processInstance.getRootToken());
+      TaskInstance taskInstance = processInstance.getTaskMgmtInstance()
+          .createTaskInstance(processInstance.getRootToken());
       taskInstance.setVariable("key", "value");
 
       taskInstance = saveAndReload(taskInstance);
@@ -336,4 +343,66 @@
       jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
     }
   }
+
+  public void testTaskVariableQuery() {
+    ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition name='task-variable-query'>"
+        + "  <start-state>"
+        + "    <transition to='t' />"
+        + "  </start-state>"
+        + "  <task-node name='t' create-tasks='no'>"
+        + "    <event type='node-enter'>"
+        + "      <action class='"
+        + CreateTasksAction.class.getName()
+        + "'/>"
+        + "    </event>"
+        + "    <task name='vartask'>"
+        + "      <assignment actor-id='me' />"
+        + "    </task>"
+        + "  </task-node>"
+        + "</process-definition>");
+    jbpmContext.deployProcessDefinition(processDefinition);
+
+    newTransaction();
+    try {
+      ProcessInstance processInstance = new ProcessInstance(processDefinition);
+      processInstance.signal();
+
+      newTransaction();
+      assertEquals(5, jbpmContext.getTaskList("me").size());
+
+      newTransaction();
+      TaskInstance task = getTask("index", 3, "me");
+      assertEquals(3, ((Long) task.getVariable("index")).longValue());
+    }
+    finally {
+      graphSession.deleteProcessDefinition(processDefinition.getId());
+    }
+  }
+
+  private TaskInstance getTask(String variableName, long variableValue, String actorId) {
+    return (TaskInstance) jbpmContext.getSession()
+        .createCriteria(TaskInstance.class)
+        .add(Restrictions.eq("actorId", actorId))
+        .createCriteria("variableInstances")
+        .add(Restrictions.eq("name", variableName))
+        .add(Restrictions.sqlRestriction("{alias}.LONGVALUE_ = ?", new Long(variableValue), Hibernate.LONG))
+        .uniqueResult();
+  }
+
+  public static final class CreateTasksAction implements ActionHandler {
+
+    private static final long serialVersionUID = 1L;
+
+    public void execute(ExecutionContext executionContext) throws Exception {
+      TaskNode taskNode = (TaskNode) executionContext.getNode();
+      Task task = taskNode.getTask("vartask");
+      TaskMgmtInstance taskMgmtInstance = executionContext.getTaskMgmtInstance();
+
+      for (int index = 0; index < 5; index++) {
+        TaskInstance ti = taskMgmtInstance.createTaskInstance(task, executionContext);
+        ti.setVariableLocally("index", new Long(index));
+      }
+    }
+
+  }
 }



More information about the jbpm-commits mailing list