@Test public void testCancelNonRegisteredWorkItemHandler() { String processId = "org.drools.actions"; String workName = "Unnexistent Task"; RuleFlowProcess process = getWorkItemProcess(processId, workName); KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase(); ((AbstractRuleBase) ((InternalKnowledgeBase) kbase).getRuleBase()).addProcess(process); StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession(); ksession.getWorkItemManager().registerWorkItemHandler(workName, new DoNothingWorkItemHandler()); Map<String, Object> parameters = new HashMap<String, Object>(); parameters.put("UserName", "John Doe"); parameters.put("Person", new Person("John Doe")); ProcessInstance processInstance = ksession.startProcess("org.drools.actions", parameters); long processInstanceId = processInstance.getId(); Assert.assertEquals(ProcessInstance.STATE_ACTIVE, processInstance.getState()); ksession.getWorkItemManager().registerWorkItemHandler(workName, null); try { ksession.abortProcessInstance(processInstanceId); Assert.fail("should fail if WorkItemHandler for" + workName + "is not registered"); } catch (WorkItemHandlerNotFoundException wihnfe) { } Assert.assertEquals(ProcessInstance.STATE_ABORTED, processInstance.getState()); }
@Test public void testReachNonRegisteredWorkItemHandler() { String processId = "org.drools.actions"; String workName = "Unnexistent Task"; RuleFlowProcess process = getWorkItemProcess(processId, workName); KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase(); ((AbstractRuleBase) ((InternalKnowledgeBase) kbase).getRuleBase()).addProcess(process); StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession(); Map<String, Object> parameters = new HashMap<String, Object>(); parameters.put("UserName", "John Doe"); parameters.put("Person", new Person("John Doe")); ProcessInstance processInstance = null; try { processInstance = ksession.startProcess("org.drools.actions", parameters); Assert.fail("should fail if WorkItemHandler for" + workName + "is not registered"); } catch (Throwable e) { } Assert.assertNull(processInstance); }