public void BranchProcessStartTest() { IWfProcess process = WfProcessTestCommon.StartupSimpleProcessWithAssignee(); WfTransferParams tp = ProcessTestHelper.GetInstanceOfWfTransferParams(process, WfBranchProcessExecuteSequence.Parallel, WfBranchProcessBlockingType.WaitAllBranchProcessesComplete); process.MoveTo(tp); Assert.AreEqual(1, process.CurrentActivity.BranchProcessGroups.Count); IWfBranchProcessGroup group = process.CurrentActivity.BranchProcessGroups[0]; Assert.AreEqual(tp.BranchTransferParams[0].Template.BranchProcessKey, group.ProcessTemplate.BranchProcessKey); Assert.AreEqual(2, group.Branches.Count); Assert.AreEqual(tp.BranchTransferParams[0].Template.BranchProcessKey, group.Branches[0].Descriptor.Key); Assert.AreEqual(tp.BranchTransferParams[0].Template.BranchProcessKey, group.Branches[1].Descriptor.Key); Assert.AreEqual(WfProcessStatus.Running, group.Branches[0].Status); Assert.AreEqual(WfProcessStatus.Running, group.Branches[1].Status); Assert.AreEqual(OguObjectSettings.GetConfig().Objects["approver1"].Object.ID, group.Branches[0].InitialActivity.Assignees[0].User.ID); Assert.AreEqual(OguObjectSettings.GetConfig().Objects["approver2"].Object.ID, group.Branches[1].InitialActivity.Assignees[0].User.ID); }
public void BranchProcessRunTimeTest() { IWfProcess process = WfProcessTestCommon.StartupSimpleProcessWithAssignee(); IWfActivityDescriptor nextActivityDesp = process.CurrentActivity.Descriptor.ToTransitions[0].ToActivity; WfTransferParams tp = ProcessTestHelper.GetInstanceOfWfTransferParams(nextActivityDesp, OguObject.requestor); tp.BranchTransferParams.Add(new WfBranchProcessTransferParams( ProcessTestHelper.CreateConsignTemplate(WfBranchProcessExecuteSequence.Parallel, WfBranchProcessBlockingType.WaitAllBranchProcessesComplete))); for (int i = 0; i < 20; i++) { IUser obj = (IUser)OguObjectSettings.GetConfig().Objects["approver1"].Object; IUser obj2 = (IUser)OguObjectSettings.GetConfig().Objects["approver2"].Object; tp.BranchTransferParams[0].BranchParams.Add(obj, obj2); } int branchProcessNum = tp.BranchTransferParams[0].BranchParams.Count; ProcessTestHelper.OutputExecutionTime(() => process.MoveTo(tp), "流转并启动子流程"); ProcessTestHelper.OutputExecutionTime(() => WfRuntime.PersistWorkflows(), "保存流程状态"); ProcessTestHelper.OutputExecutionTime(() => WfRuntime.GetProcessByProcessID(process.ID), "重新加载主流程"); }