package org.activiti.standalone.cfg; import java.util.List; import org.activiti.engine.impl.interceptor.Command; import org.activiti.engine.impl.interceptor.CommandContext; import org.activiti.engine.impl.test.ResourceActivitiTestCase; import org.activiti.engine.task.Attachment; import org.activiti.engine.task.Task; /** * @author Bassam Al-Sarori */ public class CustomMybatisXMLMapperTest extends ResourceActivitiTestCase { public CustomMybatisXMLMapperTest() { super("org/activiti/standalone/cfg/custom-mybatis-xml-mappers-activiti.cfg.xml"); } public void testSelectOneTask() { // Create test data for (int i=0; i<4; i++) { createTask(i + "", null, null, 0); } final String taskId = createTask("4", null, null, 0); CustomTask customTask = managementService.executeCommand(new Command<CustomTask>() { @Override public CustomTask execute(CommandContext commandContext) { return (CustomTask) commandContext.getDbSqlSession().selectOne("selectOneCustomTask", taskId); } }); assertEquals("4", customTask.getName()); // test default query as well List<Task> tasks = taskService.createTaskQuery().list(); assertEquals(5, tasks.size()); Task task = taskService.createTaskQuery().taskName("2").singleResult(); assertEquals("2", task.getName()); // Cleanup deleteTasks(taskService.createTaskQuery().list()); } public void testSelectTaskList() { // Create test data for (int i=0; i<5; i++) { createTask(i + "", null, null, 0); } List<CustomTask> tasks = managementService.executeCommand(new Command<List<CustomTask>>() { @SuppressWarnings("unchecked") @Override public List<CustomTask> execute(CommandContext commandContext) { return (List<CustomTask>) commandContext.getDbSqlSession().selectList("selectCustomTaskList"); } }); assertEquals(5, tasks.size()); // Cleanup deleteCustomTasks(tasks); } public void testSelectTasksByCustomQuery() { // Create test data for (int i=0; i<5; i++) { createTask(i + "", null, null, 0); } createTask("Owned task", "kermit", null, 0); List<CustomTask> tasks = new CustomTaskQuery(managementService).unOwned().list(); assertEquals(5, tasks.size()); assertEquals(5, new CustomTaskQuery(managementService).unOwned().count()); tasks = new CustomTaskQuery(managementService).list(); // Cleanup deleteCustomTasks(tasks); } public void testSelectTaskByCustomQuery() { // Create test data for (int i=0; i<5; i++) { createTask(i + "", null, null, 0); } createTask("Owned task", "kermit", null, 0); CustomTask task = new CustomTaskQuery(managementService).taskOwner("kermit").singleResult(); assertEquals("kermit", task.getOwner()); List<CustomTask> tasks = new CustomTaskQuery(managementService).list(); // Cleanup deleteCustomTasks(tasks); } public void testCustomQueryListPage() { // Create test data for (int i=0; i<15; i++) { createTask(i + "", null, null, 0); } List<CustomTask> tasks = new CustomTaskQuery(managementService).listPage(0, 10); assertEquals(10, tasks.size()); tasks = new CustomTaskQuery(managementService).list(); // Cleanup deleteCustomTasks(tasks); } public void testCustomQueryOrderBy() { // Create test data for (int i=0; i<5; i++) { createTask(i + "", null, null, i*20); } List<CustomTask> tasks = new CustomTaskQuery(managementService).orderByTaskPriority().desc().list(); assertEquals(5, tasks.size()); for (int i=0,j=4; i<5; i++,j--) { CustomTask task = tasks.get(i); assertEquals(j*20, task.getPriority()); } tasks = new CustomTaskQuery(managementService).orderByTaskPriority().asc().list(); assertEquals(5, tasks.size()); for (int i=0; i<5; i++) { CustomTask task = tasks.get(i); assertEquals(i*20, task.getPriority()); } // Cleanup deleteCustomTasks(tasks); } public void testAttachmentQuery() { String taskId = createTask("task1", null, null, 0); identityService.setAuthenticatedUserId("kermit"); String attachmentId = taskService.createAttachment("image/png", taskId, null, "attachment1", "", "http://activiti.org/").getId(); taskService.createAttachment("image/jpeg", taskId, null, "attachment2", "Attachment Description", "http://activiti.org/"); identityService.setAuthenticatedUserId("gonzo"); taskService.createAttachment("image/png", taskId, null, "zattachment3", "Attachment Description", "http://activiti.org/"); identityService.setAuthenticatedUserId("fozzie"); for (int i=0; i<15; i++) { taskService.createAttachment(null, createTask(i + "", null, null, 0), null, "attachmentName"+i, "", "http://activiti.org/"+i); } assertEquals(attachmentId, new AttachmentQuery(managementService).attachmentId(attachmentId).singleResult().getId()); assertEquals("attachment1", new AttachmentQuery(managementService).attachmentName("attachment1").singleResult().getName()); assertEquals(18, new AttachmentQuery(managementService).count()); List<Attachment> attachments = new AttachmentQuery(managementService).list(); assertEquals(18, attachments.size()); attachments = new AttachmentQuery(managementService).listPage(0, 10); assertEquals(10, attachments.size()); assertEquals(3, new AttachmentQuery(managementService).taskId(taskId).count()); attachments = new AttachmentQuery(managementService).taskId(taskId).list(); assertEquals(3, attachments.size()); assertEquals(2, new AttachmentQuery(managementService).userId("kermit").count()); attachments = new AttachmentQuery(managementService).userId("kermit").list(); assertEquals(2, attachments.size()); assertEquals(1, new AttachmentQuery(managementService).attachmentType("image/jpeg").count()); attachments = new AttachmentQuery(managementService).attachmentType("image/jpeg").list(); assertEquals(1, attachments.size()); assertEquals("zattachment3", new AttachmentQuery(managementService).orderByAttachmentName().desc().list().get(0).getName()); // Cleanup deleteTasks(taskService.createTaskQuery().list()); } protected String createTask(String name, String owner, String assignee, int priority){ Task task = taskService.newTask(); task.setName(name); task.setOwner(owner); task.setAssignee(assignee); task.setPriority(priority); taskService.saveTask(task); return task.getId(); } protected void deleteTask(String taskId){ taskService.deleteTask(taskId); historyService.deleteHistoricTaskInstance(taskId); } protected void deleteTasks(List<Task> tasks){ for (Task task : tasks) deleteTask(task.getId()); } protected void deleteCustomTasks(List<CustomTask> tasks){ for (CustomTask task : tasks) deleteTask(task.getId()); } }