TSK-1618: fixed count of tasks for query with wildcard filter
This commit is contained in:
parent
61d8ef65c8
commit
8a7b4f500d
|
@ -593,6 +593,7 @@ public interface TaskQueryMapper {
|
||||||
+ "<if test='attachmentReferenceIn != null'>AND a.REF_VALUE IN(<foreach item='item' collection='attachmentReferenceIn' separator=',' >#{item}</foreach>)</if> "
|
+ "<if test='attachmentReferenceIn != null'>AND a.REF_VALUE IN(<foreach item='item' collection='attachmentReferenceIn' separator=',' >#{item}</foreach>)</if> "
|
||||||
+ "<if test='attachmentReferenceLike != null'>AND (<foreach item='item' collection='attachmentReferenceLike' separator=' OR '>UPPER(a.REF_VALUE) LIKE #{item}</foreach>)</if> "
|
+ "<if test='attachmentReferenceLike != null'>AND (<foreach item='item' collection='attachmentReferenceLike' separator=' OR '>UPPER(a.REF_VALUE) LIKE #{item}</foreach>)</if> "
|
||||||
+ "<if test='attachmentReceivedIn !=null'> AND ( <foreach item='item' collection='attachmentReceivedIn' separator=' OR ' > ( <if test='item.begin!=null'> a.RECEIVED >= #{item.begin} </if> <if test='item.begin!=null and item.end!=null'> AND </if><if test='item.end!=null'> a.RECEIVED <=#{item.end} </if>)</foreach>)</if> "
|
+ "<if test='attachmentReceivedIn !=null'> AND ( <foreach item='item' collection='attachmentReceivedIn' separator=' OR ' > ( <if test='item.begin!=null'> a.RECEIVED >= #{item.begin} </if> <if test='item.begin!=null and item.end!=null'> AND </if><if test='item.end!=null'> a.RECEIVED <=#{item.end} </if>)</foreach>)</if> "
|
||||||
|
+ "<if test='wildcardSearchValueLike != null and wildcardSearchFieldIn != null'>AND (<foreach item='item' collection='wildcardSearchFieldIn' separator=' OR '>UPPER(t.${item}) LIKE #{wildcardSearchValueLike}</foreach>)</if> "
|
||||||
+ "</where>"
|
+ "</where>"
|
||||||
+ "</script>")
|
+ "</script>")
|
||||||
Long countQueryTasks(TaskQueryImpl taskQuery);
|
Long countQueryTasks(TaskQueryImpl taskQuery);
|
||||||
|
@ -699,6 +700,7 @@ public interface TaskQueryMapper {
|
||||||
+ "<if test='attachmentReferenceIn != null'>AND a.REF_VALUE IN(<foreach item='item' collection='attachmentReferenceIn' separator=',' >#{item}</foreach>)</if> "
|
+ "<if test='attachmentReferenceIn != null'>AND a.REF_VALUE IN(<foreach item='item' collection='attachmentReferenceIn' separator=',' >#{item}</foreach>)</if> "
|
||||||
+ "<if test='attachmentReferenceLike != null'>AND (<foreach item='item' collection='attachmentReferenceLike' separator=' OR '>UPPER(a.REF_VALUE) LIKE #{item}</foreach>)</if> "
|
+ "<if test='attachmentReferenceLike != null'>AND (<foreach item='item' collection='attachmentReferenceLike' separator=' OR '>UPPER(a.REF_VALUE) LIKE #{item}</foreach>)</if> "
|
||||||
+ "<if test='attachmentReceivedIn !=null'> AND ( <foreach item='item' collection='attachmentReceivedIn' separator=' OR ' > ( <if test='item.begin!=null'> a.RECEIVED >= #{item.begin} </if> <if test='item.begin!=null and item.end!=null'> AND </if><if test='item.end!=null'> a.RECEIVED <=#{item.end} </if>)</foreach>)</if> "
|
+ "<if test='attachmentReceivedIn !=null'> AND ( <foreach item='item' collection='attachmentReceivedIn' separator=' OR ' > ( <if test='item.begin!=null'> a.RECEIVED >= #{item.begin} </if> <if test='item.begin!=null and item.end!=null'> AND </if><if test='item.end!=null'> a.RECEIVED <=#{item.end} </if>)</foreach>)</if> "
|
||||||
|
+ "<if test='wildcardSearchValueLike != null and wildcardSearchFieldIn != null'>AND (<foreach item='item' collection='wildcardSearchFieldIn' separator=' OR '>UPPER(t.${item}) LIKE #{wildcardSearchValueLike}</foreach>)</if> "
|
||||||
+ "</where> "
|
+ "</where> "
|
||||||
+ "), Y (ID, FLAG) AS "
|
+ "), Y (ID, FLAG) AS "
|
||||||
+ "(SELECT ID, (SELECT 1 FROM WORKBASKET_ACCESS_LIST s WHERE "
|
+ "(SELECT ID, (SELECT 1 FROM WORKBASKET_ACCESS_LIST s WHERE "
|
||||||
|
|
|
@ -18,18 +18,17 @@ import pro.taskana.task.api.models.TaskSummary;
|
||||||
|
|
||||||
@ExtendWith(JaasExtension.class)
|
@ExtendWith(JaasExtension.class)
|
||||||
class QueryTasksByWildcardSearchAccTest extends AbstractAccTest {
|
class QueryTasksByWildcardSearchAccTest extends AbstractAccTest {
|
||||||
|
private static final TaskService TASK_SERVICE = taskanaEngine.getTaskService();
|
||||||
|
|
||||||
@WithAccessId(user = "admin")
|
@WithAccessId(user = "admin")
|
||||||
@Test
|
@Test
|
||||||
void should_ReturnAllTasksByWildcardSearch_For_ProvidedSearchValue() {
|
void should_ReturnAllTasksByWildcardSearch_For_ProvidedSearchValue() {
|
||||||
TaskService taskService = taskanaEngine.getTaskService();
|
|
||||||
|
|
||||||
WildcardSearchField[] wildcards = {
|
WildcardSearchField[] wildcards = {
|
||||||
WildcardSearchField.CUSTOM_3, WildcardSearchField.CUSTOM_4, WildcardSearchField.NAME
|
WildcardSearchField.CUSTOM_3, WildcardSearchField.CUSTOM_4, WildcardSearchField.NAME
|
||||||
};
|
};
|
||||||
|
|
||||||
List<TaskSummary> foundTasks =
|
List<TaskSummary> foundTasks =
|
||||||
taskService
|
TASK_SERVICE
|
||||||
.createTaskQuery()
|
.createTaskQuery()
|
||||||
.wildcardSearchFieldsIn(wildcards)
|
.wildcardSearchFieldsIn(wildcards)
|
||||||
.wildcardSearchValueLike("%99%")
|
.wildcardSearchValueLike("%99%")
|
||||||
|
@ -41,15 +40,31 @@ class QueryTasksByWildcardSearchAccTest extends AbstractAccTest {
|
||||||
|
|
||||||
@WithAccessId(user = "admin")
|
@WithAccessId(user = "admin")
|
||||||
@Test
|
@Test
|
||||||
void should_ReturnAllTasks_For_ProvidedSearchValueAndAdditionalParameters() {
|
void should_CountAllTasksByWildcardSearch_For_ProvidedSearchValue() {
|
||||||
TaskService taskService = taskanaEngine.getTaskService();
|
WildcardSearchField[] wildcards = {
|
||||||
|
WildcardSearchField.CUSTOM_3, WildcardSearchField.CUSTOM_4, WildcardSearchField.NAME
|
||||||
|
};
|
||||||
|
|
||||||
|
long foundTasks =
|
||||||
|
TASK_SERVICE
|
||||||
|
.createTaskQuery()
|
||||||
|
.wildcardSearchFieldsIn(wildcards)
|
||||||
|
.wildcardSearchValueLike("%99%")
|
||||||
|
.orderByName(SortDirection.ASCENDING)
|
||||||
|
.count();
|
||||||
|
|
||||||
|
assertThat(foundTasks).isEqualTo(4);
|
||||||
|
}
|
||||||
|
|
||||||
|
@WithAccessId(user = "admin")
|
||||||
|
@Test
|
||||||
|
void should_ReturnAllTasks_For_ProvidedSearchValueAndAdditionalParameters() {
|
||||||
WildcardSearchField[] wildcards = {
|
WildcardSearchField[] wildcards = {
|
||||||
WildcardSearchField.CUSTOM_3, WildcardSearchField.CUSTOM_4, WildcardSearchField.NAME
|
WildcardSearchField.CUSTOM_3, WildcardSearchField.CUSTOM_4, WildcardSearchField.NAME
|
||||||
};
|
};
|
||||||
|
|
||||||
List<TaskSummary> foundTasks =
|
List<TaskSummary> foundTasks =
|
||||||
taskService
|
TASK_SERVICE
|
||||||
.createTaskQuery()
|
.createTaskQuery()
|
||||||
.wildcardSearchFieldsIn(wildcards)
|
.wildcardSearchFieldsIn(wildcards)
|
||||||
.wildcardSearchValueLike("%99%")
|
.wildcardSearchValueLike("%99%")
|
||||||
|
@ -64,19 +79,17 @@ class QueryTasksByWildcardSearchAccTest extends AbstractAccTest {
|
||||||
@WithAccessId(user = "admin")
|
@WithAccessId(user = "admin")
|
||||||
@Test
|
@Test
|
||||||
void should_ReturnAllTasksCaseInsensitive_When_PerformingWildcardQuery() {
|
void should_ReturnAllTasksCaseInsensitive_When_PerformingWildcardQuery() {
|
||||||
TaskService taskService = taskanaEngine.getTaskService();
|
|
||||||
|
|
||||||
WildcardSearchField[] wildcards = {WildcardSearchField.NAME};
|
WildcardSearchField[] wildcards = {WildcardSearchField.NAME};
|
||||||
|
|
||||||
List<TaskSummary> foundTasksCaseSensitive =
|
List<TaskSummary> foundTasksCaseSensitive =
|
||||||
taskService
|
TASK_SERVICE
|
||||||
.createTaskQuery()
|
.createTaskQuery()
|
||||||
.wildcardSearchFieldsIn(wildcards)
|
.wildcardSearchFieldsIn(wildcards)
|
||||||
.wildcardSearchValueLike("%Wid%")
|
.wildcardSearchValueLike("%Wid%")
|
||||||
.list();
|
.list();
|
||||||
|
|
||||||
List<TaskSummary> foundTasksCaseInsensitive =
|
List<TaskSummary> foundTasksCaseInsensitive =
|
||||||
taskService
|
TASK_SERVICE
|
||||||
.createTaskQuery()
|
.createTaskQuery()
|
||||||
.wildcardSearchFieldsIn(wildcards)
|
.wildcardSearchFieldsIn(wildcards)
|
||||||
.wildcardSearchValueLike("%wid%")
|
.wildcardSearchValueLike("%wid%")
|
||||||
|
@ -90,11 +103,9 @@ class QueryTasksByWildcardSearchAccTest extends AbstractAccTest {
|
||||||
@Test
|
@Test
|
||||||
void should_ThrowException_When_NotUsingSearchFieldsAndValueParamsTogether() {
|
void should_ThrowException_When_NotUsingSearchFieldsAndValueParamsTogether() {
|
||||||
|
|
||||||
TaskService taskService = taskanaEngine.getTaskService();
|
|
||||||
|
|
||||||
ThrowingCallable queryAttempt =
|
ThrowingCallable queryAttempt =
|
||||||
() ->
|
() ->
|
||||||
taskService
|
TASK_SERVICE
|
||||||
.createTaskQuery()
|
.createTaskQuery()
|
||||||
.wildcardSearchValueLike("%99%")
|
.wildcardSearchValueLike("%99%")
|
||||||
.orderByName(SortDirection.ASCENDING)
|
.orderByName(SortDirection.ASCENDING)
|
||||||
|
@ -104,7 +115,7 @@ class QueryTasksByWildcardSearchAccTest extends AbstractAccTest {
|
||||||
|
|
||||||
queryAttempt =
|
queryAttempt =
|
||||||
() ->
|
() ->
|
||||||
taskService
|
TASK_SERVICE
|
||||||
.createTaskQuery()
|
.createTaskQuery()
|
||||||
.wildcardSearchFieldsIn(
|
.wildcardSearchFieldsIn(
|
||||||
WildcardSearchField.CUSTOM_1, WildcardSearchField.DESCRIPTION)
|
WildcardSearchField.CUSTOM_1, WildcardSearchField.DESCRIPTION)
|
||||||
|
|
Loading…
Reference in New Issue