package org.fireflow.service;
import java.util.Date;
import org.fireflow.client.WorkflowSession;
import org.fireflow.engine.context.RuntimeContext;
import org.fireflow.engine.entity.runtime.ActivityInstance;
import org.fireflow.engine.entity.runtime.ActivityInstanceState;
import org.fireflow.engine.entity.runtime.ProcessInstance;
import org.fireflow.engine.entity.runtime.ProcessInstanceState;
import org.fireflow.engine.entity.runtime.impl.ActivityInstanceImpl;
import org.fireflow.engine.entity.runtime.impl.ProcessInstanceImpl;
import org.fireflow.engine.modules.calendar.CalendarService;
import org.fireflow.engine.modules.ousystem.User;
import org.fireflow.engine.modules.persistence.ActivityInstancePersister;
import org.fireflow.engine.modules.persistence.PersistenceService;
import org.fireflow.engine.modules.persistence.ProcessInstancePersister;
import org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests;
public class AbsTestContext extends AbstractJUnit4SpringContextTests {
public ProcessInstance createProcessInstance(WorkflowSession sessionLocal,RuntimeContext runtimeContext){
CalendarService calendarService = runtimeContext.getDefaultEngineModule(CalendarService.class);
User u = sessionLocal.getCurrentUser();
ProcessInstanceImpl processInstance = new ProcessInstanceImpl();
processInstance.setProcessId("processId-123456");
processInstance.setVersion(1);
processInstance.setProcessType("FPDL");
processInstance.setSubProcessId("processId-123456.main_flow");
processInstance.setBizId("bizId-123456");
processInstance.setProcessName("TestProcess");
processInstance.setProcessDisplayName("TestProcess");
processInstance.setBizType("test");
processInstance.setState(ProcessInstanceState.INITIALIZED);
Date now = calendarService.getSysDate();
processInstance.setCreatedTime(now);
processInstance.setCreatorId(u.getId());
processInstance.setCreatorName(u.getName());
processInstance.setCreatorDeptId(u.getDeptId());
processInstance.setCreatorDeptName(u.getDeptName());
processInstance.setTokenId("tokenId-123");
PersistenceService persistenceService = runtimeContext.getDefaultEngineModule(PersistenceService.class);
ProcessInstancePersister persister = persistenceService.getProcessInstancePersister();
persister.saveOrUpdate(processInstance);
return processInstance;
}
public ActivityInstance createActivityInstance(RuntimeContext runtimeContext,ProcessInstance processInstance){
CalendarService calendarService = runtimeContext.getDefaultEngineModule(CalendarService.class);
// Node node = (Node)activity;
ActivityInstanceImpl actInst = new ActivityInstanceImpl();
actInst.setName("test-activity");
actInst.setDisplayName("test-activity");
actInst.setState(ActivityInstanceState.INITIALIZED);
actInst.setProcessName(processInstance.getProcessName());
actInst.setProcessDisplayName(processInstance.getProcessDisplayName());
actInst.setBizType(processInstance.getBizType());
actInst.setProcessId(processInstance.getProcessId());
actInst.setVersion(processInstance.getVersion());
actInst.setProcessType(processInstance.getProcessType());
actInst.setProcessInstanceId(processInstance.getId());
actInst.setNodeId("activityId-123456");
actInst.setBizId(processInstance.getBizId());
actInst.setTokenId("tokenId-456");
actInst.setStepNumber(1);
actInst.setSubProcessId("subflow_123");
actInst.setParentScopeId(processInstance.getScopeId());
Date now = calendarService.getSysDate();
actInst.setCreatedTime(now);
PersistenceService persistenceService = runtimeContext.getDefaultEngineModule(PersistenceService.class);
ActivityInstancePersister persister = persistenceService.getActivityInstancePersister();
persister.saveOrUpdate(actInst);
return actInst;
}
}