public void ParseAndFormat(SampleFeed embeddedDocument) { // arrange var document1 = embeddedDocument.XDocument; // action var tryParseResult = Rss20FeedParser.TryParseRss20Feed(document1, out var feed); Assert.True(tryParseResult); var tryFormatResult = Rss20FeedFormatter.TryFormatRss20Feed(feed, out var document2); Assert.True(tryFormatResult); var xmlWriterSettings = new XmlWriterSettings { Indent = true }; var xmlStringBuilder1 = new StringBuilder(); var xmlStringBuilder2 = new StringBuilder(); using (var xmlWriter1 = XmlWriter.Create(xmlStringBuilder1, xmlWriterSettings)) using (var xmlWriter2 = XmlWriter.Create(xmlStringBuilder2, xmlWriterSettings)) { document1.WriteTo(xmlWriter1); document2.WriteTo(xmlWriter2); xmlWriter1.Flush(); xmlWriter2.Flush(); // assert var xmlString1 = xmlStringBuilder1.ToString(); var xmlString2 = xmlStringBuilder2.ToString(); Assert.Equal(xmlString1, xmlString2); } }
public void ParseWithoutCrashing(SampleFeed embeddedDocument) { // arrange var document = embeddedDocument.XDocument; // action // ReSharper disable once UnusedVariable var tryParseResult = Rss20FeedParser.TryParseRss20Feed(document, out var parsedFeed); // assert Assert.True(tryParseResult); }
public override bool CustomFilter(SampleFeed x) { if (x.XDocument?.Root?.Name != Rss10Constants.RdfNamespace + "RDF") { return(false); } var recognizedNamespaceNames = Rss10Constants.RecognizedNamespaces.Select(y => y.NamespaceName).ToHashSet(); if (!recognizedNamespaceNames.Contains(x.XDocument?.Root?.Attribute("xmlns")?.Value)) { return(false); } return(true); }
public void ParseSampleFeedWithBlueShedSampleExtension(SampleFeed embeddedDocument) { // arrange var document1 = embeddedDocument.JsonDocument; // action var tryParseResult = JsonFeedParser.TryParseJsonFeed(document1, out var feed, new ExtensionManifestDirectory { new BlueShedSampleExtensionManifest() }); Assert.True(tryParseResult); // assert Assert.Equal(1, feed.Extensions.Count); var blueShedExtension = (BlueShedSampleExtension)feed.Extensions.SingleOrDefault(x => x is BlueShedSampleExtension); Assert.NotNull(blueShedExtension); Assert.Equal("https://blueshed-podcasts.com/json-feed-extension-docs", blueShedExtension.About); }
public void ParseAndFormat(SampleFeed embeddedDocument) { // arrange var document1 = embeddedDocument.JsonDocument; // action var tryParseResult = JsonFeedParser.TryParseJsonFeed(document1, out var feed); Assert.True(tryParseResult); var tryFormatResult = JsonFeedFormatter.TryFormatJsonFeed(feed, out var document2); Assert.True(tryFormatResult); using (var stringWriter1 = new StringWriter()) using (var stringWriter2 = new StringWriter()) using (var jsonWriter1 = new JsonTextWriter(stringWriter1) { Formatting = Formatting.Indented, StringEscapeHandling = StringEscapeHandling.EscapeHtml, Indentation = 4, }) using (var jsonWriter2 = new JsonTextWriter(stringWriter2) { Formatting = Formatting.Indented, StringEscapeHandling = StringEscapeHandling.EscapeHtml, Indentation = 4, }) { document1.WriteTo(jsonWriter1); document2.WriteTo(jsonWriter2); jsonWriter1.Flush(); jsonWriter2.Flush(); // assert var jsonString1 = stringWriter1.ToString(); var jsonString2 = stringWriter2.ToString(); Assert.Equal(jsonString1, jsonString2); } }
public override bool CustomFilter(SampleFeed x) => x.XDocument?.Root?.Name == "rss";
public override bool CustomFilter(SampleFeed x) => x.JsonDocument != default;
public override bool CustomFilter(SampleFeed x) => x.XDocument?.Root?.Name.LocalName == "feed";