public void WritePrioritizeInnerXmlSpaceTest()
        {
            var root = new SavannahTagNode
            {
                TagName            = "root",
                PrioritizeInnerXml = "       aaaaaa\naa\n  aaaa"
            };

            var exp = new SavannahTagNode
            {
                TagName    = "root",
                InnerText  = "       aaaaaa\naa\n  aaaa",
                ChildNodes = new[]
                {
                    new SavannahTextNode
                    {
                        InnerText = "       aaaaaa\naa\n  aaaa"
                    },
                }
            };

            root.ResolvePrioritizeInnerXml(false);

            var xml    = $"{SavannahXmlConstants.Declaration}\n{root}";
            var data   = Encoding.UTF8.GetBytes(xml);
            var stream = new MemoryStream();

            stream.Write(data, 0, data.Length);
            stream.Position = 0;

            var reader = new SavannahXmlReader(stream);
            var node   = reader.GetAllNodes();

            Assert.AreEqual(exp, node);
        }
Exemple #2
0
        public void WritePrioritizeInnerXmlSpaceTest2()
        {
            var root = new SavannahTagNode
            {
                TagName            = "root",
                PrioritizeInnerXml = "aaa\n<br />\n       bbb\n<br />\nbbb\n<br />\ncccc\n<test>\n  <bbb />\n</test>\n"
            };

            var exp = new SavannahTagNode
            {
                TagName    = "root",
                ChildNodes = new AbstractSavannahXmlNode[]
                {
                    new SavannahTextNode
                    {
                        InnerText = "aaa"
                    },
                    new SavannahTagNode
                    {
                        TagName = "br"
                    },
                    new SavannahTextNode
                    {
                        InnerText = "       bbb"
                    },
                    new SavannahTagNode
                    {
                        TagName = "br"
                    },
                    new SavannahTextNode
                    {
                        InnerText = "bbb"
                    },
                    new SavannahTagNode
                    {
                        TagName = "br"
                    },
                    new SavannahTextNode
                    {
                        InnerText = "cccc"
                    },
                    new SavannahTagNode
                    {
                        TagName    = "test",
                        ChildNodes = new []
                        {
                            new SavannahTagNode
                            {
                                TagName = "bbb"
                            }
                        }
                    }
                }
            };

            root.ResolvePrioritizeInnerXml(false);

            Assert.AreEqual(exp, root);
        }
        /// <summary>
        /// Writes the XML to the specified file.
        /// </summary>
        /// <param name="stream">Stream to be written</param>
        /// <param name="root">The root of the XML to be written</param>
        public void Write(Stream stream, SavannahTagNode root)
        {
            root.ResolvePrioritizeInnerXml(IgnoreComments);
            var xml         = root.ToString();
            var declaration = xDeclaration.OuterXml;
            var data        = Encoding.UTF8.GetBytes($"{declaration}\n{xml}\n");

            stream.Write(data, 0, data.Length);
        }
Exemple #4
0
        public void AddBeforeSameChildTest()
        {
            var root = new SavannahTagNode
            {
                TagName            = "root",
                PrioritizeInnerXml = "<br />\naaaa\n<br />\nbbb\n<br />\nccc"
            };

            root.ResolvePrioritizeInnerXml();

            var exp = new SavannahTagNode
            {
                TagName    = "root",
                ChildNodes = new AbstractSavannahXmlNode[]
                {
                    new SavannahTagNode
                    {
                        TagName = "br"
                    },
                    new SavannahTagNode
                    {
                        TagName = "br"
                    },
                    new SavannahTextNode
                    {
                        InnerText = "aaaa"
                    },
                    new SavannahTextNode
                    {
                        InnerText = "bbb"
                    },
                    new SavannahTagNode
                    {
                        TagName = "br"
                    },
                    new SavannahTextNode
                    {
                        InnerText = "ccc"
                    }
                }
            };

            var newNode = root.ChildNodes.ElementAt(2);
            var target  = root.ChildNodes.ElementAt(1);

            root.RemoveChildElement(newNode);
            root.AddBeforeChildElement(target, newNode);

            Assert.AreEqual(exp, root);
        }
Exemple #5
0
        public void OutterXmlTest()
        {
            var commonXmlNode2 = new SavannahTagNode
            {
                TagName    = "root",
                ChildNodes = new[]
                {
                    new SavannahTagNode
                    {
                        TagName    = "ChildNode",
                        Attributes = new AttributeInfo[]
                        {
                            new AttributeInfo
                            {
                                Name  = "name",
                                Value = "attr"
                            }
                        },
                        ChildNodes = new[]
                        {
                            new SavannahTextNode
                            {
                                InnerText = "Value"
                            }
                        }
                    }
                }
            };

            var exp = "<root>\n  <ChildNode name=\"attr\">\n    Value\n  </ChildNode>\n</root>";

            commonXmlNode2.ResolvePrioritizeInnerXml();
            var act = commonXmlNode2.ChildNodes.First().OutterXml;

            Assert.AreEqual(exp, act);
        }
Exemple #6
0
        public void PrioritizeInnerXmlSpaceTest()
        {
            var root = new SavannahTagNode
            {
                TagName            = "root",
                PrioritizeInnerXml = "test\n  test2\ntest3"
            };

            var exp = new SavannahTagNode
            {
                TagName    = "root",
                ChildNodes = new[]
                {
                    new SavannahTextNode
                    {
                        InnerText = "test\n  test2\ntest3"
                    }
                }
            };

            root.ResolvePrioritizeInnerXml(false);

            Assert.AreEqual(exp, root);
        }
Exemple #7
0
        public void PrioritizeInnerXmlCommentTest()
        {
            var root = new SavannahTagNode
            {
                TagName            = "root",
                PrioritizeInnerXml = "<!--\n  more\n  more2\n-->"
            };

            var exp = new SavannahTagNode
            {
                TagName    = "root",
                ChildNodes = new []
                {
                    new SavannahCommentNode
                    {
                        InnerText = "more\nmore2"
                    }
                }
            };

            root.ResolvePrioritizeInnerXml(false);

            Assert.AreEqual(exp, root);
        }
Exemple #8
0
        public void PrioritizeInnerXmlTest()
        {
            var root = new SavannahTagNode
            {
                TagName    = "root",
                ChildNodes = new AbstractSavannahXmlNode[]
                {
                    new SavannahTagNode
                    {
                        TagName            = "cov",
                        PrioritizeInnerXml = "<test>test<br />aaaa<br />bbb</test>"
                    },
                    new SavannahTextNode
                    {
                        InnerText = "value"
                    }
                }
            };

            var exp = new SavannahTagNode
            {
                TagName    = "root",
                ChildNodes = new AbstractSavannahXmlNode[]
                {
                    new SavannahTagNode
                    {
                        TagName    = "cov",
                        ChildNodes = new []
                        {
                            new SavannahTagNode
                            {
                                TagName    = "test",
                                InnerText  = "test\naaaa\nbbb",
                                ChildNodes = new AbstractSavannahXmlNode[]
                                {
                                    new SavannahTextNode
                                    {
                                        InnerText = "test"
                                    },
                                    new SavannahTagNode
                                    {
                                        TagName = "br"
                                    },
                                    new SavannahTextNode
                                    {
                                        InnerText = "aaaa"
                                    },
                                    new SavannahTagNode
                                    {
                                        TagName = "br"
                                    },
                                    new SavannahTextNode
                                    {
                                        InnerText = "bbb"
                                    }
                                }
                            }
                        }
                    },
                    new SavannahTextNode
                    {
                        InnerText = "value"
                    }
                }
            };

            root.ResolvePrioritizeInnerXml();

            Assert.AreEqual(exp, root);
        }