예제 #1
0
        public void ReadFrom_ReferencedCategoriesDocumentTryParseTrue_ReturnsExpected()
        {
            using (var stringReader = new StringReader(
                       @"<app:categories xmlns:a10=""http://www.w3.org/2005/Atom"" xml:base=""http://referencecategories_url.com/"" xml:lang=""referencecategories_language"" href=""http://referencecategories_link.com/"" referencecategories_name1="""" d1p1:referencecategories_name2="""" d1p1:referencecategories_name3=""referencecategories_value"" d1p2:referencecategories_name4="""" xmlns:d1p2=""xmlns"" xmlns:d1p1=""referencecategories_namespace"" xmlns:app=""http://www.w3.org/2007/app"">
    <AtomPub10CategoriesDocumentFormatterTests.ExtensionObject xmlns:i=""http://www.w3.org/2001/XMLSchema-instance"" xmlns=""http://schemas.datacontract.org/2004/07/System.ServiceModel.Syndication.Tests"">
        <Value>10</Value>
    </AtomPub10CategoriesDocumentFormatterTests.ExtensionObject>
</app:categories>"))
                using (XmlReader reader = XmlReader.Create(stringReader))
                {
                    var formatter = new AtomPub10CategoriesDocumentFormatter(typeof(InlineCategoriesDocumentTryParseTrueSubclass), typeof(ReferencedCategoriesDocumentTryParseTrueSubclass));
                    formatter.ReadFrom(reader);

                    ReferencedCategoriesDocumentTryParseTrueSubclass document = Assert.IsType <ReferencedCategoriesDocumentTryParseTrueSubclass>(formatter.Document);
                    Assert.Empty(document.AttributeExtensions);
                    Assert.Equal(new Uri("http://referencecategories_url.com/"), document.BaseUri);
                    Assert.Empty(document.ElementExtensions);
                    Assert.Equal("referencecategories_language", document.Language);
                    Assert.Equal(new Uri("http://referencecategories_link.com"), document.Link);
                }
        }
예제 #2
0
        public override void WriteToStream(Type type, object value, Stream writeStream, HttpContent content)
        {
            var document = value as IPublicationCategoriesDocument;

            var atomDoc = new InlineCategoriesDocument(
                document.Categories.Select(c => new SyndicationCategory(c.Name)
            {
                Label = c.Label
            }),
                document.IsFixed,
                document.Scheme
                );

            var formatter = new AtomPub10CategoriesDocumentFormatter(atomDoc);

            using (writeStream) {
                using (var writer = XmlWriter.Create(writeStream)) {
                    formatter.WriteTo(writer);
                }
            }
        }
        public void GetSchema_Invoke_ReturnsNull()
        {
            IXmlSerializable formatter = new AtomPub10CategoriesDocumentFormatter();

            Assert.Null(formatter.GetSchema());
        }
        public void ReadXml_NullReader_ThrowsArgumentNullException()
        {
            IXmlSerializable formatter = new AtomPub10CategoriesDocumentFormatter();

            AssertExtensions.Throws <ArgumentNullException>("reader", () => formatter.ReadXml(null));
        }
        public void ReadFrom_NullReader_ThrowsArgumentNullException()
        {
            var formatter = new AtomPub10CategoriesDocumentFormatter();

            AssertExtensions.Throws <ArgumentNullException>("reader", () => formatter.ReadFrom(null));
        }
        private static void VerifyRead <T>(string xmlString, Action <T> verifyAction) where T : CategoriesDocument
        {
            // ReadFrom.
            using (var stringReader = new StringReader(xmlString))
                using (XmlReader reader = XmlReader.Create(stringReader))
                {
                    var formatter = new AtomPub10CategoriesDocumentFormatter();
                    formatter.ReadFrom(reader);

                    T document = Assert.IsType <T>(formatter.Document);
                    verifyAction(document);
                }

            // ReadFrom with custom subclass.
            using (var stringReader = new StringReader(xmlString))
                using (XmlReader reader = XmlReader.Create(stringReader))
                {
                    var formatter = new AtomPub10CategoriesDocumentFormatter(typeof(InlineCategoriesDocumentSubclass), typeof(ReferencedCategoriesDocumentSubclass));
                    formatter.ReadFrom(reader);

                    if (typeof(T) == typeof(InlineCategoriesDocument))
                    {
                        InlineCategoriesDocumentSubclass document = Assert.IsType <InlineCategoriesDocumentSubclass>(formatter.Document);
                        verifyAction(document as T);
                    }
                    else
                    {
                        ReferencedCategoriesDocumentSubclass document = Assert.IsType <ReferencedCategoriesDocumentSubclass>(formatter.Document);
                        verifyAction(document as T);
                    }
                }

            // ReadXml.
            using (var stringReader = new StringReader(xmlString))
                using (XmlReader reader = XmlReader.Create(stringReader))
                {
                    reader.MoveToContent();

                    var formatter = new AtomPub10CategoriesDocumentFormatter();
                    ((IXmlSerializable)formatter).ReadXml(reader);

                    T document = Assert.IsType <T>(formatter.Document);
                    verifyAction(document);
                }

            // ReadXml with custom subclass.
            using (var stringReader = new StringReader(xmlString))
                using (XmlReader reader = XmlReader.Create(stringReader))
                {
                    reader.MoveToContent();

                    var formatter = new AtomPub10CategoriesDocumentFormatter(typeof(InlineCategoriesDocumentSubclass), typeof(ReferencedCategoriesDocumentSubclass));
                    ((IXmlSerializable)formatter).ReadXml(reader);

                    if (typeof(T) == typeof(InlineCategoriesDocument))
                    {
                        InlineCategoriesDocumentSubclass document = Assert.IsType <InlineCategoriesDocumentSubclass>(formatter.Document);
                        verifyAction(document as T);
                    }
                    else
                    {
                        ReferencedCategoriesDocumentSubclass document = Assert.IsType <ReferencedCategoriesDocumentSubclass>(formatter.Document);
                        verifyAction(document as T);
                    }
                }

            // Load.
            using (var stringReader = new StringReader(xmlString))
                using (XmlReader reader = XmlReader.Create(stringReader))
                {
                    T document = Assert.IsType <T>(CategoriesDocument.Load(reader));
                    verifyAction(document);
                }
        }
        public void WriteTo_NullWriter_ThrowsArgumentNullException()
        {
            var formatter = new AtomPub10CategoriesDocumentFormatter();

            AssertExtensions.Throws <ArgumentNullException>("writer", () => formatter.WriteTo(null));
        }
        public void GetSchema()
        {
            IXmlSerializable i = new AtomPub10CategoriesDocumentFormatter();

            Assert.IsNull(i.GetSchema());
        }