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); } }
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()); }