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); }
public void StartSysTaskProcessWithBranchesAndMoveToCompleteTest() { SysTaskAdapter.Instance.ClearAll(); SysTaskProcess process = PrepareSysTaskProcessWithBranchData(() => PrepareInvokeServiceTask()); SysTaskProcessRuntime.StartProcess(process); SysTaskCommon.ExecuteAllTasks(); SysTaskProcessRuntime.ClearCache(); process = SysTaskProcessRuntime.GetProcessByID(process.ID); Assert.AreEqual(SysTaskProcessStatus.Completed, process.Status); }
public void DispatchStartBranchProcessTaskTest() { IWfProcessDescriptor processDesp = CreateProcessWithAutoMaintainProperty(); IWfProcess process = WfProcessTestCommon.StartupProcess(processDesp); MoveToExecutor(process); process = WfRuntime.GetProcessByProcessID(process.ID); IWfActivity ownerActivity = process.CurrentActivity; Console.WriteLine("OwnerActivityID: {0}", ownerActivity.ID); //在Template设置资源为一个组织,用于后续分发分支流程的测试 IWfBranchProcessTemplateDescriptor template = ownerActivity.Descriptor.BranchProcessTemplates[0]; IUser userInTemplate = template.Resources.ToUsers().FirstOrDefault(); WfDepartmentResourceDescriptor deptResourceDesp = new WfDepartmentResourceDescriptor(userInTemplate.Parent); template.Resources.Clear(); template.Resources.Add(deptResourceDesp); SysTaskAdapter.Instance.ClearAll(); SysTaskCommon.ExecuteAndAssertTask(DispatchStartBranchProcessTask.SendTask(ownerActivity.ID, template, true)); WfRuntime.ClearCache(); process = WfRuntime.GetProcessByProcessID(process.ID); int startedTaskCount = (int)WfServiceInvoker.InvokeContext["returnValue"]; Console.WriteLine("Started Branch Task Count: {0}", startedTaskCount); Assert.IsTrue(startedTaskCount > 0); int executedTaskCount = SysTaskCommon.ExecuteAllTasks(); Assert.AreEqual(startedTaskCount, executedTaskCount); WfRuntime.ClearCache(); process = WfRuntime.GetProcessByProcessID(process.ID); Assert.AreEqual(WfProcessStatus.Running, process.Status); Assert.IsTrue(process.CurrentActivity.BranchProcessGroups.Count > 0); Assert.AreEqual(startedTaskCount - 1, process.CurrentActivity.BranchProcessGroups[0].Branches.Count); }
public void StartSysTaskProcessTest() { SysTaskAdapter.Instance.ClearAll(); SysTaskProcess process = PrepareSysTaskProcessData(() => PrepareInvokeServiceTask()); SysTaskProcessRuntime.StartProcess(process); DO.SysTask moveToTask = SysTaskAdapter.Instance.LoadByResourceID(process.Activities[0].ID).FirstOrDefault(); Assert.IsNotNull(moveToTask); SysTaskCommon.ExecuteAndAssertTask(moveToTask); SysTaskProcessRuntime.ClearCache(); process = SysTaskProcessRuntime.GetProcessByID(process.ID); Assert.AreEqual(1, process.CurrentActivityIndex); }
public void DispatchCancelNoBranchProcessTaskTest() { IWfProcessDescriptor processDesp = WfProcessTestCommon.CreateSimpleProcessDescriptor(); 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); }