Skip to content

Commit

Permalink
Closes Taskana#2542 - Flag that counts the comments of a task has bee…
Browse files Browse the repository at this point in the history
…n added
  • Loading branch information
MM1277 committed Mar 26, 2024
1 parent 9913593 commit 592a6c7
Show file tree
Hide file tree
Showing 5 changed files with 12 additions and 15 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ void should_CreateTaskComment_For_TaskThatAlreadyHasComments() throws Exception

@WithAccessId(user = "user-1-2")
@Test
void should_FailToCreateTaskComment_When_UserHasNoWorkbasketPermission() {
void should_FailToCreateTaskComment_When_UserHasNoWorkbasketPermission() throws Exception {
TaskComment taskCommentToCreate = taskService.newTaskComment(taskWithComments.getId());
taskCommentToCreate.setTextField("Some text");

Expand All @@ -108,6 +108,7 @@ void should_FailToCreateTaskComment_When_UserHasNoWorkbasketPermission() {
assertThat(e.getWorkbasketId()).isEqualTo(defaultWorkbasket.getId());
assertThat(e.getRequiredPermissions())
.containsExactly(WorkbasketPermission.READ, WorkbasketPermission.READTASKS);
assertThat(taskService.getTask(taskWithComments.getId()).getNumberOfComments()).isEqualTo(2);
}

@WithAccessId(user = "user-1-1")
Expand All @@ -121,6 +122,7 @@ void should_CreateTaskComment_When_CopyingAnotherComment() throws Exception {
taskService.getTaskComments(taskWithComments.getId());
assertThat(taskCommentsAfterInsert)
.containsExactlyInAnyOrder(comment1, comment2, taskCommentToCreate);
assertThat(taskService.getTask(taskWithComments.getId()).getNumberOfComments()).isEqualTo(3);
}

@WithAccessId(user = "user-1-1")
Expand All @@ -139,5 +141,6 @@ void should_FailToCreateTaskComment_When_TaskIdIsNullOrNonExisting() throws Exce
call = () -> taskService.createTaskComment(newTaskCommentForTaskIdNull);
e = catchThrowableOfType(call, TaskNotFoundException.class);
assertThat(e.getTaskId()).isNull();
assertThat(taskService.getTask(taskWithComments.getId()).getNumberOfComments()).isEqualTo(2);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,7 @@ void should_FailToDeleteTaskComment_When_UserHasNoAuthorization() throws Excepti
List<TaskComment> taskCommentsAfterDeletionWithAdmin =
taskService.getTaskComments(task1.getId());
assertThat(taskCommentsAfterDeletionWithAdmin).hasSize(0);
assertThat(taskService.getTask(task1.getId()).getNumberOfComments()).isZero();
}

@WithAccessId(user = "admin")
Expand All @@ -149,6 +150,7 @@ void should_DeleteTaskComment_When_UserIsInAdministrativeRole() throws Exception

List<TaskComment> taskCommentsAfterDeletion = taskService.getTaskComments(task1.getId());
assertThat(taskCommentsAfterDeletion).hasSize(0);
assertThat(taskService.getTask(task1.getId()).getNumberOfComments()).isZero();
}

@WithAccessId(user = "user-1-1")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,7 @@ void should_FailToUpdateTaskComment_When_ChangingCreator() throws Exception {
ThrowingCallable updateTaskCommentCall = () -> taskService.updateTaskComment(taskComment);
assertThatThrownBy(updateTaskCommentCall)
.isInstanceOf(NotAuthorizedOnTaskCommentException.class);
assertThat(taskService.getTask(task.getId()).getNumberOfComments()).isOne();
}

@WithAccessId(user = "user-1-1")
Expand All @@ -131,6 +132,7 @@ void should_FailToUpdateTaskComment_When_TaskCommentWasModifiedConcurrently() th

assertThatThrownBy(() -> taskService.updateTaskComment(concurrentTaskCommentToUpdate))
.isInstanceOf(ConcurrencyException.class);
assertThat(taskService.getTask(task.getId()).getNumberOfComments()).isOne();
}

private TaskBuilder createDefaultTask() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
import pro.taskana.task.api.exceptions.NotAuthorizedOnTaskCommentException;
import pro.taskana.task.api.exceptions.TaskCommentNotFoundException;
import pro.taskana.task.api.exceptions.TaskNotFoundException;
import pro.taskana.task.api.models.Task;
import pro.taskana.task.api.models.TaskComment;
import pro.taskana.task.internal.models.TaskCommentImpl;
import pro.taskana.task.internal.models.TaskImpl;
Expand Down Expand Up @@ -114,9 +115,7 @@ TaskComment createTaskComment(TaskComment taskCommentToCreate)

taskCommentMapper.insert(taskCommentImplToCreate);

TaskImpl task = (TaskImpl) taskService.getTask(taskCommentImplToCreate.getTaskId());
taskMapper.incrementNumberOfComments(task.getId(), Instant.now());
task.incrementNumberOfComments();
taskMapper.incrementNumberOfComments(taskCommentImplToCreate.getTaskId(), Instant.now());

} finally {
taskanaEngine.returnConnection();
Expand Down Expand Up @@ -144,11 +143,10 @@ void deleteTaskComment(String taskCommentId)
|| taskanaEngine.getEngine().isUserInRole(TaskanaRole.ADMIN)
|| taskanaEngine.getEngine().isUserInRole(TaskanaRole.TASK_ADMIN)) {

TaskImpl task =
(TaskImpl) taskService.getTask(taskCommentMapper.findById(taskCommentId).getTaskId());
Task task =
taskService.getTask(taskCommentMapper.findById(taskCommentId).getTaskId());
taskCommentMapper.delete(taskCommentId);
taskMapper.decrementNumberOfComments(task.getId(), Instant.now());
task.decrementNumberOfComments();

if (LOGGER.isDebugEnabled()) {
LOGGER.debug("taskComment {} deleted", taskCommentToDelete.getId());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -296,14 +296,6 @@ public void setNumberOfComments(int numberOfComments) {
this.numberOfComments = numberOfComments;
}

public void incrementNumberOfComments() {
this.numberOfComments++;
}

public void decrementNumberOfComments() {
this.numberOfComments--;
}

@Override
public ClassificationSummary getClassificationSummary() {
return classificationSummary;
Expand Down

0 comments on commit 592a6c7

Please sign in to comment.