package org.activiti.crystalball.simulator.impl;
import org.activiti.engine.impl.test.ResourceActivitiTestCase;
import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.test.Deployment;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.core.Is.is;
/**
* This class tests ScriptEventHandler with multi instance simulation run.
*
* @author martin.grofcik
*/
public class MultiInstanceScriptEventHandlerTest extends ResourceActivitiTestCase {
public MultiInstanceScriptEventHandlerTest() {
super("org/activiti/crystalball/simulator/impl/MultiInstanceScriptEventHandlerTest.cfg.xml");
}
@Deployment
public void testSequentialSimulationRun() throws Exception {
ProcessInstance simulationExperiment = runtimeService.startProcessInstanceByKey("multiInstanceResultVariablesSimulationRun");
// all simulationManager executions are finished
assertEquals(1, runtimeService.createExecutionQuery().count());
// simulation run check - process variables has to be set to the value. "Hello worldX!"
String simulationRunResult = (String) runtimeService.getVariable(simulationExperiment.getProcessInstanceId(), "simulationRunResult-0");
assertThat(simulationRunResult, is("Hello world0!"));
simulationRunResult = (String) runtimeService.getVariable(simulationExperiment.getProcessInstanceId(), "simulationRunResult-1");
assertThat(simulationRunResult, is("Hello world1!"));
simulationRunResult = (String) runtimeService.getVariable(simulationExperiment.getProcessInstanceId(), "simulationRunResult-2");
assertThat(simulationRunResult, is("Hello world2!"));
simulationRunResult = (String) runtimeService.getVariable(simulationExperiment.getProcessInstanceId(), "simulationRunResult-3");
assertThat(simulationRunResult, is("Hello world3!"));
simulationRunResult = (String) runtimeService.getVariable(simulationExperiment.getProcessInstanceId(), "simulationRunResult-4");
assertThat(simulationRunResult, is("Hello world4!"));
// process end
runtimeService.signal(simulationExperiment.getId());
// no process instance is running
assertEquals(0, runtimeService.createExecutionQuery().count());
}
}