diff --git a/modules/activiti-engine/src/test/java/org/activiti/engine/test/api/event/AttachmentEventsTest.java b/modules/activiti-engine/src/test/java/org/activiti/engine/test/api/event/AttachmentEventsTest.java index 7881d96d65b49dadd9bc0004715db34cd6597fa3..aa8fb9c25a32df239c99452df263336c4144cefd 100644 --- a/modules/activiti-engine/src/test/java/org/activiti/engine/test/api/event/AttachmentEventsTest.java +++ b/modules/activiti-engine/src/test/java/org/activiti/engine/test/api/event/AttachmentEventsTest.java @@ -17,6 +17,7 @@ import java.io.ByteArrayInputStream; import org.activiti.engine.delegate.event.ActivitiEntityEvent; import org.activiti.engine.delegate.event.ActivitiEvent; import org.activiti.engine.delegate.event.ActivitiEventType; +import org.activiti.engine.impl.history.HistoryLevel; import org.activiti.engine.impl.test.PluggableActivitiTestCase; import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.task.Attachment; @@ -37,93 +38,33 @@ public class AttachmentEventsTest extends PluggableActivitiTestCase { */ @Deployment(resources = { "org/activiti/engine/test/api/runtime/oneTaskProcess.bpmn20.xml" }) public void testAttachmentEntityEvents() throws Exception { - ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("oneTaskProcess"); - Task task = taskService.createTaskQuery().processInstanceId(processInstance.getId()).singleResult(); - assertNotNull(task); - - // Create link-attachment - Attachment attachment = taskService.createAttachment("test", task.getId(), processInstance.getId(), "attachment name", "description", "http://activiti.org"); - assertEquals(1, listener.getEventsReceived().size()); - ActivitiEntityEvent event = (ActivitiEntityEvent) listener.getEventsReceived().get(0); - assertEquals(ActivitiEventType.ENTITY_CREATED, event.getType()); - assertEquals(processInstance.getId(), event.getProcessInstanceId()); - assertEquals(processInstance.getId(), event.getExecutionId()); - assertEquals(processInstance.getProcessDefinitionId(), event.getProcessDefinitionId()); - Attachment attachmentFromEvent = (Attachment) event.getEntity(); - assertEquals(attachment.getId(), attachmentFromEvent.getId()); - listener.clearEventsReceived(); - - // Create binary attachment - attachment = taskService.createAttachment("test", task.getId(), processInstance.getId(), "attachment name", "description", new ByteArrayInputStream("test".getBytes())); - assertEquals(1, listener.getEventsReceived().size()); - event = (ActivitiEntityEvent) listener.getEventsReceived().get(0); - assertEquals(ActivitiEventType.ENTITY_CREATED, event.getType()); - assertEquals(processInstance.getId(), event.getProcessInstanceId()); - assertEquals(processInstance.getId(), event.getExecutionId()); - assertEquals(processInstance.getProcessDefinitionId(), event.getProcessDefinitionId()); - attachmentFromEvent = (Attachment) event.getEntity(); - assertEquals(attachment.getId(), attachmentFromEvent.getId()); - listener.clearEventsReceived(); - - // Update attachment - attachment = taskService.getAttachment(attachment.getId()); - attachment.setDescription("Description"); - taskService.saveAttachment(attachment); - - assertEquals(1, listener.getEventsReceived().size()); - event = (ActivitiEntityEvent) listener.getEventsReceived().get(0); - assertEquals(ActivitiEventType.ENTITY_UPDATED, event.getType()); - assertEquals(processInstance.getId(), event.getProcessInstanceId()); - assertEquals(processInstance.getId(), event.getExecutionId()); - assertEquals(processInstance.getProcessDefinitionId(), event.getProcessDefinitionId()); - attachmentFromEvent = (Attachment) event.getEntity(); - assertEquals(attachment.getId(), attachmentFromEvent.getId()); - assertEquals("Description", attachmentFromEvent.getDescription()); - listener.clearEventsReceived(); - - // Finally, delete attachment - taskService.deleteAttachment(attachment.getId()); - assertEquals(1, listener.getEventsReceived().size()); - event = (ActivitiEntityEvent) listener.getEventsReceived().get(0); - assertEquals(ActivitiEventType.ENTITY_DELETED, event.getType()); - assertEquals(processInstance.getId(), event.getProcessInstanceId()); - assertEquals(processInstance.getId(), event.getExecutionId()); - assertEquals(processInstance.getProcessDefinitionId(), event.getProcessDefinitionId()); - attachmentFromEvent = (Attachment) event.getEntity(); - assertEquals(attachment.getId(), attachmentFromEvent.getId()); - } - - /** - * Test create, update and delete events of users. - */ - public void testAttachmentEntityEventsStandaloneTask() throws Exception { - Task task = null; - try { - task = taskService.newTask(); - taskService.saveTask(task); + if(processEngineConfiguration.getHistoryLevel().isAtLeast(HistoryLevel.ACTIVITY)) { + ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("oneTaskProcess"); + + Task task = taskService.createTaskQuery().processInstanceId(processInstance.getId()).singleResult(); assertNotNull(task); // Create link-attachment - Attachment attachment = taskService.createAttachment("test", task.getId(), null, "attachment name", "description", "http://activiti.org"); + Attachment attachment = taskService.createAttachment("test", task.getId(), processInstance.getId(), "attachment name", "description", "http://activiti.org"); assertEquals(1, listener.getEventsReceived().size()); ActivitiEntityEvent event = (ActivitiEntityEvent) listener.getEventsReceived().get(0); assertEquals(ActivitiEventType.ENTITY_CREATED, event.getType()); - assertNull(event.getProcessInstanceId()); - assertNull(event.getExecutionId()); - assertNull(event.getProcessDefinitionId()); + assertEquals(processInstance.getId(), event.getProcessInstanceId()); + assertEquals(processInstance.getId(), event.getExecutionId()); + assertEquals(processInstance.getProcessDefinitionId(), event.getProcessDefinitionId()); Attachment attachmentFromEvent = (Attachment) event.getEntity(); assertEquals(attachment.getId(), attachmentFromEvent.getId()); listener.clearEventsReceived(); // Create binary attachment - attachment = taskService.createAttachment("test", task.getId(), null, "attachment name", "description", new ByteArrayInputStream("test".getBytes())); + attachment = taskService.createAttachment("test", task.getId(), processInstance.getId(), "attachment name", "description", new ByteArrayInputStream("test".getBytes())); assertEquals(1, listener.getEventsReceived().size()); event = (ActivitiEntityEvent) listener.getEventsReceived().get(0); assertEquals(ActivitiEventType.ENTITY_CREATED, event.getType()); - assertNull(event.getProcessInstanceId()); - assertNull(event.getExecutionId()); - assertNull(event.getProcessDefinitionId()); + assertEquals(processInstance.getId(), event.getProcessInstanceId()); + assertEquals(processInstance.getId(), event.getExecutionId()); + assertEquals(processInstance.getProcessDefinitionId(), event.getProcessDefinitionId()); attachmentFromEvent = (Attachment) event.getEntity(); assertEquals(attachment.getId(), attachmentFromEvent.getId()); listener.clearEventsReceived(); @@ -136,9 +77,9 @@ public class AttachmentEventsTest extends PluggableActivitiTestCase { assertEquals(1, listener.getEventsReceived().size()); event = (ActivitiEntityEvent) listener.getEventsReceived().get(0); assertEquals(ActivitiEventType.ENTITY_UPDATED, event.getType()); - assertNull(event.getProcessInstanceId()); - assertNull(event.getExecutionId()); - assertNull(event.getProcessDefinitionId()); + assertEquals(processInstance.getId(), event.getProcessInstanceId()); + assertEquals(processInstance.getId(), event.getExecutionId()); + assertEquals(processInstance.getProcessDefinitionId(), event.getProcessDefinitionId()); attachmentFromEvent = (Attachment) event.getEntity(); assertEquals(attachment.getId(), attachmentFromEvent.getId()); assertEquals("Description", attachmentFromEvent.getDescription()); @@ -149,48 +90,115 @@ public class AttachmentEventsTest extends PluggableActivitiTestCase { assertEquals(1, listener.getEventsReceived().size()); event = (ActivitiEntityEvent) listener.getEventsReceived().get(0); assertEquals(ActivitiEventType.ENTITY_DELETED, event.getType()); - assertNull(event.getProcessInstanceId()); - assertNull(event.getExecutionId()); - assertNull(event.getProcessDefinitionId()); + assertEquals(processInstance.getId(), event.getProcessInstanceId()); + assertEquals(processInstance.getId(), event.getExecutionId()); + assertEquals(processInstance.getProcessDefinitionId(), event.getProcessDefinitionId()); attachmentFromEvent = (Attachment) event.getEntity(); assertEquals(attachment.getId(), attachmentFromEvent.getId()); - - } finally { - if(task != null && task.getId() != null) { - taskService.deleteTask(task.getId()); - historyService.deleteHistoricTaskInstance(task.getId()); + } + } + + /** + * Test create, update and delete events of users. + */ + public void testAttachmentEntityEventsStandaloneTask() throws Exception { + if(processEngineConfiguration.getHistoryLevel().isAtLeast(HistoryLevel.ACTIVITY)) { + Task task = null; + try { + task = taskService.newTask(); + taskService.saveTask(task); + assertNotNull(task); + + // Create link-attachment + Attachment attachment = taskService.createAttachment("test", task.getId(), null, "attachment name", "description", "http://activiti.org"); + assertEquals(1, listener.getEventsReceived().size()); + ActivitiEntityEvent event = (ActivitiEntityEvent) listener.getEventsReceived().get(0); + assertEquals(ActivitiEventType.ENTITY_CREATED, event.getType()); + assertNull(event.getProcessInstanceId()); + assertNull(event.getExecutionId()); + assertNull(event.getProcessDefinitionId()); + Attachment attachmentFromEvent = (Attachment) event.getEntity(); + assertEquals(attachment.getId(), attachmentFromEvent.getId()); + listener.clearEventsReceived(); + + // Create binary attachment + attachment = taskService.createAttachment("test", task.getId(), null, "attachment name", "description", new ByteArrayInputStream("test".getBytes())); + assertEquals(1, listener.getEventsReceived().size()); + event = (ActivitiEntityEvent) listener.getEventsReceived().get(0); + assertEquals(ActivitiEventType.ENTITY_CREATED, event.getType()); + assertNull(event.getProcessInstanceId()); + assertNull(event.getExecutionId()); + assertNull(event.getProcessDefinitionId()); + attachmentFromEvent = (Attachment) event.getEntity(); + assertEquals(attachment.getId(), attachmentFromEvent.getId()); + listener.clearEventsReceived(); + + // Update attachment + attachment = taskService.getAttachment(attachment.getId()); + attachment.setDescription("Description"); + taskService.saveAttachment(attachment); + + assertEquals(1, listener.getEventsReceived().size()); + event = (ActivitiEntityEvent) listener.getEventsReceived().get(0); + assertEquals(ActivitiEventType.ENTITY_UPDATED, event.getType()); + assertNull(event.getProcessInstanceId()); + assertNull(event.getExecutionId()); + assertNull(event.getProcessDefinitionId()); + attachmentFromEvent = (Attachment) event.getEntity(); + assertEquals(attachment.getId(), attachmentFromEvent.getId()); + assertEquals("Description", attachmentFromEvent.getDescription()); + listener.clearEventsReceived(); + + // Finally, delete attachment + taskService.deleteAttachment(attachment.getId()); + assertEquals(1, listener.getEventsReceived().size()); + event = (ActivitiEntityEvent) listener.getEventsReceived().get(0); + assertEquals(ActivitiEventType.ENTITY_DELETED, event.getType()); + assertNull(event.getProcessInstanceId()); + assertNull(event.getExecutionId()); + assertNull(event.getProcessDefinitionId()); + attachmentFromEvent = (Attachment) event.getEntity(); + assertEquals(attachment.getId(), attachmentFromEvent.getId()); + + } finally { + if(task != null && task.getId() != null) { + taskService.deleteTask(task.getId()); + historyService.deleteHistoricTaskInstance(task.getId()); + } } } } public void testAttachmentEntityEventsOnHistoricTaskDelete() throws Exception { - Task task = null; - try { - task = taskService.newTask(); - taskService.saveTask(task); - assertNotNull(task); - - // Create link-attachment - Attachment attachment = taskService.createAttachment("test", task.getId(), null, "attachment name", "description", "http://activiti.org"); - listener.clearEventsReceived(); - - // Delete task and historic task - taskService.deleteTask(task.getId()); - historyService.deleteHistoricTaskInstance(task.getId()); - - assertEquals(1, listener.getEventsReceived().size()); - ActivitiEntityEvent event = (ActivitiEntityEvent) listener.getEventsReceived().get(0); - assertEquals(ActivitiEventType.ENTITY_DELETED, event.getType()); - assertNull(event.getProcessInstanceId()); - assertNull(event.getExecutionId()); - assertNull(event.getProcessDefinitionId()); - Attachment attachmentFromEvent = (Attachment) event.getEntity(); - assertEquals(attachment.getId(), attachmentFromEvent.getId()); - - } finally { - if(task != null && task.getId() != null) { + if(processEngineConfiguration.getHistoryLevel().isAtLeast(HistoryLevel.ACTIVITY)) { + Task task = null; + try { + task = taskService.newTask(); + taskService.saveTask(task); + assertNotNull(task); + + // Create link-attachment + Attachment attachment = taskService.createAttachment("test", task.getId(), null, "attachment name", "description", "http://activiti.org"); + listener.clearEventsReceived(); + + // Delete task and historic task taskService.deleteTask(task.getId()); historyService.deleteHistoricTaskInstance(task.getId()); + + assertEquals(1, listener.getEventsReceived().size()); + ActivitiEntityEvent event = (ActivitiEntityEvent) listener.getEventsReceived().get(0); + assertEquals(ActivitiEventType.ENTITY_DELETED, event.getType()); + assertNull(event.getProcessInstanceId()); + assertNull(event.getExecutionId()); + assertNull(event.getProcessDefinitionId()); + Attachment attachmentFromEvent = (Attachment) event.getEntity(); + assertEquals(attachment.getId(), attachmentFromEvent.getId()); + + } finally { + if(task != null && task.getId() != null) { + taskService.deleteTask(task.getId()); + historyService.deleteHistoricTaskInstance(task.getId()); + } } } }