package org.jbpm.graph.exe; import org.jbpm.db.AbstractDbTestCase; import org.jbpm.graph.def.ProcessDefinition; public final class StateDbTest extends AbstractDbTestCase { public void testDbState() throws Exception { ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition name='" + getName() + "'>" + " <start-state name='zero'>" + " <transition to='one' />" + " </start-state>" + " <state name='one'>" + " <transition to='two' />" + " </state>" + " <state name='two'>" + " <transition to='three' />" + " </state>" + " <state name='three'>" + " <transition to='end' />" + " </state>" + " <end-state name='end' />" + "</process-definition>"); deployProcessDefinition(processDefinition); ProcessInstance processInstance = new ProcessInstance(processDefinition); assertEquals("zero", processInstance.getRootToken().getNode().getName()); processInstance = saveAndReload(processInstance); processInstance.signal(); assertEquals("one", processInstance.getRootToken().getNode().getName()); processInstance = saveAndReload(processInstance); processInstance.signal(); assertEquals("two", processInstance.getRootToken().getNode().getName()); processInstance = saveAndReload(processInstance); processInstance.signal(); assertEquals("three", processInstance.getRootToken().getNode().getName()); processInstance = saveAndReload(processInstance); processInstance.signal(); assertEquals("end", processInstance.getRootToken().getNode().getName()); } }