@thorben, thanks for the help, should be able to tackle #1 and #2 now.
The integration testing involves multiple asynchronous systems.
ActivitiEventListener is used by the test to know when workflows are completed. The tests then start workflows that sometimes start children workflows, etc. When the correct events are caught, the test checks the results. Has been a handy feature for our somewhat unique application of Activiti/Camunda.
camunda-bpm-reactor last night, and it seems very similar, especially the
bpmn-execution-listener. Couldn't quite get it to work, but it feels like I'm on the right track. Will continue to ask questions if/when I get stuck.
EDIT: Browsing another question took me to the JUnit testing page, where I saw this code:
Task task = taskService.createTaskQuery().singleResult();
assertEquals("My Task", task.getName());
taskService.complete(task.getId()) is exactly the pattern that we want to use, and had to implement in Activiti as a hack. I think we will start down this path...