public void ParallelBranchActivitySecretaryTest() { IWfProcessDescriptor processDesp = WfProcessTestCommon.CreateSimpleProcessDescriptorWithBranchTemplate(); IWfBranchProcessTemplateDescriptor template = processDesp.Activities["NormalActivity"].BranchProcessTemplates["Consign"]; template.Resources.Clear(); template.Resources.Add(new WfUserResourceDescriptor((IUser)OguObjectSettings.GetConfig().Objects["ceo"].Object)); IWfProcess process = WfProcessTestCommon.StartupProcess(processDesp); WfProcessTestCommon.MoveToNextDefaultActivity(process); IWfProcess consignBranchProcess = process.Activities.FindActivityByDescriptorKey("NormalActivity").BranchProcessGroups["Consign"].Branches.FirstOrDefault(); IWfProcess distributeBranchProcess = process.Activities.FindActivityByDescriptorKey("NormalActivity").BranchProcessGroups["Distribute"].Branches.FirstOrDefault(); Console.WriteLine("Consign Process"); OutputProcessCandidates(consignBranchProcess); ReturnExecutorTestHelper.OutputMainStream(consignBranchProcess); Console.WriteLine(""); Console.WriteLine("Distribute Process"); OutputProcessCandidates(distributeBranchProcess); ReturnExecutorTestHelper.OutputMainStream(distributeBranchProcess); Assert.AreEqual(4, consignBranchProcess.Activities.Count); Assert.AreEqual(2, distributeBranchProcess.Activities.Count); Assert.AreEqual(4, consignBranchProcess.MainStream.Activities.Count); Assert.AreEqual(2, distributeBranchProcess.MainStream.Activities.Count); }
public void DispatchWithdrawProcessTaskTest() { IWfProcessDescriptor processDesp = WfProcessTestCommon.CreateSimpleProcessDescriptorWithBranchTemplate(); IWfProcess process = WfProcessTestCommon.StartupProcess(processDesp); MoveToExecutor(process); SysTaskAdapter.Instance.ClearAll(); DispatchWithdrawProcessTask withdrawTask = DispatchWithdrawProcessTask.SendTask(string.Empty, process.ID, true); //直接发布一个撤回的任务流程 SysTaskCommon.ExecuteAndAssertTask(withdrawTask); int executedTaskCount = SysTaskCommon.ExecuteAllTasks(); WfRuntime.ClearCache(); process = WfRuntime.GetProcessByProcessID(process.ID); Assert.AreEqual(WfProcessStatus.Running, process.Status); Assert.AreEqual(WfActivityType.InitialActivity, process.CurrentActivity.Descriptor.ActivityType); AssertAllBranchesStatus(WfProcessStatus.Aborted, process); }
/// <summary> /// 构造设置了自动进入到维护状态的流程 /// </summary> /// <returns></returns> private static IWfProcessDescriptor CreateProcessWithAutoMaintainProperty() { IWfProcessDescriptor processDesp = WfProcessTestCommon.CreateSimpleProcessDescriptorWithBranchTemplate(); processDesp.Activities["NormalActivity"].Properties.SetValue("AutoMaintain", true); return(processDesp); }
public void BranchProcessSimulation() { IWfProcessDescriptor processDesp = WfProcessTestCommon.CreateSimpleProcessDescriptorWithBranchTemplate(); WfSimulationParameters simulationParameters = new WfSimulationParameters(); WfSimulationResult result = WfSimulator.StartSimulation(processDesp, new WfSimulationParameters()); Console.WriteLine(WfRuntime.ProcessContext.SimulationContext.GetOutputString()); while (result.ProcessStatus != WfProcessStatus.Completed) { result = WfSimulator.MoveToSimulation(result.ProcessID, simulationParameters); Console.WriteLine(WfRuntime.ProcessContext.SimulationContext.GetOutputString()); } }
public void AllApprovalProcessScheduleRootTest() { IWfProcessDescriptor processDesp = WfProcessTestCommon.CreateSimpleProcessDescriptorWithBranchTemplate(); IWfProcess process = WfProcessTestCommon.StartupProcess(processDesp); IWfActivityDescriptor normalActivity = processDesp.InitialActivity.ToTransitions[0].ToActivity; WfTransferParams transferParams0 = new WfTransferParams(normalActivity); //初始化后,流转到有分支流程的活动 process.MoveTo(transferParams0); Assert.AreEqual(process.ID, normalActivity.Instance.BranchProcessGroups[0].Branches[0].ScheduleRootProcess.ID); Assert.AreEqual(normalActivity.Instance.ID, normalActivity.Instance.BranchProcessGroups[0].Branches[0].InitialActivity.ScheduleRootActivity.ID); }
public void DispatchCancelProcessTaskTest() { IWfProcessDescriptor processDesp = WfProcessTestCommon.CreateSimpleProcessDescriptorWithBranchTemplate(); IWfProcess process = WfProcessTestCommon.StartupProcess(processDesp); MoveToExecutor(process); SysTaskAdapter.Instance.ClearAll(); DispatchCancelProcessTask cancelTask = DispatchCancelProcessTask.SendTask(string.Empty, process.ID, true); //直接发布一个作废的任务流程 SysTaskCommon.ExecuteAndAssertTask(cancelTask); int executedTaskCount = SysTaskCommon.ExecuteAllTasks(); WfRuntime.ClearCache(); process = WfRuntime.GetProcessByProcessID(process.ID); AssertProcessAndAllBranchesStatus(WfProcessStatus.Aborted, process); }
public void TwoScheduleProcessRootTest() { IWfProcessDescriptor processDesp = WfProcessTestCommon.CreateSimpleProcessDescriptorWithBranchTemplate(); ((WfProcessDescriptor)processDesp).ProcessType = WfProcessType.Schedule; IWfProcess process = WfProcessTestCommon.StartupProcess(processDesp); IWfActivityDescriptor normalActivity = processDesp.InitialActivity.ToTransitions[0].ToActivity; WfTransferParams transferParams0 = new WfTransferParams(normalActivity); //初始化后,流转到有分支流程的活动 process.MoveTo(transferParams0); normalActivity.Instance.BranchProcessGroups.ForEach(g => g.Branches.ForEach(p => ((WfProcessDescriptor)p.Descriptor).ProcessType = WfProcessType.Schedule)); Assert.AreEqual(normalActivity.Instance.BranchProcessGroups[0].Branches[0].ID, normalActivity.Instance.BranchProcessGroups[0].Branches[0].ScheduleRootProcess.ID); Assert.AreEqual(normalActivity.Instance.BranchProcessGroups[0].Branches[0].InitialActivity.ID, normalActivity.Instance.BranchProcessGroups[0].Branches[0].InitialActivity.ScheduleRootActivity.ID); }
public void BuildCancelProcessTaskProcessTest() { IWfProcessDescriptor processDesp = WfProcessTestCommon.CreateSimpleProcessDescriptorWithBranchTemplate(); IWfProcess process = WfProcessTestCommon.StartupProcess(processDesp); MoveToExecutor(process); process = WfRuntime.GetProcessByProcessID(process.ID); IWfActivity ownerActivity = process.CurrentActivity; process.EntrtMaintainingStatus(); WfRuntime.PersistWorkflows(); DispatchCancelProcessSysTaskProcessBuilder builder = new DispatchCancelProcessSysTaskProcessBuilder(process.ID, true); SysTaskProcess sysTaskProcess = builder.Build(); Console.WriteLine(sysTaskProcess.Activities.Count); Assert.AreEqual(3, sysTaskProcess.Activities.Count); }