craigtmackenzie-twitter4r 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGES +129 -0
- data/MIT-LICENSE +20 -0
- data/README +37 -0
- data/TODO +7 -0
- data/bin/t4rsh +80 -0
- data/lib/twitter.rb +34 -0
- data/lib/twitter/client.rb +24 -0
- data/lib/twitter/client/account.rb +24 -0
- data/lib/twitter/client/auth.rb +27 -0
- data/lib/twitter/client/base.rb +93 -0
- data/lib/twitter/client/blocks.rb +35 -0
- data/lib/twitter/client/favorites.rb +53 -0
- data/lib/twitter/client/friendship.rb +35 -0
- data/lib/twitter/client/graph.rb +37 -0
- data/lib/twitter/client/messaging.rb +79 -0
- data/lib/twitter/client/profile.rb +29 -0
- data/lib/twitter/client/search.rb +27 -0
- data/lib/twitter/client/status.rb +46 -0
- data/lib/twitter/client/timeline.rb +72 -0
- data/lib/twitter/client/user.rb +65 -0
- data/lib/twitter/config.rb +77 -0
- data/lib/twitter/console.rb +31 -0
- data/lib/twitter/core.rb +137 -0
- data/lib/twitter/ext.rb +2 -0
- data/lib/twitter/ext/stdlib.rb +52 -0
- data/lib/twitter/extras.rb +39 -0
- data/lib/twitter/meta.rb +56 -0
- data/lib/twitter/model.rb +356 -0
- data/lib/twitter/version.rb +19 -0
- data/spec/twitter/client/account_spec.rb +28 -0
- data/spec/twitter/client/auth_spec.rb +34 -0
- data/spec/twitter/client/base_spec.rb +242 -0
- data/spec/twitter/client/blocks_spec.rb +76 -0
- data/spec/twitter/client/favorites_spec.rb +183 -0
- data/spec/twitter/client/friendship_spec.rb +76 -0
- data/spec/twitter/client/graph_spec.rb +67 -0
- data/spec/twitter/client/messaging_spec.rb +135 -0
- data/spec/twitter/client/profile_spec.rb +91 -0
- data/spec/twitter/client/search_spec.rb +24 -0
- data/spec/twitter/client/status_spec.rb +92 -0
- data/spec/twitter/client/timeline_spec.rb +79 -0
- data/spec/twitter/client/user_spec.rb +203 -0
- data/spec/twitter/client_spec.rb +2 -0
- data/spec/twitter/config_spec.rb +86 -0
- data/spec/twitter/console_spec.rb +15 -0
- data/spec/twitter/core_spec.rb +127 -0
- data/spec/twitter/ext/stdlib_spec.rb +59 -0
- data/spec/twitter/extras_spec.rb +46 -0
- data/spec/twitter/meta_spec.rb +90 -0
- data/spec/twitter/model_spec.rb +487 -0
- data/spec/twitter/version_spec.rb +19 -0
- metadata +114 -0
@@ -0,0 +1,76 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), '..', '..', 'spec_helper')
|
2
|
+
|
3
|
+
describe Twitter::Client, "#friend" do
|
4
|
+
before(:each) do
|
5
|
+
@twitter = client_context
|
6
|
+
@id = 1234567
|
7
|
+
@screen_name = 'dummylogin'
|
8
|
+
@friend = Twitter::User.new(:id => @id, :screen_name => @screen_name)
|
9
|
+
@uris = Twitter::Client.class_eval("@@FRIENDSHIP_URIS")
|
10
|
+
@request = mas_net_http_post(:basic_auth => nil)
|
11
|
+
@response = mas_net_http_response(:success)
|
12
|
+
@connection = mas_net_http(@response)
|
13
|
+
Net::HTTP.stub!(:new).and_return(@connection)
|
14
|
+
Twitter::User.stub!(:unmarshal).and_return(@friend)
|
15
|
+
end
|
16
|
+
|
17
|
+
def create_uri(action, id)
|
18
|
+
"#{@uris[action]}/#{id}.json"
|
19
|
+
end
|
20
|
+
|
21
|
+
it "should create expected HTTP GET request for :add case using integer user ID" do
|
22
|
+
# the integer user ID scenario...
|
23
|
+
@twitter.should_receive(:create_http_post_request).with(create_uri(:add, @id)).and_return(@request)
|
24
|
+
@twitter.friend(:add, @id)
|
25
|
+
end
|
26
|
+
|
27
|
+
it "should create expected HTTP GET request for :add case using screen name" do
|
28
|
+
# the screen name scenario...
|
29
|
+
@twitter.should_receive(:create_http_post_request).with(create_uri(:add, @screen_name)).and_return(@request)
|
30
|
+
@twitter.friend(:add, @screen_name)
|
31
|
+
end
|
32
|
+
|
33
|
+
it "should create expected HTTP GET request for :add case using Twitter::User object" do
|
34
|
+
# the Twitter::User object scenario...
|
35
|
+
@twitter.should_receive(:create_http_post_request).with(create_uri(:add, @friend.to_i)).and_return(@request)
|
36
|
+
@twitter.friend(:add, @friend)
|
37
|
+
end
|
38
|
+
|
39
|
+
it "should create expected HTTP GET request for :remove case using integer user ID" do
|
40
|
+
# the integer user ID scenario...
|
41
|
+
@twitter.should_receive(:create_http_post_request).with(create_uri(:remove, @id)).and_return(@request)
|
42
|
+
@twitter.friend(:remove, @id)
|
43
|
+
end
|
44
|
+
|
45
|
+
it "should create expected HTTP GET request for :remove case using screen name" do
|
46
|
+
# the screen name scenario...
|
47
|
+
@twitter.should_receive(:create_http_post_request).with(create_uri(:remove, @screen_name)).and_return(@request)
|
48
|
+
@twitter.friend(:remove, @screen_name)
|
49
|
+
end
|
50
|
+
|
51
|
+
it "should create expected HTTP GET request for :remove case using Twitter::User object" do
|
52
|
+
# the Twitter::User object scenario...
|
53
|
+
@twitter.should_receive(:create_http_post_request).with(create_uri(:remove, @friend.to_i)).and_return(@request)
|
54
|
+
@twitter.friend(:remove, @friend)
|
55
|
+
end
|
56
|
+
|
57
|
+
it "should bless user model returned for :add case" do
|
58
|
+
@twitter.should_receive(:bless_model).with(@friend)
|
59
|
+
@twitter.friend(:add, @friend)
|
60
|
+
end
|
61
|
+
|
62
|
+
it "should bless user model returned for :remove case" do
|
63
|
+
@twitter.should_receive(:bless_model).with(@friend)
|
64
|
+
@twitter.friend(:remove, @friend)
|
65
|
+
end
|
66
|
+
|
67
|
+
it "should raise ArgumentError if action given is not valid" do
|
68
|
+
lambda {
|
69
|
+
@twitter.friend(:crap, @friend)
|
70
|
+
}.should raise_error(ArgumentError)
|
71
|
+
end
|
72
|
+
|
73
|
+
after(:each) do
|
74
|
+
nilize(@twitter, @id, @uris, @request, @response, @connection)
|
75
|
+
end
|
76
|
+
end
|
@@ -0,0 +1,67 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), '..', '..', 'spec_helper')
|
2
|
+
|
3
|
+
describe Twitter::Client, "#graph(:friends...)" do
|
4
|
+
before(:each) do
|
5
|
+
@twitter = client_context
|
6
|
+
@id = 1234567
|
7
|
+
@screen_name = 'dummylogin'
|
8
|
+
@friend = Twitter::User.new(:id => @id, :screen_name => @screen_name)
|
9
|
+
@uris = Twitter::Client.class_eval("@@GRAPH_URIS")
|
10
|
+
@request = mas_net_http_get(:basic_auth => nil)
|
11
|
+
@response = mas_net_http_response(:success)
|
12
|
+
@response.stub!(:body).and_return("[1, 2, 3, 4, 5, 6]")
|
13
|
+
@connection = mas_net_http(@response)
|
14
|
+
Net::HTTP.stub!(:new).and_return(@connection)
|
15
|
+
Twitter::User.stub!(:unmarshal).and_return(@friend)
|
16
|
+
end
|
17
|
+
|
18
|
+
def create_uri(action)
|
19
|
+
"#{@uris[action]}.json"
|
20
|
+
end
|
21
|
+
|
22
|
+
it "should create expected HTTP GET request for :friends case using integer user ID" do
|
23
|
+
# the integer user ID scenario...
|
24
|
+
@twitter.should_receive(:create_http_get_request).with(create_uri(:friends), :id => @id).and_return(@request)
|
25
|
+
@twitter.graph(:friends, @id)
|
26
|
+
end
|
27
|
+
|
28
|
+
it "should create expected HTTP GET request for :friends case using screen name" do
|
29
|
+
# the screen name scenario...
|
30
|
+
@twitter.should_receive(:create_http_get_request).with(create_uri(:friends), :id => @screen_name).and_return(@request)
|
31
|
+
@twitter.graph(:friends, @screen_name)
|
32
|
+
end
|
33
|
+
|
34
|
+
it "should create expected HTTP GET request for :friends case using Twitter::User object" do
|
35
|
+
# the Twitter::User object scenario...
|
36
|
+
@twitter.should_receive(:create_http_get_request).with(create_uri(:friends), :id => @friend.to_i).and_return(@request)
|
37
|
+
@twitter.graph(:friends, @friend)
|
38
|
+
end
|
39
|
+
|
40
|
+
it "should create expected HTTP GET request for :followers case using integer user ID" do
|
41
|
+
# the integer user ID scenario...
|
42
|
+
@twitter.should_receive(:create_http_get_request).with(create_uri(:followers), :id => @id).and_return(@request)
|
43
|
+
@twitter.graph(:followers, @id)
|
44
|
+
end
|
45
|
+
|
46
|
+
it "should create expected HTTP GET request for :followers case using screen name" do
|
47
|
+
# the screen name scenario...
|
48
|
+
@twitter.should_receive(:create_http_get_request).with(create_uri(:followers), :id => @screen_name).and_return(@request)
|
49
|
+
@twitter.graph(:followers, @screen_name)
|
50
|
+
end
|
51
|
+
|
52
|
+
it "should create expected HTTP GET request for :followers case using Twitter::User object" do
|
53
|
+
# the Twitter::User object scenario...
|
54
|
+
@twitter.should_receive(:create_http_get_request).with(create_uri(:followers), :id => @friend.to_i).and_return(@request)
|
55
|
+
@twitter.graph(:followers, @friend)
|
56
|
+
end
|
57
|
+
|
58
|
+
it "should raise ArgumentError if action given is not valid" do
|
59
|
+
lambda {
|
60
|
+
@twitter.graph(:crap, @friend)
|
61
|
+
}.should raise_error(ArgumentError)
|
62
|
+
end
|
63
|
+
|
64
|
+
after(:each) do
|
65
|
+
nilize(@twitter, @id, @uris, @request, @response, @connection)
|
66
|
+
end
|
67
|
+
end
|
@@ -0,0 +1,135 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), '..', '..', 'spec_helper')
|
2
|
+
|
3
|
+
describe Twitter::Client, "#messages" do
|
4
|
+
before(:each) do
|
5
|
+
@twitter = client_context
|
6
|
+
@uris = Twitter::Client.class_eval("@@MESSAGING_URIS")
|
7
|
+
@request = mas_net_http_get(:basic_auth => nil)
|
8
|
+
@response = mas_net_http_response(:success, "[]")
|
9
|
+
@connection = mas_net_http(@response)
|
10
|
+
Net::HTTP.stub!(:new).and_return(@connection)
|
11
|
+
@messages = []
|
12
|
+
Twitter::Message.stub!(:unmarshal).and_return(@messages)
|
13
|
+
@page = 2
|
14
|
+
end
|
15
|
+
|
16
|
+
it "should create expected HTTP GET request for :received case" do
|
17
|
+
@twitter.should_receive(:create_http_get_request).with(@uris[:received], {}).and_return(@request)
|
18
|
+
@twitter.messages(:received)
|
19
|
+
end
|
20
|
+
|
21
|
+
it "should bless the Array returned from Twitter for :received case" do
|
22
|
+
@twitter.should_receive(:bless_models).with(@messages).and_return(@messages)
|
23
|
+
@twitter.messages(:received)
|
24
|
+
end
|
25
|
+
|
26
|
+
it "should create expected HTTP GET request for :sent case" do
|
27
|
+
@twitter.should_receive(:create_http_get_request).with(@uris[:sent], {}).and_return(@request)
|
28
|
+
@twitter.messages(:sent)
|
29
|
+
end
|
30
|
+
|
31
|
+
it "should bless the Array returned from Twitter for :sent case" do
|
32
|
+
@twitter.should_receive(:bless_models).with(@messages).and_return(@messages)
|
33
|
+
@twitter.messages(:sent)
|
34
|
+
end
|
35
|
+
|
36
|
+
it "should raise an ArgumentError when giving an invalid messaging action" do
|
37
|
+
lambda {
|
38
|
+
@twitter.messages(:crap)
|
39
|
+
}.should raise_error(ArgumentError)
|
40
|
+
end
|
41
|
+
|
42
|
+
it "should accept an options Hash for paging" do
|
43
|
+
lambda {
|
44
|
+
@twitter.messages(:sent, :page => @page)
|
45
|
+
}.should_not raise_error(Exception)
|
46
|
+
end
|
47
|
+
|
48
|
+
it "should generate expected GET HTTP request for paging case" do
|
49
|
+
@twitter.should_receive(:create_http_get_request).with(@uris[:received], {:page => @page}).and_return(@request)
|
50
|
+
@twitter.messages(:received, :page => @page)
|
51
|
+
end
|
52
|
+
|
53
|
+
it "should bless models for paging case" do
|
54
|
+
@twitter.should_receive(:bless_models).with(@messages).and_return(@messages)
|
55
|
+
@twitter.messages(:sent, :page => @page)
|
56
|
+
end
|
57
|
+
|
58
|
+
after(:each) do
|
59
|
+
nilize(@twitter, @uris, @request, @response, @connection, @messages)
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
describe Twitter::Client, "#message" do
|
64
|
+
before(:each) do
|
65
|
+
@twitter = client_context
|
66
|
+
@attributes = {
|
67
|
+
:id => 34324,
|
68
|
+
:text => 'Randy, are you coming over later?',
|
69
|
+
:sender => {:id => 123, :screen_name => 'mylogin'},
|
70
|
+
:recipient => {:id => 1234, :screen_name => 'randy'},
|
71
|
+
}
|
72
|
+
@message = Twitter::Message.new(@attributes)
|
73
|
+
@uris = Twitter::Client.class_eval("@@MESSAGING_URIS")
|
74
|
+
@request = mas_net_http_get(:basic_auth => nil)
|
75
|
+
@json = JSON.unparse(@attributes)
|
76
|
+
@response = mas_net_http_response(:success, @json)
|
77
|
+
@connection = mas_net_http(@response)
|
78
|
+
@source = Twitter::Client.class_eval("@@defaults[:source]")
|
79
|
+
|
80
|
+
Net::HTTP.stub!(:new).and_return(@connection)
|
81
|
+
Twitter::Message.stub!(:unmarshal).and_return(@message)
|
82
|
+
end
|
83
|
+
|
84
|
+
it "should invoke #http_connect with expected arguments for :post case" do
|
85
|
+
@twitter.should_receive(:http_connect).with({:text => @message.text, :user => @message.recipient.to_i, :source => @source}.to_http_str).and_return(@response)
|
86
|
+
@twitter.message(:post, @message.text, @message.recipient)
|
87
|
+
end
|
88
|
+
|
89
|
+
it "should create expected HTTP POST request for :post case" do
|
90
|
+
@twitter.should_receive(:create_http_post_request).with(@uris[:post]).and_return(@request)
|
91
|
+
@twitter.message(:post, @message.text, @message.recipient)
|
92
|
+
end
|
93
|
+
|
94
|
+
it "should bless returned Twitter::Message object for :post case" do
|
95
|
+
@twitter.should_receive(:bless_model).with(@message)
|
96
|
+
@twitter.message(:post, @message.text, @message.recipient)
|
97
|
+
end
|
98
|
+
|
99
|
+
it "should create expected HTTP DELETE request for :delete case" do
|
100
|
+
@twitter.should_receive(:create_http_delete_request).with(@uris[:delete], {:id => @message.to_i}).and_return(@request)
|
101
|
+
@twitter.message(:delete, @message)
|
102
|
+
end
|
103
|
+
|
104
|
+
it "should bless returned Twitter::Message object for :delete case" do
|
105
|
+
@twitter.should_receive(:bless_model).with(@message)
|
106
|
+
@twitter.message(:delete, @message)
|
107
|
+
end
|
108
|
+
|
109
|
+
it "should invoke #to_i on message object passed in for :delete case" do
|
110
|
+
@message.should_receive(:to_i).and_return(@message.id)
|
111
|
+
@twitter.message(:delete, @message)
|
112
|
+
end
|
113
|
+
|
114
|
+
it "should raise an ArgumentError when giving an invalid messaging action" do
|
115
|
+
lambda {
|
116
|
+
@twitter.message(:crap, @message)
|
117
|
+
}.should raise_error(ArgumentError)
|
118
|
+
end
|
119
|
+
|
120
|
+
it "should raise an ArgumentError for :post case if user argument is not supplied" do
|
121
|
+
lambda {
|
122
|
+
@twitter.message(:post, @message)
|
123
|
+
}.should raise_error(ArgumentError)
|
124
|
+
end
|
125
|
+
|
126
|
+
it "should raise an ArgumentError for :post case if user argument is nil" do
|
127
|
+
lambda {
|
128
|
+
@twitter.message(:post, @message, nil)
|
129
|
+
}.should raise_error(ArgumentError)
|
130
|
+
end
|
131
|
+
|
132
|
+
after(:each) do
|
133
|
+
nilize(@twitter, @uris, @request, @response, @connection, @sender, @recipient, @message, @attributes)
|
134
|
+
end
|
135
|
+
end
|
@@ -0,0 +1,91 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), '..', '..', 'spec_helper')
|
2
|
+
|
3
|
+
describe Twitter::Client, "#profile" do
|
4
|
+
before(:each) do
|
5
|
+
@twitter = client_context
|
6
|
+
@user_attrs = {
|
7
|
+
:id => "JaneEyre",
|
8
|
+
:login => "Jane Eyre",
|
9
|
+
:url => "http://janeeyrerocks.co.uk",
|
10
|
+
:location => "Thornfield Manor",
|
11
|
+
}
|
12
|
+
# name, email, url, location, description
|
13
|
+
@info_attrs = {
|
14
|
+
:name => "Jane Eyre",
|
15
|
+
:email => "jane.eyre@gmail.co.uk",
|
16
|
+
:url => "http://janeeyrerocks.co.uk",
|
17
|
+
:location => "Thornfield Manor",
|
18
|
+
:description => "Governess who falls for slave-trade aristocrat with French lovechild he doesn't acknowledge & wife locked in damp attic with keeper.",
|
19
|
+
}
|
20
|
+
# background_color, text_color, link_color, sidebar_fill_color, sidebar_border_color
|
21
|
+
@colors_attrs = {
|
22
|
+
:background_color => "#ffffff",
|
23
|
+
:text_color => "#101010",
|
24
|
+
:link_color => "#990000",
|
25
|
+
}
|
26
|
+
# value
|
27
|
+
@device_attrs = {
|
28
|
+
:value => "sms",
|
29
|
+
}
|
30
|
+
@user = Twitter::User.new
|
31
|
+
@uris = Twitter::Client.class_eval("@@PROFILE_URIS")
|
32
|
+
@request = mas_net_http_get(:basic_auth => nil)
|
33
|
+
@json = JSON.unparse(@user_attrs)
|
34
|
+
@response = mas_net_http_response(:success, @json)
|
35
|
+
@connection = mas_net_http(@response)
|
36
|
+
|
37
|
+
Net::HTTP.stub!(:new).and_return(@connection)
|
38
|
+
Twitter::User.stub!(:unmarshal).and_return(@user)
|
39
|
+
end
|
40
|
+
|
41
|
+
it "should invoke #http_connect with expected arguments for :info case" do
|
42
|
+
@twitter.should_receive(:http_connect).with(@info_attrs.to_http_str).and_return(@response)
|
43
|
+
@twitter.profile(:info, @info_attrs)
|
44
|
+
end
|
45
|
+
|
46
|
+
it "should invoke #http_connect with expected arguments for :colors case" do
|
47
|
+
@twitter.should_receive(:http_connect).with(@colors_attrs.to_http_str).and_return(@response)
|
48
|
+
@twitter.profile(:colors, @colors_attrs)
|
49
|
+
end
|
50
|
+
|
51
|
+
it "should invoke #http_connect with expected arguments for :device case" do
|
52
|
+
@twitter.should_receive(:http_connect).with(@device_attrs.to_http_str).and_return(@response)
|
53
|
+
@twitter.profile(:info, @device_attrs)
|
54
|
+
end
|
55
|
+
|
56
|
+
it "should create expected HTTP POST request for :info case" do
|
57
|
+
@twitter.should_receive(:create_http_post_request).with(@uris[:info]).and_return(@request)
|
58
|
+
@twitter.profile(:info, @info_attrs)
|
59
|
+
end
|
60
|
+
|
61
|
+
it "should create expected HTTP POST request for :colors case" do
|
62
|
+
@twitter.should_receive(:create_http_post_request).with(@uris[:colors]).and_return(@request)
|
63
|
+
@twitter.profile(:colors, @colors_attrs)
|
64
|
+
end
|
65
|
+
|
66
|
+
it "should create expected HTTP POST request for :device case" do
|
67
|
+
@twitter.should_receive(:create_http_post_request).with(@uris[:device]).and_return(@request)
|
68
|
+
@twitter.profile(:device, @device_attrs)
|
69
|
+
end
|
70
|
+
|
71
|
+
it "should bless returned Twitter::User object for :info case" do
|
72
|
+
@twitter.should_receive(:bless_model).with(@user)
|
73
|
+
@twitter.profile(:info, @info_attrs)
|
74
|
+
end
|
75
|
+
|
76
|
+
it "should bless returned Twitter::User object for :colors case" do
|
77
|
+
@twitter.should_receive(:bless_model).with(@user)
|
78
|
+
@twitter.profile(:colors, @colors_attrs)
|
79
|
+
end
|
80
|
+
|
81
|
+
it "should bless returned Twitter::User object for :device case" do
|
82
|
+
@twitter.should_receive(:bless_model).with(@user)
|
83
|
+
@twitter.profile(:device, @device_attrs)
|
84
|
+
end
|
85
|
+
|
86
|
+
it "should raise an ArgumentError when giving an invalid profile action"
|
87
|
+
|
88
|
+
after(:each) do
|
89
|
+
nilize(@twitter, @uris, @request, @response, @connection, @sender, @recipient, @user, @attributes)
|
90
|
+
end
|
91
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), '..', '..', 'spec_helper')
|
2
|
+
|
3
|
+
describe :rest_api_request, :shared => true do
|
4
|
+
before(:each) do
|
5
|
+
|
6
|
+
end
|
7
|
+
it "should invoke #http_connect with expected arguments"
|
8
|
+
it "should create HTTP request of expected method"
|
9
|
+
it "should bless returned model of expected type"
|
10
|
+
end
|
11
|
+
|
12
|
+
describe Twitter::Client, "#end" do
|
13
|
+
describe "keywords case" do
|
14
|
+
def expected_http_method; :get; end
|
15
|
+
def expected_model; Twitter::Status; end
|
16
|
+
def expected_model_in_array?; true; end
|
17
|
+
def expected_http_connect_arguments; {}; end
|
18
|
+
# should_behave_like :rest_api_request
|
19
|
+
end
|
20
|
+
|
21
|
+
describe "invalid" do
|
22
|
+
it "should raise an ArgumentError when giving an invalid search action"
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,92 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), '..', '..', 'spec_helper')
|
2
|
+
|
3
|
+
describe Twitter::Client, "#status" do
|
4
|
+
before(:each) do
|
5
|
+
@twitter = client_context
|
6
|
+
@message = 'This is my unique message'
|
7
|
+
@uris = Twitter::Client.class_eval("@@STATUS_URIS")
|
8
|
+
@options = {:id => 666666}
|
9
|
+
@request = mas_net_http_get(:basic_auth => nil)
|
10
|
+
@response = mas_net_http_response(:success, '{}')
|
11
|
+
@connection = mas_net_http(@response)
|
12
|
+
@float = 43.3434
|
13
|
+
@status = Twitter::Status.new(:id => 2349343)
|
14
|
+
@source = Twitter::Client.class_eval("@@defaults[:source]")
|
15
|
+
end
|
16
|
+
|
17
|
+
it "should return nil if nil is passed as value argument for :get case" do
|
18
|
+
status = @twitter.status(:get, nil)
|
19
|
+
status.should be_nil
|
20
|
+
end
|
21
|
+
|
22
|
+
it "should not call @twitter#http_connect when passing nil for value argument in :get case" do
|
23
|
+
@twitter.should_not_receive(:http_connect)
|
24
|
+
@twitter.status(:get, nil)
|
25
|
+
end
|
26
|
+
|
27
|
+
it "should create expected HTTP GET request for :get case" do
|
28
|
+
@twitter.should_receive(:create_http_get_request).with(@uris[:get], @options).and_return(@request)
|
29
|
+
@twitter.status(:get, @options[:id])
|
30
|
+
end
|
31
|
+
|
32
|
+
it "should invoke @twitter#create_http_get_request with given parameters equivalent to {:id => value.to_i} for :get case" do
|
33
|
+
# Float case
|
34
|
+
@twitter.should_receive(:create_http_get_request).with(@uris[:get], {:id => @float.to_i}).and_return(@request)
|
35
|
+
@twitter.status(:get, @float)
|
36
|
+
|
37
|
+
# Twitter::Status object case
|
38
|
+
@twitter.should_receive(:create_http_get_request).with(@uris[:get], {:id => @status.to_i}).and_return(@request)
|
39
|
+
@twitter.status(:get, @status)
|
40
|
+
end
|
41
|
+
|
42
|
+
it "should return nil if nil is passed as value argument for :post case" do
|
43
|
+
status = @twitter.status(:post, nil)
|
44
|
+
status.should be_nil
|
45
|
+
end
|
46
|
+
|
47
|
+
it "should not call @twitter#http_connect when passing nil for value argument in :post case" do
|
48
|
+
@twitter.should_not_receive(:http_connect)
|
49
|
+
@twitter.status(:post, nil)
|
50
|
+
end
|
51
|
+
|
52
|
+
it "should create expected HTTP POST request for :post case" do
|
53
|
+
@twitter.should_receive(:create_http_post_request).with(@uris[:post]).and_return(@request)
|
54
|
+
@connection.should_receive(:request).with(@request, {:status => @message, :source => @source}.to_http_str).and_return(@response)
|
55
|
+
@twitter.status(:post, @message)
|
56
|
+
end
|
57
|
+
|
58
|
+
it "should return nil if nil is passed as value argument for :delete case" do
|
59
|
+
status = @twitter.status(:delete, nil)
|
60
|
+
status.should be_nil
|
61
|
+
end
|
62
|
+
|
63
|
+
it "should not call @twitter#http_connect when passing nil for value argument in :delete case" do
|
64
|
+
@twitter.should_not_receive(:http_connect)
|
65
|
+
@twitter.status(:delete, nil)
|
66
|
+
end
|
67
|
+
|
68
|
+
it "should create expected HTTP DELETE request for :delete case" do
|
69
|
+
@twitter.should_receive(:create_http_delete_request).with(@uris[:delete], @options).and_return(@request)
|
70
|
+
@twitter.status(:delete, @options[:id])
|
71
|
+
end
|
72
|
+
|
73
|
+
it "should invoke @twitter#create_http_get_request with given parameters equivalent to {:id => value.to_i} for :delete case" do
|
74
|
+
# Float case
|
75
|
+
@twitter.should_receive(:create_http_delete_request).with(@uris[:delete], {:id => @float.to_i}).and_return(@request)
|
76
|
+
@twitter.status(:delete, @float)
|
77
|
+
|
78
|
+
# Twitter::Status object case
|
79
|
+
@twitter.should_receive(:create_http_delete_request).with(@uris[:delete], {:id => @status.to_i}).and_return(@request)
|
80
|
+
@twitter.status(:delete, @status)
|
81
|
+
end
|
82
|
+
|
83
|
+
it "should raise an ArgumentError when given an invalid status action" do
|
84
|
+
lambda {
|
85
|
+
@twitter.status(:crap, nil)
|
86
|
+
}.should raise_error(ArgumentError)
|
87
|
+
end
|
88
|
+
|
89
|
+
after(:each) do
|
90
|
+
nilize(@twitter)
|
91
|
+
end
|
92
|
+
end
|