package com.norteksoft.wf.unit;
import java.util.Date;
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.ems.entity.ExpenseReport;
import com.norteksoft.ems.service.ExpenseReportManager;
import com.norteksoft.product.api.ApiFactory;
import com.norteksoft.product.api.entity.Opinion;
import com.norteksoft.product.api.entity.WorkflowTask;
import com.norteksoft.product.util.ParameterUtils;
import com.norteksoft.task.base.enumeration.TaskProcessingMode;
/**
* 工作流办理意见的api部署测试
* @author Administrator
*
*/
@Transactional(TransactionMode.ROLLBACK)
@SpringApplicationContext({"applicationContext-test.xml","applicationContext-memcache.xml"})
public class WorkflowOpinionServiceTest extends BaseWorkflowTestCase{
@SpringBeanByName
ExpenseReportManager expenseReportManager;
@Test
public void getOpinionsOne(){
// 准备数据
deploy("wf_test_8.xml");
ParameterUtils.setParameters(getPrmt(1L, 65L, "test2", "test2"));
ExpenseReport dp = new ExpenseReport();
dp.setCompanyId(1L);
expenseReportManager.save(dp);
// 提交第一环节任务
ApiFactory.getInstanceService().submitInstance("wf_test_8", dp);
WorkflowTask task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"test2");
Assert.assertNotNull(task);
// 保存意见,环节的办理模式为当前环节办理模式,且任务名为当前任务名
Opinion opinion=new Opinion("同意", new Date(), task.getId(), "");
ApiFactory.getOpinionService().saveOpinion(opinion);
//查询某个任务的办理意见
List<Opinion> opinions=ApiFactory.getOpinionService().getOpinions(task.getId());
Assert.assertEquals(1, opinions.size());
}
@Test
public void getOpinionsTwo(){
// 准备数据
deploy("wf_test_8.xml");
ParameterUtils.setParameters(getPrmt(1L, 65L, "test2", "test2"));
ExpenseReport dp = new ExpenseReport();
dp.setCompanyId(1L);
expenseReportManager.save(dp);
// 提交第一环节任务
ApiFactory.getInstanceService().submitInstance("wf_test_8", dp);
WorkflowTask task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"test2");
Assert.assertNotNull(task);
// 保存意见
Opinion opinion=new Opinion();
opinion.setOpinion("同意");
ApiFactory.getOpinionService().saveOpinion(opinion,task.getId());
//查询整个流程的办理意见
List<Opinion> opinions=ApiFactory.getOpinionService().getOpinions(dp);
Assert.assertEquals(1, opinions.size());
opinion=opinions.get(0);
//删除意见
ApiFactory.getOpinionService().deleteOpinion(opinion.getId());
//查询整个流程的办理意见
opinions=ApiFactory.getOpinionService().getOpinions(dp);
Assert.assertEquals(0, opinions.size());
}
@Test
public void getAllOpinionsOne(){
// 准备数据
deploy("wf_test_8.xml");
ParameterUtils.setParameters(getPrmt(1L, 65L, "test2", "test2"));
ExpenseReport dp = new ExpenseReport();
dp.setCompanyId(1L);
expenseReportManager.save(dp);
// 提交第一环节任务
ApiFactory.getInstanceService().submitInstance("wf_test_8", dp);
WorkflowTask task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"test2");
Assert.assertNotNull(task);
// 保存意见
Opinion opinion=new Opinion();
opinion.setOpinion("同意");
ApiFactory.getOpinionService().saveOpinion(opinion,task.getId());
//查询整个流程的办理意见
List<Opinion> opinions=ApiFactory.getOpinionService().getAllOpinions(dp.getWorkflowInfo().getWorkflowId());
Assert.assertEquals(1, opinions.size());
}
@Test
public void getOpinionsThree(){
// 准备数据
deploy("wf_test_8.xml");
ParameterUtils.setParameters(getPrmt(1L, 65L, "test2", "test2"));
ExpenseReport dp = new ExpenseReport();
dp.setCompanyId(1L);
expenseReportManager.save(dp);
// 提交第一环节任务
ApiFactory.getInstanceService().submitInstance("wf_test_8", dp);
WorkflowTask task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"test2");
Assert.assertNotNull(task);
// 保存意见
Opinion opinion=new Opinion();
opinion.setOpinion("同意");
ApiFactory.getOpinionService().saveOpinion(opinion,task.getId());
//查询整个实例中具体办理模式的意见
List<Opinion> opinions=ApiFactory.getOpinionService().getOpinions(dp,TaskProcessingMode.TYPE_APPROVAL);
//审批式下有一条意见
Assert.assertEquals(1, opinions.size());
}
@Test
public void getAllOpinionsTwo(){
// 准备数据
deploy("wf_test_8.xml");
ParameterUtils.setParameters(getPrmt(1L, 65L, "test2", "test2"));
ExpenseReport dp = new ExpenseReport();
dp.setCompanyId(1L);
expenseReportManager.save(dp);
// 提交第一环节任务
ApiFactory.getInstanceService().submitInstance("wf_test_8", dp);
WorkflowTask task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"test2");
Assert.assertNotNull(task);
// 保存意见
Opinion opinion=new Opinion();
opinion.setOpinion("同意");
ApiFactory.getOpinionService().saveOpinion(opinion,task.getId());
//查询整个实例中具体办理模式的意见
List<Opinion> opinions=ApiFactory.getOpinionService().getAllOpinions(dp.getWorkflowInfo().getWorkflowId(),TaskProcessingMode.TYPE_APPROVAL);
//审批式下有一条意见
Assert.assertEquals(1, opinions.size());
}
@Test
public void getOpinionsExcludeTaskModeOne(){
// 准备数据
deploy("wf_test_8.xml");
ParameterUtils.setParameters(getPrmt(1L, 65L, "test2", "test2"));
ExpenseReport dp = new ExpenseReport();
dp.setCompanyId(1L);
expenseReportManager.save(dp);
// 提交第一环节任务
ApiFactory.getInstanceService().submitInstance("wf_test_8", dp);
WorkflowTask task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"test2");
Assert.assertNotNull(task);
// 保存意见
Opinion opinion=new Opinion();
opinion.setOpinion("同意");
ApiFactory.getOpinionService().saveOpinion(opinion,task.getId());
// 查询整个实例中不是该办理模式的意见
List<Opinion> opinions=ApiFactory.getOpinionService().getOpinionsExcludeTaskMode(dp,TaskProcessingMode.TYPE_EDIT);
//审批式下有一条意见
Assert.assertEquals(1, opinions.size());
}
@Test
public void getOpinionsExcludeTaskModeTwo(){
// 准备数据
deploy("wf_test_8.xml");
ParameterUtils.setParameters(getPrmt(1L, 65L, "test2", "test2"));
ExpenseReport dp = new ExpenseReport();
dp.setCompanyId(1L);
expenseReportManager.save(dp);
// 提交第一环节任务
ApiFactory.getInstanceService().submitInstance("wf_test_8", dp);
WorkflowTask task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"test2");
Assert.assertNotNull(task);
// 保存意见
Opinion opinion=new Opinion();
opinion.setOpinion("同意");
ApiFactory.getOpinionService().saveOpinion(opinion,task.getId());
// 查询整个实例中不是该办理模式的意见
List<Opinion> opinions=ApiFactory.getOpinionService().getOpinionsExcludeTaskMode(dp.getWorkflowInfo().getWorkflowId(),TaskProcessingMode.TYPE_EDIT);
//审批式下有一条意见
Assert.assertEquals(1, opinions.size());
}
@Test
public void getOpinionsFour(){
// 准备数据
deploy("wf_test_8.xml");
ParameterUtils.setParameters(getPrmt(1L, 65L, "test2", "test2"));
ExpenseReport dp = new ExpenseReport();
dp.setCompanyId(1L);
expenseReportManager.save(dp);
// 提交第一环节任务
ApiFactory.getInstanceService().submitInstance("wf_test_8", dp);
WorkflowTask task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"test2");
Assert.assertNotNull(task);
// 保存意见
Opinion opinion=new Opinion();
opinion.setOpinion("同意");
ApiFactory.getOpinionService().saveOpinion(opinion,task.getId());
// 查询整个实例中具体环节的意见
List<Opinion> opinions=ApiFactory.getOpinionService().getOpinions(dp,"审批报销单");
Assert.assertEquals(1, opinions.size());
}
@Test
public void getAllOpinionsThree(){
// 准备数据
deploy("wf_test_8.xml");
ParameterUtils.setParameters(getPrmt(1L, 65L, "test2", "test2"));
ExpenseReport dp = new ExpenseReport();
dp.setCompanyId(1L);
expenseReportManager.save(dp);
// 提交第一环节任务
ApiFactory.getInstanceService().submitInstance("wf_test_8", dp);
WorkflowTask task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"test2");
Assert.assertNotNull(task);
// 保存意见
Opinion opinion=new Opinion();
opinion.setOpinion("同意");
ApiFactory.getOpinionService().saveOpinion(opinion,task.getId());
// 查询整个实例中具体环节的意见
List<Opinion> opinions=ApiFactory.getOpinionService().getAllOpinions(dp.getWorkflowInfo().getWorkflowId(),"审批报销单");
Assert.assertEquals(1, opinions.size());
}
@Test
public void getOpinionsFive(){
// 准备数据
deploy("wf_test_8.xml");
ParameterUtils.setParameters(getPrmt(1L, 65L, "test2", "test2"));
ExpenseReport dp = new ExpenseReport();
dp.setCompanyId(1L);
expenseReportManager.save(dp);
// 提交第一环节任务
ApiFactory.getInstanceService().submitInstance("wf_test_8", dp);
WorkflowTask task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"test2");
Assert.assertNotNull(task);
// 保存意见
Opinion opinion=new Opinion();
opinion.setOpinion("同意");
ApiFactory.getOpinionService().saveOpinion(opinion,task.getId());
//查询整个实例中具体环节的意见
List<Opinion> opinions=ApiFactory.getOpinionService().getOpinions(dp,"审批报销单");
Assert.assertEquals(1, opinions.size());
}
@Test
public void getOpinionsSix(){
// 准备数据
deploy("wf_test_8.xml");
ParameterUtils.setParameters(getPrmt(1L, 65L, "test2", "test2"));
ExpenseReport dp = new ExpenseReport();
dp.setCompanyId(1L);
expenseReportManager.save(dp);
// 提交第一环节任务
ApiFactory.getInstanceService().submitInstance("wf_test_8", dp);
WorkflowTask task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"test2");
Assert.assertNotNull(task);
// 保存意见
Opinion opinion=new Opinion();
opinion.setOpinion("同意");
ApiFactory.getOpinionService().saveOpinion(opinion,task.getId());
//查询整个实例中具体环节的意见
List<Opinion> opinions=ApiFactory.getOpinionService().getOpinions(dp.getWorkflowInfo().getWorkflowId(),"审批报销单");
Assert.assertEquals(1, opinions.size());
}
@Test
public void getOpinionsExcludeTaskNameOne(){
// 准备数据
deploy("wf_test_8.xml");
ParameterUtils.setParameters(getPrmt(1L, 65L, "test2", "test2"));
ExpenseReport dp = new ExpenseReport();
dp.setCompanyId(1L);
expenseReportManager.save(dp);
// 提交第一环节任务
ApiFactory.getInstanceService().submitInstance("wf_test_8", dp);
WorkflowTask task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"test2");
Assert.assertNotNull(task);
// 保存意见
Opinion opinion=new Opinion();
opinion.setOpinion("同意");
ApiFactory.getOpinionService().saveOpinion(opinion,task.getId());
//查询整个实例中不是该环节的意见
List<Opinion> opinions=ApiFactory.getOpinionService().getOpinionsExcludeTaskName(dp,"填写报销单");
Assert.assertEquals(1, opinions.size());
}
@Test
public void getOpinionsExcludeTaskNameTwo(){
// 准备数据
deploy("wf_test_8.xml");
ParameterUtils.setParameters(getPrmt(1L, 65L, "test2", "test2"));
ExpenseReport dp = new ExpenseReport();
dp.setCompanyId(1L);
expenseReportManager.save(dp);
// 提交第一环节任务
ApiFactory.getInstanceService().submitInstance("wf_test_8", dp);
WorkflowTask task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"test2");
Assert.assertNotNull(task);
// 保存意见
Opinion opinion=new Opinion();
opinion.setOpinion("同意");
ApiFactory.getOpinionService().saveOpinion(opinion,task.getId());
//查询整个实例中不是该环节的意见
List<Opinion> opinions=ApiFactory.getOpinionService().getOpinionsExcludeTaskName(dp.getWorkflowInfo().getWorkflowId(),"填写报销单");
Assert.assertEquals(1, opinions.size());
//查询具体某条办理意见
opinion=ApiFactory.getOpinionService().getOpinionById(opinions.get(0).getId());
Assert.assertNotNull(opinion);
}
@Test
public void getOpinionsByCustomFieldOne(){
// 准备数据
deploy("wf_test_8.xml");
ParameterUtils.setParameters(getPrmt(1L, 65L, "test2", "test2"));
ExpenseReport dp = new ExpenseReport();
dp.setCompanyId(1L);
expenseReportManager.save(dp);
// 提交第一环节任务
ApiFactory.getInstanceService().submitInstance("wf_test_8", dp);
WorkflowTask task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"test2");
Assert.assertNotNull(task);
// 保存意见
Opinion opinion=new Opinion();
opinion.setOpinion("同意");
opinion.setCustomField("类别1");
ApiFactory.getOpinionService().saveOpinion(opinion,task.getId());
opinion=new Opinion();
opinion.setOpinion("同意");
opinion.setCustomField("类别1");
ApiFactory.getOpinionService().saveOpinion(opinion,task.getId());
opinion=new Opinion();
opinion.setOpinion("同意");
opinion.setCustomField("类别2");
ApiFactory.getOpinionService().saveOpinion(opinion,task.getId());
opinion=new Opinion();
opinion.setOpinion("同意");
opinion.setCustomField("类别2");
ApiFactory.getOpinionService().saveOpinion(opinion,task.getId());
//查询整个实例中“自定义类别”的意见
List<Opinion> opinions=ApiFactory.getOpinionService().getOpinionsByCustomField(dp,"类别1");
Assert.assertEquals(2, opinions.size());
}
@Test
public void getOpinionsByCustomFieldTwo(){
// 准备数据
deploy("wf_test_8.xml");
ParameterUtils.setParameters(getPrmt(1L, 65L, "test2", "test2"));
ExpenseReport dp = new ExpenseReport();
dp.setCompanyId(1L);
expenseReportManager.save(dp);
// 提交第一环节任务
ApiFactory.getInstanceService().submitInstance("wf_test_8", dp);
WorkflowTask task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"test2");
Assert.assertNotNull(task);
// 保存意见
Opinion opinion=new Opinion();
opinion.setOpinion("同意");
opinion.setCustomField("类别1");
ApiFactory.getOpinionService().saveOpinion(opinion,task.getId());
opinion=new Opinion();
opinion.setOpinion("同意");
opinion.setCustomField("类别1");
ApiFactory.getOpinionService().saveOpinion(opinion,task.getId());
opinion=new Opinion();
opinion.setOpinion("同意");
opinion.setCustomField("类别2");
ApiFactory.getOpinionService().saveOpinion(opinion,task.getId());
opinion=new Opinion();
opinion.setOpinion("同意");
opinion.setCustomField("类别2");
ApiFactory.getOpinionService().saveOpinion(opinion,task.getId());
//查询整个实例中“自定义类别”的意见
List<Opinion> opinions=ApiFactory.getOpinionService().getOpinionsByCustomField(dp.getWorkflowInfo().getWorkflowId(),"类别2");
Assert.assertEquals(2, opinions.size());
}
@Test
public void getOpinionsExcludeCustomFieldOne(){
// 准备数据
deploy("wf_test_8.xml");
ParameterUtils.setParameters(getPrmt(1L, 65L, "test2", "test2"));
ExpenseReport dp = new ExpenseReport();
dp.setCompanyId(1L);
expenseReportManager.save(dp);
// 提交第一环节任务
ApiFactory.getInstanceService().submitInstance("wf_test_8", dp);
WorkflowTask task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"test2");
Assert.assertNotNull(task);
// 保存意见
Opinion opinion=new Opinion();
opinion.setOpinion("同意");
opinion.setCustomField("类别1");
ApiFactory.getOpinionService().saveOpinion(opinion,task.getId());
opinion=new Opinion();
opinion.setOpinion("同意");
opinion.setCustomField("类别1");
ApiFactory.getOpinionService().saveOpinion(opinion,task.getId());
opinion=new Opinion();
opinion.setOpinion("同意");
opinion.setCustomField("类别2");
ApiFactory.getOpinionService().saveOpinion(opinion,task.getId());
opinion=new Opinion();
opinion.setOpinion("同意");
opinion.setCustomField("类别2");
ApiFactory.getOpinionService().saveOpinion(opinion,task.getId());
opinion=new Opinion();
opinion.setOpinion("同意");
ApiFactory.getOpinionService().saveOpinion(opinion,task.getId());
//查询整个实例中不是“自定义类别”的意见
List<Opinion> opinions=ApiFactory.getOpinionService().getOpinionsExcludeCustomField(dp,"类别2");
Assert.assertEquals(3, opinions.size());
}
@Test
public void getOpinionsExcludeCustomFieldTwo(){
// 准备数据
deploy("wf_test_8.xml");
ParameterUtils.setParameters(getPrmt(1L, 65L, "test2", "test2"));
ExpenseReport dp = new ExpenseReport();
dp.setCompanyId(1L);
expenseReportManager.save(dp);
// 提交第一环节任务
ApiFactory.getInstanceService().submitInstance("wf_test_8", dp);
WorkflowTask task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"test2");
Assert.assertNotNull(task);
// 保存意见
Opinion opinion=new Opinion();
opinion.setOpinion("同意");
opinion.setCustomField("类别1");
ApiFactory.getOpinionService().saveOpinion(opinion,task.getId());
opinion=new Opinion();
opinion.setOpinion("同意");
opinion.setCustomField("类别1");
ApiFactory.getOpinionService().saveOpinion(opinion,task.getId());
opinion=new Opinion();
opinion.setOpinion("同意");
opinion.setCustomField("类别2");
ApiFactory.getOpinionService().saveOpinion(opinion,task.getId());
opinion=new Opinion();
opinion.setOpinion("同意");
opinion.setCustomField("类别2");
ApiFactory.getOpinionService().saveOpinion(opinion,task.getId());
opinion=new Opinion();
opinion.setOpinion("同意");
ApiFactory.getOpinionService().saveOpinion(opinion,task.getId());
//查询整个实例中不是“自定义类别”的意见
List<Opinion> opinions=ApiFactory.getOpinionService().getOpinionsExcludeCustomField(dp.getWorkflowInfo().getWorkflowId(),"类别2");
Assert.assertEquals(3, opinions.size());
}
@Test
public void getOpinionsByTaskCodeOne(){
// 准备数据
deploy("wf_test_8.xml");
ParameterUtils.setParameters(getPrmt(1L, 65L, "test2", "test2"));
ExpenseReport dp = new ExpenseReport();
dp.setCompanyId(1L);
expenseReportManager.save(dp);
// 提交第一环节任务
ApiFactory.getInstanceService().submitInstance("wf_test_8", dp);
WorkflowTask task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"test2");
Assert.assertNotNull(task);
// 保存意见
Opinion opinion=new Opinion();
opinion.setOpinion("同意");
ApiFactory.getOpinionService().saveOpinion(opinion,task.getId());
//查询整个实例中具体环节编码的意见
List<Opinion> opinions=ApiFactory.getOpinionService().getOpinionsByTaskCode(dp,"task2");
Assert.assertEquals(1, opinions.size());
}
@Test
public void getOpinionsByTaskCodeTwo(){
// 准备数据
deploy("wf_test_8.xml");
ParameterUtils.setParameters(getPrmt(1L, 65L, "test2", "test2"));
ExpenseReport dp = new ExpenseReport();
dp.setCompanyId(1L);
expenseReportManager.save(dp);
// 提交第一环节任务
ApiFactory.getInstanceService().submitInstance("wf_test_8", dp);
WorkflowTask task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"test2");
Assert.assertNotNull(task);
// 保存意见
Opinion opinion=new Opinion();
opinion.setOpinion("同意");
ApiFactory.getOpinionService().saveOpinion(opinion,task.getId());
//查询整个实例中具体环节编码的意见
List<Opinion> opinions=ApiFactory.getOpinionService().getOpinionsByTaskCode(dp.getWorkflowInfo().getWorkflowId(),"task2");
Assert.assertEquals(1, opinions.size());
}
}