public void testCatchSignalEndEventInEmbeddedSubprocess() throws Exception {
ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("catchSignalEndEventInEmbeddedSubprocess");
assertNotNull(processInstance);
// After process start, usertask in subprocess should exist
Task task = taskService.createTaskQuery().singleResult();
assertEquals("subprocessTask", task.getName());
// After task completion, signal end event is reached and caught
taskService.complete(task.getId());
task = taskService.createTaskQuery().singleResult();
assertEquals("task after catching the signal", task.getName());
taskService.complete(task.getId());
assertProcessEnded(processInstance.getId());
}