public GetRssFeedContentResponse GetRssFeedContent(GetRssFeedContentCommand command) { Guard.Against.Null(command, nameof(command)); using var reader = XmlReader.Create(command.Url); var feed = SyndicationFeed.Load(reader); var response = SetupResponse(feed); foreach (var feedItem in feed.Items) { var contentItem = MakeContentItem(feedItem); response.ContentItems.Add(contentItem); } foreach (var contentItem in response.ContentItems) { var doc = new HtmlDocument(); doc.LoadHtml(contentItem.SummaryText); var imageNodes = doc.DocumentNode.SelectNodes("//img"); foreach (var imageNode in imageNodes) { imageNode.ParentNode.RemoveChild(imageNode); } contentItem.SummaryTextWithNoImages = doc.DocumentNode.OuterHtml; } response.Link = command.Url; return(response); }
public void Service__RssFeedContent__MichaelHyatt() { // arrange var command = new GetRssFeedContentCommand { Url = "https://michaelhyatt.com/feed/" }; // act var response = _service.GetRssFeedContent(command); // assert Assert.NotNull(response); }
public void Service__RssFeedContent__MichaelHyattNoImagesInSummaryText() { // arrange var command = new GetRssFeedContentCommand { Url = "https://michaelhyatt.com/feed/" }; // act var response = _service.GetRssFeedContent(command); // assert foreach (var item in response.ContentItems) { Assert.IsTrue(item.SummaryTextWithNoImages.IndexOf("<img") == -1); } }
public void Service__RssFeedContent__MyBlog() { // arrange var command = new GetRssFeedContentCommand { Url = "http://inspiredtoeducate.net/inspiredtoeducate/feed/" }; // act var response = _service.GetRssFeedContent(command); // assert Assert.NotNull(response); foreach (var item in response.ContentItems) { Assert.True(!string.IsNullOrEmpty(item.Content)); } }