Added v 0.4.0 snapshot.
[twitter4r-core.git] / spec / twitter / client / graph_spec.rb
blobf9c26d8718fdd0c17cebd70dc4b1aee3464e64c1
1 require File.join(File.dirname(__FILE__), '..', '..', 'spec_helper')
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
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
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
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