package org.jbpm.jbpm1778; import java.util.Collections; import java.util.Map; import org.jbpm.AbstractJbpmTestCase; import org.jbpm.graph.def.ProcessDefinition; import org.jbpm.graph.exe.ProcessInstance; import org.jbpm.taskmgmt.exe.TaskMgmtInstance; /** * Empty map variables on process creation is set as null * https://jira.jboss.org/jira/browse/JBPM-1778 * * @author Thomas.Diesler@jboss.com */ public class JBPM1778Test extends AbstractJbpmTestCase { public void testEmptyMapVariables() { ProcessDefinition pd = getProcessDefinition(); ProcessInstance pi = pd.createProcessInstance(Collections.EMPTY_MAP); TaskMgmtInstance tmi = pi.getTaskMgmtInstance(); tmi.createStartTaskInstance(); Map piVars = pi.getContextInstance().getVariables(); assertNotNull("ProcessInstance vars not null", piVars); assertEquals("ProcessInstance vars empty", 0, piVars.size()); } public void testNonEmptyMapVariables() { ProcessDefinition pd = getProcessDefinition(); Map vars = Collections.singletonMap("uno", "dos"); ProcessInstance pi = pd.createProcessInstance(vars); TaskMgmtInstance tmi = pi.getTaskMgmtInstance(); tmi.createStartTaskInstance(); Map piVars = pi.getContextInstance().getVariables(); assertNotNull("ProcessInstance vars not null", piVars); assertEquals("ProcessInstance vars not empty", 1, piVars.size()); } private ProcessDefinition getProcessDefinition() { ProcessDefinition pd = ProcessDefinition.parseXmlString("<process-definition>" + " <start-state>" + " <transition to='s' />" + " </start-state>" + " <state name='s'>" + " <transition to='end' />" + " </state>" + " <end-state name='end' />" + "</process-definition>"); return pd; } }