public void SearchByHashtag_Returns_Search_Results_With_HashTag_In_Them() { string hashTagToSearchFor = "yarr"; var target = new TwitterClient(); var results = target.SearchByHashtag(hashTagToSearchFor, 10, 1); Assert.IsTrue(results.All(result => result.Text.ToLower().Contains("#" + hashTagToSearchFor)), "Search returned result not containing hashtag searched for."); }
public ActionResult Search(SearchModel model) { ITwitterClient twitterClient = new TwitterClient(); var tweetRepository = new TweetPageRepository(); var cachedPage = tweetRepository.GetPageBySearchString(model.HashtagToSearchFor, model.PageToRetrieve); if (cachedPage != null) { return PartialView(cachedPage.ToModel(model.PageToRetrieve, PAGE_SIZE, model.HashtagToSearchFor)); } int twitterPage = (int)Math.Ceiling(model.PageToRetrieve / (float)PAGE_SIZE); var searchResults = twitterClient.SearchByHashtag(model.HashtagToSearchFor, CACHE_SIZE, twitterPage); int pageCount = (int)Math.Ceiling(searchResults.Count()/(decimal)PAGE_SIZE); int cachePageRangeStart = ((twitterPage - 1) * PAGE_SIZE) + 1; var searchResultPages = Enumerable.Range(0, pageCount) .Select(pageNo => searchResults.Skip(pageNo * PAGE_SIZE).Take(PAGE_SIZE)) .Select((page, pageNo) => page.ToRepositoryContract(cachePageRangeStart + pageNo, PAGE_SIZE, model.HashtagToSearchFor)); tweetRepository.ReplacePages(searchResultPages); var currentPageResult = searchResultPages.FirstOrDefault(page => page.Page == model.PageToRetrieve); return PartialView(currentPageResult.ToModel(model.PageToRetrieve, PAGE_SIZE, model.HashtagToSearchFor)); }
public void SearchByHashtag_Returns_Non_Null_Value() { string hashTagToSearchFor = "yarr"; var target = new TwitterClient(); var results = target.SearchByHashtag(hashTagToSearchFor, 10, 1); Assert.IsNotNull(results, "SearchByHashtag returned null results"); }