package com.norteksoft.wf.unit; import org.junit.Assert; import org.junit.Test; import org.unitils.database.annotations.Transactional; import org.unitils.database.util.TransactionMode; import org.unitils.spring.annotation.SpringApplicationContext; import org.unitils.spring.annotation.SpringBeanByName; import com.norteksoft.ems.entity.ExpenseReport; import com.norteksoft.ems.service.ExpenseReportManager; import com.norteksoft.product.api.ApiFactory; import com.norteksoft.product.api.entity.WorkflowDefinition; import com.norteksoft.product.api.entity.WorkflowInstance; import com.norteksoft.product.util.ParameterUtils; import com.norteksoft.wf.base.enumeration.CompleteTaskTipType; /** * 公开提供给用户使用的工作流实例的api部署测试 * */ @Transactional(TransactionMode.ROLLBACK) @SpringApplicationContext({"applicationContext-test.xml","applicationContext-memcache.xml"}) public class WorkflowInstanceServiceTest extends BaseWorkflowTestCase{ @SpringBeanByName ExpenseReportManager expenseReportManager; @Test public void startInstanceOne(){ // 准备数据 deploy("wf_test_8.xml"); ParameterUtils.setParameters(getPrmt(1L, 65L, "test2", "test2")); ExpenseReport dp = new ExpenseReport(); dp.setCompanyId(1L); expenseReportManager.save(dp); // 启动流程 ApiFactory.getInstanceService().startInstance("wf_test_8", dp); // 提交第一环节任务 CompleteTaskTipType cttt = ApiFactory.getInstanceService().submitInstance("wf_test_8", dp); Assert.assertEquals(CompleteTaskTipType.OK, cttt); //流程未结束 boolean isEnd=ApiFactory.getInstanceService().isInstanceComplete(dp); Assert.assertFalse(isEnd); //当前环节办理人没有权删除流程实例 boolean isDeleteRole=ApiFactory.getInstanceService().canDeleteInstanceInTask(dp,"审批报销单"); Assert.assertFalse(isDeleteRole); } @Test public void startInstanceTwo(){ // 准备数据 deploy("wf_test_8.xml"); ParameterUtils.setParameters(getPrmt(1L, 65L, "test2", "test2")); ExpenseReport dp = new ExpenseReport(); dp.setCompanyId(1L); expenseReportManager.save(dp); // 启动流程 ApiFactory.getInstanceService().startInstance("wf_test_8",1,dp); // 提交第一环节任务 CompleteTaskTipType cttt = ApiFactory.getInstanceService().submitInstance("wf_test_8",1, dp); Assert.assertEquals(CompleteTaskTipType.OK, cttt); //根据实例id查询流程实例 WorkflowInstance instance=ApiFactory.getInstanceService().getInstance(dp.getWorkflowInfo().getWorkflowId()); Assert.assertNotNull(instance); //删除流程实例 ApiFactory.getInstanceService().deleteInstance(dp); } @Test public void startInstanceThree(){ // 准备数据 deploy("wf_test_8.xml"); ParameterUtils.setParameters(getPrmt(1L, 65L, "test2", "test2")); ExpenseReport dp = new ExpenseReport(); dp.setCompanyId(1L); expenseReportManager.save(dp); WorkflowDefinition definition=ApiFactory.getDefinitionService().getEnabledHighestVersionWorkflowDefinition("wf_test_8"); // 启动流程 ApiFactory.getInstanceService().startInstance(definition.getId(),dp); // 提交第一环节任务 CompleteTaskTipType cttt = ApiFactory.getInstanceService().submitInstance(definition.getId(),dp); Assert.assertEquals(CompleteTaskTipType.OK, cttt); } }