Mojo-WebService-Twitter
view release on metacpan or search on metacpan
t/app_auth.t view on Meta::CPAN
is $tweet->text, $data->{text}, 'right text';
is $tweet->user->id, $data->{user_id}, 'right user';
}
foreach my $id (keys %user_data) {
my $data = $user_data{$id};
my $name = $data->{screen_name};
my $user;
ok(eval { $user = $twitter->get_user(user_id => $id); 1 }, "retrieved user $id") or diag $@;
is $user->id, $id, 'right user ID';
is lc $user->screen_name, lc $name, 'right user screen name';
my $user2;
ok(eval { $user2 = $twitter->get_user(screen_name => $name); 1 }, "retrieved user $name") or diag $@;
is $user2->id, $id, 'right user ID';
is lc $user2->screen_name, lc $name, 'right user screen name';
is $user->created_at, $data->{created_at}, 'right creation timestamp';
is $user->description, $data->{description}, 'right description';
ok $user->followers >= $data->{followers}, "at least $data->{followers} followers";
ok $user->friends >= $data->{friends}, "at least $data->{friends} friends";
is $user->name, $data->{name}, 'right name';
ok !($user->protected xor $data->{protected}), 'right protected status';
ok $user->statuses >= $data->{statuses}, "at least $data->{statuses} statuses";
is $user->url, $data->{url}, 'right url';
ok !($user->verified xor $data->{verified}), 'right verified status';
ok $user->last_tweet->created_at >= $data->{last_tweet_ts}, "last tweet after $data->{last_tweet_ts}";
my $timeline;
ok(eval { $timeline = $twitter->get_user_timeline(user_id => $id); 1 }, "retrieved timeline for user $id") or diag $@;
ok scalar(@$timeline), 'retrieved ' . @$timeline . ' timeline tweets';
is $timeline->[0]->user->id, $id, 'timeline tweets from right user';
}
my $search_term = 'defiantly';
my $tweets;
ok(eval { $tweets = $twitter->search_tweets($search_term); 1 }, "searched tweets for \"$search_term\"") or diag $@;
ok scalar(@$tweets), 'retrieved ' . @$tweets . ' search results';
my $tweet_text = $tweets->[0]->text . ($tweets->[0]->source->{retweeted_status}{full_text} // '');
like $tweet_text, qr/defiantly/i, 'search result contains search term';
done_testing;
__DATA__
@@ user
{"contributors_enabled":false,"created_at":"Thu May 23 15:25:28 +0000 2013","default_profile":false,"default_profile_image":false,"description":"NASA's page for updates from the International Space Station, the world-class lab orbiting Earth 250 mile...
@@ tweet
{"contributors":null,"coordinates":null,"created_at":"Fri Oct 23 17:18:19 +0000 2015","display_text_range":[0,139],"entities":{"hashtags":[],"media":[{"display_url":"pic.twitter.com\/HlAnj3eTKk","expanded_url":"https:\/\/twitter.com\/Space_Station\/s...
@@ tweet_reply
{"contributors":null,"coordinates":null,"created_at":"Thu Oct 22 22:36:55 +0000 2015","display_text_range":[0,138],"entities":{"hashtags":[],"symbols":[],"urls":[{"display_url":"flickr.com\/photos\/nasa2exâ¦","expanded_url":"https:\/\/www.flickr.com...
@@ tweet_retweet
{"contributors":null,"coordinates":null,"created_at":"Fri Oct 23 18:40:04 +0000 2015","display_text_range":[0,139],"entities":{"hashtags":[{"indices":[31,40],"text":"Patricia"},{"indices":[94,101],"text":"Mexico"},{"indices":[103,115],"text":"YearInS...
@@ search_tweets
{"statuses":[{"created_at":"Tue Jul 31 22:53:32 +0000 2018","id":1024427872700653569,"id_str":"1024427872700653569","full_text":"addiction is defiantly a mental health issue but don\u2019t speak on it unless you\u2019ve been through it or been put th...
@@ get_user_timeline
[{"created_at":"Mon Mar 15 19:31:02 +0000 2021","id":1371544489404301312,"id_str":"1371544489404301312","full_text":"After a weekend that included the 237th spacewalk in support of station assembly and maintenance, the Exp 64 crew got back to the bus...
( run in 0.393 second using v1.01-cache-2.11-cpan-71847e10f99 )