Exemple #1
0
        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相同,且流转过同一个人两次,他只会剩下一个已办");
        }