示例#1
0
        public void Test_Expressions()
        {
            var d = new Dictionary <string, object>
            {
                { "name", "John" }
            };

            var scope = new ContentObject(d, d, ContentFactory.Default);

            var e = new CreateObjectExpression(new List <CreateObjectExpression.Element>
            {
                new CreateObjectExpression.Attribute
                {
                    Name  = "name",
                    Value = new PathExpression(new ScopeRootExpression(), ContentPath.Parse("$.name"))
                },

                new CreateObjectExpression.Attribute
                {
                    Name  = "age",
                    Value = new ConstantExpression(new ContentNumber(45))
                }
            });

            var issue = e.TryEvaluate(scope, out IContentNode result);

            Assert.IsNull(issue);

            var jToken = result.ToJson();

            var poco = jToken.ToObject <R>();

            Assert.AreEqual("John", poco.name);
            Assert.AreEqual(45, poco.age);
        }