From df6d5944bc71e21070e5f5a004c3d742a9f3b5df Mon Sep 17 00:00:00 2001 From: BerndBreier <33351391+BerndBreier@users.noreply.github.com> Date: Mon, 5 Mar 2018 13:03:18 +0100 Subject: [PATCH] TSK-362 make getAttachmentSummaries available in TaskSummary --- .../main/java/pro/taskana/TaskSummary.java | 9 +++++ .../pro/taskana/impl/TaskSummaryImpl.java | 1 + .../acceptance/task/QueryTasksAccTest.java | 35 +++++++++++++++++++ 3 files changed, 45 insertions(+) diff --git a/lib/taskana-core/src/main/java/pro/taskana/TaskSummary.java b/lib/taskana-core/src/main/java/pro/taskana/TaskSummary.java index 91592239c..029a095c1 100644 --- a/lib/taskana-core/src/main/java/pro/taskana/TaskSummary.java +++ b/lib/taskana-core/src/main/java/pro/taskana/TaskSummary.java @@ -1,6 +1,7 @@ package pro.taskana; import java.time.Instant; +import java.util.List; import pro.taskana.impl.ObjectReference; @@ -107,6 +108,13 @@ public interface TaskSummary { */ WorkbasketSummary getWorkbasketSummary(); + /** + * Gets the attachment summaries of the task. + * + * @return the task's attachment summaries + */ + List getAttachmentSummaries(); + /** * Gets the domain of the task. * @@ -225,4 +233,5 @@ public interface TaskSummary { * @return the task's custom10 property */ String getCustom10(); + } diff --git a/lib/taskana-core/src/main/java/pro/taskana/impl/TaskSummaryImpl.java b/lib/taskana-core/src/main/java/pro/taskana/impl/TaskSummaryImpl.java index cd39a5356..b6fddf86d 100644 --- a/lib/taskana-core/src/main/java/pro/taskana/impl/TaskSummaryImpl.java +++ b/lib/taskana-core/src/main/java/pro/taskana/impl/TaskSummaryImpl.java @@ -337,6 +337,7 @@ public class TaskSummaryImpl implements TaskSummary { this.isTransferred = isTransferred; } + @Override public List getAttachmentSummaries() { return attachmentSummaries; } diff --git a/lib/taskana-core/src/test/java/acceptance/task/QueryTasksAccTest.java b/lib/taskana-core/src/test/java/acceptance/task/QueryTasksAccTest.java index b42a7dc76..f00d5413a 100644 --- a/lib/taskana-core/src/test/java/acceptance/task/QueryTasksAccTest.java +++ b/lib/taskana-core/src/test/java/acceptance/task/QueryTasksAccTest.java @@ -21,12 +21,16 @@ import org.junit.Test; import org.junit.runner.RunWith; import acceptance.AbstractAccTest; +import pro.taskana.Attachment; +import pro.taskana.AttachmentSummary; import pro.taskana.BaseQuery.SortDirection; import pro.taskana.KeyDomain; import pro.taskana.Task; import pro.taskana.TaskService; import pro.taskana.TaskSummary; +import pro.taskana.exceptions.AttachmentPersistenceException; import pro.taskana.exceptions.ClassificationNotFoundException; +import pro.taskana.exceptions.ConcurrencyException; import pro.taskana.exceptions.InvalidArgumentException; import pro.taskana.exceptions.InvalidWorkbasketException; import pro.taskana.exceptions.NotAuthorizedException; @@ -164,6 +168,37 @@ public class QueryTasksAccTest extends AbstractAccTest { assertThat(result2.size(), equalTo(65)); } + @WithAccessId( + userName = "teamlead_1", + groupNames = {"group_1"}) + @Test + public void testQueryForAttachmentInSummary() + throws SQLException, NotAuthorizedException, InvalidArgumentException, ClassificationNotFoundException, + TaskNotFoundException, WorkbasketNotFoundException, ConcurrencyException, InvalidWorkbasketException, + AttachmentPersistenceException { + TaskService taskService = taskanaEngine.getTaskService(); + + Attachment attachment = createAttachment("DOCTYPE_DEFAULT", // prio 99, SL P2000D + createObjectReference("COMPANY_A", "SYSTEM_B", "INSTANCE_B", "ArchiveId", + "12345678901234567890123456789012345678901234567890"), + "E-MAIL", "2018-01-15", createSimpleCustomProperties(3)); + + Task task = taskService.getTask("TKI:000000000000000000000000000000000000"); + task.addAttachment(attachment); + taskService.updateTask(task); + + List results = taskService.createTaskQuery() + .idIn("TKI:000000000000000000000000000000000000") + .list(); + assertThat(results.size(), equalTo(1)); + assertThat(results.get(0).getAttachmentSummaries().size(), equalTo(1)); + AttachmentSummary att = results.get(0).getAttachmentSummaries().get(0); + assertThat(att.getClassificationSummary(), equalTo(attachment.getClassificationSummary())); + assertThat(att.getCreated(), equalTo(task.getAttachments().get(0).getCreated())); + assertThat(att.getModified(), equalTo(task.getAttachments().get(0).getModified())); + + } + @WithAccessId( userName = "teamlead_1", groupNames = {"group_1"})