require File.join(File.dirname(__FILE__), "/../spec_helper") module Peddler module Inventory describe Queue do it "should show queue count" do transport = Peddler::Transport.new transport.legacize_request transport.stub!(:execute_request).and_return("1") Peddler::Inventory::Queue.count(transport).should == 1 end end describe Batch do before(:each) do @transport = Peddler::Transport.new @transport.legacize_request @inventory = Peddler::Inventory::Batch.new(@transport) @item = Peddler::Inventory::Item.new :product_id => "1234567890", :price => 100.00, :sku => "FOO-SKU", :quantity => 10 end it "should add items to batch" do @inventory.batch.size.should == 0 @inventory << @item @inventory.batch.size.should == 1 end it "should generate an upload file" do @inventory << @item @inventory.file_content.should == "product-id\tproduct-id-type\titem-condition\tprice\tsku\tquantity\tadd-delete\twill-ship-internationally\texpedited-shipping\titem-note\titem-is-marketplace\tfulfillment-center-id\titem-name\titem-description\tcategory1\timage-url\tshipping-fee\tbrowse-path\tstorefront-feature\tboldface\tasin1\tasin2\tasin3\r\n1234567890\t\t\t100.0\tFOO-SKU\t10\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n" end it "should generate a modify-only upload file" do @inventory << @item @inventory.file_content(:short).should == "sku\tprice\tquantity\r\nFOO-SKU\t100.0\t10\r\n" end it "should generate default headers for uploading" do params = @inventory.defaultize :file_format => "UIEE", :enable_expedited_shipping => "N" params[:method].should be_nil params[:upload_for].should == "Marketplace" params[:email].should == "Y" params[:file_format].should == "UIEE" params["enable-expedited-shipping"].should == "N" params[:enable_expedited_shipping].should be_nil end it "should upload batch" do @transport.stub!(:execute_request).and_return("2585199250") @inventory.upload.should == true @inventory.id.should == "2585199250" end it "should raise error if a subsequent upload is attempted" do @transport.stub!(:execute_request).and_return("2585199250") @inventory.upload.should == true @inventory.id.should_not == nil lambda { @inventory.upload }.should raise_error(PeddlerError) end end end end