package org.activiti.crystalball.simulator;
/*
* #%L
* simulator
* %%
* Copyright (C) 2012 - 2013 crystalball
* %%
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* #L%
*/
import org.activiti.crystalball.generator.SimulationResultsGraphGenerator;
import org.activiti.crystalball.simulator.impl.cfg.SimulationEngineConfigurationImpl;
import org.activiti.crystalball.simulator.impl.persistence.entity.ResultEntity;
import org.activiti.crystalball.simulator.result.ResultQuery;
import org.activiti.crystalball.simulator.runtime.SimulationInstance;
import org.activiti.engine.impl.test.PvmTestCase;
import org.junit.Test;
import java.util.Date;
import java.util.List;
import java.util.Map;
public class BasicSimulationTest extends PvmTestCase{
@Test
public void testBasicSimulationRun() throws Exception {
System.setProperty("liveDB", "target/basicSimulation");
SimulationEngine simulationEngine= SimulationEngineConfigurationImpl.createStandaloneInMemSimulationEngineConfiguration().buildSimulationEngine();
SimulationInstance simulationInstance = simulationEngine.getRuntimeService().startSimulationInstanceByKey("test - simulationRun", (String) null, (String) null, new Date(), (Date) null, 1, 1L, "/org/activiti/crystalball/simulator/SimRun-h2-context.xml");
// wait to finish simulation asynchronously
do {
// wait for simulation end.
Thread.sleep(500);
} while( simulationEngine.getRuntimeService().isRunning(simulationInstance.getId()) );
ResultQuery resultQuery = simulationEngine.getRuntimeService().createResultQuery().simulationInstanceId( simulationInstance.getId())
.resultVariableValueEquals("description", "10");
List<ResultEntity> resultList = resultQuery.list();
assertEquals(1, resultList.size());
Result r = resultList.get(0);
Map<String, Object> variables = simulationEngine.getRuntimeService().getResultVariables(r.getId());
assertEquals("10", variables.get("description"));
assertEquals("threetasksprocess", variables.get("processDefinitionKey"));
assertEquals("usertask3", variables.get("taskDefinitionKey"));
SimulationResultsGraphGenerator generator = new SimulationResultsGraphGenerator();
generator.generateGraph(simulationEngine.getRuntimeService(), simulationInstance, "threetasksprocess", "unfinished_task", System.getProperty("tempDir", "target") + "basicTest.jpg");
}
}