spec/fassbinder/request_spec.rb in fassbinder-0.0.8 vs spec/fassbinder/request_spec.rb in fassbinder-0.0.9
- old
+ new
@@ -3,34 +3,64 @@
module Fassbinder
describe Request do
let(:request) { Request.new(credentials) }
describe ".new" do
- it "defines a batch request" do
+ it "sets up an item request" do
request.parameters['Operation'].should eql 'ItemLookup'
+ end
+
+ it "looks up ASINs" do
request.parameters['ItemLookup.Shared.IdType'].should eql 'ASIN'
+ end
+
+ it "looks up all conditions" do
request.parameters['ItemLookup.Shared.Condition'].should eql 'All'
+ end
+
+ it "looks up all merchants" do
request.parameters['ItemLookup.Shared.MerchantId'].should eql 'All'
- request.parameters['ItemLookup.Shared.ResponseGroup'].should eql ['OfferFull', 'SalesRank']
end
+
+ it "looks up full offers" do
+ request.parameters['ItemLookup.Shared.ResponseGroup'].should eql ['OfferFull']
+ end
end
describe "#batchify" do
- it "adds up to 20 ASINs to the worker's parameters" do
- asins = (0..19).to_a
- request.batchify(asins)
+ context "when passed one ASIN" do
+ it "adds the ASIN to the batch" do\
+ request.batchify('foo')
+ request.parameters['ItemLookup.1.ItemId'].should eql ['foo']
+ end
+ end
- request.parameters['ItemLookup.1.ItemId'].should eql (0..9).to_a
- request.parameters['ItemLookup.2.ItemId'].should eql (10..19).to_a
+ context "when passed up to 20 ASINs" do
+ it "adds the ASINs to the batch" do
+ asins = (0..19).to_a
+ request.batchify(asins)
+
+ request.parameters['ItemLookup.1.ItemId'].should eql (0..9).to_a
+ request.parameters['ItemLookup.2.ItemId'].should eql (10..19).to_a
+ end
end
+
+ context "when passed over 20 ASINs" do
+ it "raises an error" do
+ expect do
+ asins = (0..20).to_a
+ request.batchify(asins)
+ end.to raise_error ArgumentError
+ end
+ end
end
describe "#get" do
before do
VCR.http_stubbing_adapter.http_connections_allowed = true
end
- it "returns an algorithm" do
+ it "returns a response" do
Request.stub!(:get)
request.locale = :us
request.batchify('foo')