spec/peddler/transport_spec.rb in peddler-0.2.4 vs spec/peddler/transport_spec.rb in peddler-0.3.0

- old
+ new

@@ -1,65 +1,65 @@ -require File.join(File.dirname(__FILE__), '/../spec_helper') +require 'spec_helper' module Peddler - describe Transport do - - before(:each) do - @transport = Peddler::Transport.new - @transport.username = 'user' - @transport.password = 'secret' - @transport.region = :us + let(:transport) do + transport = Peddler::Transport.new + transport.username = 'user' + transport.password = 'secret' + transport.region = :us + transport end - - it 'should switch regions' do - @transport.legacize_request - @transport.region = :uk - @transport.url.host.should == 'secure.amazon.co.uk' + + it 'switches regions' do + transport.legacize_request + transport.region = :uk + transport.url.host.should == 'secure.amazon.co.uk' end - - it 'should raise error when region is invalid' do - lambda { @transport.region = 'foo' }.should raise_error(PeddlerError) + + it 'raises error when region is invalid' do + lambda { transport.region = 'foo' }.should raise_error(PeddlerError) end - - it 'should add path to legacy URL' do - @transport.legacize_request - @transport.path << 'foo' - @transport.url.to_s.should == 'https://secure.amazon.com/exec/panama/seller-admin/foo' + + it 'adds path to legacy URL' do + transport.legacize_request + transport.path << 'foo' + transport.url.to_s.should == 'https://secure.amazon.com/exec/panama/seller-admin/foo' end - - it 'should add path to modern URL' do - @transport.modernize_request - @transport.path << 'foo' - @transport.url.to_s.should == 'https://secure.amazon.com/query/foo?Service=MerchantQueryService' + + it 'adds path to modern URL' do + transport.modernize_request + transport.path << 'foo' + transport.url.to_s.should == 'https://secure.amazon.com/query/foo?Service=MerchantQueryService' end - - it 'should add query parameters to the modern URL' do - @transport.modernize_request - @transport.query_params['key1'] = 'val1' - @transport.query_params['key2'] = 'val2' - @transport.url.to_s.should == 'https://secure.amazon.com/query/?key1=val1&key2=val2&Service=MerchantQueryService' + + it 'adds query parameters to the modern URL' do + transport.modernize_request + transport.query_params['key1'] = 'val1' + transport.query_params['key2'] = 'val2' + uri = URI.parse(transport.url.to_s) + keys = uri.query.split('&').map{ |param| param.match(/(.*)=/)[1] } + keys.should include('key1') + keys.should include('key2') end - - it 'should authenticate request' do - @transport.legacize_request - req = @transport.request + + it 'authenticates request' do + transport.legacize_request + req = transport.request req['authorization'].should_not be(nil) end - - it 'should post if there is a body' do - @transport.body = 'foo' - @transport.send(:request_method).should == Net::HTTP::Post + + it 'posts if there is a body' do + transport.body = 'foo' + transport.send(:request_method).should == Net::HTTP::Post end - - it 'should post if there is a query parameter' do - @transport.query_params = { :foo => 'bar' } - @transport.send(:request_method).should == Net::HTTP::Post + + it 'posts if there is a query parameter' do + transport.query_params = { :foo => 'bar' } + transport.send(:request_method).should == Net::HTTP::Post end - - it 'should get if there is no body or query parameter' do - @transport.send(:request_method).should == Net::HTTP::Get + + it 'gets if there is no body or query parameter' do + transport.send(:request_method).should == Net::HTTP::Get end end - -end - \ No newline at end of file +end