Exemple #1
0
        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);
        }
Exemple #2
0
        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);
        }