1 require File.join(File.dirname(__FILE__), '..', '..', 'spec_helper')
3 describe Twitter::Client, "#user(id, :followers)" do
5 @twitter = client_context
9 it "should raise ArgumentError" do
11 @twitter.user(@id, :followers)
12 }.should raise_error(ArgumentError)
20 describe Twitter::Client, "#user(id, :info)" do
22 @twitter = client_context
24 @screen_name = 'boris_johnson_is_funny_as_hell'
25 @user = Twitter::User.new(
27 :screen_name => @screen_name,
30 @json = JSON.unparse(@user.to_hash)
31 @request = mas_net_http_get(:basic_auth => nil)
32 @response = mas_net_http_response(:success, @json)
33 @connection = mas_net_http(@response)
34 @uris = Twitter::Client.class_eval("@@USER_URIS")
35 @twitter.stub!(:create_http_get_request).and_return(@request)
36 Twitter::User.stub!(:unmarshal).and_return(@user)
37 Net::HTTP.stub!(:new).and_return(@connection)
40 it "should create expected HTTP GET request when giving numeric user id" do
41 @twitter.should_receive(:create_http_get_request).with(@uris[:info], {:id => @id}).and_return(@request)
45 it "should create expected HTTP GET request when giving screen name" do
46 @twitter.should_receive(:create_http_get_request).with(@uris[:info], {:id => @screen_name}).and_return(@request)
47 @twitter.user(@screen_name)
50 it "should bless model returned when giving numeric user id" do
51 @twitter.should_receive(:bless_model).with(@user).and_return(@model)
55 it "should bless model returned when giving screen name" do
56 @twitter.should_receive(:bless_model).with(@user).and_return(@model)
57 @twitter.user(@screen_name)
61 nilize(@request, @response, @connection, @twitter, @id, @screen_name, @user)
65 # TODO: Add specs for new Twitter::Client#user(id, :friends) and
66 # Twitter::Client#user(id, :followers) use cases.
67 describe Twitter::Client, "#user(id, :friends)" do
69 @twitter = client_context
81 describe Twitter::Client, "#my(:info)" do
83 @twitter = client_context
84 @screen_name = @twitter.instance_eval("@login")
85 @user = Twitter::User.new(
87 :screen_name => @screen_name,
88 :location => 'Glamorous Urbana'
90 @json = JSON.unparse(@user.to_hash)
91 @request = mas_net_http_get(:basic_auth => nil)
92 @response = mas_net_http_response(:success, @json)
93 @connection = mas_net_http(@response)
94 @uris = Twitter::Client.class_eval("@@USER_URIS")
95 @twitter.stub!(:create_http_get_request).and_return(@request)
96 Net::HTTP.stub!(:new).and_return(@connection)
97 Twitter::User.stub!(:unmarshal).and_return(@user)
100 it "should create expected HTTP GET request" do
101 @twitter.should_receive(:create_http_get_request).with(@uris[:info], :id => @screen_name).and_return(@request)
105 it "should bless the model object returned" do
106 @twitter.should_receive(:bless_models).with(@user).and_return(@user)
110 it "should return expected user object" do
111 user = @twitter.my(:info)
112 user.should eql(@user)
116 nilize(@request, @response, @connection, @twitter, @user, @screen_name)
120 describe Twitter::Client, "#my(:friends)" do
122 @twitter = client_context
123 @screen_name = @twitter.instance_eval("@login")
125 Twitter::User.new(:screen_name => 'lucy_snowe'),
126 Twitter::User.new(:screen_name => 'jane_eyre'),
127 Twitter::User.new(:screen_name => 'tess_derbyfield'),
128 Twitter::User.new(:screen_name => 'elizabeth_jane_newson'),
130 @json = JSON.unparse(@friends.collect {|f| f.to_hash })
131 @request = mas_net_http_get(:basic_auth => nil)
132 @response = mas_net_http_response(:success, @json)
133 @connection = mas_net_http(@response)
134 @uris = Twitter::Client.class_eval("@@USER_URIS")
135 @twitter.stub!(:create_http_get_request).and_return(@request)
136 Twitter::User.stub!(:unmarshal).and_return(@friends)
137 Net::HTTP.stub!(:new).and_return(@connection)
140 it "should create expected HTTP GET request" do
141 @twitter.should_receive(:create_http_get_request).with(@uris[:friends], :id => @screen_name).and_return(@request)
142 @twitter.my(:friends)
145 it "should bless models returned" do
146 @twitter.should_receive(:bless_models).with(@friends).and_return(@friends)
147 @twitter.my(:friends)
150 it "should return expected Array of friends" do
151 friends = @twitter.my(:friends)
152 friends.should eql(@friends)
156 nilize(@request, @response, @connection, @twitter, @friends, @screen_name)
160 describe Twitter::Client, "#my(:invalid_action)" do
162 @twitter = client_context
165 it "should raise ArgumentError for invalid user action" do
168 }.should raise_error(ArgumentError)