Пример #1
0
        public virtual void testTaskFilter()
        {
            string          testString          = "test";
            int?            testInteger         = 1;
            DelegationState testDelegationState = DelegationState.PENDING;
            DateTime        testDate            = new DateTime();

            string[]       testActivityInstances = new string[] { "a", "b", "c" };
            string[]       testKeys            = new string[] { "d", "e" };
            IList <string> testCandidateGroups = new List <string>();

            testCandidateGroups.Add("group");
            testCandidateGroups.Add("anotherGroup");

            string[] variableNames  = new string[] { "a", "b", "c", "d", "e", "f" };
            object[] variableValues = new object[] { 1, 2, "3", "4", 5, 6 };

            QueryOperator[] variableOperators = new QueryOperator[] { QueryOperator.EQUALS, QueryOperator.GREATER_THAN_OR_EQUAL, QueryOperator.LESS_THAN, QueryOperator.LIKE, QueryOperator.NOT_EQUALS, QueryOperator.LESS_THAN_OR_EQUAL };
            bool[]          isTaskVariable    = new bool[] { true, true, false, false, false, false };
            bool[]          isProcessVariable = new bool[] { false, false, true, true, false, false };

            TaskQueryImpl expectedOrderingPropertiesQuery = new TaskQueryImpl();

            expectedOrderingPropertiesQuery.orderByExecutionId().desc();
            expectedOrderingPropertiesQuery.orderByDueDate().asc();
            expectedOrderingPropertiesQuery.orderByProcessVariable("var", ValueType.STRING).desc();

            IList <QueryOrderingProperty> expectedOrderingProperties = expectedOrderingPropertiesQuery.OrderingProperties;

            Filter filter = engineRule.FilterService.createTaskFilterQuery().filterName("filter").singleResult();

            TaskQueryImpl query = filter.Query;

            assertEquals(testString, query.TaskId);
            assertEquals(testString, query.Name);
            assertEquals(testString, query.NameNotEqual);
            assertEquals(testString, query.NameNotLike);
            assertEquals(testString, query.NameLike);
            assertEquals(testString, query.Description);
            assertEquals(testString, query.DescriptionLike);
            assertEquals(testInteger, query.Priority);
            assertEquals(testInteger, query.MinPriority);
            assertEquals(testInteger, query.MaxPriority);
            assertEquals(testString, query.Assignee);
            assertEquals(testString, query.Expressions["taskAssignee"]);
            assertEquals(testString, query.AssigneeLike);
            assertEquals(testString, query.Expressions["taskAssigneeLike"]);
            assertEquals(testString, query.InvolvedUser);
            assertEquals(testString, query.Expressions["taskInvolvedUser"]);
            assertEquals(testString, query.Owner);
            assertEquals(testString, query.Expressions["taskOwner"]);
            assertTrue(query.Unassigned);
            assertTrue(query.Assigned);
            assertEquals(testDelegationState, query.DelegationState);
            assertEquals(testCandidateGroups, query.CandidateGroups);
            assertTrue(query.WithCandidateGroups);
            assertTrue(query.WithoutCandidateGroups);
            assertTrue(query.WithCandidateUsers);
            assertTrue(query.WithoutCandidateUsers);
            assertEquals(testString, query.Expressions["taskCandidateGroupIn"]);
            assertEquals(testString, query.ProcessInstanceId);
            assertEquals(testString, query.ExecutionId);
            assertEquals(testActivityInstances.Length, query.ActivityInstanceIdIn.Length);
            for (int i = 0; i < query.ActivityInstanceIdIn.Length; i++)
            {
                assertEquals(testActivityInstances[i], query.ActivityInstanceIdIn[i]);
            }
            assertEquals(testDate, query.CreateTime);
            assertEquals(testString, query.Expressions["taskCreatedOn"]);
            assertEquals(testDate, query.CreateTimeBefore);
            assertEquals(testString, query.Expressions["taskCreatedBefore"]);
            assertEquals(testDate, query.CreateTimeAfter);
            assertEquals(testString, query.Expressions["taskCreatedAfter"]);
            assertEquals(testString, query.Key);
            assertEquals(testKeys.Length, query.Keys.Length);
            for (int i = 0; i < query.Keys.Length; i++)
            {
                assertEquals(testKeys[i], query.Keys[i]);
            }
            assertEquals(testString, query.KeyLike);
            assertEquals(testString, query.ProcessDefinitionKey);
            for (int i = 0; i < query.ProcessDefinitionKeys.Length; i++)
            {
                assertEquals(testKeys[i], query.ProcessDefinitionKeys[i]);
            }
            assertEquals(testString, query.ProcessDefinitionId);
            assertEquals(testString, query.ProcessDefinitionName);
            assertEquals(testString, query.ProcessDefinitionNameLike);
            assertEquals(testString, query.ProcessInstanceBusinessKey);
            assertEquals(testString, query.Expressions["processInstanceBusinessKey"]);
            for (int i = 0; i < query.ProcessInstanceBusinessKeys.Length; i++)
            {
                assertEquals(testKeys[i], query.ProcessInstanceBusinessKeys[i]);
            }
            assertEquals(testString, query.ProcessInstanceBusinessKeyLike);
            assertEquals(testString, query.Expressions["processInstanceBusinessKeyLike"]);

            // variables
            IList <TaskQueryVariableValue> variables = query.Variables;

            for (int i = 0; i < variables.Count; i++)
            {
                TaskQueryVariableValue variable = variables[i];
                assertEquals(variableNames[i], variable.Name);
                assertEquals(variableValues[i], variable.Value);
                assertEquals(variableOperators[i], variable.Operator);
                assertEquals(isTaskVariable[i], variable.Local);
                assertEquals(isProcessVariable[i], variable.ProcessInstanceVariable);
            }

            assertEquals(testDate, query.DueDate);
            assertEquals(testString, query.Expressions["dueDate"]);
            assertEquals(testDate, query.DueBefore);
            assertEquals(testString, query.Expressions["dueBefore"]);
            assertEquals(testDate, query.DueAfter);
            assertEquals(testString, query.Expressions["dueAfter"]);
            assertEquals(testDate, query.FollowUpDate);
            assertEquals(testString, query.Expressions["followUpDate"]);
            assertEquals(testDate, query.FollowUpBefore);
            assertEquals(testString, query.Expressions["followUpBefore"]);
            assertEquals(testDate, query.FollowUpAfter);
            assertEquals(testString, query.Expressions["followUpAfter"]);
            assertTrue(query.ExcludeSubtasks);
            assertEquals(org.camunda.bpm.engine.impl.persistence.entity.SuspensionState_Fields.SUSPENDED, query.SuspensionState);
            assertEquals(testString, query.CaseDefinitionKey);
            assertEquals(testString, query.CaseDefinitionId);
            assertEquals(testString, query.CaseDefinitionName);
            assertEquals(testString, query.CaseDefinitionNameLike);
            assertEquals(testString, query.CaseInstanceId);
            assertEquals(testString, query.CaseInstanceBusinessKey);
            assertEquals(testString, query.CaseInstanceBusinessKeyLike);
            assertEquals(testString, query.CaseExecutionId);

            // ordering
            verifyOrderingProperties(expectedOrderingProperties, query.OrderingProperties);
        }
Пример #2
0
        protected internal virtual void addVariable(JsonObject jsonObject, string variableType, TaskQueryVariableValue variable)
        {
            JsonArray variables = JsonUtil.getArray(jsonObject, variableType);

            JsonUtil.addElement(variables, variableValueConverter, variable);
            JsonUtil.addField(jsonObject, variableType, variables);
        }