public void ProcessTaskAccomplishedOfResourceTest() { IUser user = (IUser)OguObjectSettings.GetConfig().Objects["approver1"].Object; IWfProcess process = WfProcessTestCommon.StartupProcessWithAssignee(); ((WfProcess)process).ResourceID = UuidHelper.NewUuidString(); IWfActivityDescriptor actDesp = process.CurrentActivity.Descriptor.ToTransitions[0].ToActivity; WfTransferParams tp = new WfTransferParams(actDesp); tp.Assignees.Add(user); process.MoveTo(tp); //设置 同一人 WfRuntime.PersistWorkflows(); process = WfRuntime.GetProcessByProcessID(process.ID); actDesp = process.CurrentActivity.Descriptor.ToTransitions[0].ToActivity; tp = ProcessTestHelper.GetInstanceOfWfTransferParams(actDesp, OguObject.approver2); process.MoveTo(tp); WfRuntime.PersistWorkflows(); process = WfRuntime.GetProcessByProcessID(process.ID); actDesp = process.CurrentActivity.Descriptor.ToTransitions[0].ToActivity; tp = new WfTransferParams(actDesp); tp.Assignees.Add(user); //设置 同一人 WfRuntime.PersistWorkflows(); process = WfRuntime.GetProcessByProcessID(process.ID); actDesp = process.CurrentActivity.Descriptor.ToTransitions[0].ToActivity; tp = ProcessTestHelper.GetInstanceOfWfTransferParams(actDesp, OguObject.approver2); process.MoveTo(tp); WfRuntime.PersistWorkflows(); process = WfRuntime.GetProcessByProcessID(process.ID); Assert.AreEqual(1, ProcessTestHelper.GetResourceUserTasksAccomplished(process.ResourceID, user.ID), "如果ResourceID相同,且流转过同一个人两次,他只会剩下一个已办"); }