TSK-1413: Fix bulk transfer task history event creation
This commit is contained in:
parent
4dccdb8351
commit
654dc6b2cb
|
@ -3,6 +3,7 @@ package acceptance.events.task;
|
|||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
import acceptance.AbstractAccTest;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
|
@ -48,4 +49,52 @@ class CreateHistoryEventOnTaskTransferAccTest extends AbstractAccTest {
|
|||
|
||||
assertThat(eventType).isEqualTo(TaskHistoryEventType.TRANSFERRED.getName());
|
||||
}
|
||||
|
||||
@WithAccessId(user = "admin")
|
||||
@Test
|
||||
void should_CreateTransferredHistoryEvents_When_TaskBulkTransfer() throws Exception {
|
||||
|
||||
final String taskId = "TKI:000000000000000000000000000000000004";
|
||||
final String taskId2 = "TKI:000000000000000000000000000000000002";
|
||||
|
||||
final String destinationWorkbasketKey = "WBI:100000000000000000000000000000000007";
|
||||
|
||||
List<String> taskIds = new ArrayList<>();
|
||||
|
||||
taskIds.add(taskId);
|
||||
taskIds.add(taskId2);
|
||||
|
||||
TaskHistoryQueryMapper taskHistoryQueryMapper = getHistoryQueryMapper();
|
||||
|
||||
List<TaskHistoryEvent> events =
|
||||
taskHistoryQueryMapper.queryHistoryEvents(
|
||||
(TaskHistoryQueryImpl)
|
||||
historyService.createTaskHistoryQuery().taskIdIn(taskIds.toArray(new String[0])));
|
||||
|
||||
assertThat(events).isEmpty();
|
||||
|
||||
taskService.transferTasks(destinationWorkbasketKey, taskIds);
|
||||
events =
|
||||
taskHistoryQueryMapper.queryHistoryEvents(
|
||||
(TaskHistoryQueryImpl)
|
||||
historyService
|
||||
.createTaskHistoryQuery()
|
||||
.taskIdIn(taskIds.stream().toArray(String[]::new)));
|
||||
|
||||
assertThat(events).hasSize(2);
|
||||
|
||||
assertThat(events)
|
||||
.extracting(TaskHistoryEvent::getEventType)
|
||||
.containsOnly(TaskHistoryEventType.TRANSFERRED.getName());
|
||||
|
||||
assertThat(events)
|
||||
.extracting(TaskHistoryEvent::getOldValue)
|
||||
.containsExactlyInAnyOrder(
|
||||
"WBI:100000000000000000000000000000000006", "WBI:100000000000000000000000000000000001");
|
||||
|
||||
assertThat(events)
|
||||
.extracting(TaskHistoryEvent::getNewValue)
|
||||
.containsOnly("WBI:100000000000000000000000000000000007");
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,21 +1,16 @@
|
|||
package pro.taskana.spi.history.api.events.task;
|
||||
|
||||
import pro.taskana.task.api.models.Task;
|
||||
import pro.taskana.workbasket.api.models.WorkbasketSummary;
|
||||
|
||||
/** Event fired if a task is transferred. */
|
||||
public class TaskTransferredEvent extends TaskHistoryEvent {
|
||||
|
||||
public TaskTransferredEvent(
|
||||
String id,
|
||||
Task task,
|
||||
WorkbasketSummary oldWorkbasket,
|
||||
WorkbasketSummary newWorkbasket,
|
||||
String userId) {
|
||||
String id, Task task, String oldWorkbasketId, String newWorkbasketId, String userId) {
|
||||
super(id, task, userId, null);
|
||||
eventType = TaskHistoryEventType.TRANSFERRED.getName();
|
||||
created = task.getModified();
|
||||
this.oldValue = oldWorkbasket.getId();
|
||||
this.newValue = newWorkbasket.getId();
|
||||
this.oldValue = oldWorkbasketId;
|
||||
this.newValue = newWorkbasketId;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -110,7 +110,8 @@ class TaskTransferrer {
|
|||
taskId,
|
||||
destinationWorkbasket.getId());
|
||||
if (HistoryEventManager.isHistoryEnabled()) {
|
||||
createTaskTransferredEvent(task, oldWorkbasketSummary, destinationWorkbasket.asSummary());
|
||||
createTaskTransferredEvent(
|
||||
task, oldWorkbasketSummary.getId(), destinationWorkbasket.asSummary().getId());
|
||||
}
|
||||
return task;
|
||||
} finally {
|
||||
|
@ -167,7 +168,8 @@ class TaskTransferrer {
|
|||
taskId,
|
||||
destinationWorkbasketId);
|
||||
if (HistoryEventManager.isHistoryEnabled()) {
|
||||
createTaskTransferredEvent(task, oldWorkbasketSummary, destinationWorkbasket.asSummary());
|
||||
createTaskTransferredEvent(
|
||||
task, oldWorkbasketSummary.getId(), destinationWorkbasketId);
|
||||
}
|
||||
return task;
|
||||
} finally {
|
||||
|
@ -358,13 +360,13 @@ class TaskTransferrer {
|
|||
}
|
||||
|
||||
private void createTaskTransferredEvent(
|
||||
Task task, WorkbasketSummary oldWorkbasketSummary, WorkbasketSummary newWorkbasketSummary) {
|
||||
Task task, String oldWorkbasketId, String newWorkbasketId) {
|
||||
historyEventManager.createEvent(
|
||||
new TaskTransferredEvent(
|
||||
IdGenerator.generateWithPrefix(IdGenerator.ID_PREFIX_TASK_HISTORY_EVENT),
|
||||
task,
|
||||
oldWorkbasketSummary,
|
||||
newWorkbasketSummary,
|
||||
oldWorkbasketId,
|
||||
newWorkbasketId,
|
||||
taskanaEngine.getEngine().getCurrentUserContext().getUserid()));
|
||||
}
|
||||
|
||||
|
@ -408,17 +410,20 @@ class TaskTransferrer {
|
|||
taskSummaries
|
||||
.forEach(
|
||||
task -> {
|
||||
TaskImpl newTask = (TaskImpl) taskService.newTask(task.getWorkbasketId());
|
||||
newTask.setWorkbasketSummary(updateObject.getWorkbasketSummary());
|
||||
newTask.setRead(updateObject.isRead());
|
||||
newTask.setTransferred(updateObject.isTransferred());
|
||||
newTask.setWorkbasketSummary(updateObject.getWorkbasketSummary());
|
||||
newTask.setDomain(updateObject.getDomain());
|
||||
newTask.setModified(updateObject.getModified());
|
||||
newTask.setState(updateObject.getState());
|
||||
newTask.setOwner(updateObject.getOwner());
|
||||
|
||||
TaskImpl transferredTask = (TaskImpl) taskService.newTask(task.getWorkbasketId());
|
||||
transferredTask.setId(task.getTaskId());
|
||||
transferredTask.setRead(updateObject.isRead());
|
||||
transferredTask.setTransferred(updateObject.isTransferred());
|
||||
transferredTask.setWorkbasketSummary(updateObject.getWorkbasketSummary());
|
||||
transferredTask.setDomain(updateObject.getDomain());
|
||||
transferredTask.setModified(updateObject.getModified());
|
||||
transferredTask.setState(updateObject.getState());
|
||||
transferredTask.setOwner(updateObject.getOwner());
|
||||
createTaskTransferredEvent(
|
||||
newTask, newTask.getWorkbasketSummary(), updateObject.getWorkbasketSummary());
|
||||
transferredTask,
|
||||
task.getWorkbasketId(),
|
||||
updateObject.getWorkbasketSummary().getId());
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue