コード例 #1
0
        public void Simple()
        {
            XmlDocument sdoc  = new XmlDocument();
            XmlElement  selem = sdoc.CreateElement(tagname);

            selem.InnerText = content;

            StringBuilder     syndication_string = new StringBuilder();
            XmlWriterSettings settings           = new XmlWriterSettings();
            XmlWriter         syndication        = XmlWriter.Create(syndication_string, settings);

            // Simple tests
            XmlSyndicationContent sxml = new XmlSyndicationContent(type, selem);

            Assert.AreEqual(typeof(XmlSyndicationContent), sxml.GetType(), "#S1");
            Assert.AreEqual(type, sxml.Type.ToString(), "#S2");

            // Check correct invalid argument rejection
            try
            {
                sxml.WriteTo(null, "", "");
                Assert.Fail("#S3 Expected an ArgumentNullException to be thrown.");
            }
            catch (ArgumentNullException) { }
            try
            {
                sxml.WriteTo(syndication, "", "");
                Assert.Fail("#S4 Expected an ArgumentException to be thrown.");
            }
            catch (ArgumentException) { }

            syndication.Close();
        }
コード例 #2
0
        public void WriteTo()
        {
            XmlSyndicationContent t  = new XmlSyndicationContent("text/plain", 6, (XmlObjectSerializer)null);
            StringWriter          sw = new StringWriter();

            using (XmlWriter w = CreateWriter(sw))
                t.WriteTo(w, "root", String.Empty);
            Assert.AreEqual("<root type=\"text/plain\"><int xmlns=\"http://schemas.microsoft.com/2003/10/Serialization/\">6</int></root>", sw.ToString());
        }
コード例 #3
0
        public void XmlSerializerExtension()
        {
            DateTime date = new DateTime(2007, 5, 22);

            global::System.Xml.Serialization.XmlSerializer xs =
                new global::System.Xml.Serialization.XmlSerializer(typeof(Content));
            Content item        = new Content();
            string  item_object = "Content";             // tag name for serialized object

            // fill object with some data
            item.author  = author;
            item.comment = comment;
            item.date    = date;

            XmlSyndicationContent se = new XmlSyndicationContent(type, item, xs);

            Assert.AreEqual(typeof(XmlSyndicationContent), se.GetType(), "#SE1");
            Assert.AreEqual(type, se.Type.ToString(), "#SE2");
            Assert.AreSame(item, se.Extension.Object, "#SE3");
            Assert.AreEqual(SyndicationElementExtensionKind.XmlSerializer, se.Extension.ExtensionKind, "#SE4");
            Assert.AreSame(xs, se.Extension.ObjectSerializer, "#SE5");

            // Create fake IO using stringbuilders
            StringBuilder object_string      = new StringBuilder();
            StringBuilder syndication_string = new StringBuilder();

            XmlWriterSettings settings = new XmlWriterSettings();

            XmlWriter serobj      = XmlWriter.Create(object_string, settings);
            XmlWriter syndication = XmlWriter.Create(syndication_string, settings);

            xs.Serialize(serobj, item);
            se.WriteTo(syndication, documentname, "");

            serobj.Close();
            syndication.Close();

            // Pickout the 'Content' tag from original serialized object and syndicated document
            XmlDocument syndoc = new XmlDocument();
            XmlDocument serdoc = new XmlDocument();

            syndoc.LoadXml(syndication_string.ToString());
            XmlNodeList synresult = syndoc.GetElementsByTagName(item_object);
            XmlNodeList syntype   = syndoc.GetElementsByTagName(documentname);

            serdoc.LoadXml(object_string.ToString());
            XmlNodeList serresult = serdoc.GetElementsByTagName(item_object);

            // Check document type
            Assert.AreEqual(type, syntype.Item(0).Attributes.GetNamedItem("type").Value.ToString(),
                            "SE6");
            // Check content
            Assert.AreEqual(serresult.Item(0).OuterXml.ToString(), synresult.Item(0).OuterXml.ToString(),
                            "SE6");
        }
コード例 #4
0
        public void XmlElementExtension()
        {
            XmlDocument xdoc  = new XmlDocument();
            XmlElement  xelem = xdoc.CreateElement(tagname);

            xelem.InnerText = content;

            // Same as Simple tests as setup for XmlElementExtension tests
            XmlSyndicationContent xxml = new XmlSyndicationContent(type, xelem);

            Assert.AreEqual(typeof(XmlSyndicationContent), xxml.GetType(), "#XE1");
            Assert.AreEqual(type, xxml.Type.ToString(), "#XE2");
            Assert.AreSame(xelem, xxml.Extension.Object, "#XE3");
            Assert.AreEqual(SyndicationElementExtensionKind.XmlElement, xxml.Extension.ExtensionKind, "#XE4");
            Assert.AreEqual(null, xxml.Extension.ObjectSerializer, "#XE5");

            // Create fake IO using stringbuilders
            StringBuilder element_string     = new StringBuilder();
            StringBuilder syndication_string = new StringBuilder();

            XmlWriterSettings settings = new XmlWriterSettings();

            XmlWriter element     = XmlWriter.Create(element_string, settings);
            XmlWriter syndication = XmlWriter.Create(syndication_string, settings);

            // Make sure we get the input data back out
            xelem.WriteTo(element);
            xxml.WriteTo(syndication, documentname, "");

            element.Close();
            syndication.Close();

            // Pickout the 'channel' and 'stuff' tags from original and syndicated document
            XmlDocument syndoc = new XmlDocument();
            XmlDocument eledoc = new XmlDocument();

            syndoc.LoadXml(syndication_string.ToString());
            XmlNodeList synresult = syndoc.GetElementsByTagName(tagname);
            XmlNodeList syntype   = syndoc.GetElementsByTagName(documentname);

            eledoc.LoadXml(element_string.ToString());
            XmlNodeList eleresult = eledoc.GetElementsByTagName(tagname);

            // Check document type
            Assert.AreEqual(type, syntype.Item(0).Attributes.GetNamedItem("type").Value.ToString(),
                            "XE6");
            // Check content
            Assert.AreEqual(eleresult.Item(0).OuterXml.ToString(), synresult.Item(0).OuterXml.ToString(),
                            "XE7");
        }
コード例 #5
0
        public void WriteTo_ObjectWithXmlSerializer_ReturnsExpected()
        {
            var extensionObject = new ExtensionObject()
            {
                Value = 10
            };
            var content = new XmlSyndicationContent("type", extensionObject, new XmlSerializer(typeof(ExtensionObject)));

            CompareHelper.AssertEqualWriteOutput(
                @"<OuterElementName type=""type"" xmlns=""OuterElementNamespace"">
    <ExtensionObject xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns:xsd=""http://www.w3.org/2001/XMLSchema"" xmlns="""">
        <Value>10</Value>
    </ExtensionObject>
</OuterElementName>", writer => content.WriteTo(writer, "OuterElementName", "OuterElementNamespace"));
        }
コード例 #6
0
        public void WriteTo_ObjectWithXmlObjectSerializer_ReturnsExpected()
        {
            var extensionObject = new ExtensionObject()
            {
                Value = 10
            };
            var content = new XmlSyndicationContent("type", extensionObject, new DataContractSerializer(typeof(ExtensionObject)));

            CompareHelper.AssertEqualWriteOutput(
                @"<OuterElementName type=""type"" xmlns=""OuterElementNamespace"">
    <XmlSyndicationContentTests.ExtensionObject xmlns:i=""http://www.w3.org/2001/XMLSchema-instance"" xmlns=""http://schemas.datacontract.org/2004/07/System.ServiceModel.Syndication.Tests"">
        <Value>10</Value>
    </XmlSyndicationContentTests.ExtensionObject>
</OuterElementName>", writer => content.WriteTo(writer, "OuterElementName", "OuterElementNamespace"));
        }
コード例 #7
0
        public void WriteTo_WithReader_ReturnsExpected()
        {
            var content = new XmlSyndicationContent(
                new XElement("ParentObject",
                             new XElement("ExtensionObject",
                                          new XElement("Value", 10)
                                          )
                             ).CreateReader()
                );

            CompareHelper.AssertEqualWriteOutput(
                @"<OuterElementName type=""text/xml"" xmlns=""OuterElementNamespace"">
    <ExtensionObject xmlns="""">
        <Value>10</Value>
    </ExtensionObject>
</OuterElementName>", writer => content.WriteTo(writer, "OuterElementName", "OuterElementNamespace"));
        }
コード例 #8
0
		public void WriteTo ()
		{
			XmlSyndicationContent t = new XmlSyndicationContent ("text/plain", 6, (XmlObjectSerializer) null);
			StringWriter sw = new StringWriter ();
			using (XmlWriter w = CreateWriter (sw))
				t.WriteTo (w, "root", String.Empty);
			Assert.AreEqual ("<root type=\"text/plain\"><int xmlns=\"http://schemas.microsoft.com/2003/10/Serialization/\">6</int></root>", sw.ToString ());
		}
コード例 #9
0
		public void XmlSerializerExtension ()
		{
			DateTime date = new DateTime (2007, 5, 22);

			global::System.Xml.Serialization.XmlSerializer xs =
				new global::System.Xml.Serialization.XmlSerializer (typeof (Content));
			Content item = new Content ();
			string item_object = "Content";  // tag name for serialized object

			// fill object with some data
			item.author = author;
			item.comment = comment;
			item.date = date;

			XmlSyndicationContent se = new XmlSyndicationContent (type,item,xs);

			Assert.AreEqual (typeof (XmlSyndicationContent), se.GetType (), "#SE1");
			Assert.AreEqual (type, se.Type.ToString (), "#SE2");
			Assert.AreSame (item, se.Extension.Object, "#SE3");
			Assert.AreEqual (SyndicationElementExtensionKind.XmlSerializer, se.Extension.ExtensionKind, "#SE4");
			Assert.AreSame (xs, se.Extension.ObjectSerializer, "#SE5");

			// Create fake IO using stringbuilders
			StringBuilder object_string = new StringBuilder ();
			StringBuilder syndication_string = new StringBuilder ();

			XmlWriterSettings settings = new XmlWriterSettings ();

			XmlWriter serobj = XmlWriter.Create (object_string, settings);
			XmlWriter syndication = XmlWriter.Create (syndication_string, settings);

			xs.Serialize (serobj, item);
			se.WriteTo (syndication, documentname, "");

			serobj.Close ();
			syndication.Close ();

			// Pickout the 'Content' tag from original serialized object and syndicated document
			XmlDocument syndoc = new XmlDocument ();
			XmlDocument serdoc = new XmlDocument ();

			syndoc.LoadXml (syndication_string.ToString ());
			XmlNodeList synresult = syndoc.GetElementsByTagName (item_object);
			XmlNodeList syntype = syndoc.GetElementsByTagName (documentname);

			serdoc.LoadXml (object_string.ToString ());
			XmlNodeList serresult = serdoc.GetElementsByTagName (item_object);

			// Check document type
			Assert.AreEqual(type, syntype.Item (0).Attributes.GetNamedItem ("type").Value.ToString (),
					     "SE6");
			// Check content
			Assert.AreEqual (serresult.Item (0).OuterXml.ToString (), synresult.Item (0).OuterXml.ToString (),
					      "SE6");
		}
コード例 #10
0
		public void XmlElementExtension ()
		{
			XmlDocument xdoc = new XmlDocument ();
			XmlElement xelem = xdoc.CreateElement (tagname);
			xelem.InnerText = content;

			// Same as Simple tests as setup for XmlElementExtension tests
			XmlSyndicationContent xxml = new XmlSyndicationContent (type, xelem);

			Assert.AreEqual (typeof (XmlSyndicationContent), xxml.GetType (), "#XE1");
			Assert.AreEqual (type, xxml.Type.ToString (), "#XE2");
			Assert.AreSame (xelem, xxml.Extension.Object, "#XE3");
			Assert.AreEqual (SyndicationElementExtensionKind.XmlElement, xxml.Extension.ExtensionKind, "#XE4");
			Assert.AreEqual (null, xxml.Extension.ObjectSerializer, "#XE5");

			// Create fake IO using stringbuilders
			StringBuilder element_string = new StringBuilder ();
			StringBuilder syndication_string = new StringBuilder ();

			XmlWriterSettings settings = new XmlWriterSettings ();

			XmlWriter element = XmlWriter.Create (element_string, settings);
			XmlWriter syndication = XmlWriter.Create (syndication_string, settings);

			// Make sure we get the input data back out
			xelem.WriteTo (element);
			xxml.WriteTo (syndication, documentname, "");

			element.Close ();
			syndication.Close ();

			// Pickout the 'channel' and 'stuff' tags from original and syndicated document
			XmlDocument syndoc = new XmlDocument();
			XmlDocument eledoc = new XmlDocument();

			syndoc.LoadXml (syndication_string.ToString ());
			XmlNodeList synresult = syndoc.GetElementsByTagName (tagname);
			XmlNodeList syntype = syndoc.GetElementsByTagName (documentname);

			eledoc.LoadXml (element_string.ToString ());
			XmlNodeList eleresult = eledoc.GetElementsByTagName (tagname);

			// Check document type
			Assert.AreEqual(type, syntype.Item (0).Attributes.GetNamedItem ("type").Value.ToString (),
					     "XE6");
			// Check content
			Assert.AreEqual (eleresult.Item (0).OuterXml.ToString (), synresult.Item (0).OuterXml.ToString (),
					      "XE7");
		}
コード例 #11
0
		public void Simple ()
		{
			XmlDocument sdoc = new XmlDocument ();
			XmlElement selem = sdoc.CreateElement (tagname);
			selem.InnerText = content;

			StringBuilder syndication_string = new StringBuilder ();
			XmlWriterSettings settings = new XmlWriterSettings ();
			XmlWriter syndication = XmlWriter.Create (syndication_string, settings);

			// Simple tests
			XmlSyndicationContent sxml = new XmlSyndicationContent (type, selem);

			Assert.AreEqual (typeof (XmlSyndicationContent), sxml.GetType (), "#S1");
			Assert.AreEqual (type, sxml.Type.ToString (), "#S2");

			// Check correct invalid argument rejection
			try
			{
				sxml.WriteTo (null, "", "");
				Assert.Fail ("#S3 Expected an ArgumentNullException to be thrown.");
			}
			catch (ArgumentNullException) { }
			try
			{
				sxml.WriteTo (syndication, "", "");
				Assert.Fail ("#S4 Expected an ArgumentException to be thrown.");
			}
			catch (ArgumentException) { }

			syndication.Close ();
		}
コード例 #12
0
        public void WriteTo_WithEmptyReader_ReturnsExpected()
        {
            using (var stringReader = new StringReader("<ParentObject />"))
                using (var reader = XmlReader.Create(stringReader))

                {
                    var content = new XmlSyndicationContent(reader);
                    CompareHelper.AssertEqualWriteOutput(@"<OuterElementName type=""text/xml"" xmlns=""OuterElementNamespace"" />", writer => content.WriteTo(writer, "OuterElementName", "OuterElementNamespace"));
                }
        }