public virtual void testCatchErrorThrownBySignalOfDelegateExpression() { IVariableMap variables = ESS.FW.Bpm.Engine.Variable.Variables.CreateVariables().PutValue("myDelegate", new ThrowErrorDelegate()); string pi = runtimeService.StartProcessInstanceByKey("testProcess", variables).Id; Assert.True((bool)runtimeService.GetVariable(pi, "executed")); Assert.IsNull(runtimeService.GetVariable(pi, "signaled")); IExecution serviceTask = runtimeService.CreateExecutionQuery(c => c.ProcessInstanceId == pi && c.ActivityId == "serviceTask").First(); Assert.NotNull(serviceTask); runtimeService.SetVariables(pi, ThrowErrorDelegate.throwError()); runtimeService.Signal(serviceTask.Id); Assert.True((bool)runtimeService.GetVariable(pi, "executed")); Assert.True((bool)runtimeService.GetVariable(pi, "signaled")); ITask userTask = taskService.CreateTaskQuery(c => c.ProcessInstanceId == pi).First(); Assert.NotNull(userTask); Assert.AreEqual("userTaskError", userTask.TaskDefinitionKey); taskService.Complete(userTask.Id); }
public virtual void testCatchExceptionThrownByExecuteOfAbstractBpmnActivityBehavior() { string pi = runtimeService.StartProcessInstanceByKey("testProcess", ThrowErrorDelegate.throwException()).Id; Assert.True((bool)runtimeService.GetVariable(pi, "executed")); Assert.IsNull(runtimeService.GetVariable(pi, "signaled")); ITask userTask = taskService.CreateTaskQuery(c => c.ProcessInstanceId == pi).First(); Assert.NotNull(userTask); Assert.AreEqual("userTaskException", userTask.TaskDefinitionKey); taskService.Complete(userTask.Id); }
public virtual void testCatchExceptionExpressionThrownByFollowUpScopeTask() { try { IDictionary <string, object> vars = ThrowErrorDelegate.throwException(); var id = runtimeService.StartProcessInstanceByKey("testProcess", vars).Id; Assert.Fail("should Assert.Fail and not catch the error on the first task"); } catch (ProcessEngineException) { // happy path } Assert.IsNull(taskService.CreateTaskQuery().First()); }
public virtual void testCatchExceptionThrownByExecuteOfDelegateExpression() { IVariableMap variables = ESS.FW.Bpm.Engine.Variable.Variables.CreateVariables().PutValue("myDelegate", new ThrowErrorDelegate()); variables.PutAll(ThrowErrorDelegate.throwException() as IDictionary <string, ITypedValue>); string pi = runtimeService.StartProcessInstanceByKey("testProcess", variables).Id; Assert.True((bool)runtimeService.GetVariable(pi, "executed")); Assert.IsNull(runtimeService.GetVariable(pi, "signaled")); ITask userTask = taskService.CreateTaskQuery(c => c.ProcessInstanceId == pi).First(); Assert.NotNull(userTask); Assert.AreEqual("userTaskException", userTask.TaskDefinitionKey); taskService.Complete(userTask.Id); }