TSK-1443: improvements after review
This commit is contained in:
parent
0c084dc3d8
commit
70a3ade7f2
|
@ -849,7 +849,7 @@ public interface TaskQuery extends BaseQuery<TaskSummary, TaskQueryColumnName> {
|
|||
TaskQuery orderByWorkbasketId(SortDirection sortDirection);
|
||||
|
||||
/**
|
||||
* This method sorts the query result according to the workbasket-Name of the tasks.
|
||||
* This method sorts the query result according to the workbasket name of the tasks.
|
||||
*
|
||||
* @param sortDirection Determines whether the result is sorted in ascending or descending order.
|
||||
* If sortDirection is null, the result is sorted in ascending order
|
||||
|
|
|
@ -155,10 +155,11 @@ public class TaskQueryImpl implements TaskQuery {
|
|||
private boolean joinWithAttachments = false;
|
||||
private boolean joinWithClassifications = false;
|
||||
private boolean joinWithAttachmentClassifications = false;
|
||||
private boolean joinWithWorkbaskets = false;
|
||||
private boolean addAttachmentColumnsToSelectClauseForOrdering = false;
|
||||
private boolean addClassificationNameToSelectClauseForOrdering = false;
|
||||
private boolean addAttachmentClassificationNameToSelectClauseForOrdering = false;
|
||||
private boolean addWorkbasketNameForOrdering = false;
|
||||
private boolean addWorkbasketNameToSelectClauseForOrdering = false;
|
||||
|
||||
TaskQueryImpl(InternalTaskanaEngine taskanaEngine) {
|
||||
this.taskanaEngine = taskanaEngine;
|
||||
|
@ -854,7 +855,8 @@ public class TaskQueryImpl implements TaskQuery {
|
|||
|
||||
@Override
|
||||
public TaskQuery orderByWorkbasketName(SortDirection sortDirection) {
|
||||
addWorkbasketNameForOrdering = true;
|
||||
joinWithWorkbaskets = true;
|
||||
addWorkbasketNameToSelectClauseForOrdering = true;
|
||||
return DB.DB2.dbProductId.equals(getDatabaseId())
|
||||
? addOrderCriteria("WNAME", sortDirection)
|
||||
: addOrderCriteria("w.NAME", sortDirection);
|
||||
|
@ -1897,12 +1899,16 @@ public class TaskQueryImpl implements TaskQuery {
|
|||
+ joinWithClassifications
|
||||
+ ", joinWithAttachmentClassifications="
|
||||
+ joinWithAttachmentClassifications
|
||||
+ ", joinWithWorkbaskets="
|
||||
+ joinWithWorkbaskets
|
||||
+ ", addAttachmentColumnsToSelectClauseForOrdering="
|
||||
+ addAttachmentColumnsToSelectClauseForOrdering
|
||||
+ ", addClassificationNameToSelectClauseForOrdering="
|
||||
+ addClassificationNameToSelectClauseForOrdering
|
||||
+ ", addAttachmentClassificationNameToSelectClauseForOrdering="
|
||||
+ addAttachmentClassificationNameToSelectClauseForOrdering
|
||||
+ ", addWorkbasketNameToSelectClauseForOrdering="
|
||||
+ addWorkbasketNameToSelectClauseForOrdering
|
||||
+ "]";
|
||||
}
|
||||
}
|
||||
|
|
|
@ -27,7 +27,7 @@ public interface TaskQueryMapper {
|
|||
+ "<if test=\"addAttachmentClassificationNameToSelectClauseForOrdering\">"
|
||||
+ ", ac.NAME "
|
||||
+ "</if>"
|
||||
+ "<if test=\"addWorkbasketNameForOrdering\">"
|
||||
+ "<if test=\"addWorkbasketNameToSelectClauseForOrdering\">"
|
||||
+ ", w.NAME "
|
||||
+ "</if>"
|
||||
+ "FROM TASK t "
|
||||
|
@ -40,7 +40,7 @@ public interface TaskQueryMapper {
|
|||
+ "<if test=\"joinWithAttachmentClassifications\">"
|
||||
+ "LEFT JOIN CLASSIFICATION AS ac ON a.CLASSIFICATION_ID = ac.ID "
|
||||
+ "</if>"
|
||||
+ "<if test=\"addWorkbasketNameForOrdering\">"
|
||||
+ "<if test=\"joinWithWorkbaskets\">"
|
||||
+ "LEFT JOIN WORKBASKET AS w ON t.WORKBASKET_ID = w.ID "
|
||||
+ "</if>"
|
||||
+ "<where>"
|
||||
|
@ -223,7 +223,7 @@ public interface TaskQueryMapper {
|
|||
+ "<if test=\"addAttachmentClassificationNameToSelectClauseForOrdering\">"
|
||||
+ ", ACNAME "
|
||||
+ "</if>"
|
||||
+ "<if test=\"addWorkbasketNameForOrdering\">"
|
||||
+ "<if test=\"addWorkbasketNameToSelectClauseForOrdering\">"
|
||||
+ ", WNAME "
|
||||
+ "</if>"
|
||||
+ " ) "
|
||||
|
@ -240,7 +240,7 @@ public interface TaskQueryMapper {
|
|||
+ "<if test=\"addAttachmentClassificationNameToSelectClauseForOrdering\">"
|
||||
+ ", ac.NAME "
|
||||
+ "</if>"
|
||||
+ "<if test=\"addWorkbasketNameForOrdering\">"
|
||||
+ "<if test=\"addWorkbasketNameToSelectClauseForOrdering\">"
|
||||
+ ", w.NAME "
|
||||
+ "</if>"
|
||||
+ " FROM TASK t "
|
||||
|
@ -253,7 +253,7 @@ public interface TaskQueryMapper {
|
|||
+ "<if test=\"joinWithAttachmentClassifications\">"
|
||||
+ "LEFT JOIN CLASSIFICATION AS ac ON a.CLASSIFICATION_ID = ac.ID "
|
||||
+ "</if>"
|
||||
+ "<if test=\"addWorkbasketNameForOrdering\">"
|
||||
+ "<if test=\"joinWithWorkbaskets\">"
|
||||
+ "LEFT JOIN WORKBASKET AS w ON t.WORKBASKET_ID = w.ID "
|
||||
+ "</if>"
|
||||
+ "<where> "
|
||||
|
@ -369,7 +369,7 @@ public interface TaskQueryMapper {
|
|||
+ "<if test=\"addAttachmentClassificationNameToSelectClauseForOrdering\">"
|
||||
+ ", ACNAME "
|
||||
+ "</if>"
|
||||
+ "<if test=\"addWorkbasketNameForOrdering\">"
|
||||
+ "<if test=\"addWorkbasketNameToSelectClauseForOrdering\">"
|
||||
+ ", WNAME "
|
||||
+ "</if>"
|
||||
+ ", FLAG ) "
|
||||
|
@ -387,7 +387,7 @@ public interface TaskQueryMapper {
|
|||
+ "<if test=\"addAttachmentClassificationNameToSelectClauseForOrdering\">"
|
||||
+ ", ACNAME "
|
||||
+ "</if>"
|
||||
+ "<if test=\"addWorkbasketNameForOrdering\">"
|
||||
+ "<if test=\"addWorkbasketNameToSelectClauseForOrdering\">"
|
||||
+ ", WNAME "
|
||||
+ "</if>"
|
||||
+ ", (SELECT 1 FROM WORKBASKET_ACCESS_LIST s WHERE "
|
||||
|
@ -411,7 +411,7 @@ public interface TaskQueryMapper {
|
|||
+ "<if test=\"addAttachmentClassificationNameToSelectClauseForOrdering\">"
|
||||
+ ", ACNAME "
|
||||
+ "</if>"
|
||||
+ "<if test=\"addWorkbasketNameForOrdering\">"
|
||||
+ "<if test=\"addWorkbasketNameToSelectClauseForOrdering\">"
|
||||
+ ", WNAME "
|
||||
+ "</if>"
|
||||
+ " FROM Y WHERE FLAG = 1 "
|
||||
|
|
|
@ -17,6 +17,7 @@ import pro.taskana.common.test.security.WithAccessId;
|
|||
import pro.taskana.task.api.TaskService;
|
||||
import pro.taskana.task.api.TaskState;
|
||||
import pro.taskana.task.api.models.TaskSummary;
|
||||
import pro.taskana.workbasket.api.models.WorkbasketSummary;
|
||||
|
||||
/** Acceptance test for all "query tasks with sorting" scenarios. */
|
||||
@ExtendWith(JaasExtension.class)
|
||||
|
@ -53,7 +54,7 @@ class QueryTasksWithSortingAccTest extends AbstractAccTest {
|
|||
|
||||
@WithAccessId(user = "admin")
|
||||
@Test
|
||||
void testSortByTaskIdDesc() {
|
||||
void should_sortByTaskIdDesc_When_TaskQueryFilterIsApplied() {
|
||||
TaskService taskService = taskanaEngine.getTaskService();
|
||||
List<TaskSummary> results =
|
||||
taskService
|
||||
|
@ -78,7 +79,7 @@ class QueryTasksWithSortingAccTest extends AbstractAccTest {
|
|||
|
||||
@WithAccessId(user = "admin")
|
||||
@Test
|
||||
void testSortByTaskIdAsc() {
|
||||
void should_sortByTaskIdAsc_When_TaskQueryFilterIsApplied() {
|
||||
TaskService taskService = taskanaEngine.getTaskService();
|
||||
List<TaskSummary> results =
|
||||
taskService
|
||||
|
@ -100,38 +101,28 @@ class QueryTasksWithSortingAccTest extends AbstractAccTest {
|
|||
|
||||
@WithAccessId(user = "admin")
|
||||
@Test
|
||||
void testSortByWorkbasketName() {
|
||||
void should_sortByWorkbasketNameAsc_When_TaskQueryFilterIsApplied() {
|
||||
TaskService taskService = taskanaEngine.getTaskService();
|
||||
List<TaskSummary> results = taskService.createTaskQuery().orderByWorkbasketName(asc).list();
|
||||
|
||||
// test is only valid with at least 2 results
|
||||
assertThat(
|
||||
results.stream()
|
||||
.map(t -> t.getWorkbasketSummary().getName())
|
||||
.distinct()
|
||||
.collect(Collectors.toList()))
|
||||
.hasSizeGreaterThan(2);
|
||||
assertThat(results)
|
||||
.hasSizeGreaterThan(2)
|
||||
.extracting(TaskSummary::getWorkbasketSummary)
|
||||
.extracting(WorkbasketSummary::getName)
|
||||
.isSortedAccordingTo(CASE_INSENSITIVE_ORDER);
|
||||
}
|
||||
|
||||
List<String> idsAsc =
|
||||
results.stream()
|
||||
.map(t -> t.getWorkbasketSummary().getName())
|
||||
.sorted()
|
||||
.collect(Collectors.toList());
|
||||
@WithAccessId(user = "admin")
|
||||
@Test
|
||||
void should_sortByWorkbasketNameDsc_When_TaskQueryFilterIsApplied() {
|
||||
TaskService taskService = taskanaEngine.getTaskService();
|
||||
List<TaskSummary> results = taskService.createTaskQuery().orderByWorkbasketName(desc).list();
|
||||
|
||||
for (int i = 0; i < results.size(); i++) {
|
||||
assertThat(results.get(i).getWorkbasketSummary().getName()).isEqualTo(idsAsc.get(i));
|
||||
}
|
||||
results = taskService.createTaskQuery().orderByWorkbasketName(desc).list();
|
||||
|
||||
List<String> idsDesc =
|
||||
results.stream()
|
||||
.map(t -> t.getWorkbasketSummary().getName())
|
||||
.sorted(Comparator.reverseOrder())
|
||||
.collect(Collectors.toList());
|
||||
|
||||
for (int i = 0; i < results.size(); i++) {
|
||||
assertThat(results.get(i).getWorkbasketSummary().getName()).isEqualTo(idsDesc.get(i));
|
||||
}
|
||||
assertThat(results)
|
||||
.hasSizeGreaterThan(2)
|
||||
.extracting(TaskSummary::getWorkbasketSummary)
|
||||
.extracting(WorkbasketSummary::getName)
|
||||
.isSortedAccordingTo(CASE_INSENSITIVE_ORDER.reversed());
|
||||
}
|
||||
|
||||
@WithAccessId(user = "admin")
|
||||
|
|
Loading…
Reference in New Issue