コード例 #1
0
        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);
        }
コード例 #2
0
        public SysTaskProcess Build()
        {
            SysTaskProcess sysTaskProcess = CreateProcessInstance();

            SysTaskProcessRuntime.ProcessContext.AffectedProcesses.AddOrReplace(sysTaskProcess);

            this.AfterCreateProcessInstance(sysTaskProcess);

            SysTaskProcessRuntime.Persist();

            sysTaskProcess = SysTaskProcessRuntime.GetProcessByID(sysTaskProcess.ID);

            return(sysTaskProcess);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        public void CreateSysTaskProcessAndPersist()
        {
            SysTaskAdapter.Instance.ClearAll();

            SysTaskProcess process = PrepareSysTaskProcessData(() => PrepareInvokeServiceTask());

            SysTaskProcessRuntime.ProcessContext.AffectedProcesses.AddOrReplace(process);
            SysTaskProcessRuntime.Persist();

            SysTaskProcess loadedProcess = SysTaskProcessRuntime.GetProcessByID(process.ID);

            Assert.AreNotEqual(process, loadedProcess);
            Assert.AreEqual(process.ID, loadedProcess.ID);
            Assert.AreEqual(process.Activities.Count, loadedProcess.Activities.Count);

            Assert.AreEqual(process.Activities[0].Sequence, loadedProcess.Activities[0].Sequence);
            Assert.AreEqual(process.Activities[1].Sequence, loadedProcess.Activities[1].Sequence);

            Assert.AreEqual(process.Activities[0].Task.TaskID, loadedProcess.Activities[0].Task.TaskID);
        }
コード例 #5
0
        public void BuildStartBranchProcessTaskProcessTest()
        {
            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();

            StartBranchProcessSysTaskProcessBuilder builder = new StartBranchProcessSysTaskProcessBuilder(ownerActivity.ID, template, true);

            SysTaskProcess sysTaskProcess = builder.Build();

            SysTaskProcessRuntime.ClearCache();

            sysTaskProcess = SysTaskProcessRuntime.GetProcessByID(sysTaskProcess.ID);

            Console.WriteLine("SysTaskProcess ID: {0}", sysTaskProcess.ID);
            Console.WriteLine("SysTaskProcess Activities: {0}", sysTaskProcess.Activities.Count);

            Assert.AreEqual(template.Resources.ToUsers().Count + 1, sysTaskProcess.Activities.Count);
        }