public void AddActivityBeforeConditionActivityExecutorTest() { IWfProcess process = WfProcessTestCommon.StartupSimpleProcessDescriptorWithTransitionCondition(); IWfActivity targetActivity = process.Activities.FindActivityByDescriptorKey("NormalActivity"); List <IWfTransitionDescriptor> originalTransitions = new List <IWfTransitionDescriptor>(); targetActivity.Descriptor.ToTransitions.CopyTo(originalTransitions); WfActivityDescriptorCreateParams createParams = new WfActivityDescriptorCreateParams(); WfAddActivityExecutor executor = new WfAddActivityExecutor(process.CurrentActivity, targetActivity, createParams); executor.Execute(); Console.WriteLine("Out transitions: {0}", originalTransitions.Count); Assert.AreEqual(originalTransitions.Count, executor.AddedActivity.Descriptor.ToTransitions.Count); Assert.AreEqual(1, targetActivity.Descriptor.ToTransitions.Count); }
public void TransitionConditionTest() { TestContext.Properties["Amount"] = 7500; WfRuntime.ProcessContext.EvaluateTransitionCondition += new Expression.CalculateUserFunction(ProcessContext_EvaluateTransition); IWfProcess process = WfProcessTestCommon.StartupSimpleProcessDescriptorWithTransitionCondition(); WfTransferParams transferParams = new WfTransferParams(process.Descriptor.InitialActivity.ToTransitions[0].ToActivity); process.MoveTo(transferParams); WfTransitionDescriptorCollection transitions = process.CurrentActivity.Descriptor.ToTransitions.GetAllCanTransitTransitions(); Assert.AreEqual(1, transitions.Count); Console.WriteLine(((IWfForwardTransitionDescriptor)transitions[0]).Condition.Expression); Assert.AreEqual("Amount >= 5000", ((IWfForwardTransitionDescriptor)transitions[0]).Condition.Expression); }