1 require File.join(File.dirname(__FILE__), '..', 'spec_helper')
3 describe Twitter::Client, ".configure" do
4 it "should respond to :configure class method" do
5 Twitter::Client.respond_to?(:configure).should be(true)
8 it "should not accept calls that do not specify blocks" do
10 Twitter::Client.configure()
11 }.should raise_error(ArgumentError)
15 describe Twitter::Client, ".configure with mocked @config" do
17 @block_invoked = false
19 @conf = mock(Twitter::Config)
20 @block = Proc.new do |conf|
22 @conf_yielded = true if conf.is_a?(Twitter::Config)
24 Twitter::Config.stub!(:new).and_return(@conf)
27 it "should not raise an error when passing block" do
29 Twitter::Client.configure(&@block)
30 }.should_not raise_error
33 it "should yield a Twitter::Client object to block" do
34 Twitter::Client.configure(&@block)
35 @block_invoked.should be(true)
36 @conf_yielded.should be(true)
40 nilize(@block, @block_invoked, @conf, @conf_yielded)
44 describe Twitter::Config, "#eql?" do
49 @proxy_host = 'myproxy.host'
52 :protocol => @protocol,
55 :proxy_host => @proxy_host,
56 :proxy_port => @proxy_port,
58 @obj = stubbed_twitter_config(Twitter::Config.new, attrs)
59 @other = stubbed_twitter_config(Twitter::Config.new, attrs)
61 @different = stubbed_twitter_config(Twitter::Config.new, attrs.merge(:proxy_host => 'different.proxy'))
65 it "should return true for two logically equivalent objects" do
66 @obj.should be_eql(@other)
67 @other.should be_eql(@obj)
70 it "should return false for two logically different objects" do
71 @obj.should_not be_eql(@different)
72 @different.should_not be_eql(@obj)
73 @other.should_not be_eql(@different)
74 @different.should_not be_eql(@other)
77 it "should return true for references to the same object in memory" do
78 @obj.should eql(@same)
79 @same.should eql(@obj)
80 @other.should eql(@other)
84 nilize(@protocol, @host, @port, @proxy_host, @proxy_port, @obj, @other, @different, @same)