コード例 #1
0
        public virtual void testQueryByVariableTypeInWithCapitalLetter()
        {
            // given
            IDictionary <string, object> variables1 = new Dictionary <string, object>();

            variables1["stringVar"] = "test";
            variables1["boolVar"]   = true;
            runtimeService.startProcessInstanceByKey("oneTaskProcess", variables1);

            // when
            HistoricDetailQuery query = historyService.createHistoricDetailQuery().variableTypeIn("Boolean");

            // then
            assertEquals(1, query.list().size());
            assertEquals(1, query.count());
            HistoricDetail historicDetail = query.list().get(0);

            if (historicDetail is HistoricVariableUpdate)
            {
                HistoricVariableUpdate variableUpdate = (HistoricVariableUpdate)historicDetail;
                assertEquals(variableUpdate.VariableName, "boolVar");
                assertEquals(variableUpdate.TypeName, "boolean");
            }
            else
            {
                fail("Historic detail should be a variable update!");
            }
        }
コード例 #2
0
        private IList <HistoricDetailDto> executeHistoricDetailQuery(HistoricDetailQuery query, int?firstResult, int?maxResults, bool deserializeObjectValues)
        {
            query.disableBinaryFetching();
            if (!deserializeObjectValues)
            {
                query.disableCustomObjectDeserialization();
            }

            IList <HistoricDetail> queryResult;

            if (firstResult != null || maxResults != null)
            {
                queryResult = executePaginatedQuery(query, firstResult, maxResults);
            }
            else
            {
                queryResult = query.list();
            }

            IList <HistoricDetailDto> result = new List <HistoricDetailDto>();

            foreach (HistoricDetail historicDetail in queryResult)
            {
                HistoricDetailDto dto = HistoricDetailDto.fromHistoricDetail(historicDetail);
                result.Add(dto);
            }

            return(result);
        }
コード例 #3
0
        private void createHistoricDetailMock()
        {
            IList <HistoricDetail> details = MockProvider.createMockHistoricDetails();

            HistoricDetailQuery query = mock(typeof(HistoricDetailQuery));

            when(mockHistoryService.createHistoricDetailQuery()).thenReturn(query);
            when(query.list()).thenReturn(details);
        }
コード例 #4
0
        public virtual void testQueryBySeveralProcessInstanceIds()
        {
            // given
            IDictionary <string, object> variables = new Dictionary <string, object>();

            variables["stringVar"] = "test";
            ProcessInstance processInstance  = runtimeService.startProcessInstanceByKey(PROCESS_KEY, variables);
            ProcessInstance processInstance2 = runtimeService.startProcessInstanceByKey(PROCESS_KEY, variables);

            runtimeService.startProcessInstanceByKey(PROCESS_KEY, variables);

            // when
            HistoricDetailQuery query = historyService.createHistoricDetailQuery().variableUpdates().processInstanceIdIn(processInstance.ProcessInstanceId, processInstance2.ProcessInstanceId);

            // then
            ISet <string> expectedProcessInstanceIds = new HashSet <string>();

            expectedProcessInstanceIds.Add(processInstance.Id);
            expectedProcessInstanceIds.Add(processInstance2.Id);
            assertEquals(2, query.count());
            assertTrue(expectedProcessInstanceIds.Contains(query.list().get(0).ProcessInstanceId));
            assertTrue(expectedProcessInstanceIds.Contains(query.list().get(1).ProcessInstanceId));
        }
コード例 #5
0
        public virtual void testQueryBySingleProcessInstanceId()
        {
            // given
            IDictionary <string, object> variables = new Dictionary <string, object>();

            variables["stringVar"] = "test";
            ProcessInstance processInstance = runtimeService.startProcessInstanceByKey(PROCESS_KEY, variables);

            // when
            HistoricDetailQuery query = historyService.createHistoricDetailQuery().variableUpdates().processInstanceIdIn(processInstance.ProcessInstanceId);

            // then
            assertEquals(1, query.count());
            assertEquals(query.list().get(0).ProcessInstanceId, processInstance.Id);
        }
コード例 #6
0
        public virtual void testQueryByVariableTypeInWithSeveralTypes()
        {
            // given
            IDictionary <string, object> variables1 = new Dictionary <string, object>();

            variables1["stringVar"] = "test";
            variables1["boolVar"]   = true;
            variables1["intVar"]    = 5;
            variables1["nullVar"]   = null;
            variables1["pojoVar"]   = new TestPojo("str", .0);
            runtimeService.startProcessInstanceByKey("oneTaskProcess", variables1);

            // when
            HistoricDetailQuery query = historyService.createHistoricDetailQuery().variableTypeIn("boolean", "integer", "Serializable");

            // then
            assertEquals(3, query.list().size());
            assertEquals(3, query.count());
            ISet <string> allowedVariableTypes = new HashSet <string>();

            allowedVariableTypes.Add("boolean");
            allowedVariableTypes.Add("integer");
            allowedVariableTypes.Add("object");
            foreach (HistoricDetail detail in query.list())
            {
                if (detail is HistoricVariableUpdate)
                {
                    HistoricVariableUpdate variableUpdate = (HistoricVariableUpdate)detail;
                    assertTrue(allowedVariableTypes.Contains(variableUpdate.TypeName));
                }
                else
                {
                    fail("Historic detail should be a variable update!");
                }
            }
        }
コード例 #7
0
        public virtual void testQueryByInvalidExecutionId()
        {
            startProcessInstance(PROCESS_KEY);

            string taskId = taskService.createTaskQuery().singleResult().Id;

            // when
            taskService.resolveTask(taskId, Variables);

            //then
            HistoricDetailQuery query = historyService.createHistoricDetailQuery().executionId("invalid");

            assertEquals(0, query.list().size());
            assertEquals(0, query.count());
        }
コード例 #8
0
        public virtual void testQueryByUserOperationId()
        {
            startProcessInstance(PROCESS_KEY);

            identityService.AuthenticatedUserId = "demo";

            string taskId = taskService.createTaskQuery().singleResult().Id;

            // when
            taskService.resolveTask(taskId, Variables);

            //then
            string userOperationId = historyService.createHistoricDetailQuery().singleResult().UserOperationId;

            HistoricDetailQuery query = historyService.createHistoricDetailQuery().userOperationId(userOperationId);

            assertEquals(1, query.list().size());
            assertEquals(1, query.count());
        }
コード例 #9
0
        public virtual void testQueryByInvalidUserOperationId()
        {
            startProcessInstance(PROCESS_KEY);

            string taskId = taskService.createTaskQuery().singleResult().Id;

            // when
            taskService.resolveTask(taskId, Variables);

            //then
            HistoricDetailQuery query = historyService.createHistoricDetailQuery().userOperationId("invalid");

            assertEquals(0, query.list().size());
            assertEquals(0, query.count());

            try
            {
                query.userOperationId(null);
                fail("It was possible to set a null value as userOperationId.");
            }
            catch (ProcessEngineException)
            {
            }
        }