1#!perl 2use warnings; 3use strict; 4use Test::More; 5use Test::Warn; 6use lib qw(t/lib); 7 8eval 'use TestUA'; 9plan skip_all => 'LWP::UserAgent 5.819 required' if $@; 10 11my $screen_name = 'net_twitter'; 12my $message_id = 1234; 13my $status = 'Hello, world!'; 14 15my @tests = ( 16 [ disable_notifications => sub { [ $screen_name ] }, { screen_name => $screen_name, device => 'false' }, POST => "/friendships/update.json", __LINE__ ], 17 [ disable_notifications => sub { [ { screen_name => $screen_name } ] }, { screen_name => $screen_name, device => 'false' }, POST => "/friendships/update.json", __LINE__ ], 18 [ enable_notifications => sub { [ $screen_name ] }, { screen_name => $screen_name, device => 'true' }, POST => "/friendships/update.json", __LINE__ ], 19 [ enable_notifications => sub { [ { screen_name => $screen_name } ] }, { screen_name => $screen_name, device => 'true' }, POST => "/friendships/update.json", __LINE__ ], 20 [ friendship_exists => sub { [ 'a', 'b' ] }, { source_screen_name => 'a', target_screen_name => 'b' }, GET => "/friendships/show.json", __LINE__, '{"relationship":{"target":{"followed_by":true}}}' ], 21 [ new_direct_message => sub { [ $screen_name, { text => $status } ] }, { screen_name => $screen_name, text => $status }, POST => "/direct_messages/new.json", __LINE__ ], 22 [ new_direct_message => sub { [ $screen_name, $status ] }, { screen_name => $screen_name, text => $status }, POST => "/direct_messages/new.json", __LINE__ ], 23 [ new_direct_message => sub { [ { user => $screen_name, text => $status } ] }, { screen_name => $screen_name, text => $status }, POST => "/direct_messages/new.json", __LINE__ ], 24 [ new_direct_message => sub { [ 1234, $status ] }, { user_id => 1234, text => $status }, POST => "/direct_messages/new.json", __LINE__ ], 25); 26 27plan tests => @tests + 1; 28 29use_ok 'Net::Twitter'; 30 31my $nt = Net::Twitter->new( 32 ssl => 0, 33 traits => [qw/API::RESTv1_1/], 34 username => 'homer', 35 password => 'doh!', 36); 37 38my $t = TestUA->new(1.1, $nt->ua); 39 40for my $test ( @tests ) { 41 my ($api_call, $input_args, $request_args, $method, $path, $line, $json_response) = @$test; 42 43 # Fresh copy of args from a coderef because Net::Twitter is allowed to mutated any args hash 44 # passed in. 45 $input_args = $input_args->(); 46 47 if ( $json_response ) { 48 my $res = HTTP::Response->new(200, 'OK'); 49 $res->content($json_response); 50 $t->response($res); 51 } 52 53 warning_like { $nt->$api_call(@$input_args) } qr/deprecated/i, "[line $line] $api_call"; 54 55 $t->reset_response; 56} 57 58exit 0; 59