public virtual void testIfPartEvaluatesDecision()
        {
            ICaseInstance caseInstance = caseService.WithCaseDefinitionByKey("case").SetVariable("input1", null).SetVariable("myBean", new DecisionServiceDelegate()).Create();

            string humanTask1 = caseService.CreateCaseExecutionQuery(c => c.ActivityId == "PI_HumanTask_1").First().Id;

            caseService.CompleteCaseExecution(humanTask1);

            //ICaseDefinition caseDefinition = repositoryService.CreateCaseDefinitionQuery(c=>c.CaseDefinitionId== caseInstance.CaseDefinitionId).First();

            //string decisionDefinitionId = repositoryService.CreateDecisionDefinitionQuery(c=>c.Key== DECISION_DEFINITION_KEY).First().Id;

            //string activityInstanceId = historyService.CreateHistoricCaseActivityInstanceQuery(c=>c.CaseActivityId== "PI_HumanTask_1").First().Id;

            //IHistoricDecisionInstance historicDecisionInstance = historyService.CreateHistoricDecisionInstanceQuery().First();

            ////Assert.That(historicDecisionInstance, Is.Not.Null);
            //Assert.That(historicDecisionInstance.DecisionDefinitionId, Is.EqualTo(decisionDefinitionId));
            //Assert.That(historicDecisionInstance.DecisionDefinitionKey, Is.EqualTo(DECISION_DEFINITION_KEY));
            //Assert.That(historicDecisionInstance.DecisionDefinitionName, Is.EqualTo("sample decision"));

            //// references to case instance should be set since the decision is evaluated while executing a case instance
            //Assert.That(historicDecisionInstance.ProcessDefinitionKey, Is.EqualTo(null));
            //Assert.That(historicDecisionInstance.ProcessDefinitionId, Is.EqualTo(null));
            //Assert.That(historicDecisionInstance.ProcessInstanceId, Is.EqualTo(null));
            //Assert.That(historicDecisionInstance.CaseDefinitionKey, Is.EqualTo(caseDefinition.Key));
            //Assert.That(historicDecisionInstance.CaseDefinitionId, Is.EqualTo(caseDefinition.Id));
            //Assert.That(historicDecisionInstance.CaseInstanceId, Is.EqualTo(caseInstance.Id));
            //Assert.That(historicDecisionInstance.ActivityId, Is.EqualTo("PI_HumanTask_1"));
            //Assert.That(historicDecisionInstance.ActivityInstanceId, Is.EqualTo(activityInstanceId));
            //Assert.That(historicDecisionInstance.EvaluationTime, Is.Not.Null);
        }
        public virtual void testCaseDecisionInstanceProperties()
        {
            ICaseInstance caseInstance = createCaseInstanceAndEvaluateDecision();

            //ICaseDefinition caseDefinition = repositoryService.CreateCaseDefinitionQuery(c=>c.CaseDefinitionId== caseInstance.CaseDefinitionId).First();

            //string decisionDefinitionId = repositoryService.CreateDecisionDefinitionQuery(c=>c.Key== DECISION_DEFINITION_KEY).First().Id;

            //string activityInstanceId = historyService.CreateHistoricCaseActivityInstanceQuery(c=>c.CaseActivityId== "PI_DecisionTask_1").First().Id;

            //IHistoricDecisionInstance historicDecisionInstance = historyService.CreateHistoricDecisionInstanceQuery().First();

            //          Assert.That(historicDecisionInstance, Is.Not.Null);
            //          Assert.That(historicDecisionInstance.DecisionDefinitionId, Is.EqualTo(decisionDefinitionId));
            //Assert.That(historicDecisionInstance.DecisionDefinitionKey, Is.EqualTo(DECISION_DEFINITION_KEY));
            //Assert.That(historicDecisionInstance.DecisionDefinitionName, Is.EqualTo("sample decision"));

            //Assert.That(historicDecisionInstance.ProcessDefinitionKey, Is.EqualTo(null));
            //Assert.That(historicDecisionInstance.ProcessDefinitionId, Is.EqualTo(null));
            //Assert.That(historicDecisionInstance.ProcessInstanceId, Is.EqualTo(null));

            //Assert.That(historicDecisionInstance.CaseDefinitionKey, Is.EqualTo(caseDefinition.Key));
            //Assert.That(historicDecisionInstance.CaseDefinitionId, Is.EqualTo(caseDefinition.Id));
            //Assert.That(historicDecisionInstance.CaseInstanceId, Is.EqualTo(caseInstance.Id));

            //Assert.That(historicDecisionInstance.ActivityId, Is.EqualTo("PI_DecisionTask_1"));
            //Assert.That(historicDecisionInstance.ActivityInstanceId, Is.EqualTo(activityInstanceId));

            //          Assert.That(historicDecisionInstance.EvaluationTime, Is.Not.Null);
        }
        public virtual void testCaseDecisionEvaluatedWithDecisionServiceInsideDelegate()
        {
            ICaseInstance caseInstance = createCaseInstanceAndEvaluateDecision();

            //ICaseDefinition caseDefinition = repositoryService.CreateCaseDefinitionQuery(c=>c.CaseDefinitionId== caseInstance.CaseDefinitionId).First();

            //string decisionDefinitionId = repositoryService.CreateDecisionDefinitionQuery(c=>c.Key== DECISION_DEFINITION_KEY).First().Id;

            string activityInstanceId = historyService.CreateHistoricCaseActivityInstanceQuery(c => c.CaseActivityId == "PI_HumanTask_1").First().Id;

            IHistoricDecisionInstance historicDecisionInstance = historyService.CreateHistoricDecisionInstanceQuery().First();

            //Assert.That(historicDecisionInstance, Is.Not.Null);
            //Assert.That(historicDecisionInstance.DecisionDefinitionId, Is.EqualTo(decisionDefinitionId));
            //Assert.That(historicDecisionInstance.DecisionDefinitionKey, Is.EqualTo(DECISION_DEFINITION_KEY));
            //Assert.That(historicDecisionInstance.DecisionDefinitionName, Is.EqualTo("sample decision"));

            //// references to case instance should be set since the decision is evaluated while executing a case instance
            //Assert.That(historicDecisionInstance.ProcessDefinitionKey, Is.EqualTo(null));
            //Assert.That(historicDecisionInstance.ProcessDefinitionId, Is.EqualTo(null));
            //Assert.That(historicDecisionInstance.ProcessInstanceId, Is.EqualTo(null));
            //Assert.That(historicDecisionInstance.CaseDefinitionKey, Is.EqualTo(caseDefinition.Key));
            //Assert.That(historicDecisionInstance.CaseDefinitionId, Is.EqualTo(caseDefinition.Id));
            //Assert.That(historicDecisionInstance.CaseInstanceId, Is.EqualTo(caseInstance.Id));
            //Assert.That(historicDecisionInstance.ActivityId, Is.EqualTo("PI_HumanTask_1"));
            //Assert.That(historicDecisionInstance.ActivityInstanceId, Is.EqualTo(activityInstanceId));
            //Assert.That(historicDecisionInstance.EvaluationTime, Is.Not.Null);
        }