public void DataFunc_DifferentAssigns_Object_Is_Not_Equal()
        {
            //---------------Set up test pack-------------------
            var newGuid            = Guid.NewGuid();
            var commonAssign       = CommonAssign(newGuid);
            var commonAssign1      = CommonAssign(Guid.NewGuid());
            var uniqueId           = Guid.NewGuid().ToString();
            var dsfForEachActivity = new DsfForEachActivity
            {
                UniqueID    = uniqueId,
                DisplayName = "AAA",
                DataFunc    = new ActivityFunc <string, bool>
                {
                    Handler = commonAssign
                }
            };
            var forEach = new DsfForEachActivity
            {
                UniqueID    = uniqueId,
                DisplayName = "AAA",
                DataFunc    = new ActivityFunc <string, bool>
                {
                    Handler = commonAssign1
                }
            };

            //---------------Assert Precondition----------------
            Assert.IsNotNull(dsfForEachActivity);
            //---------------Execute Test ----------------------
            var @equals = dsfForEachActivity.Equals(forEach);

            //---------------Test Result -----------------------
            Assert.IsFalse(@equals);
        }
        DsfForEachActivity SetupArguments(string currentDl, string testData, enForEachType type, bool isInputMapping = false, string inputMapping = null, string from = null, string to = null, string csvIndexes = null, string numberExecutions = null)
        {
            var activityFunction = new ActivityFunc <string, bool>();
            var activity         = inputMapping != null?CreateWorkflow(inputMapping, isInputMapping) : CreateWorkflow();

            activityFunction.Handler = activity;
            var id = Guid.NewGuid().ToString();
            var dsfForEachActivity = new DsfForEachActivity
            {
                DataFunc       = activityFunction,
                ForEachType    = type,
                NumOfExections = numberExecutions,
                From           = @from,
                To             = to,
                CsvIndexes     = csvIndexes,
                UniqueID       = id
            };

            TestStartNode = new FlowStep
            {
                Action = dsfForEachActivity
            };

            CurrentDl = testData;
            TestData  = currentDl;
            return(dsfForEachActivity);
        }
Example #3
0
        public void GivenIHaveAForEachAsExecutions(string activityName, string forEachType, string numberOfExecutions)
        {
            var forEachActivity = new DsfForEachActivity {
                DisplayName = activityName
            };

            Enum.TryParse(forEachType, out enForEachType typeOfForEach);

            forEachActivity.ForEachType    = typeOfForEach;
            forEachActivity.NumOfExections = numberOfExecutions;

            scenarioContext.Add(activityName, forEachActivity);
        }
 public void GetActivityFieldsOffDsfForEachActivityWithADsfMultiAssignActivityInsideItExpectedAllFindMissingFieldsToBeReturned()
 {
     DsfMultiAssignActivity multiAssignActivity = new DsfMultiAssignActivity { FieldsCollection = new List<ActivityDTO> { new ActivityDTO("[[AssignRight1]]", "[[AssignLeft1]]", 1), new ActivityDTO("[[AssignRight2]]", "[[AssignLeft2]]", 2) } };
     DsfForEachActivity activity = new DsfForEachActivity
                                   {
                                       ForEachElementName = "5",
                                       DataFunc = { Handler = multiAssignActivity }
                                   };
     Dev2FindMissingStrategyFactory fac = new Dev2FindMissingStrategyFactory();
     IFindMissingStrategy strategy = fac.CreateFindMissingStrategy(enFindMissingType.ForEach);
     List<string> actual = strategy.GetActivityFields(activity);
     List<string> expected = new List<string> { "[[AssignRight1]]", "[[AssignLeft1]]", "[[AssignRight2]]", "[[AssignLeft2]]", "5" };
     CollectionAssert.AreEqual(expected, actual);
 }
        public void GetActivityFieldsOffDsfForEachActivityExpectedAllFindMissingFieldsToBeReturned()
        {
            DsfForEachActivity activity = new DsfForEachActivity();

            activity.ForEachElementName = "[[ForEachElementName]]";
            Dev2FindMissingStrategyFactory fac      = new Dev2FindMissingStrategyFactory();
            IFindMissingStrategy           strategy = fac.CreateFindMissingStrategy(enFindMissingType.StaticActivity);
            List <string> actual   = strategy.GetActivityFields(activity);
            List <string> expected = new List <string> {
                "[[ForEachElementName]]"
            };

            CollectionAssert.AreEqual(expected, actual);
        }
        public void Dev2FindMissingStrategyFactory_GetActivityFieldsOff_DsfForEach_Activity_ExpectAllFindMissingFieldsToBeReturned()
        {
            var activity = new DsfForEachActivity
            {
                ForEachElementName = "[[ForEachElementName]]"
            };
            var fac      = new Dev2FindMissingStrategyFactory();
            var strategy = fac.CreateFindMissingStrategy(enFindMissingType.StaticActivity);
            var actual   = strategy.GetActivityFields(activity);
            var expected = new List <string> {
                "[[ForEachElementName]]"
            };

            CollectionAssert.AreEqual(expected, actual);
        }
        public void UniqueIDDifferent_EmptySelectAndApply_Object_IsEqual()
        {
            //---------------Set up test pack-------------------
            var uniqueId           = Guid.NewGuid().ToString();
            var dsfForEachActivity = new DsfForEachActivity();
            var forEach            = new DsfForEachActivity();

            //---------------Assert Precondition----------------
            Assert.IsNotNull(dsfForEachActivity);
            //---------------Execute Test ----------------------
            var @equals = dsfForEachActivity.Equals(forEach);

            //---------------Test Result -----------------------
            Assert.IsFalse(@equals);
        }
 public void GetActivityFieldsOffDsfForEachActivityWithADsfActivityInsideItExpectedAllFindMissingFieldsToBeReturned()
 {
     DsfActivity dsfActivity = new DsfActivity
                               {
                                   InputMapping = @"<Inputs><Input Name=""reg"" Source=""NUD2347"" DefaultValue=""NUD2347""><Validator Type=""Required"" /></Input><Input Name=""asdfsad"" Source=""registration223"" DefaultValue=""w3rt24324""><Validator Type=""Required"" /></Input><Input Name=""number"" Source=""[[number]]"" /></Inputs>",
                                   OutputMapping = @"<Outputs><Output Name=""vehicleVin"" MapsTo=""VIN"" Value="""" /><Output Name=""vehicleColor"" MapsTo=""VehicleColor"" Value="""" /><Output Name=""speed"" MapsTo=""speed"" Value="""" Recordset=""Fines"" /><Output Name=""date"" MapsTo=""date"" Value=""Fines.Date"" Recordset=""Fines"" /><Output Name=""location"" MapsTo=""location"" Value="""" Recordset=""Fines"" /></Outputs>"
                               };
     DsfForEachActivity activity = new DsfForEachActivity
                                   {
                                       ForEachElementName = "5",
                                       DataFunc = { Handler = dsfActivity }
                                   };
     Dev2FindMissingStrategyFactory fac = new Dev2FindMissingStrategyFactory();
     IFindMissingStrategy strategy = fac.CreateFindMissingStrategy(enFindMissingType.ForEach);
     List<string> actual = strategy.GetActivityFields(activity);
     List<string> expected = new List<string> { "NUD2347", "registration223", "[[number]]", "Fines.Date", "5" };
     CollectionAssert.AreEqual(expected, actual);
 }
Example #9
0
// ReSharper disable InconsistentNaming
        public void DsfForEach_UpdateDebugParentID_UniqueIdSameIfNestingLevelNotChanged()
// ReSharper restore InconsistentNaming
        {
            var dataObject = new DsfDataObject(CurrentDl, Guid.NewGuid())
            {
                // NOTE: WorkflowApplicationFactory.InvokeWorkflowImpl() will use HostSecurityProvider.Instance.ServerID
                //       if this is NOT provided which will cause the tests to fail!
                ServerID = Guid.NewGuid(),
                IsDebug  = true,
            };

            DsfForEachActivity act = new DsfForEachActivity();
            var originalGuid       = Guid.NewGuid();

            act.UniqueID = originalGuid.ToString();
            act.UpdateDebugParentID(dataObject);
            Assert.AreEqual(originalGuid.ToString(), act.UniqueID);
            Assert.AreEqual(act.GetWorkSurfaceMappingId(), originalGuid);
        }
        public void Equals_Given_Different_Object_Is_Not_Equal_CaseSensitive()
        {
            //---------------Set up test pack-------------------
            var uniqueId           = Guid.NewGuid().ToString();
            var dsfForEachActivity = new DsfForEachActivity {
                UniqueID = uniqueId, DisplayName = "AAA"
            };
            var forEach = new DsfForEachActivity {
                UniqueID = uniqueId, DisplayName = "aaa"
            };

            //---------------Assert Precondition----------------
            Assert.IsNotNull(dsfForEachActivity);
            //---------------Execute Test ----------------------
            var @equals = dsfForEachActivity.Equals(forEach);

            //---------------Test Result -----------------------
            Assert.IsFalse(@equals);
        }
        public void ForEachElementName_Different_Object_Is_Not_Equal()
        {
            //---------------Set up test pack-------------------
            var uniqueId           = Guid.NewGuid().ToString();
            var dsfForEachActivity = new DsfForEachActivity {
                UniqueID = uniqueId, ForEachElementName = "A"
            };
            var forEach = new DsfForEachActivity {
                UniqueID = uniqueId, ForEachElementName = "ass"
            };

            //---------------Assert Precondition----------------
            Assert.IsNotNull(dsfForEachActivity);
            //---------------Execute Test ----------------------
            var @equals = dsfForEachActivity.Equals(forEach);

            //---------------Test Result -----------------------
            Assert.IsFalse(@equals);
        }
        public void Equals_Given_Same_Object_IsEqual()
        {
            //---------------Set up test pack-------------------
            var uniqueId           = Guid.NewGuid().ToString();
            var dsfForEachActivity = new DsfForEachActivity {
                UniqueID = uniqueId, DisplayName = "a"
            };
            var forEach = new DsfForEachActivity {
                UniqueID = uniqueId, DisplayName = "a"
            };

            //---------------Assert Precondition----------------
            Assert.IsNotNull(dsfForEachActivity);
            //---------------Execute Test ----------------------
            var @equals = dsfForEachActivity.Equals(forEach);

            //---------------Test Result -----------------------
            Assert.IsTrue(@equals);
        }
        public void ForEachType_Different_Object_Is_Not_Equal_CaseSensitive()
        {
            //---------------Set up test pack-------------------
            var uniqueId           = Guid.NewGuid().ToString();
            var dsfForEachActivity = new DsfForEachActivity {
                UniqueID = uniqueId, ForEachType = enForEachType.InCSV
            };
            var forEach = new DsfForEachActivity {
                UniqueID = uniqueId, ForEachType = enForEachType.InRange
            };

            //---------------Assert Precondition----------------
            Assert.IsNotNull(dsfForEachActivity);
            //---------------Execute Test ----------------------
            var @equals = dsfForEachActivity.Equals(forEach);

            //---------------Test Result -----------------------
            Assert.IsFalse(@equals);
        }
        public void GetActivityFieldsOffDsfForEachActivityWithADsfActivityInsideItExpectedAllFindMissingFieldsToBeReturned()
        {
            DsfActivity dsfActivity = new DsfActivity();

            dsfActivity.InputMapping  = @"<Inputs><Input Name=""reg"" Source=""NUD2347"" DefaultValue=""NUD2347""><Validator Type=""Required"" /></Input><Input Name=""asdfsad"" Source=""registration223"" DefaultValue=""w3rt24324""><Validator Type=""Required"" /></Input><Input Name=""number"" Source=""[[number]]"" /></Inputs>";
            dsfActivity.OutputMapping = @"<Outputs><Output Name=""vehicleVin"" MapsTo=""VIN"" Value="""" /><Output Name=""vehicleColor"" MapsTo=""VehicleColor"" Value="""" /><Output Name=""speed"" MapsTo=""speed"" Value="""" Recordset=""Fines"" /><Output Name=""date"" MapsTo=""date"" Value=""Fines.Date"" Recordset=""Fines"" /><Output Name=""location"" MapsTo=""location"" Value="""" Recordset=""Fines"" /></Outputs>";
            DsfForEachActivity activity = new DsfForEachActivity();

            activity.ForEachElementName = "5";
            activity.DataFunc.Handler   = dsfActivity;
            Dev2FindMissingStrategyFactory fac      = new Dev2FindMissingStrategyFactory();
            IFindMissingStrategy           strategy = fac.CreateFindMissingStrategy(enFindMissingType.ForEach);
            List <string> actual   = strategy.GetActivityFields(activity);
            List <string> expected = new List <string> {
                "NUD2347", "registration223", "[[number]]", "Fines.Date", "5"
            };

            CollectionAssert.AreEqual(expected, actual);
        }
Example #15
0
        /// <summary>
        /// Gets all the fields for a specific activity
        /// </summary>
        /// <param name="activity">The activity that the fields will be retrieved from</param>
        /// <returns>Returns all the fields in a list of strings</returns>
        public List <string> GetActivityFields(object activity)
        {
            List <string> results = new List <string>();
            Dev2FindMissingStrategyFactory stratFac        = new Dev2FindMissingStrategyFactory();
            DsfForEachActivity             forEachActivity = activity as DsfForEachActivity;

            if (forEachActivity != null)
            {
                IFindMissingStrategy strategy;
                enFindMissingType    findMissingType;
                var boolAct = forEachActivity.DataFunc.Handler as DsfNativeActivity <bool>;
                if (boolAct == null)
                {
                    DsfNativeActivity <string> stringAct = forEachActivity.DataFunc.Handler as DsfNativeActivity <string>;
                    if (stringAct != null)
                    {
                        findMissingType = stringAct.GetFindMissingType();
                        strategy        = stratFac.CreateFindMissingStrategy(findMissingType);
                        results.AddRange(strategy.GetActivityFields(stringAct));
                    }
                }
                else
                {
                    findMissingType = boolAct.GetFindMissingType();
                    strategy        = stratFac.CreateFindMissingStrategy(findMissingType);
                    results.AddRange(strategy.GetActivityFields(boolAct));
                }
            }

            IEnumerable <PropertyInfo> properties = StringAttributeRefectionUtils.ExtractAdornedProperties <FindMissingAttribute>(activity);

            foreach (PropertyInfo propertyInfo in properties)
            {
                object property = propertyInfo.GetValue(activity, null);
                if (property != null)
                {
                    results.Add(property.ToString());
                }
            }

            return(results);
        }
        public void GetActivityFieldsOffDsfForEachActivityWithADsfMultiAssignActivityInsideItExpectedAllFindMissingFieldsToBeReturned()
        {
            DsfMultiAssignActivity multiAssignActivity = new DsfMultiAssignActivity();

            multiAssignActivity.FieldsCollection = new List <ActivityDTO> {
                new ActivityDTO("[[AssignRight1]]", "[[AssignLeft1]]", 1), new ActivityDTO("[[AssignRight2]]", "[[AssignLeft2]]", 2)
            };
            DsfForEachActivity activity = new DsfForEachActivity();

            activity.ForEachElementName = "5";
            activity.DataFunc.Handler   = multiAssignActivity;
            Dev2FindMissingStrategyFactory fac      = new Dev2FindMissingStrategyFactory();
            IFindMissingStrategy           strategy = fac.CreateFindMissingStrategy(enFindMissingType.ForEach);
            List <string> actual   = strategy.GetActivityFields(activity);
            List <string> expected = new List <string> {
                "[[AssignRight1]]", "[[AssignLeft1]]", "[[AssignRight2]]", "[[AssignLeft2]]", "5"
            };

            CollectionAssert.AreEqual(expected, actual);
        }
        public void SequenceActivityFindMissingStrategy_GetActivityFields_WithAssignAndDataMerge_ReturnsAllVariables()
        {
            //------------Setup for test--------------------------
            var multiAssignActivity = new DsfMultiAssignActivity {
                FieldsCollection = new List <ActivityDTO> {
                    new ActivityDTO("[[AssignRight1]]", "[[AssignLeft1]]", 1), new ActivityDTO("[[AssignRight2]]", "[[AssignLeft2]]", 2)
                }
            };

            var dataMergeActivity = new DsfDataMergeActivity {
                Result = "[[Result]]"
            };

            dataMergeActivity.MergeCollection.Add(new DataMergeDTO("[[rec().a]]", "Index", "6", 1, "[[b]]", "Left"));

            var dsfActivity = new DsfActivity {
                InputMapping = @"<Inputs><Input Name=""reg"" Source=""NUD2347"" DefaultValue=""NUD2347""><Validator Type=""Required"" /></Input><Input Name=""asdfsad"" Source=""registration223"" DefaultValue=""w3rt24324""><Validator Type=""Required"" /></Input><Input Name=""number"" Source=""[[number]]"" /></Inputs>", OutputMapping = @"<Outputs><Output Name=""vehicleVin"" MapsTo=""VIN"" Value="""" /><Output Name=""vehicleColor"" MapsTo=""VehicleColor"" Value="""" /><Output Name=""speed"" MapsTo=""speed"" Value="""" Recordset=""Fines"" /><Output Name=""date"" MapsTo=""date"" Value=""Fines.Date"" Recordset=""Fines"" /><Output Name=""location"" MapsTo=""location"" Value="""" Recordset=""Fines"" /></Outputs>"
            };
            var forEachActivity = new DsfForEachActivity {
                ForEachElementName = "5", DataFunc = { Handler = dsfActivity }
            };

            var activity = new DsfSequenceActivity();

            activity.Activities.Add(multiAssignActivity);
            activity.Activities.Add(dataMergeActivity);
            activity.Activities.Add(forEachActivity);

            var fac      = new Dev2FindMissingStrategyFactory();
            var strategy = fac.CreateFindMissingStrategy(enFindMissingType.Sequence);
            //------------Execute Test---------------------------
            var actual = strategy.GetActivityFields(activity);
            //------------Assert Results-------------------------
            var expected = new List <string> {
                "[[AssignRight1]]", "[[AssignLeft1]]", "[[AssignRight2]]", "[[AssignLeft2]]", "[[b]]", "[[rec().a]]", "6", "[[Result]]", "NUD2347", "registration223", "[[number]]", "Fines.Date", "5"
            };

            CollectionAssert.AreEqual(expected, actual);
        }
        public void DsfForEachActivity_Execute_ServiceTestExecution_WithNoUniqueId()
        {
            var uniqueId = Guid.NewGuid();

            var env  = new ExecutionEnvironment();
            var data = new Mock <IDSFDataObject>();

            data.Setup(o => o.Environment).Returns(() => env);
            data.Setup(o => o.IsServiceTestExecution).Returns(() => true);

            var serviceTestMock = new Mock <IServiceTestModelTO>();
            var step            = new ServiceTestStepTO();
            var step_child      = new ServiceTestStepTO {
                UniqueId = uniqueId
            };

            step.Children = new ObservableCollection <IServiceTestStep>()
            {
                step_child
            };
            var testSteps = new List <IServiceTestStep>
            {
                step
            };

            serviceTestMock.Setup(o => o.TestSteps).Returns(() => testSteps);
            var serviceTest = serviceTestMock.Object;

            data.Setup(o => o.ServiceTest).Returns(() => serviceTest);
            var ob = new DsfForEachActivity
            {
                UniqueID = uniqueId.ToString()
            };

            ob.Execute(data.Object, 0);

            Assert.AreEqual("Passed", step_child.Result.Message);
            Assert.AreEqual(RunResult.TestPassed, step_child.Result.RunTestResult);
        }
        public void SequenceActivityFindMissingStrategy_GetActivityFields_WithAssignAndDataMerge_ReturnsAllVariables()
        {
            //------------Setup for test--------------------------
            DsfMultiAssignActivity multiAssignActivity = new DsfMultiAssignActivity { FieldsCollection = new List<ActivityDTO> { new ActivityDTO("[[AssignRight1]]", "[[AssignLeft1]]", 1), new ActivityDTO("[[AssignRight2]]", "[[AssignLeft2]]", 2) } };

            DsfDataMergeActivity dataMergeActivity = new DsfDataMergeActivity { Result = "[[Result]]" };
            dataMergeActivity.MergeCollection.Add(new DataMergeDTO("[[rec().a]]", "Index", "6", 1, "[[b]]", "Left"));

            DsfActivity dsfActivity = new DsfActivity { InputMapping = @"<Inputs><Input Name=""reg"" Source=""NUD2347"" DefaultValue=""NUD2347""><Validator Type=""Required"" /></Input><Input Name=""asdfsad"" Source=""registration223"" DefaultValue=""w3rt24324""><Validator Type=""Required"" /></Input><Input Name=""number"" Source=""[[number]]"" /></Inputs>", OutputMapping = @"<Outputs><Output Name=""vehicleVin"" MapsTo=""VIN"" Value="""" /><Output Name=""vehicleColor"" MapsTo=""VehicleColor"" Value="""" /><Output Name=""speed"" MapsTo=""speed"" Value="""" Recordset=""Fines"" /><Output Name=""date"" MapsTo=""date"" Value=""Fines.Date"" Recordset=""Fines"" /><Output Name=""location"" MapsTo=""location"" Value="""" Recordset=""Fines"" /></Outputs>" };
            DsfForEachActivity forEachActivity = new DsfForEachActivity { ForEachElementName = "5", DataFunc = { Handler = dsfActivity } };

            DsfSequenceActivity activity = new DsfSequenceActivity();
            activity.Activities.Add(multiAssignActivity);
            activity.Activities.Add(dataMergeActivity);
            activity.Activities.Add(forEachActivity);

            Dev2FindMissingStrategyFactory fac = new Dev2FindMissingStrategyFactory();
            IFindMissingStrategy strategy = fac.CreateFindMissingStrategy(enFindMissingType.Sequence);
            //------------Execute Test---------------------------
            List<string> actual = strategy.GetActivityFields(activity);
            //------------Assert Results-------------------------
            List<string> expected = new List<string> { "[[AssignRight1]]", "[[AssignLeft1]]", "[[AssignRight2]]", "[[AssignLeft2]]", "[[b]]", "[[rec().a]]", "6", "[[Result]]", "NUD2347", "registration223", "[[number]]", "Fines.Date", "5" };
            CollectionAssert.AreEqual(expected, actual);
        }
 public void GetActivityFieldsOffDsfForEachActivityExpectedAllFindMissingFieldsToBeReturned()
 {
     DsfForEachActivity activity = new DsfForEachActivity();
     activity.ForEachElementName = "[[ForEachElementName]]";
     Dev2FindMissingStrategyFactory fac = new Dev2FindMissingStrategyFactory();
     IFindMissingStrategy strategy = fac.CreateFindMissingStrategy(enFindMissingType.StaticActivity);
     List<string> actual = strategy.GetActivityFields(activity);
     List<string> expected = new List<string> { "[[ForEachElementName]]" };
     CollectionAssert.AreEqual(expected, actual);
 }
        public void DsfForEachActivity_GetState_ForEachElementName_ReturnsStateVariable()
        {
            //---------------Set up test pack-------------------
            var uniqueId           = Guid.NewGuid().ToString();
            var dsfForEachActivity = new DsfForEachActivity
            {
                ForEachType        = enForEachType.InRecordset,
                From               = "",
                To                 = "",
                CsvIndexes         = "",
                NumOfExections     = "",
                Recordset          = "[[Recordset]]",
                ForEachElementName = "AA"
            };

            //---------------Assert Precondition----------------
            Assert.IsNotNull(dsfForEachActivity);
            //---------------Execute Test ----------------------
            //------------Execute Test---------------------------
            var stateItems = dsfForEachActivity.GetState();

            //------------Assert Results-------------------------
            Assert.AreEqual(7, stateItems.Count());

            var expectedResults = new[]
            { new StateVariable
              {
                  Name  = "ForEachElementName",
                  Type  = StateVariable.StateType.Input,
                  Value = "AA"
              },
              new StateVariable
              {
                  Name  = "ForEachType",
                  Type  = StateVariable.StateType.Input,
                  Value = "InRecordset"
              },
              new StateVariable
              {
                  Name  = "From",
                  Type  = StateVariable.StateType.Input,
                  Value = ""
              },
              new StateVariable
              {
                  Name  = "To",
                  Type  = StateVariable.StateType.Input,
                  Value = ""
              },
              new StateVariable
              {
                  Name  = "CsvIndexes",
                  Type  = StateVariable.StateType.Input,
                  Value = ""
              },
              new StateVariable
              {
                  Name  = "NumOfExections",
                  Type  = StateVariable.StateType.Input,
                  Value = ""
              },
              new StateVariable
              {
                  Name  = "Recordset",
                  Type  = StateVariable.StateType.Input,
                  Value = "[[Recordset]]"
              } };

            var iter = dsfForEachActivity.GetState().Select(
                (item, index) => new
            {
                value       = item,
                expectValue = expectedResults[index]
            }
                );

            //------------Assert Results-------------------------
            foreach (var entry in iter)
            {
                Assert.AreEqual(entry.expectValue.Name, entry.value.Name);
                Assert.AreEqual(entry.expectValue.Type, entry.value.Type);
                Assert.AreEqual(entry.expectValue.Value, entry.value.Value);
            }
        }
Example #22
0
        protected override void BuildDataList()
        {
            scenarioContext.TryGetValue("variableList", out List <Tuple <string, string> > variableList);

            if (variableList == null)
            {
                variableList = new List <Tuple <string, string> >();
                scenarioContext.Add("variableList", variableList);
            }

            variableList.Add(new Tuple <string, string>(ResultRecordsetVariable, ""));

            if (scenarioContext.TryGetValue("outMapTo", out string outMapTo))
            {
                variableList.Add(new Tuple <string, string>(outMapTo, ""));
            }

            BuildShapeAndTestData();

            var activityType = scenarioContext.Get <string>("activityType");

            dynamic activity;

            if (activityType.Equals("Tool"))
            {
                activity = new DsfRandomActivity
                {
                    Result     = ResultRecordsetVariable,
                    RandomType = enRandomType.Numbers,
                    From       = "0",
                    To         = "100"
                };
            }
            else
            {
                activity = new DsfActivity
                {
                    InputMapping  = BuildInputMappings(),
                    OutputMapping = BuildOutputMappings(),
                    ServiceName   = "SpecflowForeachActivityTest"
                };
            }

            var activityFunction = new ActivityFunc <string, bool> {
                Handler = activity
            };
            var foreachType = scenarioContext.Get <enForEachType>("foreachType");

            if (!scenarioContext.TryGetValue("recordset", out string recordSet))
            {
                recordSet = string.Empty;
            }

            if (!scenarioContext.TryGetValue("from", out string from))
            {
                from = string.Empty;
            }

            if (!scenarioContext.TryGetValue("to", out string to))
            {
                to = string.Empty;
            }

            if (!scenarioContext.TryGetValue("numberAs", out string numberAs))
            {
                numberAs = string.Empty;
            }

            var dsfForEach = new DsfForEachActivity
            {
                ForEachType    = foreachType,
                Recordset      = recordSet,
                From           = from,
                To             = to,
                CsvIndexes     = numberAs,
                NumOfExections = numberAs,
                DataFunc       = activityFunction
            };

            TestStartNode = new FlowStep
            {
                Action = dsfForEach
            };

            scenarioContext.Add("activity", dsfForEach);
        }
Example #23
0
        public void AddActivityToActivityList(string parentName, string activityName, Activity activity)
        {
            if (!_scenarioContext.TryGetValue("activityList", out Dictionary <string, Activity> activityList))
            {
                activityList = new Dictionary <string, Activity>();
                _scenarioContext.Add("activityList", activityList);
            }

            if (activityList.TryGetValue(parentName, out Activity parentActivity))
            {
                if (parentActivity is DsfSequenceActivity)
                {
                    var seq = parentActivity as DsfSequenceActivity;
                    seq.Activities.Add(activity);
                }
                else if (parentActivity is DsfForEachActivity)
                {
                    var forEachActivity = parentActivity as DsfForEachActivity;
                    var activityFunc    = new ActivityFunc <string, bool> {
                        Handler = activity
                    };
                    forEachActivity.DataFunc = activityFunc;
                }
            }
            else
            {
                var findAllForEach = activityList.FirstOrDefault(pair =>
                {
                    var forEachActivity = pair.Value as DsfForEachActivity;
                    if (forEachActivity == null)
                    {
                        return(false);
                    }

                    return(forEachActivity.DataFunc.Handler != null && forEachActivity.DataFunc != null && forEachActivity.DataFunc.Handler as DsfForEachActivity != null);
                });
                if (findAllForEach.Value is DsfForEachActivity forEachParentActivity)
                {
                    var activityFunc = new ActivityFunc <string, bool> {
                        Handler = activity
                    };
                    DsfForEachActivity foundCorrectParentForEach = null;
                    while (forEachParentActivity != null)
                    {
                        if (forEachParentActivity.DataFunc?.Handler != null && forEachParentActivity.DataFunc.Handler.DisplayName == parentName)
                        {
                            foundCorrectParentForEach = forEachParentActivity.DataFunc.Handler as DsfForEachActivity;
                            break;
                        }
                        if (forEachParentActivity.DataFunc != null)
                        {
                            forEachParentActivity = forEachParentActivity.DataFunc.Handler as DsfForEachActivity;
                        }
                        else
                        {
                            forEachParentActivity = null;
                        }
                    }
                    if (foundCorrectParentForEach != null)
                    {
                        foundCorrectParentForEach.DataFunc = activityFunc;
                    }
                }
                else
                {
                    activityList.Add(activityName, activity);
                }
            }
        }
Example #24
0
// ReSharper disable InconsistentNaming
        public void DsfForEach_UpdateDebugParentID_UniqueIdNotSameIfNestingLevelIncreased()
// ReSharper restore InconsistentNaming
        {
            var dataObject = new DsfDataObject(CurrentDl, Guid.NewGuid())
            {
                // NOTE: WorkflowApplicationFactory.InvokeWorkflowImpl() will use HostSecurityProvider.Instance.ServerID 
                //       if this is NOT provided which will cause the tests to fail!
                ServerID = Guid.NewGuid(),
                IsDebug = true,
                ForEachNestingLevel = 1
            };

            DsfForEachActivity act = new DsfForEachActivity();
            var originalGuid = Guid.NewGuid();
            act.UniqueID = originalGuid.ToString();
            act.UpdateDebugParentID(dataObject);
            Assert.AreNotEqual(originalGuid.ToString(), act.UniqueID);
            Assert.AreEqual(act.GetWorkSurfaceMappingId(), originalGuid);


        }
Example #25
0
        private DsfForEachActivity SetupArguments(string currentDl, string testData, enForEachType type, bool isInputMapping = false, string inputMapping = null, string from = null, string to = null, string csvIndexes = null, string numberExecutions = null)
        {
            var activityFunction = new ActivityFunc<string, bool>();
            DsfActivity activity = inputMapping != null ? CreateWorkflow(inputMapping, isInputMapping) : CreateWorkflow();

            activityFunction.Handler = activity;
            var id = Guid.NewGuid().ToString();
            DsfForEachActivity dsfForEachActivity = new DsfForEachActivity
                {
                    DataFunc = activityFunction, ForEachType = type, NumOfExections = numberExecutions, From = @from, To = to, CsvIndexes = csvIndexes, UniqueID = id
                };
            TestStartNode = new FlowStep
            {
                Action = dsfForEachActivity
            };

            CurrentDl = testData;
            TestData = currentDl;
            return dsfForEachActivity;
        }
        public void GivenIHaveAForEachAsExecutions(string activityName, string forEachType, string numberOfExecutions)
        {
            DsfForEachActivity forEachActivity = new DsfForEachActivity { DisplayName = activityName };
            enForEachType typeOfForEach;
            Enum.TryParse(forEachType, out typeOfForEach);

            forEachActivity.ForEachType = typeOfForEach;
            forEachActivity.NumOfExections = numberOfExecutions;

            ScenarioContext.Current.Add(activityName, forEachActivity);
        }