public void GetResourceByType( ) { var getResources = new GetResourcesActivity( ); getResources.Save( ); var getResourcesAs = getResources.As <WfActivity>( ); ActivityImplementationBase nextActivity = getResourcesAs.CreateWindowsActivity( ); var args = new Dictionary <string, object> { { "Object", TriggeredOnEnum.TriggeredOnEnum_Type }, }; IDictionary <string, object> result = RunActivity(nextActivity, args); var list = result["List"] as IEnumerable <IEntity>; var first = result["First"]; int countFields = TriggeredOnEnum.TriggeredOnEnum_Type.GetDescendantsAndSelf().Select(t => t.InstancesOfType.Count()).Sum(); Assert.IsNotNull(list); Assert.AreEqual(list.Count(), countFields, "The count of fields is correct"); }
public void GetResourceByReport( ) { var personReport = CodeNameResolver.GetInstance("AA_Person", "Report"); var getResources = new GetResourcesActivity( ); getResources.Save( ); //_toDelete.Add(getResources.Id); var getResourcesAs = getResources.As <WfActivity>( ); ActivityImplementationBase nextActivity = getResourcesAs.CreateWindowsActivity( ); var args = new Dictionary <string, object> { { "Report", personReport }, }; IDictionary <string, object> result = RunActivity(nextActivity, args); var list = result["List"] as IEnumerable <IEntity>; var first = result["First"]; var personType = CodeNameResolver.GetTypeByName("AA_Person").As <EntityType>(); long countPeople = personType.GetDescendantsAndSelf().SelectMany(t => t.InstancesOfType).Select(i => i.Id).Distinct().Count(); Assert.IsNotNull(list); Assert.AreEqual(list.Count( ), countPeople, "The count of people is correct"); }
public void TestLoopOverNoResultsFromGetRelationship() { using (new WorkflowRunContext { RunTriggersInCurrentThread = true }) { var myType = new EntityType { Name = "MyType" }; myType.Save(); ToDelete.Add(myType.Id); var wf = new Workflow { Name = "TestLoopOverNoResultsFromGetRelationship" }; wf.AddDefaultExitPoint(); var getResources = new GetResourcesActivity { Name = "GetResources" }; var getResourcesAs = getResources.As <WfActivity>(); ActivityTestHelper.AddEntityExpressionToInputArgument(wf, getResourcesAs, "Object", myType); // this type has no instances wf.FirstActivity = getResourcesAs; wf.ContainedActivities.Add(getResourcesAs); var forEach1 = new ForEachResource { Name = "foreach1" + DateTime.Now }; var forEach1As = forEach1.As <WfActivity>(); ActivityTestHelper.AddExpressionToActivityArgument(wf, forEach1As, "List", "[List]"); // there shouldn't be any wf.ContainedActivities.Add(forEach1As); ActivityTestHelper.AddTransition(wf, getResourcesAs, forEach1As); ActivityTestHelper.AddTransition(wf, forEach1As, forEach1As, "Loop"); ActivityTestHelper.AddTermination(wf, forEach1As, "Finished"); ActivityTestHelper.AddMissingExpressionParametersToWorkflow(wf); wf.Save(); ToDelete.Add(wf.Id); var run = RunWorkflow(wf); IDictionary <string, object> outputs = run.GetOutput(); } }
/// <summary> /// Add a get records activity /// </summary> public static Workflow AddGetRecords(this Workflow wf, string name, string definitionExpression, string reportExpression = null, string fromNamed = null, string fromExit = null) { var act = new GetResourcesActivity() { Name = name }; var actAs = act.As <WfActivity>(); ActivityTestHelper.AddExpressionToActivityArgument(wf, actAs, "Object", definitionExpression, false); if (reportExpression != null) { ActivityTestHelper.AddExpressionToActivityArgument(wf, actAs, "Report", reportExpression, false); } wf.AddActivity(actAs, fromNamed, fromExit); AddMissingExpressionParametersToWorkflow(wf); return(wf); }