public void Ctor_SyndicationLink_Full()
        {
            var original = new SyndicationLink(new Uri("http://microsoft.com"), "relationshipType", "title", "mediaType", 10)
            {
                BaseUri = new Uri("http://baseuri.com")
            };

            original.AttributeExtensions.Add(new XmlQualifiedName("name"), "value");
            original.ElementExtensions.Add(new ExtensionObject {
                Value = 10
            });

            var clone = new SyndicationLinkSubclass(original);

            Assert.NotSame(clone.AttributeExtensions, original.AttributeExtensions);
            Assert.Equal(1, clone.AttributeExtensions.Count);
            Assert.Equal("value", clone.AttributeExtensions[new XmlQualifiedName("name")]);

            Assert.Equal(new Uri("http://baseuri.com"), clone.BaseUri);

            Assert.NotSame(clone.ElementExtensions, original.ElementExtensions);
            Assert.Equal(1, clone.ElementExtensions.Count);
            Assert.Equal(10, clone.ElementExtensions[0].GetObject <ExtensionObject>().Value);

            Assert.Equal(10, clone.Length);
            Assert.Equal("mediaType", clone.MediaType);
            Assert.Equal("relationshipType", clone.RelationshipType);
            Assert.Equal("title", clone.Title);
            Assert.Equal(new Uri("http://microsoft.com"), clone.Uri);
        }
        public void WriteAttributeExtensions_Invoke_ReturnsExpected(string version)
        {
            var link = new SyndicationLinkSubclass();

            CompareHelper.AssertEqualWriteOutput("", writer => link.WriteAttributeExtensionsEntryPoint(writer, version));

            link.AttributeExtensions.Add(new XmlQualifiedName("name1"), "value");
            link.AttributeExtensions.Add(new XmlQualifiedName("name2", "namespace"), "");
            link.AttributeExtensions.Add(new XmlQualifiedName("name3"), null);
            CompareHelper.AssertEqualWriteOutput(@"name1=""value"" d0p1:name2="""" name3=""""", writer => link.WriteAttributeExtensionsEntryPoint(writer, "version"));
        }
        public void Ctor_SyndicationLink_Empty()
        {
            var original = new SyndicationLink();
            var clone    = new SyndicationLinkSubclass(original);

            Assert.Empty(clone.AttributeExtensions);
            Assert.Null(clone.BaseUri);
            Assert.Empty(clone.ElementExtensions);
            Assert.Equal(0, clone.Length);
            Assert.Null(clone.MediaType);
            Assert.Null(clone.RelationshipType);
            Assert.Null(clone.Title);
            Assert.Null(clone.Uri);
        }
        public void Ctor_SyndicationLink_NoExtensions()
        {
            var link  = new SyndicationLink(new Uri("http://microsoft.com"), "relationshipType", "title", "mediaType", 10);
            var clone = new SyndicationLinkSubclass(link);

            Assert.Empty(clone.AttributeExtensions);
            Assert.Null(clone.BaseUri);
            Assert.Empty(clone.ElementExtensions);
            Assert.Equal(link.Length, clone.Length);
            Assert.Same(link.MediaType, clone.MediaType);
            Assert.Same(link.RelationshipType, clone.RelationshipType);
            Assert.Same(link.Title, clone.Title);
            Assert.Same(link.Uri, clone.Uri);
        }
        public void WriteElementExtensions_Invoke_ReturnsExpected(string version)
        {
            var link = new SyndicationLinkSubclass();

            CompareHelper.AssertEqualWriteOutput("", writer => link.WriteElementExtensionsEntryPoint(writer, version));

            link.ElementExtensions.Add(new ExtensionObject {
                Value = 10
            });
            link.ElementExtensions.Add(new ExtensionObject {
                Value = 11
            });
            CompareHelper.AssertEqualWriteOutput(
                @"<SyndicationLinkTests.ExtensionObject xmlns:i=""http://www.w3.org/2001/XMLSchema-instance"" xmlns=""http://schemas.datacontract.org/2004/07/System.ServiceModel.Syndication.Tests"">
    <Value>10</Value>
</SyndicationLinkTests.ExtensionObject>
<SyndicationLinkTests.ExtensionObject xmlns:i=""http://www.w3.org/2001/XMLSchema-instance"" xmlns=""http://schemas.datacontract.org/2004/07/System.ServiceModel.Syndication.Tests"">
    <Value>11</Value>
</SyndicationLinkTests.ExtensionObject>", writer => link.WriteElementExtensionsEntryPoint(writer, version));
        }
        public void WriteElementExtensions_NullWriter_ThrowsArgumentNullException()
        {
            var link = new SyndicationLinkSubclass();

            AssertExtensions.Throws <ArgumentNullException>("writer", () => link.WriteElementExtensionsEntryPoint(null, "version"));
        }
        public void TryParseElement_Invoke_ReturnsFalse(XmlReader reader, string version)
        {
            var link = new SyndicationLinkSubclass();

            Assert.False(link.TryParseElementEntryPoint(reader, version));
        }
        public void TryParseAttribute_Invoke_ReturnsFalse(string name, string ns, string value, string version)
        {
            var link = new SyndicationLinkSubclass();

            Assert.False(link.TryParseAttributeEntryPoint(name, ns, value, version));
        }