public async void TestForOneHitOnPageOf10ResultsForBing() { var scraper = new BingSearchScraper(); var occurences = await scraper.GetSiteOccurencesForKeyword("online title search", "infotrackgo.com.au", 10); Assert.Equal(1, occurences.Count); }
public void BingSearchScraper_CanParseMultiplePages() { var SUT = new BingSearchScraper(downloadService: null); var parsedItems = SUT.GetAllSearchResultItems(new string[] { testHtml, testHtml }).ToList(); Assert.NotNull(parsedItems); Assert.True(parsedItems.Count == 8); }
public void BingSearchScraper_CanGenerateSearchUrls() { // ASSERT: // Scraper can generate correct list of urls required to run a search var SUT = new BingSearchScraper(downloadService: null); var keyWords = new string[] { "KEYWORD1", "KEYWORD2" }; var maxSearchResults = 100; var requestUrls = SUT.GetSearchRequestUrls(keyWords, maxSearchResults).ToList(); Assert.NotNull(requestUrls); Assert.True(requestUrls.Count == 10); Assert.True(requestUrls[0] == "https://www.bing.com/search?q=KEYWORD1+KEYWORD2&first=1"); Assert.True(requestUrls[1] == "https://www.bing.com/search?q=KEYWORD1+KEYWORD2&first=11"); Assert.True(requestUrls[9] == "https://www.bing.com/search?q=KEYWORD1+KEYWORD2&first=91"); }
public async Task BingSearchScraper_BadSearch_ReturnsEmptyList() { // ASSERT: // Scraper is able to handle responses with no search results. _downloadService .DownloadWebsitesParallelAsync(urls: Arg.Any <IEnumerable <string> >()) .Returns(new List <string> { notFoundTestHtml }); var SUT = new BingSearchScraper(downloadService: _downloadService); var keyWords = new string[] { "KEYWORD1", "KEYWORD2" }; var maxSearchResults = 100; var searchResults = await SUT.Search(keyWords, maxSearchResults) as List <string>; Assert.NotNull(searchResults); Assert.False(searchResults.Any()); }
public async Task BingSearchScraper_Search_ReturnsValidSearchResults() { // ASSERT: // Scraper is able to process multiple search downloads. // One of the results contains expected substring. _downloadService .DownloadWebsitesParallelAsync(urls: Arg.Any <IEnumerable <string> >()) .Returns(new List <string> { testHtml, testHtml, testHtml }); var SUT = new BingSearchScraper(downloadService: _downloadService); var keyWords = new string[] { "KEYWORD1", "KEYWORD2" }; var maxSearchResults = 100; var expectedSubstring = "www.sympli.com.au"; var searchResults = await SUT.Search(keyWords, maxSearchResults) as List <string>; Assert.NotNull(searchResults); Assert.True(searchResults.Any(r => r.Contains(expectedSubstring))); }