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 )