public void ProcessResults_Populates_PublicMetrics()
        {
            var twitterUserReqProc = new TwitterUserRequestProcessor <TwitterUserQuery> {
                BaseUrl = BaseUrl2
            };

            List <TwitterUserQuery> results = twitterUserReqProc.ProcessResults(UsersJson);

            Assert.IsNotNull(results);
            TwitterUserQuery twitterUserQuery = results.SingleOrDefault();

            Assert.IsNotNull(twitterUserQuery);
            List <TwitterUser> users = twitterUserQuery.Users;

            Assert.IsNotNull(users);
            Assert.AreEqual(2, users.Count);
            TwitterUser user = users.FirstOrDefault();

            Assert.IsNotNull(user);

            TwitterUserPublicMetrics metrics = user.PublicMetrics;

            Assert.IsNotNull(metrics);
            Assert.AreEqual(10024, metrics.FollowersCount);
            Assert.AreEqual(3539, metrics.FollowingCount);
            Assert.AreEqual(270, metrics.ListedCount);
            Assert.AreEqual(3800, metrics.TweetCount);
        }
        public void ProcessResults_WithErrors_PopulatesErrorList()
        {
            var twitterUserProc = new TwitterUserRequestProcessor <TwitterUserQuery> {
                BaseUrl = "https://api.twitter.com/1.1/search/"
            };

            List <TwitterUserQuery> results = twitterUserProc.ProcessResults(ErrorTweet);

            Assert.IsNotNull(results);
            TwitterUserQuery twitterUserQuery = results.SingleOrDefault();

            Assert.IsNotNull(twitterUserQuery);
            List <TwitterError> errors = twitterUserQuery.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_Users()
        {
            var twitterUserProc = new TwitterUserRequestProcessor <TwitterUserQuery> {
                BaseUrl = BaseUrl2
            };

            List <TwitterUserQuery> results = twitterUserProc.ProcessResults(UsersJson);

            Assert.IsNotNull(results);
            TwitterUserQuery twitterUserQuery = results.SingleOrDefault();

            Assert.IsNotNull(twitterUserQuery);
            List <TwitterUser> users = twitterUserQuery.Users;

            Assert.IsNotNull(users);
            Assert.AreEqual(2, users.Count);
            TwitterUser user = users.FirstOrDefault();

            Assert.IsNotNull(user);
            Assert.AreEqual(DateTime.Parse("2008-07-13").Date, user.CreatedAt.Date);
            Assert.AreEqual("Author, Instructor, and Independent Consultant. Author of Programming the Microsoft Bot Framework/MS Press.\n#ai #chatbots #csharp #linq2twitter #twitterapi", user.Description);
            Assert.AreEqual("15411837", user.ID);
            Assert.AreEqual("Las Vegas, NV", user.Location);
            Assert.AreEqual("Joe Mayo", user.Name);
            Assert.AreEqual("1258043891434962945", user.PinnedTweetId);
            Assert.AreEqual("https://pbs.twimg.com/profile_images/1185764990403268613/8GoXoOtz_normal.jpg", user.ProfileImageUrl);
            Assert.IsTrue(user.Protected);
            Assert.AreEqual("https://t.co/Y6dXyWxanS", user.Url);
            Assert.AreEqual("JoeMayo", user.Username);
            Assert.IsTrue(user.Verified);
        }
        public void ProcessResults_Handles_Response_With_No_Results()
        {
            var twitterUserReqProc = new TwitterUserRequestProcessor <TwitterUserQuery> {
                BaseUrl = BaseUrl2
            };

            List <TwitterUserQuery> results = twitterUserReqProc.ProcessResults(ErrorTweet);

            Assert.IsNotNull(results);
            TwitterUserQuery twitterUserQuery = results.SingleOrDefault();

            Assert.IsNotNull(twitterUserQuery);
            List <TwitterUser> users = twitterUserQuery.Users;

            Assert.IsNull(users);
        }
        public void ProcessResults_Populates_Entities()
        {
            var twitterUserProc = new TwitterUserRequestProcessor <TwitterUserQuery> {
                BaseUrl = BaseUrl2
            };

            List <TwitterUserQuery> results = twitterUserProc.ProcessResults(UsersJson);

            Assert.IsNotNull(results);
            TwitterUserQuery twitterUserQuery = results.SingleOrDefault();

            Assert.IsNotNull(twitterUserQuery);

            List <TwitterUser> users = twitterUserQuery.Users;

            Assert.IsNotNull(users);
            Assert.AreEqual(2, users.Count);
            TwitterUser user = users.FirstOrDefault();

            Assert.IsNotNull(user);
            TwitterUserEntity entities = user.Entities;

            Assert.IsNotNull(entities);

            TweetEntityUrl url = entities?.Url?.Urls?.FirstOrDefault();

            Assert.IsNotNull(url);
            Assert.AreEqual(0, url.Start);
            Assert.AreEqual(23, url.End);
            Assert.AreEqual("https://t.co/Y6dXyWxanS", url.Url);
            Assert.AreEqual("https://github.com/JoeMayo", url.ExpandedUrl);
            Assert.AreEqual("github.com/JoeMayo", url.DisplayUrl);

            TweetEntityHashtag hashtag = entities?.Description?.Hashtags?.FirstOrDefault();

            Assert.IsNotNull(hashtag);
            Assert.AreEqual(108, hashtag.Start);
            Assert.AreEqual(111, hashtag.End);
            Assert.AreEqual("ai", hashtag.Tag);
        }
Exemple #6
0
        public void ProcessResults_WithFullUserExpansionsAndTweets_Deserializes()
        {
            var twitterUserReqProc = new TwitterUserRequestProcessor <TwitterUserQuery> {
                BaseUrl = BaseUrl2
            };

            List <TwitterUserQuery> results = twitterUserReqProc.ProcessResults(FullUserWithTweet);

            Assert.IsNotNull(results);
            TwitterUserQuery twitterUserQuery = results.SingleOrDefault();

            Assert.IsNotNull(twitterUserQuery);
            TwitterInclude includes = twitterUserQuery.Includes;

            Assert.IsNotNull(includes);
            List <Tweet> tweets = includes.Tweets;

            Assert.IsNotNull(tweets);
            Assert.IsTrue(tweets.Any());
            Tweet tweet = tweets.First();

            Assert.IsNotNull(tweet);
            Assert.AreEqual(TweetReplySettings.Everyone, tweet.ReplySettings);
        }
        private void ShareButtonClick(object sender, EventArgs e)
        {
            var twitterUserQuery = new TwitterUserQuery();
            var twitterUser = twitterUserQuery.Get();
            if (twitterUser == null)
            {
                NavigationService.Navigate(new Uri("/TwitterAuthentication.xaml", UriKind.Relative));
                return;
            }

            NavigationService.Navigate(new Uri("/TweetPhoto.xaml", UriKind.Relative));
        }