public void ReplaceAssigneeExecutorTestReplay() { IWfProcessDescriptor processDesp = WfProcessTestCommon.CreateSimpleProcessDescriptor(); IWfActivityDescriptor normalActDesp = processDesp.Activities["NormalActivity"]; IUser originalApprover = (IUser)OguObjectSettings.GetConfig().Objects[OguObject.approver1.ToString()].Object; normalActDesp.Resources.Clear(); normalActDesp.Resources.Add(new WfUserResourceDescriptor(originalApprover)); IWfProcess process = WfProcessTestCommon.StartupProcess(processDesp); WfProcessTestCommon.MoveToNextDefaultActivityWithExecutor(process); process = WfRuntime.GetProcessByProcessID(process.ID); IUser newApprover = (IUser)OguObjectSettings.GetConfig().Objects[OguObject.approver2.ToString()].Object; WfReplaceAssigneesExecutor executor = new WfReplaceAssigneesExecutor(process.CurrentActivity, process.CurrentActivity, originalApprover, new IUser[] { newApprover }); executor.Execute(); process = WfRuntime.GetProcessByProcessID(process.ID); UserTaskCollection tasks = UserTaskAdapter.Instance.LoadUserTasks(build => build.AppendItem("ACTIVITY_ID", process.CurrentActivity.ID)); Assert.AreEqual(1, tasks.Count); Assert.AreEqual(newApprover.ID, tasks[0].SendToUserID); }
public void ActivitySerializeTest() { IWfProcessDescriptor processDesc = WfProcessTestCommon.CreateSimpleProcessDescriptor(); WfProcessStartupParams startupParams = new WfProcessStartupParams(); startupParams.ProcessDescriptor = processDesc; IWfProcess process = WfRuntime.StartWorkflow(startupParams); Sky sky = new Sky(); sky.air = "清新"; sky.Cloud = 1; Sky space = new Sky(); space.air = "干净"; space.Cloud = 1; process.InitialActivity.Context.Add("DDO", sky); process.InitialActivity.Context.Add("DFO", space); XElementFormatter formatter = new XElementFormatter(); XElement root = formatter.Serialize(process); Console.WriteLine(root.ToString()); IWfProcess clonedProcess = (IWfProcess)formatter.Deserialize(root); Assert.IsNotNull(clonedProcess.InitialActivity.Context["DDO"]); Assert.AreEqual(process.InitialActivity.Context.Count, clonedProcess.InitialActivity.Context.Count); Assert.AreEqual(((Sky)process.InitialActivity.Context["DDO"]).air, ((Sky)clonedProcess.InitialActivity.Context["DDO"]).air); Assert.AreEqual(((Sky)process.InitialActivity.Context["DDO"]).Cloud, ((Sky)clonedProcess.InitialActivity.Context["DDO"]).Cloud); Assert.AreEqual(((Sky)process.InitialActivity.Context["DFO"]).air, ((Sky)clonedProcess.InitialActivity.Context["DFO"]).air); Assert.AreEqual(((Sky)process.InitialActivity.Context["DFO"]).Cloud, ((Sky)clonedProcess.InitialActivity.Context["DFO"]).Cloud); }
public void WfExternalUserTest() { WfExternalUser externalUser = new WfExternalUser(); externalUser.Key = "user0"; externalUser.Name = "zLing"; externalUser.Gender = Gender.Female; externalUser.Email = "*****@*****.**"; externalUser.MobilePhone = "13552630000"; externalUser.Phone = "0409987"; externalUser.Title = "programer"; IWfProcessDescriptor processDesc = WfProcessTestCommon.CreateSimpleProcessDescriptor(); processDesc.ExternalUsers.Add(externalUser); WfProcessStartupParams startupParams = new WfProcessStartupParams(); startupParams.ProcessDescriptor = processDesc; IWfProcess process = WfRuntime.StartWorkflow(startupParams); XElementFormatter formatter = new XElementFormatter(); XElement rootProc = formatter.Serialize(process); IWfProcess clonedProcess = (IWfProcess)formatter.Deserialize(rootProc); XElement resultProc = formatter.Serialize(clonedProcess); Assert.AreEqual(processDesc.ExternalUsers[0].Name, clonedProcess.Descriptor.ExternalUsers[0].Name); Assert.AreEqual(processDesc.ExternalUsers[0].Gender, clonedProcess.Descriptor.ExternalUsers[0].Gender); Assert.AreEqual(rootProc.ToString(), resultProc.ToString()); }
public void ProcessSerializeTest() { IWfProcessDescriptor processDesc = WfProcessTestCommon.CreateSimpleProcessDescriptor(); WfProcessStartupParams startupParams = new WfProcessStartupParams(); startupParams.ProcessDescriptor = processDesc; IWfProcess process = WfRuntime.StartWorkflow(startupParams); ((WfProcess)process).ResourceID = UuidHelper.NewUuidString(); WfProcessContext context = process.Context; context.Add("UCC", "the same"); XElementFormatter formatter = new XElementFormatter(); //formatter.OutputShortType = false; XElement root = formatter.Serialize(process); Console.WriteLine(root.ToString()); IWfProcess clonedProcess = (IWfProcess)formatter.Deserialize(root); Assert.IsNotNull(clonedProcess.Context["UCC"]); Assert.AreEqual(process.Context.Count, clonedProcess.Context.Count); Assert.AreEqual(process.Context["UCC"], clonedProcess.Context["UCC"]); }
public static IWfProcess StartupSimpleProcess() { ProcessContextAction(); IWfProcessDescriptor processDesp = WfProcessTestCommon.CreateSimpleProcessDescriptor(); WfProcessStartupParams startupParams = new WfProcessStartupParams(); startupParams.ResourceID = UuidHelper.NewUuidString(); startupParams.ProcessDescriptor = processDesp; return(WfRuntime.StartWorkflow(startupParams)); }
public void NormalActivityAutoMoveTest() { IWfProcessDescriptor processDesp = WfProcessTestCommon.CreateSimpleProcessDescriptor(); processDesp.Activities["NormalActivity"].Properties.SetValue("AutoMoveTo", true); IWfProcess process = WfProcessTestCommon.StartupProcess(processDesp); IWfActivity currentActivity = process.MoveToNextDefaultActivity(); Console.WriteLine(currentActivity.Descriptor.ActivityType); Assert.AreEqual(WfActivityType.CompletedActivity, currentActivity.Descriptor.ActivityType); }
public static IWfProcessDescriptor GetDynamicProcessDesp() { IWfProcessDescriptor processDesp = WfProcessTestCommon.CreateSimpleProcessDescriptor(); IWfActivityDescriptor normalActDesp = processDesp.Activities["NormalActivity"]; normalActDesp.Properties.SetValue("IsDynamic", true); WfActivityMatrixResourceDescriptor resource = PrepareActivityMatrixResourceDescriptor(); normalActDesp.Resources.Add(resource); return(processDesp); }
public static IWfProcess StartupSimpleProcessWithAssignee() { ProcessContextAction(); IWfProcessDescriptor processDesp = WfProcessTestCommon.CreateSimpleProcessDescriptor(); processDesp.InitialActivity.Resources.Add(new WfUserResourceDescriptor((IUser)OguObjectSettings.GetConfig().Objects["requestor"].Object)); WfProcessStartupParams startupParams = GetInstanceOfWfProcessStartupParams(processDesp); IWfProcess process = WfRuntime.StartWorkflow(startupParams); process.ApplicationRuntimeParameters["CostCenter"] = "1001"; process.ApplicationRuntimeParameters["Requestor"] = process.Creator; return(process); }
public void SimpleProcessDescriptorSerializeTest() { IWfProcessDescriptor processDesp = WfProcessTestCommon.CreateSimpleProcessDescriptor(); XElementFormatter formatter = new XElementFormatter(); XElement root = formatter.Serialize(processDesp); Console.WriteLine(root.ToString()); IWfProcessDescriptor clonedProcessDesp = (IWfProcessDescriptor)formatter.Deserialize(root); Assert.IsTrue(clonedProcessDesp.InitialActivity.CanReachTo(clonedProcessDesp.CompletedActivity)); Assert.AreEqual(clonedProcessDesp, clonedProcessDesp.InitialActivity.Process); Assert.AreEqual(clonedProcessDesp, clonedProcessDesp.CompletedActivity.Process); //因增加了一个活动点,此处这样比较断言肯定失败.故此将其注销掉 //Assert.AreEqual(clonedProcessDesp.InitialActivity.ToTransitions[0], clonedProcessDesp.CompletedActivity.FromTransitions[0]); }
public void ProcessSerializeExecutionTimeTest() { IWfProcessDescriptor processDesc = WfProcessTestCommon.CreateSimpleProcessDescriptor(); int totalProcesses = 40; //准备流程实例 List <IWfProcess> processes = ProcessTestHelper.StartupMultiProcesses(processDesc, totalProcesses); ProcessTestHelper.OutputExecutionTime(() => { foreach (IWfProcess process in processes) { XElementFormatter formatter = new XElementFormatter(); XElement root = formatter.Serialize(process); } }, string.Format("序列化{0}个流程", totalProcesses)); }
public void SimpleProcessDescriptorWithResourceSerializeTest() { IWfProcessDescriptor processDesp = WfProcessTestCommon.CreateSimpleProcessDescriptor(); processDesp.InitialActivity.Resources.Add(new WfUserResourceDescriptor((IUser)OguObjectSettings.GetConfig().Objects["requestor"].Object)); XElementFormatter formatter = new XElementFormatter(); XElement root = formatter.Serialize(processDesp); Console.WriteLine(root.ToString()); IWfProcessDescriptor clonedProcessDesp = (IWfProcessDescriptor)formatter.Deserialize(root); Assert.IsTrue(clonedProcessDesp.InitialActivity.CanReachTo(clonedProcessDesp.CompletedActivity)); Assert.AreEqual(processDesp.InitialActivity.Resources.Count, clonedProcessDesp.InitialActivity.Resources.Count); Assert.AreEqual(clonedProcessDesp, clonedProcessDesp.InitialActivity.Process); Assert.AreEqual(clonedProcessDesp, clonedProcessDesp.CompletedActivity.Process); }
public void SimpleProcessDescriptorWithDeptResSerializeTest() { WfConverterHelper.RegisterConverters(); WfProcessDescriptor processDesp = (WfProcessDescriptor)WfProcessTestCommon.CreateSimpleProcessDescriptor(); IUser user = (IUser)OguObjectSettings.GetConfig().Objects["requestor"].Object; IOrganization orga = user.Parent; WfDepartmentResourceDescriptor deptResuDesp = new WfDepartmentResourceDescriptor(orga); processDesp.InitialActivity.Resources.Add(deptResuDesp); string result = JSONSerializerExecute.Serialize(processDesp); processDesp = JSONSerializerExecute.Deserialize <WfProcessDescriptor>(result); XElementFormatter formatter = new XElementFormatter(); XElement root = formatter.Serialize(processDesp); Console.WriteLine(root.ToString()); IWfProcessDescriptor clonedProcessDesp = (IWfProcessDescriptor)formatter.Deserialize(root); }