using Newsbot.Collector.Services.HtmlParser; namespace Newsbot.Collector.Tests.Services; public class HtmlPageReaderTests { [Fact] public void BaseSiteContainsRssFeed() { var client = new HtmlPageReader(new HtmlPageReaderOptions { Url = "https://dotnettutorials.net/" }); var headClient = new HeadParserClient(client.GetSiteContent()); var feedUri = headClient.GetSiteFeed(); if (feedUri == "") Assert.Fail("Failed to find the RSS feed"); } [Fact] public void SiteDoesNotReturnRssFeed() { var client = new HtmlPageReader(new HtmlPageReaderOptions { Url = "https://www.engadget.com/" }); var headClient = new HeadParserClient(client.GetSiteContent()); var feedUri = headClient.GetSiteFeed(); if (feedUri == "") Assert.Fail(""); } [Fact] public void CanFindBodyOfTheArticle() { var client = new HtmlPageReader(new HtmlPageReaderOptions { Url = "https://www.engadget.com/apple-is-convinced-my-dog-is-stalking-me-143100932.html" }); var c = client.CollectPostContent(); Console.WriteLine(c); } [Fact] public void FindYoutubeChannelId() { var url = "https://www.youtube.com/@CityPlannerPlays"; //var b = new BrowserClient(); //var pageSource = b.GetPageSource(url); var client = new HtmlPageReader(new HtmlPageReaderOptions { Url = url }); client.Parse(); if (client.Data.Header.YoutubeChannelID is null) Assert.Fail("missing youtube id"); } [Fact] public void CanExtractHeadersFromReddit() { var url = "https://www.reddit.com/"; var client = new HtmlPageReader(new HtmlPageReaderOptions { Url = url }); client.Parse(); if (client.Data.Header.Image == "") Assert.Fail("missing an expected image from the reddit header."); } [Fact] public void CanExtractHeadersFromSubreddit() { var url = "https://www.reddit.com/r/ffxiv"; var client = new HtmlPageReader(new HtmlPageReaderOptions { Url = url }); client.Parse(); if (client.Data.Header.Image == "") Assert.Fail("missing an expected image from the reddit header."); } }