public void GetGoogleSearches_ValidQuery_ReturnsCorrectInfo() { var query = "dog"; var lang = "en"; var service = new GetGoogleService(query, lang); List <SearchResult> results = service.GetGoogleSearches().Result; Assert.AreNotEqual(0, results.Count); SearchResult first = results[0]; StringAssert.Contains(first.Header.ToLower(), query); StringAssert.Contains(first.Link, query); StringAssert.Contains(first.Link, "http"); StringAssert.Contains(first.Description.ToLower(), query); // Test next page results (not empty, different from first page, valid result) var nextPageService = new GetGoogleService(query, lang, start: 10); List <SearchResult> nextPageResults = nextPageService.GetGoogleSearches().Result; Assert.AreNotEqual(0, nextPageResults.Count); CollectionAssert.AreNotEqual(results, nextPageResults); SearchResult nextFirst = results[0]; StringAssert.Contains(nextFirst.Header.ToLower(), query); StringAssert.Contains(nextFirst.Link, query); StringAssert.Contains(nextFirst.Link, "http"); StringAssert.Contains(nextFirst.Description.ToLower(), query); }
public async Task DoWork() { if (_queryUnchanged) { // Reuse old results Messenger.Base.Send(new OldQueryMsg()); viewService.ShowView(); } else { // Flush old results waiting for new results Messenger.Base.Send(new NewQueryMsg(Query)); GetGoogleService service = new GetGoogleService(Query, _langCode.LangToCode(Language)); var results = await service.GetGoogleSearches(); if (results == null || results.Count == 0) { throw new NoResultException(); } // Send new results and show results view Messenger.Base.Send(results); _queryUnchanged = true; viewService.ShowView(); } }
// New page of search result needed so fetch it and send to requester private async void OnFetchResultsMsgReceived(FetchResultsMsg m) { GetGoogleService service = new GetGoogleService(m.query, _langCode.LangToCode(Language), m.start); var results = await service.GetGoogleSearches(); Messenger.Base.Send(results); _queryUnchanged = true; }
public void GetGoogleSearches_DifferentLanguage_ReturnsDifferentResults() { var query = "dog"; var langEng = "en"; var serviceEng = new GetGoogleService(query, langEng); List <SearchResult> resultsEng = serviceEng.GetGoogleSearches().Result; var langJap = "jp"; var serviceJap = new GetGoogleService(query, langJap); List <SearchResult> resultsJap = serviceJap.GetGoogleSearches().Result; CollectionAssert.AreNotEqual(resultsEng, resultsJap); }
public void GetGoogleSearches_VideoQuery_ReturnsCorrectInfo() { var query = "aimer youtube"; var service = new GetGoogleService(query, "auto"); List <SearchResult> results = service.GetGoogleSearches().Result; // Test at least one result is a youtube video foreach (var res in results) { if (res.Video != null) { StringAssert.Contains(res.Video.Link, "youtube"); StringAssert.Contains(res.Video.Link, "embed"); return; } } Assert.Fail(); }