public virtual void testSubProcessVariableValue() { //given process with intermediate conditional event and variable with wrong value IDictionary <string, object> variables = ESS.FW.Bpm.Engine.Variable.Variables.CreateVariables(); variables[VariableName] = 0; IProcessInstance procInst = RuntimeService.StartProcessInstanceByKey(ConditionalEventProcessKey, variables); IExecution execution = RuntimeService.CreateExecutionQuery(c => c.ProcessInstanceId == procInst.Id && c.ActivityId == ConditionalEvent).First(); Assert.NotNull(execution); //when variable is set to correct value RuntimeService.SetVariableLocal(execution.Id, VariableName, 1); //then execution and process instance is ended, since condition was true execution = RuntimeService.CreateExecutionQuery(c => c.ProcessInstanceId == procInst.Id && c.ActivityId == ConditionalEvent).First(); Assert.IsNull(execution); procInst = RuntimeService.CreateProcessInstanceQuery(c => c.ProcessDefinitionId == ConditionalEventProcessKey).First(); Assert.IsNull(procInst); }