1 require File.join(File.dirname(__FILE__), '..', '..', 'spec_helper')
3 describe Twitter::Client, "#friend" do
5 @twitter = client_context
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_get(: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)
17 def create_uri(action, id)
18 "#{@uris[action]}/#{id}.json"
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_get_request).with(create_uri(:add, @id)).and_return(@request)
24 @twitter.friend(:add, @id)
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_get_request).with(create_uri(:add, @screen_name)).and_return(@request)
30 @twitter.friend(:add, @screen_name)
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_get_request).with(create_uri(:add, @friend.to_i)).and_return(@request)
36 @twitter.friend(:add, @friend)
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_get_request).with(create_uri(:remove, @id)).and_return(@request)
42 @twitter.friend(:remove, @id)
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_get_request).with(create_uri(:remove, @screen_name)).and_return(@request)
48 @twitter.friend(:remove, @screen_name)
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_get_request).with(create_uri(:remove, @friend.to_i)).and_return(@request)
54 @twitter.friend(:remove, @friend)
57 it "should bless user model returned for :add case" do
58 @twitter.should_receive(:bless_model).with(@friend)
59 @twitter.friend(:add, @friend)
62 it "should bless user model returned for :remove case" do
63 @twitter.should_receive(:bless_model).with(@friend)
64 @twitter.friend(:remove, @friend)
68 nilize(@twitter, @id, @uris, @request, @response, @connection)