示例#1
0
        public void SimpleTag()
        {
            var node = new SdlReader("this:is a=`simple` 1 line=\"tag\" on 2021/03/27").ToAst();

            Assert.Equal(1, node.Children.Count);
            Assert.True(node.HasChildAt(0));
            Assert.True(node.HasChildCalled("this:is"));

            node = node.Children[0];
            Assert.Equal(2, node.Attributes.Count);
            Assert.Equal(3, node.Values.Count);
            Assert.Equal("is", node.Name);
            Assert.Equal("this", node.Namespace);
            Assert.Equal("this:is", node.QualifiedName);
            Assert.True(node.HasAttributeCalled("a"));
            Assert.Equal("simple", node.GetAttributeString("a"));
            Assert.True(node.HasAttributeCalled("line"));
            Assert.Equal("tag", node.GetAttributeString("line"));
            Assert.True(node.HasValueAt(0) && node.HasValueAt(1) && node.HasValueAt(2));
            Assert.Equal(1, node.GetValueInteger(0));
            Assert.True(node.GetValueBoolean(1));
            Assert.Equal(new DateTimeOffset(2021, 03, 27, 0, 0, 0, TimeSpan.Zero), node.GetValueDateTime(2));

            var asString = node.ToSdlString(false);

            Assert.StartsWith("this:is 1 true 2021/03/27 00:00:00 ", asString);
            Assert.True(asString.EndsWith("a=`simple` line=`tag` \n") || asString.EndsWith("line=`tag` a=`simple` \n"));
        }
示例#2
0
        public void SimpleMatrix()
        {
            var node = new SdlReader(@"
                matrix {
                    1 1 1
                    2 2 2
                    3 3 3
                }
            ").ToAst();

            var matrix = node.Children[0];

            Assert.Equal(3, matrix.Children.Count); // 3 anonymous tags.
            Assert.Equal(18, matrix.GetChildrenCalled("content")
                         .SelectMany(c => c.Values)
                         .Select(v => v.Integer)
                         .Aggregate((a, b) => a + b)
                         );

            var asString = node.ToSdlString();

            Assert.Equal("matrix {\n    1 1 1 \n    2 2 2 \n    3 3 3 \n}\n", asString);
        }