1 require File.expand_path(File.join(File.dirname(__FILE__), '..', '..', 'spec_helper'))
3 describe Twitter::Client, "#status" 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)
13 @status = Twitter::Status.new(:id => 2349343)
14 @reply_to_status_id = 3495293
15 @source = Twitter::Client.class_eval("@@defaults[:source]")
18 it "should return nil if nil is passed as value argument for :get case" do
19 status = @twitter.status(:get, nil)
23 it "should not call @twitter#http_connect when passing nil for value argument in :get case" do
24 @twitter.should_not_receive(:http_connect)
25 @twitter.status(:get, nil)
28 it "should create expected HTTP GET request for :get case" do
29 @twitter.should_receive(:rest_oauth_connect).with(:get, @uris[:get], @options).and_return(@response)
30 @twitter.status(:get, @options[:id])
33 it "should invoke @twitter#rest_oauth_connect with given parameters equivalent to {:id => value.to_i} for :get case" do
35 @twitter.should_receive(:rest_oauth_connect).with(:get, @uris[:get], {:id => @float.to_i}).and_return(@response)
36 @twitter.status(:get, @float)
38 # Twitter::Status object case
39 @twitter.should_receive(:rest_oauth_connect).with(:get, @uris[:get], {:id => @status.to_i}).and_return(@response)
40 @twitter.status(:get, @status)
43 it "should create expected HTTP POST request for :post case" do
44 @twitter.should_receive(:rest_oauth_connect).with(:post, @uris[:post], :status => @message, :source => @source).and_return(@response)
45 @twitter.status(:post, @message)
48 it "should create expected HTTP POST request for :post case when passing Hash with lat/long instead of String" do
49 @twitter.should_receive(:rest_oauth_connect).with(:post, @uris[:post], :lat => 0, :long => 0, :status => @message, :source => @source).and_return(@response)
50 @twitter.status(:post, :status => @message, :lat => 0, :long => 0)
53 it "should create expected HTTP POST request for :post case when passing Hash with place_idinstead of String" do
54 @twitter.should_receive(:rest_oauth_connect).with(:post, @uris[:post], :place_id => 1234, :status => @message, :source => @source).and_return(@response)
55 @twitter.status(:post, :status => @message, :place_id => 1234)
58 it "should return nil if nil is passed as value argument for :post case" do
59 status = @twitter.status(:post, nil)
63 it "should return nil if no :status key-value given in the value argument for :reply case" do
64 status = @twitter.status(:reply, {})
68 it "should return nil if nil is passed as value argument for :reply case" do
69 status = @twitter.status(:reply, nil)
73 it "should create expected HTTP POST request for :reply case" do
74 @twitter.should_receive(:rest_oauth_connect).with(:post, @uris[:reply], :status => @message, :source => @source, :in_reply_to_status_id => @reply_to_status_id).and_return(@response)
75 @twitter.status(:reply, :status => @message, :in_reply_to_status_id => @reply_to_status_id)
78 it "should return nil if nil is passed as value argument for :delete case" do
79 status = @twitter.status(:delete, nil)
83 it "should create expected HTTP DELETE request for :delete case" do
84 @twitter.should_receive(:rest_oauth_connect).with(:delete, @uris[:delete], @options).and_return(@response)
85 @twitter.status(:delete, @options[:id])
88 it "should invoke @twitter#rest_oauth_connect with given parameters equivalent to {:id => value.to_i} for :delete case" do
90 @twitter.should_receive(:rest_oauth_connect).with(:delete, @uris[:delete], {:id => @float.to_i}).and_return(@response)
91 @twitter.status(:delete, @float)
93 # Twitter::Status object case
94 @twitter.should_receive(:rest_oauth_connect).with(:delete, @uris[:delete], {:id => @status.to_i}).and_return(@response)
95 @twitter.status(:delete, @status)
98 it "should raise an ArgumentError when given an invalid status action" do
100 @twitter.status(:crap, nil)
101 }.should raise_error(ArgumentError)