spec/rubytter_spec.rb in jugyo-rubytter-0.5.0 vs spec/rubytter_spec.rb in jugyo-rubytter-0.6.3

- old
+ new

@@ -111,35 +111,36 @@ it 'should respond to search (1)' do @rubytter.should_receive(:http_request) do |host, req, param_str| req.path.should == '/search.json?q=test' host.should == 'search.twitter.com' + {'results' => []} end @rubytter.search('test') end it 'should respond to search with params (1)' do @rubytter.should_receive(:http_request) do |host, req, param_str| req.path.should =~ /\/search.json\?/ req.path.should =~ /q=test/ req.path.should =~ /lang=ja/ + {'results' => []} end @rubytter.search('test', :lang => 'ja') end it 'should respond to to_param_str' do - param_str = @rubytter.to_param_str(:page => 2, :foo => 'bar') - p param_str + param_str = Rubytter.to_param_str(:page => 2, :foo => 'bar') param_str.should =~ /^.+?=.+?&.+?=.+?$/ param_str.should =~ /page=2/ param_str.should =~ /foo=bar/ end it 'should raise when call to_param_str with invalid arg' do - lambda { @rubytter.to_param_str(nil) }.should raise_error(ArgumentError) - lambda { @rubytter.to_param_str('foo') }.should raise_error(ArgumentError) - lambda { @rubytter.to_param_str(:bar) }.should raise_error(ArgumentError) + lambda { Rubytter.to_param_str(nil) }.should raise_error(ArgumentError) + lambda { Rubytter.to_param_str('foo') }.should raise_error(ArgumentError) + lambda { Rubytter.to_param_str(:bar) }.should raise_error(ArgumentError) end it 'should set default header' do rubytter = Rubytter.new('test', 'test') rubytter.header.should == {'User-Agent', "Rubytter/#{VERSION} (http://github.com/jugyo/rubytter)"} @@ -177,11 +178,11 @@ nil => nil, :c => {:a => 1, :b => 2}, :d => {:a => {:a => 1, :b => 2}, :b => 1}, :e => [{:a => 1, :b => 2}, {:c => 3}] } - struct = @rubytter.json_to_struct(hash) + struct = Rubytter.json_to_struct(hash) struct.a.should == 'a' struct.b.should == 1 struct.c.a.should == 1 struct.c.b.should == 2 struct.d.a.a.should == 1 @@ -194,8 +195,52 @@ it 'should be set app_name' do rubytter = Rubytter.new('test', 'teat', :app_name => "Foo") rubytter.should_receive(:__update_status).with({:status => 'test', :source => "Foo"}) rubytter.update('test') + end + + it 'should convert search results to struct' do + json_data = { + 'id' => '123', + 'text' => 'foo foo bar bar', + 'created_at' => 'Sat, 21 Mar 2009 09:48:20 +0000', + 'source' => '&lt;a href=&quot;http:\/\/twitter.com\/&quot;&gt;web&lt;\/a&gt;', + 'to_usre_id' => '20660692', + 'to_usre' => 'jugyo_test', + 'from_user_id' => '3748631', + 'from_user' => 'jugyo', + 'profile_image_url' => 'http://s3.amazonaws.com/twitter_production/profile_images/63467667/megane2_normal.png' + } + rubytter = Rubytter.new('test', 'teat') + result = rubytter.search_result_to_struct(json_data) + result['id'].should == '123' + result['text'].should == 'foo foo bar bar' + result['created_at'].should == 'Sat, 21 Mar 2009 09:48:20 +0000' + result['source'].should == "<a href=\"http:\\/\\/twitter.com\\/\">web<\\/a>" + result['in_reply_to_user_id'].should == '20660692' + result['in_reply_to_screen_name'].should == 'jugyo_test' + result['user']['id'].should == '3748631' + result['user']['screen_name'].should == 'jugyo' + result['user']['profile_image_url'].should == 'http://s3.amazonaws.com/twitter_production/profile_images/63467667/megane2_normal.png' + end + + it 'should work search' do + json_data = JSON.parse open(File.dirname(__FILE__) + '/search.json').read + + @rubytter.stub!(:http_request).and_return(json_data) + statuses = @rubytter.search('termtter') + status = statuses[0] + + status.id.should == 1365281728 + status.text.should == "よし、add_hook 呼んでるところが無くなった #termtter" + status.created_at.should == "Sat, 21 Mar 2009 09:48:20 +0000" + status.source.should == "<a href=\"http://twitter.com/\">web</a>" + status.in_reply_to_user_id.should == nil + status.in_reply_to_screen_name.should == nil + status.in_reply_to_status_id.should == nil + status.user.id.should == 74941 + status.user.screen_name.should == "jugyo" + status.user.profile_image_url.should == "http://s3.amazonaws.com/twitter_production/profile_images/63467667/megane2_normal.png" end end end