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();
            }
        }
Beispiel #4
0
        /// <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);
        }