package com.amway.test; import org.jbpm.graph.def.ProcessDefinition; import org.jbpm.graph.exe.ProcessInstance; import org.jbpm.graph.exe.Token; import org.jbpm.taskmgmt.exe.TaskInstance; import junit.framework.TestCase; public class TestProcessTask extends TestCase { public void testTaskAssignment(){ StringBuffer sb = new StringBuffer(); sb.append("<process-definition name='the baby process'>"); sb.append("<start-state>"); sb.append("<transition name='baby cries' to='t'/>"); sb.append("</start-state>"); sb.append("<task-node name='t'>"); sb.append("<task name='change nappy'>"); sb.append("<assignment class='com.amway.handler.NappyAssignmentHandler'/>"); sb.append("</task>"); sb.append("<transition to='end'/>"); sb.append("</task-node>"); sb.append("<end-state name='end'/>"); sb.append("</process-definition>"); //流程定义 ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(sb.toString()); //流程实例 ProcessInstance instance = new ProcessInstance(processDefinition); //流程路径 Token token = instance.getRootToken(); token.signal(); this.assertEquals(processDefinition.getNode("t"), token.getNode()); //获取任务实例 TaskInstance taskInstance = (TaskInstance)instance.getTaskMgmtInstance().getTaskInstances().iterator().next(); this.assertEquals("papa", taskInstance.getActorId()); //任务实例结束,相当于token.signal()了一下 taskInstance.end(); this.assertSame(processDefinition.getNode("end"), token.getNode()); } }