From 4444816589a105a2278f39cf479613e147811351 Mon Sep 17 00:00:00 2001 From: ryzheboka <25465835+ryzheboka@users.noreply.github.com> Date: Tue, 15 Mar 2022 18:13:12 +0100 Subject: [PATCH] TSK-1827: add sorting by ownerLongName --- .../task/QueryTasksWithSortingAccTest.java | 30 +++++++++++++++++++ .../pro/taskana/task/rest/TaskController.java | 1 + .../task/rest/TaskControllerIntTest.java | 15 ++++++++++ 3 files changed, 46 insertions(+) diff --git a/lib/taskana-core/src/test/java/acceptance/task/QueryTasksWithSortingAccTest.java b/lib/taskana-core/src/test/java/acceptance/task/QueryTasksWithSortingAccTest.java index 83cecd584..5ec73ad18 100644 --- a/lib/taskana-core/src/test/java/acceptance/task/QueryTasksWithSortingAccTest.java +++ b/lib/taskana-core/src/test/java/acceptance/task/QueryTasksWithSortingAccTest.java @@ -381,6 +381,36 @@ class QueryTasksWithSortingAccTest extends AbstractAccTest { } } + @Nested + @TestInstance(Lifecycle.PER_CLASS) + class OwnerLongName { + @WithAccessId(user = "admin") + @Test + void should_ReturnOrderedResult_When_OrderByOwnerLongNameDescIsSet() { + List results = + taskanaEngine + .getTaskService() + .createTaskQuery() + .orderByOwnerLongName(DESCENDING) + .list(); + assertThat(results.stream().filter(r -> r.getOwnerLongName() != null)) + .hasSizeGreaterThan(2) + .extracting(TaskSummary::getOwnerLongName) + .isSortedAccordingTo(CASE_INSENSITIVE_ORDER.reversed()); + } + + @WithAccessId(user = "admin") + @Test + void should_ReturnOrderedResult_When_OrderByOwnerLongNameAscIsSet() { + List results = + taskanaEngine.getTaskService().createTaskQuery().orderByOwnerLongName(ASCENDING).list(); + assertThat(results.stream().filter(r -> r.getOwnerLongName() != null)) + .hasSizeGreaterThan(2) + .extracting(TaskSummary::getOwnerLongName) + .isSortedAccordingTo(CASE_INSENSITIVE_ORDER); + } + } + @Nested @TestInstance(Lifecycle.PER_CLASS) class WorkbasketId { diff --git a/rest/taskana-rest-spring/src/main/java/pro/taskana/task/rest/TaskController.java b/rest/taskana-rest-spring/src/main/java/pro/taskana/task/rest/TaskController.java index 4cc5a4a39..e3d052b57 100644 --- a/rest/taskana-rest-spring/src/main/java/pro/taskana/task/rest/TaskController.java +++ b/rest/taskana-rest-spring/src/main/java/pro/taskana/task/rest/TaskController.java @@ -438,6 +438,7 @@ public class TaskController { CREATOR(TaskQuery::orderByCreator), NOTE(TaskQuery::orderByNote), OWNER(TaskQuery::orderByOwner), + OWNER_LONG_NAME(TaskQuery::orderByOwnerLongName), BUSINESS_PROCESS_ID(TaskQuery::orderByBusinessProcessId), PARENT_BUSINESS_PROCESS_ID(TaskQuery::orderByParentBusinessProcessId), WORKBASKET_KEY(TaskQuery::orderByWorkbasketKey), diff --git a/rest/taskana-rest-spring/src/test/java/pro/taskana/task/rest/TaskControllerIntTest.java b/rest/taskana-rest-spring/src/test/java/pro/taskana/task/rest/TaskControllerIntTest.java index 48d8e66f7..ffcdf48b0 100644 --- a/rest/taskana-rest-spring/src/test/java/pro/taskana/task/rest/TaskControllerIntTest.java +++ b/rest/taskana-rest-spring/src/test/java/pro/taskana/task/rest/TaskControllerIntTest.java @@ -546,6 +546,21 @@ class TaskControllerIntTest { assertThat(response.getBody().getLink(IanaLinkRelations.PREV)).isNotNull(); } + @Test + void should_SortByOwnerLongName() { + String url = + restHelper.toUrl(RestEndpoints.URL_TASKS) + + "?sort-by=OWNER_LONG_NAME" + + "&order=DESCENDING"; + HttpEntity auth = new HttpEntity<>(RestHelper.generateHeadersForUser("admin")); + + ResponseEntity response = + TEMPLATE.exchange(url, HttpMethod.GET, auth, TASK_SUMMARY_PAGE_MODEL_TYPE); + + assertThat(response.getBody()).isNotNull(); + assertThat((response.getBody()).getLink(IanaLinkRelations.SELF)).isNotNull(); + } + @Test void testGetLastPageSortedByDueWithHiddenTasksRemovedFromResult() { resetDb();