package org.jbpm.sim;
import org.jbpm.sim.def.DefaultJbpmSimulationModel;
import desmoj.core.simulator.Experiment;
import desmoj.core.simulator.SimTime;
public class OneTaskTest extends AbstractSimTestCase {
public void testOneState() {
Experiment exp = new Experiment(getName(), "target");
exp.setShowProgressBar(false);
String processXml =
"<process-definition>" +
" <swimlane name='tester' pool-size='1' />" +
" <start-state name='start'>" +
" <transition to='test' />" +
" </start-state>" +
" <task-node name='test'>" +
" <task swimlane='tester' />" +
" <transition to='end' />" +
" </task-node>" +
" <end-state name='end'/>" +
"</process-definition>" ;
// make a new model with the given process
DefaultJbpmSimulationModel model = new DefaultJbpmSimulationModel(processXml);
// connect Experiment and Model
model.connectToExperiment(exp);
// now set the time this simulation should stop at
// let him work 1500 Minutes
exp.stop(new SimTime(15000));
// start the Experiment with start time 0.0
exp.start();
// --> now the simulation is running until it reaches its ending criteria
// ...
// ...
// <-- after reaching ending criteria, the main thread returns here
// print the report about the already existing reporters into the report file
exp.report();
// stop all threads still alive and close all output files
exp.finish();
}
// old test:
// setCurrentTime("10:29");
// pi1.signal();
//
// setCurrentTime("10:35");
// exp.start();
// ProcessInstance pi2 = new ProcessInstance(processDefinition);
// simulationInstance = (SimulationInstance)pi2.getInstance(SimulationInstance.class);
// simulationInstance.setExperiment(simulationModel);
//
// setCurrentTime("10:46");
// pi2.signal();
//
// assertNull(findTaskInstance("test", pi2));
//
// setCurrentTime("10:55");
// TaskInstance taskInstance = findTaskInstance("test", pi1);
// taskInstance.end();
//
// produceReports(pi1);
}