TSK-1060: Add sort by taskId to TaskQuery

This commit is contained in:
Benjamin Eckstein 2020-01-28 15:29:38 +01:00 committed by Mustapha Zorgati
parent ca6dd310ce
commit 10e888acd4
3 changed files with 69 additions and 0 deletions

View File

@ -643,6 +643,15 @@ public interface TaskQuery extends BaseQuery<TaskSummary, TaskQueryColumnName> {
*/
TaskQuery orderByDue(SortDirection sortDirection);
/**
* This method sorts the query result according to the primary task id.
*
* @param sortDirection Determines whether the result is sorted in ascending or descending order.
* If sortDirection is null, the result is sorted in ascending order
* @return the query
*/
TaskQuery orderByTaskId(SortDirection sortDirection);
/**
* This method sorts the query result according to the modified timestamp.
*

View File

@ -753,6 +753,11 @@ public class TaskQueryImpl implements TaskQuery {
return addOrderCriteria("DUE", sortDirection);
}
@Override
public TaskQuery orderByTaskId(SortDirection sortDirection) {
return addOrderCriteria("ID", sortDirection);
}
@Override
public TaskQuery orderByModified(SortDirection sortDirection) {
return addOrderCriteria("MODIFIED", sortDirection);

View File

@ -2,11 +2,15 @@ package acceptance.task;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.core.IsEqual.equalTo;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;
import acceptance.AbstractAccTest;
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
@ -53,6 +57,57 @@ class QueryTasksWithSortingAccTest extends AbstractAccTest {
}
}
@WithAccessId(
userName = "teamlead_1",
groupNames = {"group_1", "group_2"})
@Test
void testSortByTaskIdDesc() {
TaskService taskService = taskanaEngine.getTaskService();
List<TaskSummary> results =
taskService
.createTaskQuery()
.workbasketKeyDomainIn(new KeyDomain("USER_3_2", "DOMAIN_B"))
.orderByTaskId(desc)
.list();
// test is only valid with at least 2 results
Assertions.assertTrue(results.size() > 2);
List<String> idsDesc =
results.stream()
.map(TaskSummary::getTaskId)
.sorted(Comparator.reverseOrder())
.collect(Collectors.toList());
for (int i = 0; i < results.size(); i++) {
assertEquals(idsDesc.get(i), results.get(i).getTaskId());
}
}
@WithAccessId(
userName = "teamlead_1",
groupNames = {"group_1", "group_2"})
@Test
void testSortByTaskIdAsc() {
TaskService taskService = taskanaEngine.getTaskService();
List<TaskSummary> results =
taskService
.createTaskQuery()
.workbasketKeyDomainIn(new KeyDomain("USER_3_2", "DOMAIN_B"))
.orderByTaskId(null)
.list();
// test is only valid with at least 2 results
Assertions.assertTrue(results.size() > 2);
List<String> idsAsc =
results.stream().map(TaskSummary::getTaskId).sorted().collect(Collectors.toList());
for (int i = 0; i < results.size(); i++) {
assertEquals(idsAsc.get(i), results.get(i).getTaskId());
}
}
@WithAccessId(
userName = "teamlead_1",
groupNames = {"group_1", "group_2"})