Esempio n. 1
0
        private XmlDocument GetRoundTrippedXml(RVariant variant, string rootName)
        {
            XmlDocument xml = variant.ToXml(rootName);

            byte[] xmlRaw;
            using (MemoryStream ms = new MemoryStream())
            {
                using (XmlWriter xw = new XmlTextWriter(ms, Encoding.UTF8))
                    xml.WriteTo(xw);
                xmlRaw = ms.ToArray();
            }
            xml = new XmlDocument();
            xml.Load(new MemoryStream(xmlRaw));
            return(xml);
        }
Esempio n. 2
0
        public void TestXmlAndComplexEquality()
        {
            string   rootName;
            RVariant roundtripped;

            roundtripped = new RVariant(GetRoundTrippedXml(valStub, "valStub"), out rootName);
            Assert.AreEqual("valStub", rootName);
            Assert_RVariantsAreEqual(valStub, roundtripped);

            roundtripped = new RVariant(GetRoundTrippedXml(valOneLevelList, "valOneLevelList"), out rootName);
            Assert.AreEqual("valOneLevelList", rootName);
            Assert_RVariantsAreEqual(valOneLevelList, roundtripped);

            roundtripped = new RVariant(GetRoundTrippedXml(valOneLevelDict, "valOneLevelDict"), out rootName);
            Assert.AreEqual("valOneLevelDict", rootName);
            Assert_RVariantsAreEqual(valOneLevelDict, roundtripped);

            roundtripped = new RVariant(GetRoundTrippedXml(valComplex, "valComplex"), out rootName);
            Assert.AreEqual("valComplex", rootName);
            Assert_RVariantsAreEqual(valComplex, roundtripped);

            // Complex XML test - add each of the above to a separate xml element
            XmlDocument xml = new XmlDocument();

            xml.AppendChild(xml.CreateElement("test"));
            XmlElement elStub         = xml.CreateElement("stub");
            XmlElement elOneLevelList = xml.CreateElement("oneLevelList");
            XmlElement elOneLevelDict = xml.CreateElement("oneLevelDict");
            XmlElement elComplex      = xml.CreateElement("complex");

            xml.DocumentElement.AppendChild(elStub);
            xml.DocumentElement.AppendChild(elOneLevelList);
            xml.DocumentElement.AppendChild(elOneLevelDict);
            xml.DocumentElement.AppendChild(elComplex);
            valStub.ToXml(elStub);
            valOneLevelList.ToXml(elOneLevelList);
            valOneLevelDict.ToXml(elOneLevelDict);
            valComplex.ToXml(elComplex);

            byte[] xmlRaw;
            using (MemoryStream ms = new MemoryStream())
            {
                using (XmlWriter xw = new XmlTextWriter(ms, Encoding.UTF8))
                    xml.WriteTo(xw);
                xmlRaw = ms.ToArray();
            }

            xml = new XmlDocument();
            xml.Load(new MemoryStream(xmlRaw));
            elStub = elOneLevelList = elOneLevelDict = elComplex = null;

            // what a fugly long-winded way of accessing xml elements...
            // good thing there's RVariant!...
            elStub         = (XmlElement)xml.DocumentElement.GetElementsByTagName("stub")[0];
            elOneLevelList = (XmlElement)xml.DocumentElement.GetElementsByTagName("oneLevelList")[0];
            elOneLevelDict = (XmlElement)xml.DocumentElement.GetElementsByTagName("oneLevelDict")[0];
            elComplex      = (XmlElement)xml.DocumentElement.GetElementsByTagName("complex")[0];
            Assert_RVariantsAreEqual(valStub, new RVariant(elStub));
            Assert_RVariantsAreEqual(valOneLevelList, new RVariant(elOneLevelList));
            Assert_RVariantsAreEqual(valOneLevelDict, new RVariant(elOneLevelDict));
            Assert_RVariantsAreEqual(valComplex, new RVariant(elComplex));
        }
Esempio n. 3
0
 private XmlDocument GetRoundTrippedXml(RVariant variant, string rootName)
 {
     XmlDocument xml = variant.ToXml(rootName);
     byte[] xmlRaw;
     using (MemoryStream ms = new MemoryStream())
     {
         using (XmlWriter xw = new XmlTextWriter(ms, Encoding.UTF8))
             xml.WriteTo(xw);
         xmlRaw = ms.ToArray();
     }
     xml = new XmlDocument();
     xml.Load(new MemoryStream(xmlRaw));
     return xml;
 }