Beispiel #1
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test @OperateOnDeployment("clientDeployment") public void testResolveCaseExecutionListenerClass()
        public virtual void testResolveCaseExecutionListenerClass()
        {
            // assert that we cannot load the delegate here:
            try
            {
                Type.GetType("org.camunda.bpm.integrationtest.functional.classloading.beans.ExampleCaseVariableListener");
                Assert.fail("CNFE expected");
            }
            catch (ClassNotFoundException)
            {
                // expected
            }

            string caseInstanceId = caseService.withCaseDefinitionByKey("case").create().Id;

            string humanTaskId = caseService.createCaseExecutionQuery().activityId("PI_HumanTask_1").singleResult().Id;

            // the listener should execute successfully
            caseService.withCaseExecution(humanTaskId).setVariable("variable", "initial").execute();

            VariableInstanceQuery query = runtimeService.createVariableInstanceQuery().variableName("variable").caseInstanceIdIn(caseInstanceId);

            Assert.assertNotNull(query.singleResult());
            Assert.assertEquals("listener-notified-1", query.singleResult().Value);

            caseService.withCaseExecution(humanTaskId).setVariable("variable", "manual-start").manualStart();

            Assert.assertNotNull(query.singleResult());
            Assert.assertEquals("listener-notified-2", query.singleResult().Value);
        }
Beispiel #2
0
        public virtual void testListenerByScriptResource()
        {
            // given
            string caseInstanceId = caseService.withCaseDefinitionByKey("case").create().Id;

            string humanTaskId = caseService.createCaseExecutionQuery().activityId("PI_HumanTask_1").singleResult().Id;

            // when
            string taskId = taskService.createTaskQuery().caseExecutionId(humanTaskId).singleResult().Id;

            taskService.setAssignee(taskId, "jonny");

            caseService.withCaseExecution(humanTaskId).complete();

            // then
            VariableInstanceQuery query = runtimeService.createVariableInstanceQuery().caseInstanceIdIn(caseInstanceId);

            assertEquals(7, query.count());

            assertTrue((bool?)query.variableName("create").singleResult().Value);
            assertEquals(1, query.variableName("createEventCounter").singleResult().Value);

            assertTrue((bool?)query.variableName("assignment").singleResult().Value);
            assertEquals(1, query.variableName("assignmentEventCounter").singleResult().Value);

            assertTrue((bool?)query.variableName("complete").singleResult().Value);
            assertEquals(1, query.variableName("completeEventCounter").singleResult().Value);

            assertEquals(3, query.variableName("eventCounter").singleResult().Value);
        }
Beispiel #3
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Deployment public void testScriptTaskListenerExecutesQueryAfterUserCompletesTask()
        public virtual void testScriptTaskListenerExecutesQueryAfterUserCompletesTask()
        {
            // given
            startProcessInstancesByKey(DEFAULT_PROCESS_KEY, 5);
            Task task = selectAnyTask();

            string taskId            = task.Id;
            string processInstanceId = task.ProcessInstanceId;

            createGrantAuthorization(TASK, taskId, userId, UPDATE);

            // when
            taskService.complete(taskId);

            // then
            disableAuthorization();

            VariableInstanceQuery query = runtimeService.createVariableInstanceQuery().processInstanceIdIn(processInstanceId);

            VariableInstance variableUser = query.variableName("userId").singleResult();

            assertNotNull(variableUser);
            assertEquals(userId, variableUser.Value);

            VariableInstance variableCount = query.variableName("count").singleResult();

            assertNotNull(variableCount);
            assertEquals(5l, variableCount.Value);

            enableAuthorization();
        }
Beispiel #4
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Deployment public void testScriptIoMappingExecutesCommandAfterUserCompletesTask()
        public virtual void testScriptIoMappingExecutesCommandAfterUserCompletesTask()
        {
            // given
            string processInstanceId = startProcessInstanceByKey(DEFAULT_PROCESS_KEY).Id;
            string taskId            = selectSingleTask().Id;

            createGrantAuthorization(TASK, taskId, userId, UPDATE);

            // when
            taskService.complete(taskId);

            // then
            disableAuthorization();

            VariableInstanceQuery query = runtimeService.createVariableInstanceQuery().processInstanceIdIn(processInstanceId);

            VariableInstance variableUser = query.variableName("userId").singleResult();

            assertNotNull(variableUser);
            assertEquals(userId, variableUser.Value);

            VariableInstance variableCount = query.variableName("count").singleResult();

            assertNotNull(variableCount);
            assertEquals(1l, variableCount.Value);

            assertEquals(2, runtimeService.createProcessInstanceQuery().count());

            enableAuthorization();
        }
Beispiel #5
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Before public void setUpRuntimeData()
        public virtual void setUpRuntimeData()
        {
            mockInstanceBuilder = MockProvider.mockVariableInstance();
            mockInstance        = mockInstanceBuilder.build();

            mockedQuery = setUpMockVariableInstanceQuery(createMockVariableInstanceList(mockInstance));
        }
Beispiel #6
0
        public virtual void testAllListenerByDelegateExpressionExcludingCompletion()
        {
            // given
            string caseInstanceId = caseService.withCaseDefinitionByKey("case").setVariable("myTaskListener", new MySpecialTaskListener()).create().Id;

            string humanTaskId = caseService.createCaseExecutionQuery().activityId("PI_HumanTask_1").singleResult().Id;

            // when
            string taskId = taskService.createTaskQuery().caseExecutionId(humanTaskId).singleResult().Id;

            taskService.setAssignee(taskId, "jonny");

            terminate(humanTaskId);

            // then
            VariableInstanceQuery query = runtimeService.createVariableInstanceQuery().caseInstanceIdIn(caseInstanceId);

            assertEquals(8, query.count());

            assertTrue((bool?)query.variableName("create").singleResult().Value);
            assertEquals(1, query.variableName("createEventCounter").singleResult().Value);

            assertTrue((bool?)query.variableName("assignment").singleResult().Value);
            assertEquals(1, query.variableName("assignmentEventCounter").singleResult().Value);

            assertTrue((bool?)query.variableName("delete").singleResult().Value);
            assertEquals(1, query.variableName("deleteEventCounter").singleResult().Value);

            assertEquals(3, query.variableName("eventCounter").singleResult().Value);
        }
Beispiel #7
0
        public virtual void testListenerByScriptResource()
        {
            // given

            // when
            string caseInstanceId = caseService.withCaseDefinitionByKey("case").create().Id;

            caseService.withCaseExecution(caseInstanceId).complete();

            reactivate(caseInstanceId);

            terminate(caseInstanceId);

            // then
            VariableInstanceQuery query = runtimeService.createVariableInstanceQuery().caseInstanceIdIn(caseInstanceId);

            assertEquals(10, query.count());

            assertTrue((bool?)query.variableName("create").singleResult().Value);
            assertEquals(1, query.variableName("createEventCounter").singleResult().Value);
            assertEquals(caseInstanceId, query.variableName("createOnCaseExecutionId").singleResult().Value);

            assertTrue((bool?)query.variableName("complete").singleResult().Value);
            assertEquals(1, query.variableName("completeEventCounter").singleResult().Value);
            assertEquals(caseInstanceId, query.variableName("completeOnCaseExecutionId").singleResult().Value);

            assertTrue((bool?)query.variableName("terminate").singleResult().Value);
            assertEquals(1, query.variableName("terminateEventCounter").singleResult().Value);
            assertEquals(caseInstanceId, query.variableName("terminateOnCaseExecutionId").singleResult().Value);

            assertEquals(3, query.variableName("eventCounter").singleResult().Value);
        }
Beispiel #8
0
        public virtual void testQueryNoAuthenticatedTenants()
        {
            identityService.setAuthentication("user", null, null);

            VariableInstanceQuery query = runtimeService.createVariableInstanceQuery();

            assertThat(query.count(), @is(0L));
        }
Beispiel #9
0
        public virtual void testQueryDisabledTenantCheck()
        {
            processEngineConfiguration.TenantCheckEnabled = false;
            identityService.setAuthentication("user", null, null);

            VariableInstanceQuery query = runtimeService.createVariableInstanceQuery();

            assertThat(query.count(), @is(2L));
        }
Beispiel #10
0
        private VariableInstanceQuery setUpMockVariableInstanceQuery(IList <VariableInstance> mockedInstances)
        {
            VariableInstanceQuery sampleInstanceQuery = mock(typeof(VariableInstanceQuery));

            when(sampleInstanceQuery.list()).thenReturn(mockedInstances);
            when(sampleInstanceQuery.count()).thenReturn((long)mockedInstances.Count);
            when(processEngine.RuntimeService.createVariableInstanceQuery()).thenReturn(sampleInstanceQuery);

            return(sampleInstanceQuery);
        }
Beispiel #11
0
        public virtual void testQueryByTenantId()
        {
            VariableInstanceQuery query = runtimeService.createVariableInstanceQuery().tenantIdIn(TENANT_ONE);

            assertThat(query.count(), @is(1L));

            query = runtimeService.createVariableInstanceQuery().tenantIdIn(TENANT_TWO);

            assertThat(query.count(), @is(1L));
        }
Beispiel #12
0
        public virtual void testQueryAuthenticatedTenants()
        {
            identityService.setAuthentication("user", null, Arrays.asList(TENANT_ONE, TENANT_TWO));

            VariableInstanceQuery query = runtimeService.createVariableInstanceQuery();

            assertThat(query.count(), @is(2L));
            assertThat(query.tenantIdIn(TENANT_ONE).count(), @is(1L));
            assertThat(query.tenantIdIn(TENANT_TWO).count(), @is(1L));
        }
Beispiel #13
0
 private IList <VariableInstance> executePaginatedQuery(VariableInstanceQuery query, int?firstResult, int?maxResults)
 {
     if (firstResult == null)
     {
         firstResult = 0;
     }
     if (maxResults == null)
     {
         maxResults = int.MaxValue;
     }
     return(query.listPage(firstResult, maxResults));
 }
Beispiel #14
0
        private void createVariableInstanceMock()
        {
            IList <VariableInstance> variables    = new List <VariableInstance>();
            VariableInstance         mockInstance = MockProvider.createMockVariableInstance();

            variables.Add(mockInstance);

            VariableInstanceQuery mockVariableInstanceQuery = mock(typeof(VariableInstanceQuery));

            when(mockVariableInstanceQuery.list()).thenReturn(variables);
            when(mockRuntimeService.createVariableInstanceQuery()).thenReturn(mockVariableInstanceQuery);
        }
Beispiel #15
0
        public virtual void testCreateListenerByScript()
        {
            // given
            string caseInstanceId = caseService.withCaseDefinitionByKey("case").create().Id;

            // then
            VariableInstanceQuery query = runtimeService.createVariableInstanceQuery().caseInstanceIdIn(caseInstanceId);

            assertEquals(2, query.count());

            assertTrue((bool?)query.variableName("create").singleResult().Value);
            assertEquals(1, query.variableName("createEventCounter").singleResult().Value);
        }
Beispiel #16
0
        public virtual CountResultDto queryVariableInstancesCount(VariableInstanceQueryDto queryDto)
        {
            ProcessEngine engine = ProcessEngine;

            queryDto.ObjectMapper = ObjectMapper;
            VariableInstanceQuery query = queryDto.toQuery(engine);

            long           count  = query.count();
            CountResultDto result = new CountResultDto();

            result.Count = count;

            return(result);
        }
Beispiel #17
0
        public virtual void testCreateListenerByClass()
        {
            // given
            string caseInstanceId = caseService.withCaseDefinitionByKey("case").create().Id;

            string humanTaskId = caseService.createCaseExecutionQuery().activityId("PI_HumanTask_1").singleResult().Id;

            // then
            VariableInstanceQuery query = runtimeService.createVariableInstanceQuery().caseInstanceIdIn(caseInstanceId);

            assertEquals(3, query.count());

            assertTrue((bool?)query.variableName("create").singleResult().Value);
            assertEquals(1, query.variableName("createEventCounter").singleResult().Value);
            assertEquals(1, query.variableName("eventCounter").singleResult().Value);
        }
Beispiel #18
0
        public virtual void testCreateListenerByExpression()
        {
            // given

            // when
            string caseInstanceId = caseService.withCaseDefinitionByKey("case").setVariable("myListener", new MyCaseExecutionListener()).create().Id;

            // then
            VariableInstanceQuery query = runtimeService.createVariableInstanceQuery().caseInstanceIdIn(caseInstanceId);

            assertEquals(5, query.count());

            assertTrue((bool?)query.variableName("create").singleResult().Value);
            assertEquals(1, query.variableName("createEventCounter").singleResult().Value);
            assertEquals(1, query.variableName("eventCounter").singleResult().Value);
            assertEquals(caseInstanceId, query.variableName("createOnCaseExecutionId").singleResult().Value);
        }
Beispiel #19
0
        public virtual void testFieldInjectionByDelegateExpression()
        {
            // given

            // when
            string caseInstanceId = caseService.withCaseDefinitionByKey("case").setVariable("myListener", new FieldInjectionCaseExecutionListener()).create().Id;

            // then
            VariableInstanceQuery query = runtimeService.createVariableInstanceQuery().caseInstanceIdIn(caseInstanceId);

            assertEquals(5, query.count());

            assertEquals("Hello from The Case", query.variableName("greeting").singleResult().Value);
            assertEquals("Hello World", query.variableName("helloWorld").singleResult().Value);
            assertEquals("cam", query.variableName("prefix").singleResult().Value);
            assertEquals("unda", query.variableName("suffix").singleResult().Value);
        }
Beispiel #20
0
        public virtual void testFieldInjectionByClass()
        {
            // given
            string caseInstanceId = caseService.withCaseDefinitionByKey("case").create().Id;

            string humanTaskId = caseService.createCaseExecutionQuery().activityId("PI_HumanTask_1").singleResult().Id;

            // then
            VariableInstanceQuery query = runtimeService.createVariableInstanceQuery().caseInstanceIdIn(caseInstanceId);

            assertEquals(4, query.count());

            assertEquals("Hello from The Case", query.variableName("greeting").singleResult().Value);
            assertEquals("Hello World", query.variableName("helloWorld").singleResult().Value);
            assertEquals("cam", query.variableName("prefix").singleResult().Value);
            assertEquals("unda", query.variableName("suffix").singleResult().Value);
        }
Beispiel #21
0
        public virtual void testSuspendListenerByClass()
        {
            // given
            string caseInstanceId = caseService.withCaseDefinitionByKey("case").create().Id;

            // when
            suspend(caseInstanceId);

            // then
            VariableInstanceQuery query = runtimeService.createVariableInstanceQuery().caseInstanceIdIn(caseInstanceId);

            assertEquals(4, query.count());

            assertTrue((bool?)query.variableName("suspend").singleResult().Value);
            assertEquals(1, query.variableName("suspendEventCounter").singleResult().Value);
            assertEquals(1, query.variableName("eventCounter").singleResult().Value);
            assertEquals(caseInstanceId, query.variableName("suspendOnCaseExecutionId").singleResult().Value);
        }
Beispiel #22
0
        public virtual void testAllListenerByDelegateExpression()
        {
            // given

            // when
            string caseInstanceId = caseService.withCaseDefinitionByKey("case").setVariable("myListener", new MySpecialCaseExecutionListener()).create().Id;

            caseService.withCaseExecution(caseInstanceId).complete();

            reactivate(caseInstanceId);

            terminate(caseInstanceId);

            reactivate(caseInstanceId);

            suspend(caseInstanceId);

            // then
            VariableInstanceQuery query = runtimeService.createVariableInstanceQuery().caseInstanceIdIn(caseInstanceId);

            assertEquals(17, query.count());

            assertTrue((bool?)query.variableName("create").singleResult().Value);
            assertEquals(1, query.variableName("createEventCounter").singleResult().Value);
            assertEquals(caseInstanceId, query.variableName("createOnCaseExecutionId").singleResult().Value);

            assertTrue((bool?)query.variableName("complete").singleResult().Value);
            assertEquals(1, query.variableName("completeEventCounter").singleResult().Value);
            assertEquals(caseInstanceId, query.variableName("completeOnCaseExecutionId").singleResult().Value);

            assertTrue((bool?)query.variableName("terminate").singleResult().Value);
            assertEquals(1, query.variableName("terminateEventCounter").singleResult().Value);
            assertEquals(caseInstanceId, query.variableName("terminateOnCaseExecutionId").singleResult().Value);

            assertTrue((bool?)query.variableName("suspend").singleResult().Value);
            assertEquals(1, query.variableName("suspendEventCounter").singleResult().Value);
            assertEquals(caseInstanceId, query.variableName("suspendOnCaseExecutionId").singleResult().Value);

            assertTrue((bool?)query.variableName("reactivate").singleResult().Value);
            assertEquals(2, query.variableName("reactivateEventCounter").singleResult().Value);
            assertEquals(caseInstanceId, query.variableName("reactivateOnCaseExecutionId").singleResult().Value);

            assertEquals(6, query.variableName("eventCounter").singleResult().Value);
        }
Beispiel #23
0
        public virtual void testCompleteListenerByDelegateExpression()
        {
            // given
            string caseInstanceId = caseService.withCaseDefinitionByKey("case").setVariable("myTaskListener", new MySpecialTaskListener()).create().Id;

            string humanTaskId = caseService.createCaseExecutionQuery().activityId("PI_HumanTask_1").singleResult().Id;

            // when
            caseService.withCaseExecution(humanTaskId).complete();

            // then
            VariableInstanceQuery query = runtimeService.createVariableInstanceQuery().caseInstanceIdIn(caseInstanceId);

            assertEquals(4, query.count());

            assertTrue((bool?)query.variableName("complete").singleResult().Value);
            assertEquals(1, query.variableName("completeEventCounter").singleResult().Value);
            assertEquals(1, query.variableName("eventCounter").singleResult().Value);
        }
Beispiel #24
0
        public virtual void testCreateByIdWithVariables()
        {
            // given a deployed case definition
            string caseDefinitionId = repositoryService.createCaseDefinitionQuery().singleResult().Id;

            IDictionary <string, object> variables = new Dictionary <string, object>();

            variables["aVariableName"]       = "aVariableValue";
            variables["anotherVariableName"] = 999;

            // when
            CaseInstance caseInstance = caseService.withCaseDefinition(caseDefinitionId).setVariables(variables).create();

            // then
            assertNotNull(caseInstance);

            // there should exist two variables
            VariableInstanceQuery query = runtimeService.createVariableInstanceQuery();

            IList <VariableInstance> result = query.caseInstanceIdIn(caseInstance.Id).orderByVariableName().asc().list();

            assertFalse(result.Count == 0);
            assertEquals(2, result.Count);

            foreach (VariableInstance variableInstance in result)
            {
                if (variableInstance.Name.Equals("aVariableName"))
                {
                    assertEquals("aVariableName", variableInstance.Name);
                    assertEquals("aVariableValue", variableInstance.Value);
                }
                else if (variableInstance.Name.Equals("anotherVariableName"))
                {
                    assertEquals("anotherVariableName", variableInstance.Name);
                    assertEquals(999, variableInstance.Value);
                }
                else
                {
                    fail("Unexpected variable: " + variableInstance.Name);
                }
            }
        }
Beispiel #25
0
        public virtual void testCreateByKeyWithVariable()
        {
            // given a deployed case definition

            // when
            CaseInstance caseInstance = caseService.withCaseDefinitionByKey("oneTaskCase").setVariable("aVariableName", "aVariableValue").setVariable("anotherVariableName", 999).create();

            // then
            assertNotNull(caseInstance);

            // there should exist two variables
            VariableInstanceQuery query = runtimeService.createVariableInstanceQuery();

            IList <VariableInstance> result = query.caseInstanceIdIn(caseInstance.Id).orderByVariableName().asc().list();

            assertFalse(result.Count == 0);
            assertEquals(2, result.Count);

            foreach (VariableInstance variableInstance in result)
            {
                if (variableInstance.Name.Equals("aVariableName"))
                {
                    assertEquals("aVariableName", variableInstance.Name);
                    assertEquals("aVariableValue", variableInstance.Value);
                }
                else if (variableInstance.Name.Equals("anotherVariableName"))
                {
                    assertEquals("anotherVariableName", variableInstance.Name);
                    assertEquals(999, variableInstance.Value);
                }
                else
                {
                    fail("Unexpected variable: " + variableInstance.Name);
                }
            }
        }
Beispiel #26
0
        public virtual IList <VariableInstanceDto> queryVariableInstances(VariableInstanceQueryDto queryDto, int?firstResult, int?maxResults, bool deserializeObjectValues)
        {
            ProcessEngine engine = ProcessEngine;

            queryDto.ObjectMapper = ObjectMapper;
            VariableInstanceQuery query = queryDto.toQuery(engine);

            // disable binary fetching by default.
            query.disableBinaryFetching();

            // disable custom object fetching by default. Cannot be done to not break existing API
            if (!deserializeObjectValues)
            {
                query.disableCustomObjectDeserialization();
            }

            IList <VariableInstance> matchingInstances;

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

            IList <VariableInstanceDto> instanceResults = new List <VariableInstanceDto>();

            foreach (VariableInstance instance in matchingInstances)
            {
                VariableInstanceDto resultInstance = VariableInstanceDto.fromVariableInstance(instance);
                instanceResults.Add(resultInstance);
            }
            return(instanceResults);
        }
 public VariableInstanceQueryResource Query(VariableInstanceQuery query = null)
 => new VariableInstanceQueryResource(_api, query ?? new VariableInstanceQuery());
Beispiel #28
0
        public virtual void testQueryByNonExistingTenantId()
        {
            VariableInstanceQuery query = runtimeService.createVariableInstanceQuery().tenantIdIn("nonExisting");

            assertThat(query.count(), @is(0L));
        }
Beispiel #29
0
        public virtual void testQueryWithoutTenantId()
        {
            VariableInstanceQuery query = runtimeService.createVariableInstanceQuery();

            assertThat(query.count(), @is(2L));
        }