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 }
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); }