public void FaultBookmark_Parallel_Children() { _process = this.CreateProcess(ParallelWorkflowParser.GetActivitySettings()); TestHelper.SetProcessId(_process, Guid.NewGuid()); var instance = WorkflowBuilder.CreateInstance(_process, new ParallelWorkflowParser()); instance.Run(); Thread.Sleep(1000); //人工节点出错,子流程节点正常 this.AssertWorkflowInstance(instance, 2, 1); //子流程结束后完成子流程节点 instance.ResumeBookmark(instance.GetBookmarks()[1].Name, null); Thread.Sleep(1000); //子流程也发生了错误 this.AssertWorkflowInstance(instance, 2, 2); //修复子流程 ParallelWorkflowParser.SubProcess.FinishRule["error"] = "true"; instance.ResumeBookmark(instance.GetBookmarks()[1].Name, null); Thread.Sleep(1000); this.AssertWorkflowInstance(instance, 1, 2); //修复人工节点 (ParallelWorkflowParser.Human.Helper as GetUsers).Scripts[0] = "originator"; instance.ResumeBookmark(instance.GetBookmarks()[0].Name, null); Thread.Sleep(1000); //仅存在一个人工活动书签 this.AssertWorkflowInstance(instance, 1, 2); }
public void FaultParallel() { _process = this.CreateProcess(ParallelWorkflowParser.GetActivitySettings()); TestHelper.SetProcessId(_process, Guid.NewGuid()); var instance = WorkflowBuilder.CreateInstance(_process, new ParallelWorkflowParser(true)); instance.Run(); Thread.Sleep(1000); //完成子流程触发并行子活动完成回调 instance.ResumeBookmark(instance.GetBookmarks()[1].Name, null); Thread.Sleep(1000); //工作流中止异常 Assert.IsNotNull(instance.AbortedException); Assert.AreEqual(ProcessStatus.Error, _process.Status); }