Beispiel #1
0
        public void TestRun( )
        {
            var wf = new Workflow
            {
                Name = "Wf"
            };

            wf.AddDefaultExitPoint( );

            var l1 = new LogActivity
            {
                Name = "l1"
            }.Cast <WfActivity>( );
            var l2 = new LogActivity
            {
                Name = "12"
            }.Cast <WfActivity>( );

            // wf.FirstActivity = l1;
            //wf.ContainedActivities.Add(l1);
            wf.ContainedActivities.Add(l2);

            ActivityTestHelper.AddFirstActivityWithMapping(wf, l1, null);
            ActivityTestHelper.AddExpressionToActivityArgument(wf, l1, "Message", "'Message 1'", false);

            ActivityTestHelper.AddTransition(wf, l1, l2);
            ActivityTestHelper.AddExpressionToActivityArgument(wf, l2, "Message", "'Message 2'", false);

            ActivityTestHelper.AddTermination(wf, l2, l2.GetDefaultExitPoint(), CreateDefaultExitPoint());

            wf.Save( );
            ActivityImplementationBase nextActivity = wf.Cast <WfActivity>( ).CreateWindowsActivity( );

            l1.Save( );
            l2.Save( );

            ToDelete.Add(wf.Id);
            ToDelete.Add(l1.Id);
            ToDelete.Add(l2.Id);

            var run = (RunWorkflow(wf));

            Assert.AreEqual(WorkflowRunState_Enumeration.WorkflowRunCompleted, run.WorkflowRunStatus_Enum, "Finished without errors");

            // run using service
        }
Beispiel #2
0
        public void TestTwoActivitiesRunInCorrectOrder( )
        {
            // Check that the activities are running in the correct order.
            var runLog = new List <long>( );

            RunActionWithNameActivity.Action = runLog.Add;

            ActivityType testType = CreateClassBackedType(typeof(RunActionWithNameActivity));

            var wf = new Workflow
            {
                Name = "Wf"
            };

            wf.AddDefaultExitPoint( );

            var l1 = new Entity(testType.Id).Cast <WfActivity>( );
            var l2 = new Entity(testType.Id).Cast <WfActivity>( );

            l1.Name = "l1";
            l2.Name = "l2";
            ActivityTestHelper.AddFirstActivityWithMapping(wf, l1, null);

            wf.ContainedActivities.Add(l2);
            ActivityTestHelper.AddTransition(wf, l1, l2);

            ActivityTestHelper.AddTermination(wf, l2);

            wf.Save( );
            ToDelete.Add(wf.Id);

            var run = (RunWorkflow(wf));

            Assert.AreEqual(WorkflowRunState_Enumeration.WorkflowRunCompleted, run.WorkflowRunStatus_Enum, "Finished without errors");


            var expectedOrder = new List <long>
            {
                l1.Id,
                l2.Id
            };

            Assert.AreEqual(expectedOrder, runLog);
        }
        public void DecisionTest()
        {
            var wf = new Workflow
            {
                Name = "ConnectingParameters Wf"
            };
            var wfAs = wf.Cast <WfActivity>();

            wf.InputArguments.Add((new IntegerArgument
            {
                Name = "wfInInt"
            }).Cast <ActivityArgument>());

            var yesExit = new ExitPoint
            {
                IsDefaultExitPoint = true,
                Name = "Yes"
            };
            var noExit = new ExitPoint
            {
                Name = "No"
            };

            wf.ExitPoints.Add(yesExit);
            wf.ExitPoints.Add(noExit);

            var decision1 = new DecisionActivity
            {
                Name = "Decision1"
            };
            var decision1As = decision1.Cast <WfActivity>();


            ActivityTestHelper.AddFirstActivityWithMapping(
                wf,
                decision1As,
                null);

            string wfInIntSubString = ActivityTestHelper.CreateArgumentInstance(wf, wfAs, wfAs.GetInputArgument("wfInInt"));

            ActivityTestHelper.AddExpressionToActivityArgument(wf, decision1As, "DecisionArgument", wfInIntSubString + " > 5", false);

            ActivityTestHelper.AddTermination(
                wf,
                decision1As,
                Entity.Get <ExitPoint>(new EntityRef("core", "decisionActivityYesExitPoint")),
                yesExit);

            ActivityTestHelper.AddTermination(
                wf,
                decision1As,
                Entity.Get <ExitPoint>(new EntityRef("core", "decisionActivityNoExitPoint")),
                noExit);

            ActivityTestHelper.AddMissingExpressionParametersToWorkflow(wf);

            wf.Save();
            ToDelete.Add(wf.Id);
            ToDelete.Add(decision1.Id);

            var input = new Dictionary <string, object>
            {
                {
                    "wfInInt", 10
                }
            };

            var run = RunWorkflow(wf, input);

            Assert.AreEqual(run.GetExitPoint().Id, yesExit.Id, "Input of '10' should result in a 'yes' decision");

            input = new Dictionary <string, object>
            {
                {
                    "wfInInt", 1
                }
            };

            run = RunWorkflow(wf, input);

            Assert.AreEqual(WorkflowRunState_Enumeration.WorkflowRunCompleted, run.WorkflowRunStatus_Enum, "Finished without errors");

            Assert.AreEqual(noExit.Id, run.GetExitPoint().Id, "Input of '1' should results in a 'no' decision");
        }
        public void SwitchTest( )
        {
            var wf = new Workflow
            {
                Name = "ConnectingParameters Wf"
            };
            var wfAs = wf.Cast <WfActivity>( );

            wf.InputArguments.Add((new StringArgument
            {
                Name = "wfInString"
            }).Cast <ActivityArgument>( ));

            var wfYesExit = new ExitPoint
            {
                IsDefaultExitPoint = true,
                Name = "Wf Yes"
            };
            var wfNoExit = new ExitPoint
            {
                Name = "Wf No"
            };
            var wfMaybeExit = new ExitPoint
            {
                Name = "Wf Maybe"
            };
            var wfDontKnowExit = new ExitPoint
            {
                Name = "Wf Dont know"
            };

            wf.ExitPoints.Add(wfYesExit);
            wf.ExitPoints.Add(wfNoExit);
            wf.ExitPoints.Add(wfMaybeExit);
            wf.ExitPoints.Add(wfDontKnowExit);

            var switch1 = new SwitchActivity
            {
                Name = "Switch1"
            };
            var switch1As = switch1.Cast <WfActivity>( );

            ActivityTestHelper.AddFirstActivityWithMapping(
                wf,
                switch1As,
                null);

            ActivityTestHelper.CreateArgumentInstance(wf, wfAs, wfAs.GetInputArgument("wfInString"));
            ActivityTestHelper.AddExpressionToActivityArgument(wf, switch1As, "Value to Switch On", "wfInString", false);

            var switchYesExit = new ExitPoint
            {
                IsDefaultExitPoint = true,
                Name = "Yes"
            };
            var switchNoExit = new ExitPoint
            {
                Name = "No"
            };
            var switchMaybeExit = new ExitPoint
            {
                Name = "Maybe"
            };

            switch1.ExitPoints.Add(switchYesExit);
            switch1.ExitPoints.Add(switchNoExit);
            switch1.ExitPoints.Add(switchMaybeExit);

            ActivityTestHelper.AddTermination(
                wf,
                switch1As,
                switchYesExit,
                wfYesExit);

            ActivityTestHelper.AddTermination(
                wf,
                switch1As,
                switchNoExit,
                wfNoExit);

            ActivityTestHelper.AddTermination(
                wf,
                switch1As,
                switchMaybeExit,
                wfMaybeExit);

            var otherwiseExit = Entity.Get <ExitPoint>(new EntityRef("core", "switchActivityOtherwiseExitPoint"));

            ActivityTestHelper.AddTermination(
                wf,
                switch1As,
                otherwiseExit,
                wfDontKnowExit);

            ActivityTestHelper.AddMissingExpressionParametersToWorkflow(wf);

            wf.Save( );
            ToDelete.Add(wf.Id);
            ToDelete.Add(switch1.Id);

            TestResult(wf, "Yes", wfYesExit);
            TestResult(wf, "No", wfNoExit);
            TestResult(wf, "Maybe", wfMaybeExit);
            TestResult(wf, "Something else", wfDontKnowExit);
        }