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.");
 }
Ejemplo n.º 2
0
        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");
 }