package com.norteksoft.wf.unit; import java.util.List; 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.product.api.ApiFactory; import com.norteksoft.product.api.entity.WorkflowDefinition; import com.norteksoft.product.util.ParameterUtils; import com.norteksoft.task.base.enumeration.TaskState; import com.norteksoft.task.dao.WorkflowTaskDao; import com.norteksoft.task.entity.WorkflowTask; import com.norteksoft.wf.engine.dao.WorkflowInstanceDao; import com.norteksoft.wf.engine.dao.WorkflowTypeDao; import com.norteksoft.wf.engine.entity.WorkflowInstance; import com.norteksoft.wf.engine.entity.WorkflowType; @Transactional(TransactionMode.ROLLBACK) @SpringApplicationContext({"applicationContext-test.xml","applicationContext-memcache.xml"}) public class WorkflowDefinitionServiceTest extends BaseWorkflowTestCase { @SpringBeanByName WorkflowTaskDao workflowTaskDao; @SpringBeanByName WorkflowInstanceDao workflowInstanceDao; @SpringBeanByName WorkflowTypeDao workflowTypeDao; @Test public void getEnabledHighestVersionWorkflowDefinition() { deploy("test_wf_1.xml"); ParameterUtils.setParameters(getPrmt(1L, 33L, "ldx","ems")); com.norteksoft.product.api.entity.WorkflowDefinition result = ApiFactory.getDefinitionService().getEnabledHighestVersionWorkflowDefinition("test_wf_1"); Assert.assertNotNull(result); } @Test public void getWorkflowDefinitionIdByTask() { WorkflowInstance wi= new WorkflowInstance(); wi.setProcessCode("wangjing_process_code_33"); wi.setProcessInstanceId("workflow_aaaaaaaaaaaa"); wi.setWorkflowDefinitionId(212121l); workflowInstanceDao.save(wi); WorkflowTask task = new WorkflowTask(); task.setCode("wangjing_12212"); task.setActive(TaskState.COMPLETED.getIndex()); task.setProcessInstanceId(workflowInstanceDao.getInstanceByCode("wangjing_process_code_33").get(0).getProcessInstanceId()); workflowTaskDao.save(task); Long taskId=workflowTaskDao.getTaskByCode("wangjing_12212").get(0).getId(); Long instanceId = ApiFactory.getDefinitionService().getWorkflowDefinitionIdByTask(taskId); Assert.assertEquals(212121l, instanceId.longValue()); } @Test public void getWorkflowDefinition() { String fileContent = readFileContent("test_wf_1.xml"); Assert.assertNotNull("文件不存在", fileContent); // 创建流程定义 Long id = workflowDefinitionManager.createWfDefinition(1L, fileContent, "expense", "ems"); Assert.assertNotNull(id); // 部署流程 try { String msg = workflowDefinitionManager.deployProcess(id); Assert.assertEquals("草稿 -> 启用", msg); } catch (Exception e) { Assert.assertTrue("流程启用失败", false); } ParameterUtils.setParameters(getPrmt(1L, 33L, "ldx","ems")); WorkflowDefinition result = ApiFactory.getDefinitionService().getWorkflowDefinition(id); Assert.assertNotNull(result); } @Test public void getWorkflowDefinitionsByTypeCode() { deploy("test_wf_1.xml"); ParameterUtils.setParameters(getPrmt(1L, 33L, "ldx","ems")); List<WorkflowDefinition> result = ApiFactory.getDefinitionService().getWorkflowDefinitionsByTypeCode("expense"); Assert.assertNotNull(result); } @Test public void getWorkflowDefinitionsByCode() { deploy("test_wf_1.xml"); ParameterUtils.setParameters(getPrmt(1L, 33L, "ldx","ems")); List<WorkflowDefinition> result = ApiFactory.getDefinitionService().getWorkflowDefinitionsByCode("test_wf_1"); Assert.assertNotNull(result); } @Test public void getWorkflowDefinitionByCodeAndVersion() { deploy("test_wf_1.xml"); ParameterUtils.setParameters(getPrmt(1L, 33L, "ldx","ems")); WorkflowDefinition result = ApiFactory.getDefinitionService().getWorkflowDefinitionByCodeAndVersion("test_wf_1",new Integer(1)); Assert.assertNotNull(result); } @Test public void getApproveSystemWorkflowTypes() { WorkflowType workflowType = new WorkflowType(); workflowType.setApproveSystem(true); workflowType.setCompanyId(1L); workflowTypeDao.save(workflowType); List<WorkflowType> result = ApiFactory.getDefinitionService().getApproveSystemWorkflowTypes(); Assert.assertNotNull(result); } @Test public void getWorkflowDefinitionsByFormCodeAndVersion() { deploy("test_wf_1.xml"); ParameterUtils.setParameters(getPrmt(1L, 33L, "ldx","ems")); List<WorkflowDefinition> result = ApiFactory.getDefinitionService().getWorkflowDefinitionsByFormCodeAndVersion("ES_EXPENSE_REPORT",new Integer(1)); Assert.assertNotNull(result); } @Test public void getWorkflowDefinitionsByName() { deploy("test_wf_1.xml"); ParameterUtils.setParameters(getPrmt(1L, 33L, "ldx","ems")); List<WorkflowDefinition> result = ApiFactory.getDefinitionService().getWorkflowDefinitionsByName("expense","报销"); Assert.assertNotNull(result); } }