Ejemplo n.º 1
0
        public void CreateActivityRun()
        {
            var personType = CodeNameResolver.GetTypeByName("AA_Person").As <EntityType>();

            const string createdRecordArgKey = "Record";

            var createActivity = new CreateActivity();

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

            var nextActivity = (CreateImplementation)createActivity.As <WfActivity>().CreateWindowsActivity();

            var inputs = new Dictionary <string, object>
            {
                {
                    "Object", personType
                }
            };

            IDictionary <string, object> result = RunActivity(nextActivity, inputs);

            Assert.AreEqual(2, result.Count, "There are two results, and exit point + a value");

            Assert.IsTrue(result.ContainsKey(createdRecordArgKey));

            var resourceId = (IEntity)result[createdRecordArgKey];

            ToDelete.Add(resourceId.Id);

            var person = Entity.Get(resourceId.Id);

            Assert.IsNotNull(person, "We have a person");
        }
Ejemplo n.º 2
0
        //[Ignore("This test is the same as the failing intg workflow tests '610' and '620' due to the enforcement of cardinality. The problem is that the assignment of a relationship is not clearing the old relationship if  the cardinality does not permit it.")]
        public void ReassignReportDuringManagerCreate()
        {
            var aaManager = CodeNameResolver.GetTypeByName("AA_Manager").As <EntityType>();
            var reportsTo = Entity.Get <Relationship>(new EntityRef("test:reportsTo"));

            var oldMgr = new Entity(aaManager);

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

            var employee1 = CreateEmployee(oldMgr, reportsTo);
            var employee2 = CreateEmployee(oldMgr, reportsTo);

            var createActivity = new CreateActivity();

            createActivity.InputArguments.Add(new ResourceArgument {
                Name = "1"
            }.Cast <ActivityArgument>());
            createActivity.InputArguments.Add(new ResourceArgument {
                Name = "1_value_"
            }.Cast <ActivityArgument>());
            createActivity.InputArguments.Add(new BoolArgument {
                Name = "1_reverse"
            }.Cast <ActivityArgument>());
            createActivity.InputArguments.Add(new BoolArgument {
                Name = "1_replace"
            }.Cast <ActivityArgument>());

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

            var nextActivity = (CreateImplementation)createActivity.As <WfActivity>().CreateWindowsActivity();


            var inputs = new Dictionary <string, object>
            {
                {
                    "Object", aaManager
                },
                {
                    "1_value_", new List <Entity>()
                    {
                        employee1, employee2
                    }
                },
                {
                    "1", reportsTo
                },
                {
                    "1_reverse", true
                },
                {
                    "1_replace", true
                }
            };


            RunActivity(nextActivity, inputs);
        }
Ejemplo n.º 3
0
        public void Bug_25770_AssigningWithNull()
        {
            var aaManager = CodeNameResolver.GetTypeByName("AA_Manager").As <EntityType>();
            var reportsTo = Entity.Get <Relationship>(new EntityRef("test:reportsTo"));


            var createActivity = new CreateActivity();

            createActivity.InputArguments.Add(new ResourceArgument {
                Name = "1"
            }.Cast <ActivityArgument>());
            createActivity.InputArguments.Add(new ResourceArgument {
                Name = "1_value_"
            }.Cast <ActivityArgument>());
            createActivity.InputArguments.Add(new BoolArgument {
                Name = "1_reverse"
            }.Cast <ActivityArgument>());
            createActivity.InputArguments.Add(new BoolArgument {
                Name = "1_replace"
            }.Cast <ActivityArgument>());

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

            var nextActivity = (CreateImplementation)createActivity.As <WfActivity>().CreateWindowsActivity();


            var inputs = new Dictionary <string, object>
            {
                {
                    "Object", aaManager
                },
                {
                    "1_value_", new List <Entity>()
                    {
                        null
                    }                                                   // NULL (This was a side effect of a problem in the expression engine)
                },
                {
                    "1", reportsTo
                },
                {
                    "1_reverse", true
                },
                {
                    "1_replace", true
                }
            };


            RunActivity(nextActivity, inputs);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Add Create activity
        /// </summary>
        public static Workflow AddCreate(this Workflow wf, string name, string resourceTypeExpression = null, string fromNamed = null, string fromExit = null)
        {
            var ca = new CreateActivity {
                Name = name
            };
            var caAs = ca.As <WfActivity>();

            if (resourceTypeExpression != null)
            {
                AddExpressionToActivityArgument(wf, caAs, "Object", resourceTypeExpression);
            }

            wf.AddActivity(caAs, fromNamed, fromExit);
            AddMissingExpressionParametersToWorkflow(wf);

            return(wf);
        }