1 require File.join(File.dirname(__FILE__), '..', '..', 'spec_helper')
3 describe Twitter::Client, "#graph(:friends...)" 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("@@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)
18 def create_uri(action)
19 "#{@uris[action]}.json"
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)
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)
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)
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)
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)
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)
58 it "should raise ArgumentError if action given is not valid" do
60 @twitter.graph(:crap, @friend)
61 }.should raise_error(ArgumentError)
65 nilize(@twitter, @id, @uris, @request, @response, @connection)