use of org.camunda.bpm.engine.filter.Filter in project camunda-bpm-platform by camunda.
the class FilterTaskQueryTest method testExtendingVariableQuery.
public void testExtendingVariableQuery() {
TaskQuery taskQuery = taskService.createTaskQuery().processVariableValueEquals("hello", "world");
saveQuery(taskQuery);
// variables won't overridden variables with same name in different scopes
TaskQuery extendingQuery = taskService.createTaskQuery().taskVariableValueEquals("hello", "world").caseInstanceVariableValueEquals("hello", "world");
Filter extendedFilter = filter.extend(extendingQuery);
TaskQueryImpl extendedQuery = extendedFilter.getQuery();
List<TaskQueryVariableValue> variables = extendedQuery.getVariables();
assertEquals(3, variables.size());
// assert variables (ordering: extending variables are inserted first)
assertEquals("hello", variables.get(0).getName());
assertEquals("world", variables.get(0).getValue());
assertEquals(QueryOperator.EQUALS, variables.get(0).getOperator());
assertFalse(variables.get(0).isProcessInstanceVariable());
assertTrue(variables.get(0).isLocal());
assertEquals("hello", variables.get(1).getName());
assertEquals("world", variables.get(1).getValue());
assertEquals(QueryOperator.EQUALS, variables.get(1).getOperator());
assertFalse(variables.get(1).isProcessInstanceVariable());
assertFalse(variables.get(1).isLocal());
assertEquals("hello", variables.get(2).getName());
assertEquals("world", variables.get(2).getValue());
assertEquals(QueryOperator.EQUALS, variables.get(2).getOperator());
assertTrue(variables.get(2).isProcessInstanceVariable());
assertFalse(variables.get(2).isLocal());
// variables will override variables with same name in same scope
extendingQuery = taskService.createTaskQuery().processVariableValueLessThan("hello", 42).taskVariableValueLessThan("hello", 42).caseInstanceVariableValueLessThan("hello", 42);
extendedFilter = filter.extend(extendingQuery);
extendedQuery = extendedFilter.getQuery();
variables = extendedQuery.getVariables();
assertEquals(3, variables.size());
// assert variables (ordering: extending variables are inserted first)
assertEquals("hello", variables.get(0).getName());
assertEquals(42, variables.get(0).getValue());
assertEquals(QueryOperator.LESS_THAN, variables.get(0).getOperator());
assertTrue(variables.get(0).isProcessInstanceVariable());
assertFalse(variables.get(0).isLocal());
assertEquals("hello", variables.get(1).getName());
assertEquals(42, variables.get(1).getValue());
assertEquals(QueryOperator.LESS_THAN, variables.get(1).getOperator());
assertFalse(variables.get(1).isProcessInstanceVariable());
assertTrue(variables.get(1).isLocal());
assertEquals("hello", variables.get(2).getName());
assertEquals(42, variables.get(2).getValue());
assertEquals(QueryOperator.LESS_THAN, variables.get(2).getOperator());
assertFalse(variables.get(2).isProcessInstanceVariable());
assertFalse(variables.get(2).isLocal());
}
use of org.camunda.bpm.engine.filter.Filter in project camunda-bpm-platform by camunda.
the class FilterTaskQueryTest method testExtendTaskQueryWithCandidateUserExpressionAndIncludeAssignedTasks.
public void testExtendTaskQueryWithCandidateUserExpressionAndIncludeAssignedTasks() {
// create an empty query and save it as a filter
TaskQuery emptyQuery = taskService.createTaskQuery();
Filter emptyFilter = filterService.newTaskFilter("empty");
emptyFilter.setQuery(emptyQuery);
// create a query with candidate user expression and include assigned tasks
// and save it as filter
TaskQuery query = taskService.createTaskQuery();
query.taskCandidateUserExpression("${'test'}").includeAssignedTasks();
Filter filter = filterService.newTaskFilter("filter");
filter.setQuery(query);
// extend empty query by query with candidate user expression and include assigned tasks
Filter extendedFilter = emptyFilter.extend(query);
TaskQueryImpl extendedQuery = extendedFilter.getQuery();
assertEquals("${'test'}", extendedQuery.getExpressions().get("taskCandidateUser"));
assertTrue(extendedQuery.isIncludeAssignedTasks());
// extend query with candidate user expression and include assigned tasks with empty query
extendedFilter = filter.extend(emptyQuery);
extendedQuery = extendedFilter.getQuery();
assertEquals("${'test'}", extendedQuery.getExpressions().get("taskCandidateUser"));
assertTrue(extendedQuery.isIncludeAssignedTasks());
}
use of org.camunda.bpm.engine.filter.Filter in project camunda-bpm-platform by camunda.
the class TaskQueryTest method testQuerySortingByNameShouldBeCaseInsensitive.
public void testQuerySortingByNameShouldBeCaseInsensitive() {
// create task with capitalized name
Task task = taskService.newTask("caseSensitiveTestTask");
task.setName("CaseSensitiveTestTask");
taskService.saveTask(task);
// create task filter
Filter filter = filterService.newTaskFilter("taskNameOrdering");
filterService.saveFilter(filter);
List<String> sortedNames = getTaskNamesFromTasks(taskService.createTaskQuery().list());
Collections.sort(sortedNames, String.CASE_INSENSITIVE_ORDER);
// ascending ordering
TaskQuery taskQuery = taskService.createTaskQuery().orderByTaskNameCaseInsensitive().asc();
List<String> ascNames = getTaskNamesFromTasks(taskQuery.list());
assertEquals(sortedNames, ascNames);
// test filter merging
ascNames = getTaskNamesFromTasks(filterService.list(filter.getId(), taskQuery));
assertEquals(sortedNames, ascNames);
// descending ordering
// reverse sorted names to test descending ordering
Collections.reverse(sortedNames);
taskQuery = taskService.createTaskQuery().orderByTaskNameCaseInsensitive().desc();
List<String> descNames = getTaskNamesFromTasks(taskQuery.list());
assertEquals(sortedNames, descNames);
// test filter merging
descNames = getTaskNamesFromTasks(filterService.list(filter.getId(), taskQuery));
assertEquals(sortedNames, descNames);
// delete test task
taskService.deleteTask(task.getId(), true);
// delete filter
filterService.deleteFilter(filter.getId());
}
use of org.camunda.bpm.engine.filter.Filter in project camunda-bpm-platform by camunda.
the class TaskQueryDisabledAdhocExpressionsTest method testExtendStoredFilterByScalar.
public void testExtendStoredFilterByScalar() {
// given a stored filter
TaskQuery taskQuery = taskService.createTaskQuery().dueAfterExpression("${now()}");
Filter filter = filterService.newTaskFilter("filter");
filter.setQuery(taskQuery);
filterService.saveFilter(filter);
// it is possible to execute the stored query with an expression
assertEquals(new Long(0), filterService.count(filter.getId()));
assertEquals(0, filterService.list(filter.getId()).size());
// and it is possible to extend the filter query when not using an expression
assertEquals(new Long(0), filterService.count(filter.getId(), taskService.createTaskQuery().dueAfter(new Date())));
assertEquals(0, filterService.list(filter.getId(), taskService.createTaskQuery().dueAfter(new Date())).size());
// cleanup
filterService.deleteFilter(filter.getId());
}
use of org.camunda.bpm.engine.filter.Filter in project camunda-bpm-platform by camunda.
the class TaskQueryDisabledAdhocExpressionsTest method testExtendStoredFilterByExpression.
public void testExtendStoredFilterByExpression() {
// given a stored filter
TaskQuery taskQuery = taskService.createTaskQuery().dueAfterExpression("${now()}");
Filter filter = filterService.newTaskFilter("filter");
filter.setQuery(taskQuery);
filterService.saveFilter(filter);
// it is possible to execute the stored query with an expression
assertEquals(new Long(0), filterService.count(filter.getId()));
assertEquals(0, filterService.list(filter.getId()).size());
// but it is not possible to executed the filter with an extended query that uses expressions
extendFilterAndValidateFailingQuery(filter, taskService.createTaskQuery().dueAfterExpression(STATE_MANIPULATING_EXPRESSION));
// cleanup
filterService.deleteFilter(filter.getId());
}
Aggregations