ksession.getWorkItemManager().registerWorkItemHandler( "Human Task",
handler );
Map<String, Object> parameters = new HashMap<String, Object>();
parameters.put( "UserName",
"John Doe" );
Person person = new Person();
person.setName( "John Doe" );
parameters.put( "Person",
person );
WorkflowProcessInstance processInstance = (WorkflowProcessInstance) ksession.startProcess( "org.drools.actions",
parameters );
assertEquals( ProcessInstance.STATE_ACTIVE,
processInstance.getState() );
WorkItem workItem = handler.getWorkItem();
assertNotNull( workItem );
assertEquals( "John Doe",
workItem.getParameter( "ActorId" ) );
assertEquals( "John Doe",
workItem.getParameter( "Content" ) );
assertEquals( "John Doe",
workItem.getParameter( "Comment" ) );
assertEquals( WorkItem.PENDING,
workItem.getState() );
String inXml = "";
inXml = "<complete-work-item id='" + workItem.getId() + "' />";
setExec( ksession );
String outXml = template.requestBody( "direct:exec",
inXml,
String.class );
assertEquals( WorkItem.COMPLETED,
workItem.getState() );
assertEquals( ProcessInstance.STATE_COMPLETED,
processInstance.getState() );
parameters = new HashMap<String, Object>();
parameters.put( "UserName",
"Jane Doe" );
parameters.put( "MyObject",
"SomeString" );
person = new Person();
person.setName( "Jane Doe" );
parameters.put( "Person",
person );
processInstance = (WorkflowProcessInstance) ksession.startProcess( "org.drools.actions",
parameters );
assertEquals( ProcessInstance.STATE_ACTIVE,