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.
Files changed (52) hide show
  1. data/CHANGES +129 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README +37 -0
  4. data/TODO +7 -0
  5. data/bin/t4rsh +80 -0
  6. data/lib/twitter.rb +34 -0
  7. data/lib/twitter/client.rb +24 -0
  8. data/lib/twitter/client/account.rb +24 -0
  9. data/lib/twitter/client/auth.rb +27 -0
  10. data/lib/twitter/client/base.rb +93 -0
  11. data/lib/twitter/client/blocks.rb +35 -0
  12. data/lib/twitter/client/favorites.rb +53 -0
  13. data/lib/twitter/client/friendship.rb +35 -0
  14. data/lib/twitter/client/graph.rb +37 -0
  15. data/lib/twitter/client/messaging.rb +79 -0
  16. data/lib/twitter/client/profile.rb +29 -0
  17. data/lib/twitter/client/search.rb +27 -0
  18. data/lib/twitter/client/status.rb +46 -0
  19. data/lib/twitter/client/timeline.rb +72 -0
  20. data/lib/twitter/client/user.rb +65 -0
  21. data/lib/twitter/config.rb +77 -0
  22. data/lib/twitter/console.rb +31 -0
  23. data/lib/twitter/core.rb +137 -0
  24. data/lib/twitter/ext.rb +2 -0
  25. data/lib/twitter/ext/stdlib.rb +52 -0
  26. data/lib/twitter/extras.rb +39 -0
  27. data/lib/twitter/meta.rb +56 -0
  28. data/lib/twitter/model.rb +356 -0
  29. data/lib/twitter/version.rb +19 -0
  30. data/spec/twitter/client/account_spec.rb +28 -0
  31. data/spec/twitter/client/auth_spec.rb +34 -0
  32. data/spec/twitter/client/base_spec.rb +242 -0
  33. data/spec/twitter/client/blocks_spec.rb +76 -0
  34. data/spec/twitter/client/favorites_spec.rb +183 -0
  35. data/spec/twitter/client/friendship_spec.rb +76 -0
  36. data/spec/twitter/client/graph_spec.rb +67 -0
  37. data/spec/twitter/client/messaging_spec.rb +135 -0
  38. data/spec/twitter/client/profile_spec.rb +91 -0
  39. data/spec/twitter/client/search_spec.rb +24 -0
  40. data/spec/twitter/client/status_spec.rb +92 -0
  41. data/spec/twitter/client/timeline_spec.rb +79 -0
  42. data/spec/twitter/client/user_spec.rb +203 -0
  43. data/spec/twitter/client_spec.rb +2 -0
  44. data/spec/twitter/config_spec.rb +86 -0
  45. data/spec/twitter/console_spec.rb +15 -0
  46. data/spec/twitter/core_spec.rb +127 -0
  47. data/spec/twitter/ext/stdlib_spec.rb +59 -0
  48. data/spec/twitter/extras_spec.rb +46 -0
  49. data/spec/twitter/meta_spec.rb +90 -0
  50. data/spec/twitter/model_spec.rb +487 -0
  51. data/spec/twitter/version_spec.rb +19 -0
  52. 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