TSK-1715: Implemented OwnerNotIn-Filter for TaskQuery.
This commit is contained in:
parent
fe292ea5b5
commit
e564778a91
|
@ -202,6 +202,14 @@ public interface TaskQuery extends BaseQuery<TaskSummary, TaskQueryColumnName> {
|
|||
*/
|
||||
TaskQuery ownerIn(String... owners);
|
||||
|
||||
/**
|
||||
* Filter out owners.
|
||||
*
|
||||
* @param owners the owners as String
|
||||
* @return the query
|
||||
*/
|
||||
TaskQuery ownerNotIn(String... owners);
|
||||
|
||||
/**
|
||||
* Add the owner for pattern matching to your query. It will be compared in SQL with the LIKE
|
||||
* operator. You may use a wildcard like % to specify the pattern.
|
||||
|
|
|
@ -75,6 +75,7 @@ public class TaskQueryImpl implements TaskQuery {
|
|||
private String[] classificationNameIn;
|
||||
private String[] classificationNameLike;
|
||||
private String[] ownerIn;
|
||||
private String[] ownerNotIn;
|
||||
private String[] ownerLike;
|
||||
private Boolean isRead;
|
||||
private Boolean isTransferred;
|
||||
|
@ -317,6 +318,12 @@ public class TaskQueryImpl implements TaskQuery {
|
|||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public TaskQuery ownerNotIn(String... owners) {
|
||||
this.ownerNotIn = owners;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public TaskQuery ownerLike(String... owners) {
|
||||
this.ownerLike = toUpperCopy(owners);
|
||||
|
@ -992,7 +999,7 @@ public class TaskQueryImpl implements TaskQuery {
|
|||
|
||||
@Override
|
||||
public List<TaskSummary> list(int offset, int limit) {
|
||||
List<TaskSummary> result = new ArrayList<>();
|
||||
List<TaskSummary> result;
|
||||
try {
|
||||
taskanaEngine.openConnection();
|
||||
checkForIllegalParamCombinations();
|
||||
|
@ -1020,7 +1027,7 @@ public class TaskQueryImpl implements TaskQuery {
|
|||
|
||||
@Override
|
||||
public List<String> listValues(TaskQueryColumnName columnName, SortDirection sortDirection) {
|
||||
List<String> result = new ArrayList<>();
|
||||
List<String> result;
|
||||
try {
|
||||
taskanaEngine.openConnection();
|
||||
this.columnName = columnName;
|
||||
|
@ -1052,7 +1059,7 @@ public class TaskQueryImpl implements TaskQuery {
|
|||
|
||||
@Override
|
||||
public TaskSummary single() {
|
||||
TaskSummary result = null;
|
||||
TaskSummary result;
|
||||
try {
|
||||
taskanaEngine.openConnection();
|
||||
checkOpenAndReadPermissionForSpecifiedWorkbaskets();
|
||||
|
@ -1077,7 +1084,7 @@ public class TaskQueryImpl implements TaskQuery {
|
|||
|
||||
@Override
|
||||
public long count() {
|
||||
Long rowCount = null;
|
||||
Long rowCount;
|
||||
try {
|
||||
taskanaEngine.openConnection();
|
||||
checkOpenAndReadPermissionForSpecifiedWorkbaskets();
|
||||
|
@ -1186,6 +1193,10 @@ public class TaskQueryImpl implements TaskQuery {
|
|||
return ownerIn;
|
||||
}
|
||||
|
||||
public String[] getOwnerNotIn() {
|
||||
return ownerNotIn;
|
||||
}
|
||||
|
||||
public String[] getOwnerLike() {
|
||||
return ownerLike;
|
||||
}
|
||||
|
|
|
@ -321,6 +321,7 @@ public class TaskQuerySqlProvider {
|
|||
whereIn("classificationNameIn", "c.NAME", sb);
|
||||
whereIn("attachmentClassificationNameIn", "ac.NAME", sb);
|
||||
whereIn("ownerIn", "OWNER", sb);
|
||||
whereNotIn("ownerNotIn", "OWNER", sb);
|
||||
whereIn("porCompanyIn", "POR_COMPANY", sb);
|
||||
whereIn("porSystemIn", "POR_SYSTEM", sb);
|
||||
whereIn("porSystemInstanceIn", "POR_INSTANCE", sb);
|
||||
|
|
|
@ -80,19 +80,20 @@ class QueryTasksAccTest extends AbstractAccTest {
|
|||
|
||||
@WithAccessId(user = "admin")
|
||||
@Test
|
||||
void testQueryForOwnerLike() {
|
||||
|
||||
void should_ReturnCorrectResults_When_QueryingForOwnerLike() {
|
||||
List<TaskSummary> results =
|
||||
TASK_SERVICE.createTaskQuery().ownerLike("%a%", "%u%").orderByCreated(ASCENDING).list();
|
||||
|
||||
assertThat(results).hasSize(39);
|
||||
TaskSummary previousSummary = null;
|
||||
for (TaskSummary taskSummary : results) {
|
||||
if (previousSummary != null) {
|
||||
assertThat(previousSummary.getCreated().isAfter(taskSummary.getCreated())).isFalse();
|
||||
}
|
||||
previousSummary = taskSummary;
|
||||
}
|
||||
assertThat(results).hasSize(39).extracting(TaskSummary::getCreated).isSorted();
|
||||
}
|
||||
|
||||
@WithAccessId(user = "admin")
|
||||
@Test
|
||||
void should_FilterOutOwner_When_OwnerNotInIsSet() {
|
||||
List<TaskSummary> results =
|
||||
TASK_SERVICE.createTaskQuery().ownerNotIn("user-1-1", "user-1-2").list();
|
||||
|
||||
assertThat(results).hasSize(3).extracting(TaskSummary::getOwner).containsOnly("user-b-1");
|
||||
}
|
||||
|
||||
@WithAccessId(user = "admin")
|
||||
|
|
Loading…
Reference in New Issue