[jboss-user] [JBoss jBPM] - Re: required variables
dleerob
do-not-reply at jboss.com
Thu Sep 13 10:09:51 EDT 2007
I have created a TestCase to show the problem. It completes through to the end. Please let me know if you manage to find a solution/fix.
/**
| * [JBPM 3.2.1]
| * This TestCase should show that the when a variable it set to required,
| * the taskInstance is still able to complete, even when said variable is null.
| * Calling taskInstance.end() does not throw an exception.
| *
| * @author dleerob
| *
| */
| public class ProcessTest extends TestCase {
|
| public void testProcess() throws Exception {
|
| ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
| "<process-definition name='simple'>" +
| " <start-state name='start'>" +
| " <task name='Request For New Employee'>"+
| " <controller>"+
| " <variable name='IsReplacement' access='read,write,required'></variable>"+
| " </controller>"+
| " </task>"+
| " <transition name='' to='Financial Director Approval 1' />" +
| " </start-state>" +
| " <task-node name='Financial Director Approval 1'>" +
| " <task name='Financial Director Approval 1'>"+
| " <controller>"+
| " <variable name='Approved' access='read,write,required'></variable>"+
| " </controller>"+
| " </task>"+
| " <transition name='' to='end' />" +
| " </task-node>" +
| " <end-state name='end' />" +
| "</process-definition>"
| );
|
| assertNotNull("Definition should not be null", processDefinition);
|
| //create an instance of the process definition.
| ProcessInstance instance = new ProcessInstance(processDefinition);
|
| //create start task instance.
| TaskMgmtInstance taskMgmtInstance = instance.getTaskMgmtInstance();
| TaskInstance startTaskInstance = taskMgmtInstance.createStartTaskInstance();
|
| assertNotNull("Start Task Instance should not be null", startTaskInstance);
| assertEquals("Request For New Employee", startTaskInstance.getName());
|
| Token token = instance.getRootToken();
| assertSame(processDefinition.getNode("start"), token.getNode());
|
| //make sure our IsReplacement variable is null.
| assertNull("IsReplacement variable is null",startTaskInstance.getVariable("IsReplacement"));
|
| //ending the startTaskInstance should throw an exception if IsReplacement variable
| //is null, as the variable is set to "required" in the process definition above,
| //but it doesn't seem to throw the exception.
| startTaskInstance.end();
|
| //this should never of happened.
| assertNull("IsReplacement variable is still null",startTaskInstance.getVariable("IsReplacement"));
|
|
| //I also want to test if the next task node isn't working properly
| //when saving required variables with a null value.
| //This way we rule out the possiblity that there is only
| //an error with the Start Task Instance.
| assertSame(processDefinition.getNode("Financial Director Approval 1"), token.getNode());
|
| TaskInstance financeDirectorApproval1TaskInstance = null;
| for(Iterator it = taskMgmtInstance.getTaskInstances().iterator();it.hasNext();) {
| TaskInstance taskInstance = (TaskInstance)it.next();
| if (taskInstance.getName().equals("Financial Director Approval 1")) {
| financeDirectorApproval1TaskInstance = taskInstance;
| break;
| }
| }
|
| assertNotNull("Finance Director Approval Task Instance is not null", financeDirectorApproval1TaskInstance);
| assertEquals(financeDirectorApproval1TaskInstance.getName(),"Financial Director Approval 1");
|
| //make sure our Approved variable is null.
| assertNull("Approved variable is null",financeDirectorApproval1TaskInstance.getVariable("Approved"));
|
| //ending the financeDirectorApproval1TaskInstance should throw an exception if
| //Approved variable is null, as the variable is set to "required" in the process definition above,
| //but it doesn't seem to throw the exception.
| financeDirectorApproval1TaskInstance.end();
|
| //this should never of happened.
| assertNull("Approved variable is still null",startTaskInstance.getVariable("Approved"));
|
| assertSame(processDefinition.getNode("end"), token.getNode());
|
| }
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4083972#4083972
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4083972
More information about the jboss-user
mailing list