public void DsfCalculateActivity_GetForEachInputs_NullContext_EmptyList()
        {
            //------------Setup for test--------------------------
            var dsfCalculateActivity = new DsfDotNetCalculateActivity();
            //------------Execute Test---------------------------
            var dsfForEachItems = dsfCalculateActivity.GetForEachInputs();

            //------------Assert Results-------------------------
            Assert.IsFalse(dsfForEachItems.Any());
        }
        public void DsfCalculateActivity_GetOutputs_Called_ShouldReturnListWithResultValueInIt()
        {
            //------------Setup for test--------------------------
            var act = new DsfDotNetCalculateActivity {
                Expression = @"Sum([[scalar]], 10)", Result = "[[result]]"
            };
            //------------Execute Test---------------------------
            var outputs = act.GetOutputs();

            //------------Assert Results-------------------------
            Assert.AreEqual(1, outputs.Count);
            Assert.AreEqual("[[result]]", outputs[0]);
        }
        public void DsfCalculateActivity_UpdateForEachOutputs_GivenNullUpdates_DoNothing()
        {
            //------------Setup for test--------------------------
            const string expression = "sum([[Numeric(1).num]],[[Numeric(2).num]])";
            const string result     = "[[res]]";
            var          act        = new DsfDotNetCalculateActivity {
                Expression = expression, Result = result
            };

            //------------Execute Test---------------------------
            act.UpdateForEachOutputs(null);
            //------------Assert Results-------------------------
            Assert.AreEqual(expression, act.Expression);
        }
        public void DsfCalculateActivity_GetForEachInputs_WhenHasExpression_ReturnsInputList()
        {
            //------------Setup for test--------------------------
            const string expression = "sum([[Numeric(1).num]],[[Numeric(2).num]])";
            var          act        = new DsfDotNetCalculateActivity {
                Expression = expression, Result = "[[res]]"
            };
            //------------Execute Test---------------------------
            var dsfForEachItems = act.GetForEachInputs();

            //------------Assert Results-------------------------
            Assert.AreEqual(1, dsfForEachItems.Count);
            Assert.AreEqual(expression, dsfForEachItems[0].Name);
            Assert.AreEqual(expression, dsfForEachItems[0].Value);
        }
        public void DsfDotNetCalculateActivity_Equal()
        {
            //------------Setup for test--------------------------
            const string expression = "sum([[Numeric(1).num]],[[Numeric(2).num]])";
            const string result     = "[[res]]";
            var          act1       = new DsfDotNetCalculateActivity {
                Expression = expression, Result = result
            };
            var act2 = new DsfDotNetCalculateActivity {
                Expression = expression, Result = result
            };

            //------------Execute Test---------------------------
            //------------Assert Results-------------------------
            Assert.IsTrue(act1.Equals(act2));
        }
        public void DsfCalculateActivity_UpdateForEachOutputs_GivenOneUpdate_UpdatesExpressionToItem2InTuple()
        {
            //------------Setup for test--------------------------
            const string expression = "sum([[Numeric(1).num]],[[Numeric(2).num]])";
            const string result     = "[[res]]";
            var          act        = new DsfDotNetCalculateActivity {
                Expression = expression, Result = result
            };
            var tuple1 = new Tuple <string, string>("[[res]]", "Test");

            //------------Execute Test---------------------------
            act.UpdateForEachOutputs(new List <Tuple <string, string> > {
                tuple1
            });
            //------------Assert Results-------------------------
            Assert.AreEqual("Test", act.Result);
        }
        public void DsfCalculateActivity_UpdateForEachOutputs_GivenMoreThanOneUpdates_DoNothing()
        {
            //------------Setup for test--------------------------
            const string expression = "sum([[Numeric(1).num]],[[Numeric(2).num]])";
            const string result     = "[[res]]";
            var          act        = new DsfDotNetCalculateActivity {
                Expression = expression, Result = result
            };
            var tuple1 = new Tuple <string, string>("Test", "Test");
            var tuple2 = new Tuple <string, string>("Test2", "Test2");

            //------------Execute Test---------------------------
            act.UpdateForEachOutputs(new List <Tuple <string, string> > {
                tuple1, tuple2
            });
            //------------Assert Results-------------------------
            Assert.AreEqual(expression, act.Expression);
        }
        public void DsfDotNetCalculateActivity_GetState_ReturnsStateVariable()
        {
            //------------Setup for test--------------------------
            var dotNetCalculateActivity = new DsfDotNetCalculateActivity {
                Expression = "[[Numeric(1).num]]", Result = "Passed"
            };
            //------------Execute Test---------------------------
            var stateItems = dotNetCalculateActivity.GetState();

            Assert.AreEqual(2, stateItems.Count());

            var expectedResults = new[]
            {
                new StateVariable
                {
                    Name  = "Expression",
                    Type  = StateVariable.StateType.Input,
                    Value = "[[Numeric(1).num]]"
                },
                new StateVariable
                {
                    Name  = "Result",
                    Type  = StateVariable.StateType.Output,
                    Value = "Passed"
                }
            };

            var iter = dotNetCalculateActivity.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);
            }
        }