예제 #1
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Deployment public void testEntryCriteriaAndManualActivationDisabled()
        public virtual void testEntryCriteriaAndManualActivationDisabled()
        {
            // given
            string caseInstanceId = createCaseInstanceByKey(CASE_DEFINITION_KEY).Id;

            CaseExecutionQuery executionQuery = caseService.createCaseExecutionQuery();

            string humanTask1Id = executionQuery.activityId("PI_HumanTask_1").singleResult().Id;

            // when (1)
            complete(humanTask1Id);

            // then (1)
            CaseInstanceQuery instanceQuery = caseService.createCaseInstanceQuery().caseInstanceId(caseInstanceId);

            CaseInstance caseInstance = instanceQuery.singleResult();

            assertNotNull(caseInstance);
            assertTrue(caseInstance.Active);

            string humanTask2Id = executionQuery.activityId("PI_HumanTask_2").singleResult().Id;

            // when (2)
            complete(humanTask2Id);

            // then (2)
            caseInstance = instanceQuery.singleResult();
            assertNotNull(caseInstance);
            assertTrue(caseInstance.Completed);
        }
예제 #2
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Deployment public void testStage()
        public virtual void testStage()
        {
            // given
            string caseInstanceId = createCaseInstanceByKey(CASE_DEFINITION_KEY).Id;

            CaseExecutionQuery query = caseService.createCaseExecutionQuery().activityId("PI_Stage_1");

            string stageId = query.singleResult().Id;

            // when
            caseService.manuallyStartCaseExecution(stageId);

            // then

            // the instance is still active (contains
            // a further human task)
            CaseInstance caseInstance = caseService.createCaseInstanceQuery().caseInstanceId(caseInstanceId).singleResult();

            assertNotNull(caseInstance);
            assertTrue(caseInstance.Active);

            // humanTask1 is still available
            assertNotNull(query.activityId("PI_HumanTask_1").singleResult());

            // stage, humanTask2, humanTask3 are not available
            assertNull(query.activityId("PI_Stage_1").singleResult());
            assertNull(query.activityId("PI_HumanTask_2").singleResult());
            assertNull(query.activityId("PI_HumanTask_3").singleResult());
        }
예제 #3
0
        public virtual void testCreateById()
        {
            // given a deployed case definition
            string caseDefinitionId = repositoryService.createCaseDefinitionQuery().singleResult().Id;

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

            // then
            assertNotNull(caseInstance);

            // check properties
            assertNull(caseInstance.BusinessKey);
            assertEquals(caseDefinitionId, caseInstance.CaseDefinitionId);
            assertEquals(caseInstance.Id, caseInstance.CaseInstanceId);
            assertTrue(caseInstance.Active);
            assertFalse(caseInstance.Enabled);

            // get persistent case instance
            CaseInstance instance = caseService.createCaseInstanceQuery().singleResult();

            // should have the same properties
            assertEquals(caseInstance.Id, instance.Id);
            assertEquals(caseInstance.BusinessKey, instance.BusinessKey);
            assertEquals(caseInstance.CaseDefinitionId, instance.CaseDefinitionId);
            assertEquals(caseInstance.CaseInstanceId, instance.CaseInstanceId);
            assertEquals(caseInstance.Active, instance.Active);
            assertEquals(caseInstance.Enabled, instance.Enabled);
        }
예제 #4
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Deployment public void testRequiredEnabledInsideStage()
        public virtual void testRequiredEnabledInsideStage()
        {
            // given
            string caseInstanceId = createCaseInstanceByKey(CASE_DEFINITION_KEY).Id;

            CaseExecutionQuery executionQuery = caseService.createCaseExecutionQuery();

            string humanTask3Id = executionQuery.activityId("PI_HumanTask_3").singleResult().Id;

            // when (1)
            complete(humanTask3Id);

            // then (1)
            CaseExecution stage = executionQuery.activityId("PI_Stage_1").singleResult();

            assertNotNull(stage);
            assertTrue(stage.Active);

            string humanTask2Id = executionQuery.activityId("PI_HumanTask_2").singleResult().Id;

            // when (2)
            complete(humanTask2Id);

            // then (2)
            assertNull(executionQuery.activityId("PI_Stage_1").singleResult());

            CaseInstance caseInstance = caseService.createCaseInstanceQuery().caseInstanceId(caseInstanceId).singleResult();

            assertNotNull(caseInstance);
            assertTrue(caseInstance.Active);
        }
예제 #5
0
        public virtual void testCompleteWithActiveStage()
        {
            // given:
            // a deployed case definition
            string caseDefinitionId = repositoryService.createCaseDefinitionQuery().singleResult().Id;

            // an active case instance
            string caseInstanceId = caseService.withCaseDefinition(caseDefinitionId).create().Id;

            string caseExecutionId = caseService.createCaseExecutionQuery().activityId("PI_Stage_1").singleResult().Id;

            // when

            try
            {
                caseService.withCaseExecution(caseInstanceId).complete();
                fail("It should not be possible to complete a case instance containing an active stage.");
            }
            catch (ProcessEngineException)
            {
            }

            // then

            CaseExecution caseExecution = caseService.createCaseExecutionQuery().activityId("PI_Stage_1").singleResult();

            assertNotNull(caseExecution);
            assertTrue(caseExecution.Active);

            // the case instance is still active
            CaseInstance caseInstance = caseService.createCaseInstanceQuery().singleResult();

            assertNotNull(caseInstance);
            assertTrue(caseInstance.Active);
        }
예제 #6
0
        public virtual void testCloseCaseInstanceShouldCompleteCaseTask()
        {
            // given
            createCaseInstance(DEFINITION_KEY);
            string caseTaskId = queryCaseExecutionByActivityId(CASE_TASK_KEY).Id;

            string humanTaskId = queryCaseExecutionByActivityId("PI_HumanTask_1").Id;

            caseService.withCaseExecution(humanTaskId).complete();

            CaseInstance subCaseInstance = queryCaseInstanceByKey(DEFINITION_KEY_2);

            assertTrue(subCaseInstance.Completed);

            // when
            caseService.withCaseExecution(subCaseInstance.Id).close();

            // then
            CaseExecution caseTask = queryCaseExecutionByActivityId(CASE_TASK_KEY);

            assertNull(caseTask);

            CaseInstance superCaseInstance = queryCaseInstanceByKey(DEFINITION_KEY);

            assertNotNull(superCaseInstance);
            assertTrue(superCaseInstance.Completed);
        }
예제 #7
0
        private void prepareCaseInstances(string key, int daysInThePast, int?historyTimeToLive, int instanceCount, string tenantId)
        {
            // update time to live
            IList <CaseDefinition> caseDefinitions = null;

            if (!string.ReferenceEquals(tenantId, null))
            {
                caseDefinitions = repositoryService.createCaseDefinitionQuery().caseDefinitionKey(key).tenantIdIn(tenantId).list();
            }
            else
            {
                caseDefinitions = repositoryService.createCaseDefinitionQuery().caseDefinitionKey(key).withoutTenantId().list();
            }
            assertEquals(1, caseDefinitions.Count);
            repositoryService.updateCaseDefinitionHistoryTimeToLive(caseDefinitions[0].Id, historyTimeToLive);

            DateTime oldCurrentTime = ClockUtil.CurrentTime;

            ClockUtil.CurrentTime = DateUtils.addDays(DateTime.Now, daysInThePast);

            for (int i = 0; i < instanceCount; i++)
            {
                CaseInstance caseInstance = caseService.createCaseInstanceById(caseDefinitions[0].Id);
                if (!string.ReferenceEquals(tenantId, null))
                {
                    assertEquals(tenantId, caseInstance.TenantId);
                }
                caseService.terminateCaseExecution(caseInstance.Id);
                caseService.closeCaseInstance(caseInstance.Id);
            }

            ClockUtil.CurrentTime = oldCurrentTime;
        }
예제 #8
0
        public virtual void testCompleteWithEnabledStage()
        {
            // given:
            // a deployed case definition
            string caseDefinitionId = repositoryService.createCaseDefinitionQuery().singleResult().Id;

            // an active case instance
            caseService.withCaseDefinition(caseDefinitionId).create();

            CaseExecution caseExecution = caseService.createCaseExecutionQuery().activityId("PI_HumanTask_1").singleResult();


            CaseExecution caseExecution2 = caseService.createCaseExecutionQuery().activityId("PI_HumanTask_2").singleResult();

            // when

            caseService.withCaseExecution(caseExecution.Id).complete();

            caseService.withCaseExecution(caseExecution2.Id).complete();

            // then

            // the corresponding case execution has been also
            // deleted and completed
            CaseExecution caseExecution3 = caseService.createCaseExecutionQuery().activityId("PI_Stage_1").singleResult();

            assertNull(caseExecution3);

            CaseInstance caseInstance = caseService.createCaseInstanceQuery().singleResult();

            assertNotNull(caseInstance);
            assertTrue(caseInstance.Completed);
        }
예제 #9
0
        public virtual void testManualStartWithVariable()
        {
            // given
            string superCaseInstanceId = createCaseInstance(DEFINITION_KEY).Id;
            string caseTaskId          = queryCaseExecutionByActivityId(CASE_TASK_KEY).Id;

            CaseInstance subCaseInstance = queryCaseInstanceByKey(DEFINITION_KEY_2);

            assertNull(subCaseInstance);

            // when
            caseService.withCaseExecution(caseTaskId).setVariable("aVariableName", "abc").setVariable("anotherVariableName", 999).manualStart();

            // then
            subCaseInstance = queryCaseInstanceByKey(DEFINITION_KEY_2);
            assertNotNull(subCaseInstance);
            assertTrue(subCaseInstance.Active);

            CaseExecution caseTask = queryCaseExecutionByActivityId(CASE_TASK_KEY);

            assertTrue(caseTask.Active);

            // the case instance has two variables:
            // - aVariableName
            // - anotherVariableName
            IList <VariableInstance> result = runtimeService.createVariableInstanceQuery().list();

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

            verifyVariables(superCaseInstanceId, result);
        }
예제 #10
0
        public virtual void testDisableShouldCompleteCaseInstance()
        {
            // given:
            // a deployed case definition
            string caseDefinitionId = repositoryService.createCaseDefinitionQuery().singleResult().Id;

            // an active case instance
            caseService.withCaseDefinition(caseDefinitionId).create().Id;

            string caseExecutionId = caseService.createCaseExecutionQuery().activityId("PI_Stage_1").singleResult().Id;

            // when

            caseService.withCaseExecution(caseExecutionId).disable();

            // then

            // the corresponding case execution has been also
            // deleted and completed
            CaseExecution caseExecution = caseService.createCaseExecutionQuery().activityId("PI_Stage_1").singleResult();

            assertNull(caseExecution);

            // the case instance has been completed
            CaseInstance caseInstance = caseService.createCaseInstanceQuery().completed().singleResult();

            assertNotNull(caseInstance);
            assertTrue(caseInstance.Completed);
        }
예제 #11
0
        public virtual void testSingleEntryMapping()
        {
            CaseInstance caseInstance = createTestCase("single entry");

            assertEquals("foo", caseService.getVariable(caseInstance.Id, "result"));
            assertEquals(Variables.stringValue("foo"), caseService.getVariableTyped(caseInstance.Id, "result"));
        }
예제 #12
0
        public virtual void testIfPartEvaluatesDecision()
        {
            CaseInstance caseInstance = caseService.withCaseDefinitionByKey("case").setVariable("input1", null).setVariable("myBean", new DecisionServiceDelegate()).create();

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

            caseService.completeCaseExecution(humanTask1);

            CaseDefinition caseDefinition = repositoryService.createCaseDefinitionQuery().caseDefinitionId(caseInstance.CaseDefinitionId).singleResult();

            string decisionDefinitionId = repositoryService.createDecisionDefinitionQuery().decisionDefinitionKey(DECISION_DEFINITION_KEY).singleResult().Id;

            string activityInstanceId = historyService.createHistoricCaseActivityInstanceQuery().caseActivityId("PI_HumanTask_1").singleResult().Id;

            HistoricDecisionInstance historicDecisionInstance = historyService.createHistoricDecisionInstanceQuery().singleResult();

            assertThat(historicDecisionInstance, @is(notNullValue()));
            assertThat(historicDecisionInstance.DecisionDefinitionId, @is(decisionDefinitionId));
            assertThat(historicDecisionInstance.DecisionDefinitionKey, @is(DECISION_DEFINITION_KEY));
            assertThat(historicDecisionInstance.DecisionDefinitionName, @is("sample decision"));

            // references to case instance should be set since the decision is evaluated while executing a case instance
            assertThat(historicDecisionInstance.ProcessDefinitionKey, @is(nullValue()));
            assertThat(historicDecisionInstance.ProcessDefinitionId, @is(nullValue()));
            assertThat(historicDecisionInstance.ProcessInstanceId, @is(nullValue()));
            assertThat(historicDecisionInstance.CaseDefinitionKey, @is(caseDefinition.Key));
            assertThat(historicDecisionInstance.CaseDefinitionId, @is(caseDefinition.Id));
            assertThat(historicDecisionInstance.CaseInstanceId, @is(caseInstance.Id));
            assertThat(historicDecisionInstance.ActivityId, @is("PI_HumanTask_1"));
            assertThat(historicDecisionInstance.ActivityInstanceId, @is(activityInstanceId));
            assertThat(historicDecisionInstance.EvaluationTime, @is(notNullValue()));
        }
예제 #13
0
        public virtual void testCaseDecisionEvaluatedWithDecisionServiceInsideDelegate()
        {
            CaseInstance caseInstance = createCaseInstanceAndEvaluateDecision();

            CaseDefinition caseDefinition = repositoryService.createCaseDefinitionQuery().caseDefinitionId(caseInstance.CaseDefinitionId).singleResult();

            string decisionDefinitionId = repositoryService.createDecisionDefinitionQuery().decisionDefinitionKey(DECISION_DEFINITION_KEY).singleResult().Id;

            string activityInstanceId = historyService.createHistoricCaseActivityInstanceQuery().caseActivityId("PI_HumanTask_1").singleResult().Id;

            HistoricDecisionInstance historicDecisionInstance = historyService.createHistoricDecisionInstanceQuery().singleResult();

            assertThat(historicDecisionInstance, @is(notNullValue()));
            assertThat(historicDecisionInstance.DecisionDefinitionId, @is(decisionDefinitionId));
            assertThat(historicDecisionInstance.DecisionDefinitionKey, @is(DECISION_DEFINITION_KEY));
            assertThat(historicDecisionInstance.DecisionDefinitionName, @is("sample decision"));

            // references to case instance should be set since the decision is evaluated while executing a case instance
            assertThat(historicDecisionInstance.ProcessDefinitionKey, @is(nullValue()));
            assertThat(historicDecisionInstance.ProcessDefinitionId, @is(nullValue()));
            assertThat(historicDecisionInstance.ProcessInstanceId, @is(nullValue()));
            assertThat(historicDecisionInstance.CaseDefinitionKey, @is(caseDefinition.Key));
            assertThat(historicDecisionInstance.CaseDefinitionId, @is(caseDefinition.Id));
            assertThat(historicDecisionInstance.CaseInstanceId, @is(caseInstance.Id));
            assertThat(historicDecisionInstance.ActivityId, @is("PI_HumanTask_1"));
            assertThat(historicDecisionInstance.ActivityInstanceId, @is(activityInstanceId));
            assertThat(historicDecisionInstance.EvaluationTime, @is(notNullValue()));
        }
예제 #14
0
        public virtual void testCaseDecisionInstanceProperties()
        {
            CaseInstance caseInstance = createCaseInstanceAndEvaluateDecision();

            CaseDefinition caseDefinition = repositoryService.createCaseDefinitionQuery().caseDefinitionId(caseInstance.CaseDefinitionId).singleResult();

            string decisionDefinitionId = repositoryService.createDecisionDefinitionQuery().decisionDefinitionKey(DECISION_DEFINITION_KEY).singleResult().Id;

            string activityInstanceId = historyService.createHistoricCaseActivityInstanceQuery().caseActivityId("PI_DecisionTask_1").singleResult().Id;

            HistoricDecisionInstance historicDecisionInstance = historyService.createHistoricDecisionInstanceQuery().singleResult();

            assertThat(historicDecisionInstance, @is(notNullValue()));
            assertThat(historicDecisionInstance.DecisionDefinitionId, @is(decisionDefinitionId));
            assertThat(historicDecisionInstance.DecisionDefinitionKey, @is(DECISION_DEFINITION_KEY));
            assertThat(historicDecisionInstance.DecisionDefinitionName, @is("sample decision"));

            assertThat(historicDecisionInstance.ProcessDefinitionKey, @is(nullValue()));
            assertThat(historicDecisionInstance.ProcessDefinitionId, @is(nullValue()));
            assertThat(historicDecisionInstance.ProcessInstanceId, @is(nullValue()));

            assertThat(historicDecisionInstance.CaseDefinitionKey, @is(caseDefinition.Key));
            assertThat(historicDecisionInstance.CaseDefinitionId, @is(caseDefinition.Id));
            assertThat(historicDecisionInstance.CaseInstanceId, @is(caseInstance.Id));

            assertThat(historicDecisionInstance.ActivityId, @is("PI_DecisionTask_1"));
            assertThat(historicDecisionInstance.ActivityInstanceId, @is(activityInstanceId));

            assertThat(historicDecisionInstance.EvaluationTime, @is(notNullValue()));
        }
예제 #15
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Deployment public void testManualActivationDisabled()
        public virtual void testManualActivationDisabled()
        {
            // given
            // a deployed case definition

            // when (1)
            string caseInstanceId = createCaseInstanceByKey(CASE_DEFINITION_KEY).Id;

            // then (1)
            CaseInstanceQuery instanceQuery = caseService.createCaseInstanceQuery().caseInstanceId(caseInstanceId);

            CaseInstance caseInstance = instanceQuery.singleResult();

            assertNotNull(caseInstance);
            assertTrue(caseInstance.Active);

            CaseExecutionQuery executionQuery = caseService.createCaseExecutionQuery();

            string humanTask2Id = executionQuery.activityId("PI_HumanTask_2").singleResult().Id;

            // when (2)
            caseService.completeCaseExecution(humanTask2Id);

            // then (2)
            caseInstance = instanceQuery.singleResult();
            assertNotNull(caseInstance);
            assertTrue(caseInstance.Completed);

            // humanTask1 and humanTask2 are not available
            assertNull(executionQuery.activityId("PI_HumanTask_1").singleResult());
            assertNull(executionQuery.activityId("PI_HumanTask_2").singleResult());
        }
예제 #16
0
        public virtual void testQueryByCaseInstanceId()
        {
            CaseInstance caseInstance = createCaseInstanceAndEvaluateDecision();

            HistoricDecisionInstanceQuery query = historyService.createHistoricDecisionInstanceQuery();

            assertThat(query.caseInstanceId(caseInstance.Id).count(), @is(1L));
        }
예제 #17
0
        public virtual void testShouldNotTriggerCompletionTwice()
        {
            // when
            CaseInstance ci = caseService.createCaseInstanceByKey("case");

            // then
            assertTrue(ci.Completed);
        }
예제 #18
0
        public virtual void testTransientDecisionResult()
        {
            // when a decision is evaluated and the result is stored in a transient variable "decisionResult"
            CaseInstance caseInstance = createTestCase("single entry");

            // then the variable should not be available outside the decision task
            assertNull(caseService.getVariable(caseInstance.Id, "decisionResult"));
        }
예제 #19
0
        public virtual void testManualStartWithLocalVariables()
        {
            // given
            string superCaseInstanceId = createCaseInstance(DEFINITION_KEY).Id;
            string caseTaskId          = queryCaseExecutionByActivityId(CASE_TASK_KEY).Id;

            CaseInstance subCaseInstance = queryCaseInstanceByKey(DEFINITION_KEY_2);

            assertNull(subCaseInstance);

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

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

            // when
            // activate child case execution
            caseService.withCaseExecution(caseTaskId).setVariablesLocal(variables).manualStart();

            // then
            subCaseInstance = queryCaseInstanceByKey(DEFINITION_KEY_2);
            assertNotNull(subCaseInstance);
            assertTrue(subCaseInstance.Active);

            CaseExecution caseTask = queryCaseExecutionByActivityId(CASE_TASK_KEY);

            assertTrue(caseTask.Active);

            // the case instance has two variables:
            // - aVariableName
            // - anotherVariableName
            IList <VariableInstance> result = runtimeService.createVariableInstanceQuery().list();

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

            foreach (VariableInstance variable in result)
            {
                assertEquals(caseTaskId, variable.CaseExecutionId);
                assertEquals(superCaseInstanceId, variable.CaseInstanceId);

                if (variable.Name.Equals("aVariableName"))
                {
                    assertEquals("aVariableName", variable.Name);
                    assertEquals("abc", variable.Value);
                }
                else if (variable.Name.Equals("anotherVariableName"))
                {
                    assertEquals("anotherVariableName", variable.Name);
                    assertEquals(999, variable.Value);
                }
                else
                {
                    fail("Unexpected variable: " + variable.Name);
                }
            }
        }
예제 #20
0
//JAVA TO C# CONVERTER WARNING: 'final' parameters are not available in .NET:
//ORIGINAL LINE: public void assertCaseEnded(final String caseInstanceId)
        public virtual void assertCaseEnded(string caseInstanceId)
        {
            CaseInstance caseInstance = processEngine.CaseService.createCaseInstanceQuery().caseInstanceId(caseInstanceId).singleResult();

            if (caseInstance != null)
            {
                throw new AssertionFailedError("Expected finished case instance '" + caseInstanceId + "' but it was still in the db");
            }
        }
예제 #21
0
        public virtual void testCollectEntriesMapping()
        {
            CaseInstance caseInstance = createTestCase("single entry list");

            IList <string> output = (IList <string>)caseService.getVariable(caseInstance.Id, "result");

            assertEquals(2, output.Count);
            assertEquals("foo", output[0]);
            assertEquals("foo", output[1]);
        }
예제 #22
0
        public virtual void testSingleResultMapping()
        {
            CaseInstance caseInstance = createTestCase("multiple entries");

            IDictionary <string, object> output = (IDictionary <string, object>)caseService.getVariable(caseInstance.Id, "result");

            assertEquals(2, output.Count);
            assertEquals("foo", output["result1"]);
            assertEquals("bar", output["result2"]);
        }
예제 #23
0
        public virtual CaseInstance caseInstance()
        {
            CaseInstance instance = caseInstanceQuery().singleResult();

            if (instance == null)
            {
                throw new Exception("There is no case instance for scenario " + BuisnessKey);
            }

            return(instance);
        }
예제 #24
0
        public virtual void testCaseInstanceProperties()
        {
            CaseInstance caseInstance = createCaseInstance();

            HistoricCaseInstance historicInstance = queryHistoricCaseInstance(caseInstance.Id);

            // assert case instance properties are set correctly
            assertEquals(caseInstance.Id, historicInstance.Id);
            assertEquals(caseInstance.BusinessKey, historicInstance.BusinessKey);
            assertEquals(caseInstance.CaseDefinitionId, historicInstance.CaseDefinitionId);
        }
예제 #25
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Deployment public void testChildListenersNotInvoked()
        public virtual void testChildListenersNotInvoked()
        {
            CaseInstance caseInstance = caseService.withCaseDefinitionByKey("case").create();

            // when i set a variable on the parent scope
            caseService.withCaseExecution(caseInstance.Id).setVariableLocal("aTaskVariable", "aTaskValue").execute();

            // then the listener is not invoked
            assertEquals(0, LogVariableListener.Invocations.Count);

            LogVariableListener.reset();
        }
예제 #26
0
        protected internal virtual void prepareInstances(int?processInstanceTimeToLive, int?decisionTimeToLive, int?caseTimeToLive)
        {
            // update time to live
            disableAuthorization();
            IList <ProcessDefinition> processDefinitions = repositoryService.createProcessDefinitionQuery().processDefinitionKey("testProcess").list();

            assertEquals(1, processDefinitions.Count);
            repositoryService.updateProcessDefinitionHistoryTimeToLive(processDefinitions[0].Id, processInstanceTimeToLive);

//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final java.util.List<org.camunda.bpm.engine.repository.DecisionDefinition> decisionDefinitions = repositoryService.createDecisionDefinitionQuery().decisionDefinitionKey("testDecision").list();
            IList <DecisionDefinition> decisionDefinitions = repositoryService.createDecisionDefinitionQuery().decisionDefinitionKey("testDecision").list();

            assertEquals(1, decisionDefinitions.Count);
            repositoryService.updateDecisionDefinitionHistoryTimeToLive(decisionDefinitions[0].Id, decisionTimeToLive);

            IList <CaseDefinition> caseDefinitions = repositoryService.createCaseDefinitionQuery().caseDefinitionKey("oneTaskCase").list();

            assertEquals(1, caseDefinitions.Count);
            repositoryService.updateCaseDefinitionHistoryTimeToLive(caseDefinitions[0].Id, caseTimeToLive);

            DateTime oldCurrentTime = ClockUtil.CurrentTime;

            ClockUtil.CurrentTime = DateUtils.addDays(oldCurrentTime, -6);

            // create 3 process instances
            IList <string> processInstanceIds      = new List <string>();
            IDictionary <string, object> variables = Variables.createVariables().putValue("pojo", new TestPojo("okay", 13.37));

            for (int i = 0; i < 3; i++)
            {
                ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("testProcess", variables);
                processInstanceIds.Add(processInstance.Id);
            }
            runtimeService.deleteProcessInstances(processInstanceIds, null, true, true);

            // +10 standalone decisions
            for (int i = 0; i < 10; i++)
            {
                decisionService.evaluateDecisionByKey("testDecision").variables(variables).evaluate();
            }

            // create 4 case instances
            for (int i = 0; i < 4; i++)
            {
                CaseInstance caseInstance = caseService.createCaseInstanceByKey("oneTaskCase", Variables.createVariables().putValue("pojo", new TestPojo("okay", 13.37 + i)));
                caseService.terminateCaseExecution(caseInstance.Id);
                caseService.closeCaseInstance(caseInstance.Id);
            }

            ClockUtil.CurrentTime = oldCurrentTime;
            enableAuthorization();
        }
예제 #27
0
        private void createCaseInstanceMock()
        {
            IList <CaseInstance> caseInstances    = new List <CaseInstance>();
            CaseInstance         mockCaseInstance = MockProvider.createMockCaseInstance();

            caseInstances.Add(mockCaseInstance);

            CaseInstanceQuery mockCaseInstanceQuery = mock(typeof(CaseInstanceQuery));

            when(mockCaseInstanceQuery.list()).thenReturn(caseInstances);
            when(mockCaseService.createCaseInstanceQuery()).thenReturn(mockCaseInstanceQuery);
        }
예제 #28
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Deployment public void testDelegateInstanceIsProcessEngineAware()
        public virtual void testDelegateInstanceIsProcessEngineAware()
        {
            CaseInstance caseInstance = caseService.withCaseDefinitionByKey("case").create();

            assertFalse(ProcessEngineAwareListener.hasFoundValidRuntimeService());

            // when i set a variable that causes the listener to be notified
            caseService.withCaseExecution(caseInstance.Id).setVariableLocal("aTaskVariable", "aTaskValue").execute();

            // then the listener is invoked and has found process engine services
            assertTrue(ProcessEngineAwareListener.hasFoundValidRuntimeService());

            ProcessEngineAwareListener.reset();
        }
예제 #29
0
        public virtual void testResultListMapping()
        {
            CaseInstance caseInstance = createTestCase("multiple entries list");

            IList <IDictionary <string, object> > resultList = (IList <IDictionary <string, object> >)caseService.getVariable(caseInstance.Id, "result");

            assertEquals(2, resultList.Count);

            foreach (IDictionary <string, object> valueMap in resultList)
            {
                assertEquals(2, valueMap.Count);
                assertEquals("foo", valueMap["result1"]);
                assertEquals("bar", valueMap["result2"]);
            }
        }
예제 #30
0
        public virtual void testAutoCompletionOfEmptyCase()
        {
            // given:
            // a deployed case definition
            string caseDefinitionId = repositoryService.createCaseDefinitionQuery().singleResult().Id;

            // when
            caseService.withCaseDefinition(caseDefinitionId).create();

            // then
            CaseInstance caseInstance = caseService.createCaseInstanceQuery().completed().singleResult();

            assertNotNull(caseInstance);
            assertTrue(caseInstance.Completed);
        }