public void ProcessResults_WithErrors_PopulatesErrorList() { var tweetProc = new TweetRequestProcessor <TweetQuery> { BaseUrl = "https://api.twitter.com/1.1/search/" }; List <TweetQuery> results = tweetProc.ProcessResults(ErrorTweet); Assert.IsNotNull(results); TweetQuery tweetQuery = results.SingleOrDefault(); Assert.IsNotNull(tweetQuery); List <TwitterError> errors = tweetQuery.Errors; Assert.IsNotNull(errors); Assert.AreEqual(1, errors.Count); TwitterError error = errors.FirstOrDefault(); Assert.IsNotNull(error); Assert.AreEqual("Could not find tweet with ids: [1].", error.Detail); Assert.AreEqual("Not Found Error", error.Title); Assert.AreEqual("tweet", error.ResourceType); Assert.AreEqual("ids", error.Parameter); Assert.AreEqual("1", error.Value); Assert.AreEqual("https://api.twitter.com/2/problems/resource-not-found", error.Type); }
public void ProcessResults_Populates_PublicMetrics() { var tweetProc = new TweetRequestProcessor <TweetQuery> { BaseUrl = BaseUrl2 }; List <TweetQuery> results = tweetProc.ProcessResults(SingleTweet); Assert.IsNotNull(results); TweetQuery tweetQuery = results.SingleOrDefault(); Assert.IsNotNull(tweetQuery); List <Tweet> tweets = tweetQuery.Tweets; Assert.IsNotNull(tweets); Assert.AreEqual(1, tweets.Count); Tweet tweet = tweets.FirstOrDefault(); Assert.IsNotNull(tweet); TweetPublicMetrics metrics = tweet.PublicMetrics; Assert.IsNotNull(metrics); Assert.AreEqual(1, metrics.RetweetCount); Assert.AreEqual(1, metrics.ReplyCount); Assert.AreEqual(1, metrics.LikeCount); Assert.AreEqual(0, metrics.QuoteCount); }
public void ProcessResults_Populates_ContextAnnotations() { var tweetProc = new TweetRequestProcessor <TweetQuery> { BaseUrl = BaseUrl2 }; List <TweetQuery> results = tweetProc.ProcessResults(SingleTweet); Assert.IsNotNull(results); TweetQuery tweetQuery = results.SingleOrDefault(); Assert.IsNotNull(tweetQuery); List <Tweet> tweets = tweetQuery.Tweets; Assert.IsNotNull(tweets); Assert.AreEqual(1, tweets.Count); Tweet tweet = tweets.FirstOrDefault(); Assert.IsNotNull(tweet); List <TweetContextAnnotation> annotations = tweet.ContextAnnotations; Assert.IsNotNull(annotations); Assert.AreEqual(7, annotations.Count); TweetContextAnnotation annotation = annotations.First(); Assert.IsNotNull(annotation); TweetContextAnnotationDetails domain = annotation.Domain; Assert.IsNotNull(domain); Assert.AreEqual("46", domain.ID); Assert.AreEqual("Brand Category", domain.Name); Assert.AreEqual("Categories within Brand Verticals that narrow down the scope of Brands", domain.Description); }
public void ProcessResults_Populates_Tweets() { var tweetProc = new TweetRequestProcessor <TweetQuery> { BaseUrl = BaseUrl2 }; List <TweetQuery> results = tweetProc.ProcessResults(SingleTweet); Assert.IsNotNull(results); TweetQuery tweetQuery = results.SingleOrDefault(); Assert.IsNotNull(tweetQuery); List <Tweet> tweets = tweetQuery.Tweets; Assert.IsNotNull(tweets); Assert.AreEqual(1, tweets.Count); Tweet tweet = tweets.FirstOrDefault(); Assert.IsNotNull(tweet); Assert.AreEqual("en", tweet.Language); Assert.AreEqual("Thanks @github for approving sponsorship for LINQ to Twitter: https://t.co/jWeDEN07HN", tweet.Text); Assert.AreEqual("1305895383260782593", tweet.ID); Assert.AreEqual("15411837", tweet.AuthorID); Assert.AreEqual(DateTime.Parse("2020-09-15T15:44:56.000Z").Date, tweet.CreatedAt?.Date); Assert.AreEqual("1305895383260782593", tweet.ConversationID); Assert.IsTrue(tweet.PossiblySensitive ?? false); Assert.AreEqual(tweet.ReplySettings, TweetReplySettings.MentionedUsers); }
public IEnumerable <Tweet> Get(TweetQuery parameter) { var search = new SearchTweetsParameters(parameter.Key) { SearchType = SearchResultType.Recent, Lang = LanguageFilter.English, Filters = TweetSearchFilters.None, MaximumNumberOfResults = parameter.MaxQuantity, Since = parameter.Since }; var result = Search.SearchTweets(search); return(result.Select(itweet => new Tweet { Id = Guid.NewGuid(), TweetIdentifier = itweet.TweetDTO.IdStr, Text = itweet.TweetDTO.Text, Language = itweet.TweetDTO.Language.ToString(), Key = parameter.Key, Date = itweet.TweetDTO.CreatedAt, Latitude = itweet.TweetDTO?.Coordinates?.Latitude ?? 0.0, Longitude = itweet.TweetDTO?.Coordinates?.Longitude ?? 0.0, Sentiment = 0 })); }
public void ProcessResults_Handles_Response_With_No_Results() { var tweetProc = new TweetRequestProcessor <TweetQuery> { BaseUrl = BaseUrl2 }; List <TweetQuery> results = tweetProc.ProcessResults(ErrorTweet); Assert.IsNotNull(results); TweetQuery tweetQuery = results.SingleOrDefault(); Assert.IsNotNull(tweetQuery); List <Tweet> tweets = tweetQuery.Tweets; Assert.IsNull(tweets); }
public void ProcessResults_Populates_Includes() { var tweetProc = new TweetRequestProcessor <TweetQuery> { BaseUrl = BaseUrl2 }; List <TweetQuery> results = tweetProc.ProcessResults(SingleTweet); Assert.IsNotNull(results); TweetQuery tweetQuery = results.SingleOrDefault(); Assert.IsNotNull(tweetQuery); TwitterInclude includes = tweetQuery.Includes; Assert.IsNotNull(includes); List <TwitterUser> users = includes.Users; Assert.IsNotNull(users); Assert.AreEqual(2, users.Count); }
public IEnumerable <Tweet> FindByKey(TweetQuery query) { return(_connection.Mapper.Fetch <Tweet>().Where(tweet => tweet.Key == query.Key).Take(query.MaxQuantity)); }
public void ProcessResults_Populates_Entities() { var tweetProc = new TweetRequestProcessor <TweetQuery> { BaseUrl = BaseUrl2 }; List <TweetQuery> results = tweetProc.ProcessResults(SingleTweet); Assert.IsNotNull(results); TweetQuery tweetQuery = results.SingleOrDefault(); Assert.IsNotNull(tweetQuery); List <Tweet> tweets = tweetQuery.Tweets; Assert.IsNotNull(tweets); Assert.AreEqual(1, tweets.Count); Tweet tweet = tweets.FirstOrDefault(); Assert.IsNotNull(tweet); TweetEntities entities = tweet.Entities; Assert.IsNotNull(entities); TweetEntityAnnotation annotation = entities?.Annotations?.FirstOrDefault(); Assert.IsNotNull(annotation); Assert.AreEqual(53, annotation.Start); Assert.AreEqual(59, annotation.End); Assert.AreEqual(0.5865f, annotation.Probability); Assert.AreEqual("Organization", annotation.Type); Assert.AreEqual("Twitter", annotation.NormalizedText); TweetEntityMention mention = entities?.Mentions?.FirstOrDefault(); Assert.IsNotNull(mention); Assert.AreEqual(7, mention.Start); Assert.AreEqual(14, mention.End); Assert.AreEqual("github", mention.Username); TweetEntityUrl url = entities?.Urls?.FirstOrDefault(); Assert.IsNotNull(url); Assert.AreEqual(62, url.Start); Assert.AreEqual(85, url.End); Assert.AreEqual("https://t.co/jWeDEN07HN", url.Url); Assert.AreEqual("http://bit.ly/1b2wrHb", url.ExpandedUrl); Assert.AreEqual("bit.ly/1b2wrHb", url.DisplayUrl); Assert.AreEqual(200, url.Status); Assert.AreEqual("JoeMayo/LinqToTwitter", url.Title); Assert.AreEqual("LINQ Provider for the Twitter API (Twitter Library) - JoeMayo/LinqToTwitter", url.Description); Assert.AreEqual("https://github.com/JoeMayo/LinqToTwitter", url.UnwoundUrl); List <TweetEntityImage> images = url.Images; Assert.IsNotNull(images); Assert.AreEqual(2, images.Count); TweetEntityImage image = images.First(); Assert.AreEqual("https://pbs.twimg.com/news_img/1321470110356287488/pWdfwBk5?format=png&name=orig", image.Url); Assert.AreEqual(100, image.Width); Assert.AreEqual(100, image.Height); }