public async void TestForTwoHitsOnPageOf10ResultsForGoogle() { var scraper = new GoogleSearchScraper(); var occurences = await scraper.GetSiteOccurencesForKeyword("online title search", "www.infotrack.com.au", 10); Assert.Equal(2, occurences.Count); }
public void GoogleSearchScraper_CanParseMultiplePages() { var SUT = new GoogleSearchScraper(downloadService: null); var parsedItems = SUT.GetAllSearchResultItems(new string[] { testHtml, testHtml }).ToList(); Assert.NotNull(parsedItems); Assert.True(parsedItems.Count == 8); }
public void GoogleSearchScraper_CanGenerateSearchUrls() { // ASSERT: // Scraper can generate correct list of urls required to run a search var SUT = new GoogleSearchScraper(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.google.com.au/search?q=KEYWORD1+KEYWORD2&start=0"); Assert.True(requestUrls[1] == "https://www.google.com.au/search?q=KEYWORD1+KEYWORD2&start=10"); Assert.True(requestUrls[9] == "https://www.google.com.au/search?q=KEYWORD1+KEYWORD2&start=90"); }
public async Task GoogleSearchScraper_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 GoogleSearchScraper(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 GoogleSearchScraper_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 GoogleSearchScraper(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))); }