1 package org.jbpm.graph.node; 2 3 import org.jbpm.db.AbstractDbTestCase; 4 import org.jbpm.graph.def.ProcessDefinition; 5 import org.jbpm.jpdl.par.ProcessArchiveDeployer; 6 7 public class ProcessStateDbTest extends AbstractDbTestCase { 8 9 public void testProcessStateName() { 10 ProcessDefinition processDefinition = ProcessDefinition.parseXmlString( 11 "<process-definition>" + 12 " <process-state name='subprocess' />" + 13 "</process-definition>"); 14 15 processDefinition = saveAndReload(processDefinition); 16 17 ProcessState processState = (ProcessState) processDefinition.getNode("subprocess"); 18 assertEquals("subprocess", processState.getName()); 19 } 20 21 public void testProcessStateSubProcessDefinition() { 22 ProcessDefinition subProcessDefinition = new ProcessDefinition("sub"); 24 graphSession.saveProcessDefinition(subProcessDefinition); 26 27 ProcessDefinition superProcessDefinition = ProcessDefinition.parseXmlString( 29 "<process-definition name='super'>" + 30 " <process-state name='subprocess' />" + 31 "</process-definition>"); 32 ProcessState processState = (ProcessState) superProcessDefinition.getNode("subprocess"); 34 processState.setSubProcessDefinition(subProcessDefinition); 35 36 superProcessDefinition = saveAndReload(superProcessDefinition); 38 39 processState = (ProcessState) superProcessDefinition.getNode("subprocess"); 40 assertNotNull("sub", processState.getSubProcessDefinition().getName()); 41 } 42 43 public void testProcessStateStartVariableMappings() { 44 ProcessDefinition processDefinition = ProcessDefinition.parseXmlString( 45 "<process-definition>" + 46 " <process-state name='subprocess'>" + 47 " <variable name='startsuperone' access='read,write' mapped-name='startsubone' />" + 48 " <variable name='startsupertwo' access='read,write' mapped-name='startsubtwo' />" + 49 " <variable name='startsuperthree' access='read,write' mapped-name='startsubthree' />" + 50 " </process-state>" + 51 "</process-definition>"); 52 53 processDefinition = saveAndReload(processDefinition); 54 55 ProcessState processState = (ProcessState) processDefinition.getNode("subprocess"); 56 assertEquals(3, processState.variableAccesses.size() ); 57 } 58 59 public void testSubProcessBindingByVersion() { 60 commitAndCloseSession(); 61 ProcessDefinition processDefinition = new ProcessDefinition("the ultimate subprocess"); 62 ProcessArchiveDeployer.deployProcessDefinition(processDefinition, getJbpmSessionFactory()); 63 beginSessionTransaction(); 64 65 processDefinition = ProcessDefinition.parseXmlString( 66 "<process-definition>" + 67 " <process-state name='the sub process state'>" + 68 " <sub-process name='the ultimate subprocess' version='1' />" + 69 " </process-state>" + 70 "</process-definition>" 71 ); 72 processDefinition = saveAndReload(processDefinition); 73 74 ProcessState processState = (ProcessState) processDefinition.getNode("the sub process state"); 75 assertEquals("the ultimate subprocess", processState.getSubProcessDefinition().getName() ); 76 assertEquals(1, processState.getSubProcessDefinition().getVersion() ); 77 } 78 79 public void testSubProcessBindingWithLatestVersion() { 80 commitAndCloseSession(); 81 ProcessDefinition processDefinition = new ProcessDefinition("the multiversion subprocess"); 82 ProcessArchiveDeployer.deployProcessDefinition(processDefinition, getJbpmSessionFactory()); 83 ProcessArchiveDeployer.deployProcessDefinition(processDefinition, getJbpmSessionFactory()); 84 ProcessArchiveDeployer.deployProcessDefinition(processDefinition, getJbpmSessionFactory()); 85 beginSessionTransaction(); 86 87 processDefinition = ProcessDefinition.parseXmlString( 88 "<process-definition>" + 89 " <process-state name='the sub process state'>" + 90 " <sub-process name='the multiversion subprocess'/>" + 91 " </process-state>" + 92 "</process-definition>" 93 ); 94 processDefinition = saveAndReload(processDefinition); 95 96 ProcessState processState = (ProcessState) processDefinition.getNode("the sub process state"); 97 assertEquals("the multiversion subprocess", processState.getSubProcessDefinition().getName() ); 98 assertEquals(3, processState.getSubProcessDefinition().getVersion() ); 99 } 100 } 101 | Popular Tags |