public void WfBranchProcessTemplateDescriptorConverterTest() { WfConverterHelper.RegisterConverters(); WfBranchProcessTemplateDescriptor branchProcessTempDesp = new WfBranchProcessTemplateDescriptor(Guid.NewGuid().ToString()); branchProcessTempDesp.BlockingType = WfBranchProcessBlockingType.WaitAnyoneBranchProcessComplete; branchProcessTempDesp.ExecuteSequence = WfBranchProcessExecuteSequence.Serial; string result = JSONSerializerExecute.Serialize(branchProcessTempDesp); Console.WriteLine(result); WfBranchProcessTemplateDescriptor deserializedBranchProcTempDesp = JSONSerializerExecute.Deserialize <WfBranchProcessTemplateDescriptor>(result); string reSerialized = JSONSerializerExecute.Serialize(deserializedBranchProcTempDesp); Assert.AreEqual(result, reSerialized); WfProcessDescriptor processDesp = (WfProcessDescriptor)WfProcessTestCommon.CreateSimpleProcessDescriptor(); processDesp.InitialActivity.BranchProcessTemplates.Add(branchProcessTempDesp); string procResult = JSONSerializerExecute.Serialize(processDesp); Console.WriteLine(procResult); WfProcessDescriptor deserializedProcDesp = JSONSerializerExecute.Deserialize <WfProcessDescriptor>(procResult); string procReSerialized = JSONSerializerExecute.Serialize(deserializedProcDesp); Assert.AreEqual(procResult, procReSerialized); }
public void BasicDynamicActivityTest() { IWfProcessDescriptor processDesp = WfProcessTestCommon.CreateSimpleProcessDescriptor(); processDesp.Activities["NormalActivity"].RelativeLinks.Add(new WfRelativeLinkDescriptor("DynLink") { Url = "http://localhost" }); IWfActivityDescriptor templateActDesp = processDesp.Activities["NormalActivity"]; FillDynamicActivitySimpleResource(templateActDesp, (IUser)OguObjectSettings.GetConfig().Objects["approver1"].Object); IWfProcess process = WfProcessTestCommon.StartupProcess(processDesp); IWfActivityDescriptor firstDynamicActDesp = ValidateDynamicActivities(process.InitialActivity.Descriptor, templateActDesp); Assert.AreEqual(templateActDesp.RelativeLinks.Count, firstDynamicActDesp.RelativeLinks.Count); ValidateInDynamicTransitionsProperties(firstDynamicActDesp.FromTransitions, templateActDesp); ValidateLastDynamicTransitions(templateActDesp); ValidateTemplateCandidatesAndDynamicActivityCandidates(firstDynamicActDesp, templateActDesp); }
public void WfExternalUserTest() { WfConverterHelper.RegisterConverters(); 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"; string result = JSONSerializerExecute.Serialize(externalUser); WfExternalUser deserializedUser = JSONSerializerExecute.Deserialize <WfExternalUser>(result); string reSerialized = JSONSerializerExecute.Serialize(deserializedUser); Assert.AreEqual(result, reSerialized); //创建流程描述 IWfProcessDescriptor processDesp = WfProcessTestCommon.CreateSimpleProcessDescriptor(); processDesp.ExternalUsers.Add(externalUser); //作用于流程 processDesp.InitialActivity.ExternalUsers.Add(externalUser); //作用于节点 string procDesp = JSONSerializerExecute.Serialize(processDesp); WfProcessDescriptor reProcessDesp = JSONSerializerExecute.Deserialize <WfProcessDescriptor>(procDesp); string reuslt = JSONSerializerExecute.Serialize(reProcessDesp); Assert.AreEqual(procDesp, reuslt); Assert.AreEqual(processDesp.ExternalUsers[0].Name, processDesp.InitialActivity.ExternalUsers[0].Name); }
public void WfVariabledOfPrecessDescriptorConverterTest() { WfConverterHelper.RegisterConverters(); WfProcessDescriptor processDesp = (WfProcessDescriptor)WfProcessTestCommon.CreateSimpleProcessDescriptor(); //给流程中变量描述赋值 string guid = Guid.NewGuid().ToString(); WfVariableDescriptor variDesc = new WfVariableDescriptor(guid); variDesc.Name = "yo"; variDesc.Description = "流程中变量的赋值"; variDesc.Enabled = true; variDesc.OriginalType = DataType.String; variDesc.OriginalValue = "原来的变量值"; processDesp.Variables.Add(variDesc); string result = JSONSerializerExecute.Serialize(processDesp); Console.WriteLine(result); WfProcessDescriptor reProcessDesp = JSONSerializerExecute.Deserialize <WfProcessDescriptor>(result); string reSerialized = JSONSerializerExecute.Serialize(reProcessDesp); Assert.AreEqual(result, reSerialized); Assert.AreEqual(processDesp.Variables[0].Name, reProcessDesp.Variables[0].Name); Assert.AreEqual("流程中变量的赋值", reProcessDesp.Variables[0].Description); Assert.AreEqual(true, reProcessDesp.Variables[0].Enabled); Assert.AreEqual(processDesp.Variables[0].OriginalType, reProcessDesp.Variables[0].OriginalType); }
public void ClearThenResetInitialActivitySecretaryTest() { IWfProcessDescriptor processDesp = WfProcessTestCommon.CreateSimpleProcessDescriptor(); processDesp.InitialActivity.Properties.SetValue("AutoAppendSecretary", true); IWfProcess process = WfProcessTestCommon.StartupProcess(processDesp); ChangeActivityResource(process.Descriptor.InitialActivity, (IUser)OguObjectSettings.GetConfig().Objects["ceo"].Object); WfRuntime.DecorateProcess(process); ChangeActivityResource(process.Descriptor.Activities["Initial"], (IUser)OguObjectSettings.GetConfig().Objects["approver1"].Object); WfRuntime.DecorateProcess(process); OutputProcessCandidates(process); ReturnExecutorTestHelper.OutputMainStream(process); Assert.AreEqual(3, processDesp.Activities.Count); Assert.AreEqual(process.InitialActivity.Descriptor.Key, process.Descriptor.InitialActivity.Key); Assert.AreEqual(WfActivityType.InitialActivity, process.Descriptor.InitialActivity.ActivityType); Assert.AreEqual(WfActivityType.InitialActivity, process.Descriptor.Activities["Initial"].ActivityType); Assert.AreEqual(3, process.MainStream.Activities.Count); Assert.AreEqual(WfActivityType.InitialActivity, process.MainStream.InitialActivity.ActivityType); }
private static void ResourceConverterTest(WfResourceDescriptor resDesp) { IWfProcessDescriptor processDesp = WfProcessTestCommon.CreateSimpleProcessDescriptor(); processDesp.Activities[1].Resources.Add(resDesp); string re = JSONSerializerExecute.Serialize(processDesp); WfProcessDescriptor reProcessDesp = JSONSerializerExecute.Deserialize <WfProcessDescriptor>(re); }
public void SimpleProcessDescriptorTest() { IWfProcessDescriptor processDesp = WfProcessTestCommon.CreateSimpleProcessDescriptor(); Console.WriteLine("Init Act Key: {0}, Completed Act Key: {1}, Transition Key: {2}", processDesp.InitialActivity.Key, processDesp.CompletedActivity.Key, processDesp.InitialActivity.ToTransitions[0].Key); Assert.IsTrue(processDesp.InitialActivity.CanReachTo(processDesp.CompletedActivity)); }
private static IWfProcessDescriptor PrepareWithReturnTransitionsProcess() { IWfProcessDescriptor processDesp = WfProcessTestCommon.CreateSimpleProcessDescriptor(); IWfActivityDescriptor normalActDesp = processDesp.Activities["NormalActivity"]; normalActDesp.ToTransitions.AddBackwardTransition(processDesp.InitialActivity); return(processDesp); }
private static IWfProcessDescriptor PrepareDynamicProcessDesp() { IWfProcessDescriptor processDesp = WfProcessTestCommon.CreateSimpleProcessDescriptor(); IWfActivityDescriptor normalActDesp = processDesp.Activities["NormalActivity"]; normalActDesp.Properties.SetValue("IsDynamic", true); return(processDesp); }
public void WfRelativeLinkDespJSONTest() { WfConverterHelper.RegisterConverters(); WfProcessDescriptor processDesp = (WfProcessDescriptor)WfProcessTestCommon.CreateSimpleProcessDescriptor(); string result = JSONSerializerExecute.Serialize(processDesp); IWfProcessDescriptor procDesp = JSONSerializerExecute.Deserialize <WfProcessDescriptor>(result); Assert.AreEqual(processDesp.RelativeLinks[0].Name, procDesp.RelativeLinks[0].Name); Assert.AreEqual(processDesp.RelativeLinks[0].Url, procDesp.RelativeLinks[0].Url); }
private static WfProcessDescriptorInfo PrepareProcessDescriptorInfo() { IWfProcessDescriptor processDesp = WfProcessTestCommon.CreateSimpleProcessDescriptor(); WfProcessDescriptorInfo processInfo = WfProcessDescriptorInfo.FromProcessDescriptor(processDesp); processInfo.Creator = (IUser)OguObjectSettings.GetConfig().Objects["requestor"].Object; processInfo.Modifier = (IUser)OguObjectSettings.GetConfig().Objects["approver1"].Object; return(processInfo); }
public void RemoveFromTransitionTest() { IWfProcessDescriptor processDesp = WfProcessTestCommon.CreateSimpleProcessDescriptor(); IWfActivityDescriptor fromActDesp = processDesp.InitialActivity; IWfActivityDescriptor toActDesp = fromActDesp.ToTransitions.FirstOrDefault().ToActivity; toActDesp.FromTransitions.RemoveByFromActivity(fromActDesp); Assert.IsNull(fromActDesp.ToTransitions.Find(t => t.ToActivity.Key == toActDesp.Key)); Assert.IsNull(toActDesp.FromTransitions.Find(t => t.FromActivity.Key == fromActDesp.Key)); }
public void BasicActivityDescriptorDeleteTest() { IWfProcessDescriptor processDesp = WfProcessTestCommon.CreateSimpleProcessDescriptor(); IWfActivityDescriptor normalActDesp = processDesp.Activities["NormalActivity"]; int originalActCount = processDesp.Activities.Count; normalActDesp.Delete(); processDesp.Output(); Assert.AreEqual(originalActCount - 1, processDesp.Activities.Count); }
public void ProcessPersistExecutionTimeTest() { IWfProcessDescriptor processDesc = WfProcessTestCommon.CreateSimpleProcessDescriptor(); int totalProcesses = 40; //准备流程实例 List <IWfProcess> processes = ProcessTestHelper.StartupMultiProcesses(processDesc, totalProcesses); ProcessTestHelper.OutputExecutionTime(() => { WfRuntime.PersistWorkflows(); }, string.Format("保存{0}个流程", totalProcesses)); }
public void ClearToTransitionTest() { IWfProcessDescriptor processDesp = WfProcessTestCommon.CreateSimpleProcessDescriptor(); IWfActivityDescriptor fromActDesp = processDesp.InitialActivity; IWfActivityDescriptor toActDesp = fromActDesp.ToTransitions.FirstOrDefault().ToActivity; fromActDesp.ToTransitions.Clear(); Assert.AreEqual(0, fromActDesp.ToTransitions.Count); Assert.IsNull(fromActDesp.ToTransitions.Find(t => t.ToActivity.Key == toActDesp.Key)); Assert.IsNull(toActDesp.FromTransitions.Find(t => t.FromActivity.Key == fromActDesp.Key)); }
public void BasicDynamicActivityWithoutResourceTest() { IWfProcessDescriptor processDesp = WfProcessTestCommon.CreateSimpleProcessDescriptor(); IWfActivityDescriptor templateActDesp = processDesp.Activities["NormalActivity"]; FillDynamicActivitySimpleResource(templateActDesp); IWfProcess process = WfProcessTestCommon.StartupProcess(processDesp); IWfActivityDescriptor firstDynamicActDesp = ValidateDynamicActivities(process.InitialActivity.Descriptor, templateActDesp); ValidateNoResourceTransitionsProperties(processDesp.InitialActivity.ToTransitions.FindAll(t => t.Properties.GetValue("DynamicSource", string.Empty) == templateActDesp.Key), templateActDesp); Assert.AreEqual(processDesp.CompletedActivity.Key, firstDynamicActDesp.Key, "起始点和终止点连接在一起"); }
public void InlineUserFunctionTest() { IWfProcessDescriptor processDesp = WfProcessTestCommon.CreateSimpleProcessDescriptor(); IWfActivityDescriptor normalActivityDesp = processDesp.Activities["NormalActivity"]; normalActivityDesp.Resources.Clear(); normalActivityDesp.Resources.Add(new WfDynamicResourceDescriptor("InlineUserFunc", string.Format("InlineUser(\"{0}\")", "ceo"))); IWfProcess process = WfProcessTestCommon.StartupProcess(processDesp); IWfActivity normalActivity = process.Activities.FindActivityByDescriptorKey("NormalActivity"); Assert.IsTrue(normalActivity.Candidates.Count > 0); Assert.AreEqual(OguObjectSettings.GetConfig().Objects["ceo"].Object.ID, normalActivity.Candidates[0].User.ID); }
public void CreateProcessDescriptorWithBranchProcDesp() { //分支流程描述 IWfProcessDescriptor procDesp = WfProcessTestCommon.CreateSimpleProcessDescriptor(); //主流程描述 IWfProcessDescriptor processDesp = WfProcessTestCommon.CreateProcessDescriptor(); WfBranchProcessTemplateDescriptor data = new WfBranchProcessTemplateDescriptor("branchProcessTemplateDesp"); data.BlockingType = WfBranchProcessBlockingType.WaitAllBranchProcessesComplete; data.ExecuteSequence = WfBranchProcessExecuteSequence.Parallel; data.BranchProcessKey = procDesp.Key; processDesp.Activities[1].BranchProcessTemplates.Add(data); }
public void WfProcessDescriptorConverter() { WfConverterHelper.RegisterConverters(); WfProcessDescriptor processDesp = (WfProcessDescriptor)WfProcessTestCommon.CreateSimpleProcessDescriptor(); string result = JSONSerializerExecute.Serialize(processDesp); Console.WriteLine(result); WfProcessDescriptor deserializedProcessDesp = JSONSerializerExecute.Deserialize <WfProcessDescriptor>(result); //再次序列化时,字条串不相等,是因为创建流程时没有Key string reSerialized = JSONSerializerExecute.Serialize(deserializedProcessDesp); Console.WriteLine(reSerialized); Assert.AreEqual(result, reSerialized); }
public void DynamicActivityWithActivityMatrixReturnToInitialTest() { IRole role = PrepareSOARole(); IWfProcessDescriptor processDesp = WfProcessTestCommon.CreateSimpleProcessDescriptor(); IWfActivityDescriptor templateActDesp = processDesp.Activities["NormalActivity"]; FillDynamicActivitySimpleResource(templateActDesp, new WfResourceDescriptorCollection() { new WfRoleResourceDescriptor(role) }); IWfProcess process = WfProcessTestCommon.StartupProcess(processDesp, new Dictionary <string, object>() { { "CostCenter", "1001" } }); //到第一个动态活动 WfProcessTestCommon.MoveToNextDefaultActivityWithExecutor(process); process = WfRuntime.GetProcessByProcessID(process.ID); //到第二个动态活动 WfProcessTestCommon.MoveToNextDefaultActivityWithExecutor(process); process = WfRuntime.GetProcessByProcessID(process.ID); //退回到起始点 ReturnExecutorTestHelper.ExecuteReturnOperation(process.CurrentActivity, process.InitialActivity.Descriptor.Key); process = WfRuntime.GetProcessByProcessID(process.ID); Console.WriteLine(process.CurrentActivity.Descriptor.Key); Console.WriteLine(process.CompletedActivity.Descriptor.FromTransitions.GetAllCanTransitForwardTransitions().Count); ReturnExecutorTestHelper.OutputMainStream(process); ReturnExecutorTestHelper.OutputEveryActivities(process); Assert.AreEqual(1, process.CompletedActivity.Descriptor.FromTransitions.GetAllCanTransitForwardTransitions().Count, "结束点应该只有一条有效的入线s"); Assert.AreEqual(process.InitialActivity.Descriptor.Key, process.CurrentActivity.Descriptor.AssociatedActivityKey); }
public void BasicDynamicActivityReturnTest() { IWfProcessDescriptor processDesp = WfProcessTestCommon.CreateSimpleProcessDescriptor(); IWfActivityDescriptor templateActDesp = processDesp.Activities["NormalActivity"]; FillDynamicActivitySimpleResource(templateActDesp, (IUser)OguObjectSettings.GetConfig().Objects["approver1"].Object); IWfProcess process = WfProcessTestCommon.StartupProcess(processDesp); ReturnExecutorTestHelper.OutputMainStream(process); ReturnExecutorTestHelper.OutputEveryActivities(process); WfProcessTestCommon.MoveToNextDefaultActivity(process); ReturnExecutorTestHelper.ExecuteReturnOperation(process.CurrentActivity, processDesp.InitialActivity.Key); //N2(Initial)->N1->N4->N5->Completed ReturnExecutorTestHelper.OutputMainStream(process); //N1->N2(Initial)->N4->N5->Completed ReturnExecutorTestHelper.OutputEveryActivities(process); Assert.AreEqual("Initial", process.CurrentActivity.Descriptor.GetAssociatedActivity().Key); Assert.AreEqual(2, process.CurrentActivity.Descriptor.ToTransitions.Count); WfProcessTestCommon.MoveToNextDefaultActivity(process); //Assert.AreEqual("N4", process.CurrentActivity.Descriptor.Key); //To N4 //N2(Initial)->N1->N4->N5->Completed ReturnExecutorTestHelper.OutputMainStream(process); //N1->N2(Initial)->N4->N5->Completed ReturnExecutorTestHelper.OutputEveryActivities(process); //IWfActivityDescriptor firstDynamicActDesp = ValidateDynamicActivities(process.InitialActivity.Descriptor, templateActDesp); //ValidateInDynamicTransitionsProperties(firstDynamicActDesp.FromTransitions, templateActDesp); //ValidateLastDynamicTransitions(templateActDesp); //ValidateTemplateCandidatesAndDynamicActivityCandidates(firstDynamicActDesp, templateActDesp); }
private IWfProcessDescriptor CreateComplexDynamicActivityProcess(params IUser[] users) { IWfProcessDescriptor processDesp = WfProcessTestCommon.CreateSimpleProcessDescriptor(); IWfActivityDescriptor templateActDesp = processDesp.Activities["NormalActivity"]; FillDynamicActivitySimpleResource(templateActDesp, users); processDesp.InitialActivity.ToTransitions.RemoveByToActivity(templateActDesp); templateActDesp.FromTransitions.RemoveByFromActivity(processDesp.InitialActivity); templateActDesp.ToTransitions.RemoveByToActivity(processDesp.CompletedActivity); processDesp.CompletedActivity.FromTransitions.RemoveByFromActivity(templateActDesp); IWfActivityDescriptor a1Activity = WfProcessTestCommon.CreateNormalActivity("A1"); processDesp.Activities.Add(a1Activity); IWfActivityDescriptor a2Activity = WfProcessTestCommon.CreateNormalActivity("A2"); processDesp.Activities.Add(a2Activity); IWfActivityDescriptor b1Activity = WfProcessTestCommon.CreateNormalActivity("B1"); processDesp.Activities.Add(b1Activity); IWfActivityDescriptor b2Activity = WfProcessTestCommon.CreateNormalActivity("B2"); processDesp.Activities.Add(b2Activity); processDesp.InitialActivity.ToTransitions.AddForwardTransition(a1Activity); processDesp.InitialActivity.ToTransitions.AddForwardTransition(a2Activity); a1Activity.ToTransitions.AddForwardTransition(templateActDesp); a2Activity.ToTransitions.AddForwardTransition(templateActDesp); templateActDesp.ToTransitions.AddForwardTransition(b1Activity); templateActDesp.ToTransitions.AddForwardTransition(b2Activity); b1Activity.ToTransitions.AddForwardTransition(processDesp.CompletedActivity); b2Activity.ToTransitions.AddForwardTransition(processDesp.CompletedActivity); return(processDesp); }
public void SimpleProcessSimulation() { IWfProcessDescriptor processDesp = WfProcessTestCommon.CreateSimpleProcessDescriptor(); processDesp.Activities["NormalActivity"].Resources.Add(new WfUserResourceDescriptor((IUser)OguObjectSettings.GetConfig().Objects["approver1"].Object)); processDesp.Activities["NormalActivity"].Resources.Add(new WfUserResourceDescriptor((IUser)OguObjectSettings.GetConfig().Objects["approver2"].Object)); WfSimulationParameters simulationParameters = new WfSimulationParameters(); WfSimulationResult result = WfSimulator.StartSimulation(processDesp, new WfSimulationParameters()); Console.WriteLine(WfRuntime.ProcessContext.SimulationContext.GetOutputString()); while (result.ProcessStatus != WfProcessStatus.Completed) { result = WfSimulator.MoveToSimulation(result.ProcessID, simulationParameters); Console.WriteLine(WfRuntime.ProcessContext.SimulationContext.GetOutputString()); } }
public void MergeToTransitionsTest() { IWfProcessDescriptor processDesp = WfProcessTestCommon.CreateSimpleProcessDescriptor(); IWfActivityDescriptor fromActDesp = processDesp.InitialActivity; IWfActivityDescriptor toActDesp = fromActDesp.ToTransitions.FirstOrDefault().ToActivity; List <IWfTransitionDescriptor> transitionsNeedToMerge = new List <IWfTransitionDescriptor>(); toActDesp.ToTransitions.CopyTo(transitionsNeedToMerge); fromActDesp.ToTransitions.CopyTo(transitionsNeedToMerge); IList <IWfTransitionDescriptor> addedTransitions = fromActDesp.CloneAndMergeToTransitions(transitionsNeedToMerge); Assert.AreEqual(1, addedTransitions.Count); Assert.AreEqual(2, fromActDesp.ToTransitions.Count); Assert.IsNotNull(fromActDesp.ToTransitions.Find(t => t.ToActivity == processDesp.CompletedActivity)); Assert.IsNotNull(processDesp.CompletedActivity.FromTransitions.Find(t => t.FromActivity == fromActDesp)); }
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); }
public void BasicDynamicActivityWithTwoAssigneesTest() { IWfProcessDescriptor processDesp = WfProcessTestCommon.CreateSimpleProcessDescriptor(); IWfActivityDescriptor templateActDesp = processDesp.Activities["NormalActivity"]; FillDynamicActivitySimpleResource(templateActDesp, (IUser)OguObjectSettings.GetConfig().Objects["approver1"].Object, (IUser)OguObjectSettings.GetConfig().Objects["approver2"].Object); IWfProcess process = WfProcessTestCommon.StartupProcess(processDesp); IWfActivityDescriptor firstDynamicActDesp = ValidateDynamicActivities(process.InitialActivity.Descriptor, templateActDesp); ValidateInDynamicTransitionsProperties(firstDynamicActDesp.FromTransitions, templateActDesp); WfActivityDescriptorCollection dynamicToActivities = firstDynamicActDesp.GetToActivities(); ValidateLastDynamicTransitions(templateActDesp); ValidateTemplateCandidatesAndDynamicActivityCandidates(firstDynamicActDesp, templateActDesp); }
public void DynamicActivityWithActivityMatrixTest() { IRole role = PrepareSOARole(); IWfProcessDescriptor processDesp = WfProcessTestCommon.CreateSimpleProcessDescriptor(); IWfActivityDescriptor templateActDesp = processDesp.Activities["NormalActivity"]; FillDynamicActivitySimpleResource(templateActDesp, new WfResourceDescriptorCollection() { new WfRoleResourceDescriptor(role) }); IWfProcess process = WfProcessTestCommon.StartupProcess(processDesp, new Dictionary <string, object>() { { "CostCenter", "1001" } }); Assert.AreEqual(6, process.Activities.Count); IWfActivityDescriptor firstDynamicActDesp = ValidateDynamicActivities(process.Descriptor.InitialActivity, templateActDesp); Assert.AreEqual(2, firstDynamicActDesp.Instance.Candidates.Count); foreach (WfAssignee assignee in firstDynamicActDesp.Instance.Candidates) { Assert.IsTrue(assignee.User.LogOnName == "fanhy" || assignee.User.LogOnName == "yangrui1"); } IWfActivityDescriptor limingActDesp = firstDynamicActDesp.GetToActivities().FirstOrDefault(); Assert.AreEqual(1, limingActDesp.Instance.Candidates.Count); Assert.IsTrue(limingActDesp.Instance.Candidates[0].User.LogOnName == "liming"); IWfActivityDescriptor quymActDesp = limingActDesp.GetToActivities().FirstOrDefault(); Assert.AreEqual(1, quymActDesp.Instance.Candidates.Count); Assert.IsTrue(quymActDesp.Instance.Candidates[0].User.LogOnName == "quym"); }
public void CreateTransitionAndConnectActivitiesTest() { //创建一个三个活动的流程 IWfProcessDescriptor processDesp = WfProcessTestCommon.CreateSimpleProcessDescriptor(); IWfActivityDescriptor normalActDesp = processDesp.Activities["NormalActivity"]; normalActDesp.ToTransitions.RemoveByToActivity(processDesp.CompletedActivity); WfCreateTransitionParamCollection transitionParams = new WfCreateTransitionParamCollection(); WfCreateTransitionParam tp = new WfCreateTransitionParam(); tp.Parameters["Key"] = "T1"; tp.Parameters["Name"] = "Transition1"; tp.CreateTransitionAndConnectActivities(normalActDesp, processDesp.CompletedActivity); processDesp.Output(); Assert.AreEqual(tp.Parameters["Name"], normalActDesp.ToTransitions.FirstOrDefault().Name); }
public void DynamicActivityActivityMatrixWithoutProcessContextTest() { IRole role = PrepareSOARole(); IWfProcessDescriptor processDesp = WfProcessTestCommon.CreateSimpleProcessDescriptor(); IWfActivityDescriptor templateActDesp = processDesp.Activities["NormalActivity"]; FillDynamicActivitySimpleResource(templateActDesp, new WfResourceDescriptorCollection() { new WfRoleResourceDescriptor(role) }); IWfProcess process = WfProcessTestCommon.StartupProcess(processDesp); Assert.AreEqual(3, process.Activities.Count); IWfActivityDescriptor firstDynamicActDesp = ValidateDynamicActivities(process.InitialActivity.Descriptor, templateActDesp); ValidateNoResourceTransitionsProperties(processDesp.InitialActivity.ToTransitions.FindAll(t => t.Properties.GetValue("DynamicSource", string.Empty) == templateActDesp.Key), templateActDesp); Assert.AreEqual(processDesp.CompletedActivity.Key, firstDynamicActDesp.Key, "起始点和终止点连接在一起"); }
public void WfConditionOfProcessDescriptorConverterTest() { WfConverterHelper.RegisterConverters(); WfProcessDescriptor processDesp = (WfProcessDescriptor)WfProcessTestCommon.CreateSimpleProcessDescriptor(); WfConditionDescriptor conditionDesp = new WfConditionDescriptor() { Expression = "A>5" }; ((WfForwardTransitionDescriptor)processDesp.InitialActivity.ToTransitions[0]).Condition = conditionDesp; string result = JSONSerializerExecute.Serialize(processDesp); Console.WriteLine(result); WfProcessDescriptor reProcessDesp = JSONSerializerExecute.Deserialize <WfProcessDescriptor>(result); Assert.AreEqual(conditionDesp.Expression, ((WfForwardTransitionDescriptor)reProcessDesp.InitialActivity.ToTransitions[0]).Condition.Expression); string reSerialized = JSONSerializerExecute.Serialize(reProcessDesp); Assert.AreEqual(result, reSerialized); }