public void JsonMappingCompoundTo_IsValid()
        {
            //------------Setup for test--------------------------
            //------------Execute Test---------------------------
            Assert.IsNotNull(JsonMappingCompoundTo.IsValidJsonMappingInput(null, null));
            Assert.IsNotNull(JsonMappingCompoundTo.IsValidJsonMappingInput(null, "a"));
            JsonMappingCompoundTo.IsValidJsonMappingInput("a", "a")
            .Should().BeNull();
            JsonMappingCompoundTo.IsValidJsonMappingInput("[[a]],[[b]]", "a")
            .Should().BeNull();
            JsonMappingCompoundTo.IsValidJsonMappingInput("[[a().a]]", "a")
            .Should().BeNull();
            JsonMappingCompoundTo.IsValidJsonMappingInput("[[a()]],[[b]]", "a")
            .Should().NotBeNull();
            JsonMappingCompoundTo.IsValidJsonMappingInput("[[a(*)]],[[b]],[[c().m]]", "a")
            .Should().NotBeNull();
            JsonMappingCompoundTo.IsValidJsonMappingInput("[[a().x]],[[b().y]]", "a")
            .Should().BeNull();

            JsonMappingCompoundTo.IsValidJsonMappingInput("a", "a")
            .Should().BeNull();

            JsonMappingCompoundTo.IsValidJsonMappingInput("a,b", "a")
            .Should().BeNull();
        }
        private void CheckComplexEvaluatedResultIndexed(string expression, string name, int index, string expected, DsfDataObject dataObject)
        {
            var jsonMappingCompound = new JsonMappingCompoundTo(
                env: dataObject.Environment,
                compound: new JsonMappingTo
            {
                SourceName      = expression,
                DestinationName = name
            }
                );
            var a = jsonMappingCompound.ComplexEvaluatedResultIndexed(index);

            if (a is JProperty)
            {
                var jp = new JObject {
                    a
                };
                Assert.AreEqual(expected, jp
                                .ToString(Formatting.None));
            }
            else
            {
                var jp = new JProperty(name, jsonMappingCompound.ComplexEvaluatedResultIndexed(index));
                var j  = new JObject(jp);
                var s  = j.ToString(Formatting.None);
                Assert.AreEqual(expected,
                                s);
            }
        }
示例#3
0
 private static void ParseResultsJSON(JsonMappingCompoundTo x, JObject json)
 {
     if (!x.IsCompound)
     {
         json.Add(new JProperty(
                      x.DestinationName,
                      x.EvaluatedResultIndexed(0))
                  );
     }
     else
     {
         if (!x.EvalResult.IsWarewolfRecordSetResult)
         {
             json.Add(new JProperty(
                          x.DestinationName,
                          x.ComplexEvaluatedResultIndexed(0))
                      );
         }
         else
         {
             if (x.EvalResult.IsWarewolfRecordSetResult)
             {
                 json.Add(
                     x.ComplexEvaluatedResultIndexed(0));
             }
         }
     }
 }
        public void JsonMappingCompoundTo_EvalResultIndexed_NotIsCompound()
        {
            //------------Setup for test--------------------------
            var dataObject = new DsfDataObject(xmldata: string.Empty, dataListId: Guid.NewGuid());

            dataObject.Environment.Assign("[[a]]", "10", 0);
            dataObject.Environment.Assign("[[b]]", "20", 0);
            dataObject.Environment.Assign("[[rec(1).a]]", "50", 0);
            dataObject.Environment.Assign("[[rec(1).b]]", "500", 0);
            dataObject.Environment.Assign("[[rec(2).a]]", "60", 0);
            dataObject.Environment.Assign("[[rec(2).b]]", "600", 0);
            //------------Execute Test---------------------------

            // for scalars
            var jsonMappingCompound = new JsonMappingCompoundTo(
                env: dataObject.Environment,
                compound: new JsonMappingTo
            {
                SourceName      = "[[a]]",
                DestinationName = "myName"
            }
                );

            //------------Assert Results-------------------------
            Assert.IsNotNull(jsonMappingCompound);
            Assert.IsFalse(jsonMappingCompound.IsCompound);
            Assert.AreEqual(jsonMappingCompound.EvaluatedResultIndexed(0), 10);
            Assert.AreEqual(jsonMappingCompound.EvaluatedResultIndexed(1), null);

            // for lists
            jsonMappingCompound = new JsonMappingCompoundTo(
                env: dataObject.Environment,
                compound: new JsonMappingTo
            {
                SourceName      = "[[rec(*).a]]",
                DestinationName = "myName"
            }
                );
            Assert.IsFalse(jsonMappingCompound.IsCompound);
            Assert.AreEqual((new JObject(new JProperty("a", jsonMappingCompound.EvaluatedResultIndexed(0)))).ToString(Formatting.None), "{\"a\":[50,60]}");
            jsonMappingCompound = new JsonMappingCompoundTo(
                env: dataObject.Environment,
                compound: new JsonMappingTo
            {
                SourceName      = "[[rec(*).b]]",
                DestinationName = "myName"
            }
                );
            Assert.AreEqual((new JObject(new JProperty("b", jsonMappingCompound.EvaluatedResultIndexed(1)))).ToString(Formatting.None), "{\"b\":[500,600]}");
        }
        /*
         * protected override bool IsValid(JsonMappingTo item)
         * {
         *  try
         *  {
         *      if (string.IsNullOrEmpty(JsonMappingCompoundTo.IsValidJsonMappingInput(
         *          item.SourceName,
         *          item.DestinationName)))
         *          return true;
         *
         *  }
         *  catch (Exception)
         *  {
         *      return false;
         *  }
         *
         *  return true;
         * }
         * */

        public override IActionableErrorInfo Check()
        {
            var to = GetValue.Invoke();

            ErrorText = JsonMappingCompoundTo.IsValidJsonMappingInput(to.SourceName, to.DestinationName);
            if (string.IsNullOrEmpty(ErrorText))
            {
                return(null);
            }
            return(new ActionableErrorInfo
            {
                ErrorType = ErrorType.Critical,
                Message = ErrorText,
            });
        }
        public void JsonMappingCompoundTo_MaxCount_NotIsCompound()
        {
            //------------Setup for test--------------------------
            var dataObject = new DsfDataObject(xmldata: string.Empty, dataListId: Guid.NewGuid());

            dataObject.Environment.Assign("[[a]]", "10", 0);
            dataObject.Environment.Assign("[[b]]", "20", 0);
            dataObject.Environment.Assign("[[rec(1).a]]", "50", 0);
            dataObject.Environment.Assign("[[rec(1).b]]", "500", 0);
            dataObject.Environment.Assign("[[rec(2).a]]", "60", 0);
            dataObject.Environment.Assign("[[rec(2).b]]", "600", 0);
            //------------Execute Test---------------------------

            var jsonMappingCompound = new JsonMappingCompoundTo(
                env: dataObject.Environment,
                compound: new JsonMappingTo
            {
                SourceName      = "[[rec().a]]",
                DestinationName = "myName"
            }
                );

            //------------Assert Results-------------------------
            Assert.IsNotNull(jsonMappingCompound);
            Assert.IsFalse(jsonMappingCompound.IsCompound);
            Assert.AreEqual(jsonMappingCompound.MaxCount, 1);

            // check for list
            jsonMappingCompound = new JsonMappingCompoundTo(
                env: dataObject.Environment,
                compound: new JsonMappingTo
            {
                SourceName      = "[[rec(*).a]]",
                DestinationName = "myName"
            }
                );
            Assert.IsFalse(jsonMappingCompound.IsCompound);
            Assert.AreEqual(jsonMappingCompound.MaxCount, 2);
        }
        public void JsonMappingCompoundTo_Constructor_SetsProperties_NotIsCompound()
        {
            //------------Setup for test--------------------------
            // ReSharper disable RedundantArgumentName
            var dataObject = new DsfDataObject(xmldata: string.Empty, dataListId: Guid.NewGuid());

            dataObject.Environment.Assign("[[a]]", "10", 0);
            dataObject.Environment.Assign("[[b]]", "20", 0);
            dataObject.Environment.Assign("[[rec(1).a]]", "50", 0);
            dataObject.Environment.Assign("[[rec(1).b]]", "500", 0);
            //------------Execute Test---------------------------

            var jsonMappingCompound = new JsonMappingCompoundTo(
                env: dataObject.Environment,
                compound: new JsonMappingTo {
                SourceName = "[[a]]", DestinationName = "a"
            }
                );

            //------------Assert Results-------------------------
            Assert.IsNotNull(jsonMappingCompound);
            Assert.IsFalse(jsonMappingCompound.IsCompound);
        }
        public void JsonMappingCompoundTo_EvalResultIndexed_IsCompound()
        {
            //------------Setup for test--------------------------
            var dataObject = new DsfDataObject(xmldata: string.Empty, dataListId: Guid.NewGuid());

            dataObject.Environment.Assign("[[a]]", "10", 0);
            dataObject.Environment.Assign("[[b]]", "20", 0);
            dataObject.Environment.Assign("[[rec(1).a]]", "50", 0);
            dataObject.Environment.Assign("[[rec(1).b]]", "500", 0);
            //------------Execute Test---------------------------

            var jsonMappingCompound = new JsonMappingCompoundTo(
                env: dataObject.Environment,
                compound: new JsonMappingTo
            {
                SourceName      = "[[a]],[[b]]",
                DestinationName = "myName"
            }
                );

            //------------Assert Results-------------------------
            Assert.IsNotNull(jsonMappingCompound);
            Assert.IsTrue(jsonMappingCompound.IsCompound);
        }