TSK-1333: Add history events for cancelled/terminated tasks
This commit is contained in:
parent
5030415f17
commit
b7237021e2
|
@ -6,7 +6,6 @@ import acceptance.AbstractAccTest;
|
|||
import acceptance.security.JaasExtension;
|
||||
import acceptance.security.WithAccessId;
|
||||
import java.util.List;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
|
||||
|
@ -19,17 +18,10 @@ import pro.taskana.task.api.TaskState;
|
|||
import pro.taskana.task.api.models.Task;
|
||||
|
||||
@ExtendWith(JaasExtension.class)
|
||||
class CreateHistoryEventOnCancelClaimAccTest extends AbstractAccTest {
|
||||
class CreateHistoryEventOnTaskCancelClaimAccTest extends AbstractAccTest {
|
||||
|
||||
private TaskService taskService;
|
||||
private SimpleHistoryServiceImpl historyService;
|
||||
|
||||
@BeforeEach
|
||||
public void setUp() {
|
||||
|
||||
taskService = taskanaEngine.getTaskService();
|
||||
historyService = getHistoryService();
|
||||
}
|
||||
private final TaskService taskService = taskanaEngine.getTaskService();
|
||||
private final SimpleHistoryServiceImpl historyService = getHistoryService();
|
||||
|
||||
@WithAccessId(user = "admin")
|
||||
@Test
|
|
@ -0,0 +1,45 @@
|
|||
package acceptance.events;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
import acceptance.AbstractAccTest;
|
||||
import acceptance.security.JaasExtension;
|
||||
import acceptance.security.WithAccessId;
|
||||
import java.util.List;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
|
||||
import pro.taskana.simplehistory.impl.HistoryEventImpl;
|
||||
import pro.taskana.simplehistory.impl.SimpleHistoryServiceImpl;
|
||||
import pro.taskana.task.api.TaskService;
|
||||
import pro.taskana.task.api.TaskState;
|
||||
import pro.taskana.task.api.models.Task;
|
||||
|
||||
@ExtendWith(JaasExtension.class)
|
||||
class CreateHistoryEventOnTaskCancellationAccTest extends AbstractAccTest {
|
||||
|
||||
private final TaskService taskService = taskanaEngine.getTaskService();
|
||||
private final SimpleHistoryServiceImpl historyService = getHistoryService();
|
||||
|
||||
@Test
|
||||
@WithAccessId(user = "admin")
|
||||
void should_CreateCancelledHistoryEvent_When_TaskIsCancelled() throws Exception {
|
||||
|
||||
final String taskId = "TKI:000000000000000000000000000000000001";
|
||||
|
||||
List<HistoryEventImpl> listEvents = historyService.createHistoryQuery().taskIdIn(taskId).list();
|
||||
|
||||
assertThat(listEvents).isEmpty();
|
||||
|
||||
assertThat(taskService.getTask(taskId).getState()).isEqualTo(TaskState.CLAIMED);
|
||||
|
||||
Task task = taskService.cancelTask(taskId);
|
||||
assertThat(task.getState()).isEqualTo(TaskState.CANCELLED);
|
||||
|
||||
listEvents = historyService.createHistoryQuery().taskIdIn(taskId).list();
|
||||
|
||||
assertThat(listEvents).hasSize(1);
|
||||
assertThat(historyService.getHistoryEvent(listEvents.get(0).getId()).getEventType())
|
||||
.isEqualTo("TASK_CANCELLED");
|
||||
}
|
||||
}
|
|
@ -6,7 +6,6 @@ import acceptance.AbstractAccTest;
|
|||
import acceptance.security.JaasExtension;
|
||||
import acceptance.security.WithAccessId;
|
||||
import java.util.List;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
|
||||
|
@ -19,17 +18,10 @@ import pro.taskana.task.api.TaskState;
|
|||
import pro.taskana.task.api.models.Task;
|
||||
|
||||
@ExtendWith(JaasExtension.class)
|
||||
class CreateHistoryEventOnClaimAccTest extends AbstractAccTest {
|
||||
class CreateHistoryEventOnTaskClaimAccTest extends AbstractAccTest {
|
||||
|
||||
private TaskService taskService;
|
||||
private SimpleHistoryServiceImpl historyService;
|
||||
|
||||
@BeforeEach
|
||||
public void setUp() {
|
||||
|
||||
taskService = taskanaEngine.getTaskService();
|
||||
historyService = getHistoryService();
|
||||
}
|
||||
private final TaskService taskService = taskanaEngine.getTaskService();
|
||||
private final SimpleHistoryServiceImpl historyService = getHistoryService();
|
||||
|
||||
@WithAccessId(user = "admin")
|
||||
@Test
|
|
@ -6,7 +6,6 @@ import acceptance.AbstractAccTest;
|
|||
import acceptance.security.JaasExtension;
|
||||
import acceptance.security.WithAccessId;
|
||||
import java.util.List;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
|
||||
|
@ -19,17 +18,10 @@ import pro.taskana.task.api.TaskState;
|
|||
import pro.taskana.task.api.models.Task;
|
||||
|
||||
@ExtendWith(JaasExtension.class)
|
||||
class CreateHistoryEventOnCompletionAccTest extends AbstractAccTest {
|
||||
class CreateHistoryEventOnTaskCompletionAccTest extends AbstractAccTest {
|
||||
|
||||
private TaskService taskService;
|
||||
private SimpleHistoryServiceImpl historyService;
|
||||
|
||||
@BeforeEach
|
||||
public void setUp() {
|
||||
|
||||
taskService = taskanaEngine.getTaskService();
|
||||
historyService = getHistoryService();
|
||||
}
|
||||
private final TaskService taskService = taskanaEngine.getTaskService();
|
||||
private final SimpleHistoryServiceImpl historyService = getHistoryService();
|
||||
|
||||
@WithAccessId(user = "admin")
|
||||
@Test
|
|
@ -6,7 +6,6 @@ import acceptance.AbstractAccTest;
|
|||
import acceptance.security.JaasExtension;
|
||||
import acceptance.security.WithAccessId;
|
||||
import java.util.List;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
|
||||
|
@ -21,15 +20,8 @@ import pro.taskana.task.internal.models.TaskImpl;
|
|||
@ExtendWith(JaasExtension.class)
|
||||
class CreateHistoryEventOnTaskCreationAccTest extends AbstractAccTest {
|
||||
|
||||
private TaskService taskService;
|
||||
private SimpleHistoryServiceImpl historyService;
|
||||
|
||||
@BeforeEach
|
||||
public void setUp() {
|
||||
|
||||
taskService = taskanaEngine.getTaskService();
|
||||
historyService = getHistoryService();
|
||||
}
|
||||
private final TaskService taskService = taskanaEngine.getTaskService();
|
||||
private final SimpleHistoryServiceImpl historyService = getHistoryService();
|
||||
|
||||
@Test
|
||||
@WithAccessId(user = "admin")
|
||||
|
|
|
@ -0,0 +1,45 @@
|
|||
package acceptance.events;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
import acceptance.AbstractAccTest;
|
||||
import acceptance.security.JaasExtension;
|
||||
import acceptance.security.WithAccessId;
|
||||
import java.util.List;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
|
||||
import pro.taskana.simplehistory.impl.HistoryEventImpl;
|
||||
import pro.taskana.simplehistory.impl.SimpleHistoryServiceImpl;
|
||||
import pro.taskana.task.api.TaskService;
|
||||
import pro.taskana.task.api.TaskState;
|
||||
import pro.taskana.task.api.models.Task;
|
||||
|
||||
@ExtendWith(JaasExtension.class)
|
||||
class CreateHistoryEventOnTaskTerminationAccTest extends AbstractAccTest {
|
||||
|
||||
private final TaskService taskService = taskanaEngine.getTaskService();
|
||||
private final SimpleHistoryServiceImpl historyService = getHistoryService();
|
||||
|
||||
@Test
|
||||
@WithAccessId(user = "admin")
|
||||
void should_CreateTerminatedHistoryEvent_When_TaskIsTerminated() throws Exception {
|
||||
|
||||
final String taskId = "TKI:000000000000000000000000000000000001";
|
||||
|
||||
List<HistoryEventImpl> listEvents = historyService.createHistoryQuery().taskIdIn(taskId).list();
|
||||
|
||||
assertThat(listEvents).isEmpty();
|
||||
|
||||
assertThat(taskService.getTask(taskId).getState()).isEqualTo(TaskState.CLAIMED);
|
||||
|
||||
Task task = taskService.terminateTask(taskId);
|
||||
assertThat(task.getState()).isEqualTo(TaskState.TERMINATED);
|
||||
|
||||
listEvents = historyService.createHistoryQuery().taskIdIn(taskId).list();
|
||||
|
||||
assertThat(listEvents).hasSize(1);
|
||||
assertThat(historyService.getHistoryEvent(listEvents.get(0).getId()).getEventType())
|
||||
.isEqualTo("TASK_TERMINATED");
|
||||
}
|
||||
}
|
|
@ -6,7 +6,6 @@ import acceptance.AbstractAccTest;
|
|||
import acceptance.security.JaasExtension;
|
||||
import acceptance.security.WithAccessId;
|
||||
import java.util.List;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
|
||||
|
@ -17,17 +16,10 @@ import pro.taskana.simplehistory.impl.mappings.HistoryQueryMapper;
|
|||
import pro.taskana.task.api.TaskService;
|
||||
|
||||
@ExtendWith(JaasExtension.class)
|
||||
class CreateHistoryEventOnTransferAccTest extends AbstractAccTest {
|
||||
class CreateHistoryEventOnTaskTransferAccTest extends AbstractAccTest {
|
||||
|
||||
private TaskService taskService;
|
||||
private SimpleHistoryServiceImpl historyService;
|
||||
|
||||
@BeforeEach
|
||||
public void setUp() {
|
||||
|
||||
taskService = taskanaEngine.getTaskService();
|
||||
historyService = getHistoryService();
|
||||
}
|
||||
private final TaskService taskService = taskanaEngine.getTaskService();
|
||||
private final SimpleHistoryServiceImpl historyService = getHistoryService();
|
||||
|
||||
@WithAccessId(user = "admin")
|
||||
@Test
|
|
@ -6,7 +6,6 @@ import acceptance.AbstractAccTest;
|
|||
import acceptance.security.JaasExtension;
|
||||
import acceptance.security.WithAccessId;
|
||||
import java.util.List;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
|
||||
|
@ -20,15 +19,8 @@ import pro.taskana.task.api.models.Task;
|
|||
@ExtendWith(JaasExtension.class)
|
||||
class CreateHistoryEventOnTaskUpdateAccTest extends AbstractAccTest {
|
||||
|
||||
private TaskService taskService;
|
||||
private SimpleHistoryServiceImpl historyService;
|
||||
|
||||
@BeforeEach
|
||||
public void setUp() {
|
||||
|
||||
taskService = taskanaEngine.getTaskService();
|
||||
historyService = getHistoryService();
|
||||
}
|
||||
private final TaskService taskService = taskanaEngine.getTaskService();
|
||||
private final SimpleHistoryServiceImpl historyService = getHistoryService();
|
||||
|
||||
@Test
|
||||
@WithAccessId(user = "admin")
|
||||
|
|
|
@ -9,7 +9,6 @@ import acceptance.security.WithAccessId;
|
|||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import org.assertj.core.api.ThrowableAssert.ThrowingCallable;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
|
||||
|
@ -23,15 +22,8 @@ import pro.taskana.task.api.exceptions.TaskNotFoundException;
|
|||
@ExtendWith(JaasExtension.class)
|
||||
class DeleteHistoryEventsOnTaskDeletionAccTest extends AbstractAccTest {
|
||||
|
||||
private TaskService taskService;
|
||||
private SimpleHistoryServiceImpl historyService;
|
||||
|
||||
@BeforeEach
|
||||
public void setUp() {
|
||||
|
||||
taskService = taskanaEngine.getTaskService();
|
||||
historyService = getHistoryService();
|
||||
}
|
||||
private final TaskService taskService = taskanaEngine.getTaskService();
|
||||
private final SimpleHistoryServiceImpl historyService = getHistoryService();
|
||||
|
||||
@Test
|
||||
@WithAccessId(user = "admin")
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
package pro.taskana.spi.history.api.events.task;
|
||||
|
||||
import pro.taskana.task.api.models.Task;
|
||||
|
||||
/** Event fired if a task is cancelled. */
|
||||
public class CancelledEvent extends TaskEvent {
|
||||
|
||||
public CancelledEvent(String id, Task task, String userId) {
|
||||
super(id, task, userId, null);
|
||||
eventType = "TASK_CANCELLED";
|
||||
created = task.getModified();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,13 @@
|
|||
package pro.taskana.spi.history.api.events.task;
|
||||
|
||||
import pro.taskana.task.api.models.Task;
|
||||
|
||||
/** Event fired if a task is terminated. */
|
||||
public class TerminatedEvent extends TaskEvent {
|
||||
|
||||
public TerminatedEvent(String id, Task task, String userId) {
|
||||
super(id, task, userId, null);
|
||||
eventType = "TASK_TERMINATED";
|
||||
created = task.getModified();
|
||||
}
|
||||
}
|
|
@ -39,10 +39,12 @@ import pro.taskana.common.internal.util.CheckedFunction;
|
|||
import pro.taskana.common.internal.util.IdGenerator;
|
||||
import pro.taskana.common.internal.util.Pair;
|
||||
import pro.taskana.common.internal.util.Triplet;
|
||||
import pro.taskana.spi.history.api.events.task.CancelledEvent;
|
||||
import pro.taskana.spi.history.api.events.task.ClaimCancelledEvent;
|
||||
import pro.taskana.spi.history.api.events.task.ClaimedEvent;
|
||||
import pro.taskana.spi.history.api.events.task.CompletedEvent;
|
||||
import pro.taskana.spi.history.api.events.task.CreatedEvent;
|
||||
import pro.taskana.spi.history.api.events.task.TerminatedEvent;
|
||||
import pro.taskana.spi.history.api.events.task.UpdatedEvent;
|
||||
import pro.taskana.spi.history.internal.HistoryEventManager;
|
||||
import pro.taskana.task.api.CallbackState;
|
||||
|
@ -796,13 +798,26 @@ public class TaskServiceImpl implements TaskService {
|
|||
public Task cancelTask(String taskId)
|
||||
throws TaskNotFoundException, InvalidStateException, NotAuthorizedException {
|
||||
LOGGER.debug("entry to cancelTask(task = {})", taskId);
|
||||
|
||||
Task cancelledTask;
|
||||
|
||||
try {
|
||||
taskanaEngine.openConnection();
|
||||
return terminateCancelCommonActions(taskId, TaskState.CANCELLED);
|
||||
cancelledTask = terminateCancelCommonActions(taskId, TaskState.CANCELLED);
|
||||
|
||||
if (HistoryEventManager.isHistoryEnabled()) {
|
||||
historyEventManager.createEvent(
|
||||
new CancelledEvent(
|
||||
IdGenerator.generateWithPrefix(ID_PREFIX_HISTORY_EVENT),
|
||||
cancelledTask,
|
||||
CurrentUserContext.getUserid()));
|
||||
}
|
||||
} finally {
|
||||
taskanaEngine.returnConnection();
|
||||
LOGGER.debug("exit from cancelTask()");
|
||||
}
|
||||
|
||||
return cancelledTask;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -812,13 +827,25 @@ public class TaskServiceImpl implements TaskService {
|
|||
|
||||
taskanaEngine.getEngine().checkRoleMembership(TaskanaRole.ADMIN, TaskanaRole.TASK_ADMIN);
|
||||
|
||||
Task terminatedTask;
|
||||
|
||||
try {
|
||||
taskanaEngine.openConnection();
|
||||
return terminateCancelCommonActions(taskId, TaskState.TERMINATED);
|
||||
terminatedTask = terminateCancelCommonActions(taskId, TaskState.TERMINATED);
|
||||
|
||||
if (HistoryEventManager.isHistoryEnabled()) {
|
||||
historyEventManager.createEvent(
|
||||
new TerminatedEvent(
|
||||
IdGenerator.generateWithPrefix(ID_PREFIX_HISTORY_EVENT),
|
||||
terminatedTask,
|
||||
CurrentUserContext.getUserid()));
|
||||
}
|
||||
|
||||
} finally {
|
||||
taskanaEngine.returnConnection();
|
||||
LOGGER.debug("exit from terminateTask()");
|
||||
}
|
||||
return terminatedTask;
|
||||
}
|
||||
|
||||
public List<String> findTasksIdsAffectedByClassificationChange(String classificationId) {
|
||||
|
|
Loading…
Reference in New Issue