test/unit/services/shipwire_test.rb in active_fulfillment-1.0.3 vs test/unit/services/shipwire_test.rb in active_fulfillment-2.0.0
- old
+ new
@@ -19,10 +19,11 @@
:address1 => '1234 Penny Lane',
:city => 'Jonsetown',
:state => 'NC',
:country => 'US',
:zip => '23456',
+ :company => 'MyCorp',
:email => 'buyer@jadedpallet.com'
}
@line_items = [ { :sku => '9999', :quantity => 25 } ]
end
@@ -84,20 +85,30 @@
assert_equal 926, response.stock_levels['BlackDog']
assert_equal 805, response.stock_levels['MoustacheCat']
assert_equal 921, response.stock_levels['KingMonkey']
end
+ def test_inventory_request_with_include_empty_tag
+ @shipwire = ShipwireService.new(
+ :login => 'cody@example.com',
+ :password => 'test',
+ :include_empty_stock => true
+ )
+ xml = REXML::Document.new(@shipwire.send(:build_inventory_request, {}))
+ assert REXML::XPath.first(xml, '//IncludeEmpty')
+ end
+
def test_no_tracking_numbers_available
@shipwire.expects(:ssl_post).returns(successful_empty_tracking_response)
response = @shipwire.fetch_tracking_numbers(['1234'])
assert response.success?
assert_equal Hash.new, response.tracking_numbers
end
def test_successful_tracking
- expected = { "2986" => "1ZW682E90326614239",
- "2987" => "1ZW682E90326795080" }
+ expected = { "2986" => ["1ZW682E90326614239"],
+ "2987" => ["1ZW682E90326795080"] }
@shipwire.expects(:ssl_post).returns(successful_tracking_response)
response = @shipwire.fetch_tracking_numbers(["2986", "2987"])
assert response.success?
assert_equal "3", response.params["total_orders"]
@@ -130,23 +141,61 @@
def test_invalid_credentials
@shipwire.expects(:ssl_post).returns(invalid_login_response)
assert !@shipwire.valid_credentials?
end
+ def test_affiliate_id
+ ActiveMerchant::Fulfillment::ShipwireService.affiliate_id = 'affiliate_id'
+
+ xml = REXML::Document.new(@shipwire.send(:build_fulfillment_request, '123456', @address, @line_items, @options))
+ affiliate_id = REXML::XPath.first(xml, "//AffiliateId")
+ assert_equal 'affiliate_id', affiliate_id.text
+ end
+
+ def test_company_name_in_request
+ xml = REXML::Document.new(@shipwire.send(:build_fulfillment_request, '123456', @address, @line_items, @options))
+ company_node = REXML::XPath.first(xml, "//Company")
+ assert_equal 'MyCorp', company_node.text
+ end
+
+ def test_order_excludes_note_by_default
+ xml = REXML::Document.new(@shipwire.send(:build_fulfillment_request, '123456', @address, @line_items, @options))
+ note_node = REXML::XPath.first(xml, "//Note").cdatas.first
+ assert_nil note_node
+ end
+
+ def test_order_includes_note_when_present
+ @options[:note] = "A test note"
+ xml = REXML::Document.new(@shipwire.send(:build_fulfillment_request, '123456', @address, @line_items, @options))
+ note_node = REXML::XPath.first(xml, "//Note").cdatas.first
+ assert_equal "A test note", note_node.to_s
+ end
+
+ def test_error_response_cdata_parsing
+ @shipwire.expects(:ssl_post).returns(xml_fixture('shipwire/fulfillment_failure_response'))
+ assert !@shipwire.valid_credentials?
+ end
+
private
def successful_empty_tracking_response
"<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\r\n<TrackingUpdateResponse><Status>Test</Status><TotalOrders></TotalOrders><TotalShippedOrders></TotalShippedOrders><TotalProducts></TotalProducts><Bookmark></Bookmark></TrackingUpdateResponse>"
end
def successful_tracking_response
<<-XML
<?xml version="1.0"?>
<TrackingUpdateResponse>
<Status>Test</Status>
- <Order id="2986" shipped="YES" trackingNumber="1ZW682E90326614239" shipper="UPS GD" handling="1.00" shipping="13.66" total="14.66"/>
- <Order id="2987" shipped="YES" trackingNumber="1ZW682E90326795080" shipper="UPS GD" handling="1.50" shipping="9.37" total="10.87"/>
- <Order id="2988" shipped="NO" trackingNumber="" shipper="UPS GD" handling="" shipping="" total=""/>
+ <Order id="2986" shipped="YES" shipper="UPS GD" handling="1.00" shipping="13.66" total="14.66">
+ <TrackingNumber>1ZW682E90326614239</TrackingNumber>
+ </Order>
+ <Order id="2987" shipped="YES" shipper="UPS GD" handling="1.50" shipping="9.37" total="10.87">
+ <TrackingNumber>1ZW682E90326795080</TrackingNumber>
+ </Order>
+ <Order id="2988" shipped="NO" shipper="UPS GD" handling="" shipping="" total="">
+ <TrackingNumber></TrackingNumber>
+ </Order>
<TotalOrders>3</TotalOrders>
<TotalShippedOrders>2</TotalShippedOrders>
<Bookmark>2006-04-28 20:35:45</Bookmark>
</TrackingUpdateResponse>
XML
@@ -155,25 +204,55 @@
def successful_live_tracking_response
<<-XML
<?xml version="1.0" encoding="ISO-8859-1"?>
<TrackingUpdateResponse>
<Status>0</Status>
- <Order id="21" shipped="YES" trackingNumber="1Z6296VW0398500001" shipper="5" handling="0.00" shipping="6.58" total="6.58"/>
- <Order id="22" shipped="YES" trackingNumber="1Z6296VW0390790002" shipper="5" handling="0.00" shipping="8.13" total="8.13"/>
- <Order id="23" shipped="YES" trackingNumber="1Z6296VW0396490003" shipper="5" handling="0.00" shipping="7.63" total="7.63"/>
- <Order id="24" shipped="YES" trackingNumber="1Z6296VW0390200004" shipper="5" handling="0.00" shipping="8.97" total="8.97"/>
- <Order id="25" shipped="YES" trackingNumber="1Z6296VW0393240005" shipper="5" handling="0.00" shipping="8.42" total="8.42"/>
- <Order id="26" shipped="YES" trackingNumber="1Z6296VW0396400006" shipper="5" handling="0.00" shipping="8.42" total="8.42"/>
- <Order id="2581" shipped="YES" trackingNumber="1Z6296VW0391160007" shipper="5" handling="0.00" shipping="8.21" total="8.21"/>
- <Order id="2576" shipped="YES" trackingNumber="CJ3026000018US" shipper="43" handling="0.00" shipping="18.60" total="18.60"/>
- <Order id="2593" shipped="YES" trackingNumber="1Z6296VW0398660008" shipper="5" handling="0.00" shipping="7.63" total="7.63"/>
- <Order id="2598" shipped="YES" trackingNumber="1Z6296VW0391610009" shipper="5" handling="0.00" shipping="9.84" total="9.84"/>
- <Order id="2610" shipped="YES" trackingNumber="1Z6296VW0395650010" shipper="5" handling="0.00" shipping="7.63" total="7.63"/>
- <Order id="2611" shipped="YES" trackingNumber="1Z6296VW0397050011" shipper="5" handling="0.00" shipping="7.13" total="7.13"/>
- <Order id="2613" shipped="YES" trackingNumber="1Z6296VW0398970012" shipper="5" handling="0.00" shipping="8.97" total="8.97"/>
- <Order id="2616" shipped="NO" trackingNumber="" shipper="5" handling="0.00" shipping="9.84" total="9.84"/>
- <Order id="2631" shipped="NO" trackingNumber="" shipper="" handling="" shipping="" total=""/>
+ <Order id="21" shipped="YES" shipper="5" handling="0.00" shipping="6.58" total="6.58">
+ <TrackingNumber>1Z6296VW0398500001</TrackingNumber>
+ </Order>
+ <Order id="22" shipped="YES" shipper="5" handling="0.00" shipping="8.13" total="8.13">
+ <TrackingNumber>1Z6296VW0390790002</TrackingNumber>
+ </Order>
+ <Order id="23" shipped="YES" shipper="5" handling="0.00" shipping="7.63" total="7.63">
+ <TrackingNumber>1Z6296VW0396490003</TrackingNumber>
+ </Order>
+ <Order id="24" shipped="YES" shipper="5" handling="0.00" shipping="8.97" total="8.97">
+ <TrackingNumber>1Z6296VW0390200004</TrackingNumber>
+ </Order>
+ <Order id="25" shipped="YES" shipper="5" handling="0.00" shipping="8.42" total="8.42">
+ <TrackingNumber>1Z6296VW0393240005</TrackingNumber>
+ </Order>
+ <Order id="26" shipped="YES" shipper="5" handling="0.00" shipping="8.42" total="8.42">
+ <TrackingNumber>1Z6296VW0396400006</TrackingNumber>
+ </Order>
+ <Order id="2581" shipped="YES" shipper="5" handling="0.00" shipping="8.21" total="8.21">
+ <TrackingNumber>1Z6296VW0391160007</TrackingNumber>
+ </Order>
+ <Order id="2576" shipped="YES" shipper="43" handling="0.00" shipping="18.60" total="18.60">
+ <TrackingNumber>CJ3026000018US</TrackingNumber>
+ </Order>
+ <Order id="2593" shipped="YES" shipper="5" handling="0.00" shipping="7.63" total="7.63">
+ <TrackingNumber>1Z6296VW0398660008</TrackingNumber>
+ </Order>
+ <Order id="2598" shipped="YES" shipper="5" handling="0.00" shipping="9.84" total="9.84">
+ <TrackingNumber>1Z6296VW0391610009</TrackingNumber>
+ </Order>
+ <Order id="2610" shipped="YES" shipper="5" handling="0.00" shipping="7.63" total="7.63">
+ <TrackingNumber>1Z6296VW0395650010</TrackingNumber>
+ </Order>
+ <Order id="2611" shipped="YES" shipper="5" handling="0.00" shipping="7.13" total="7.13">
+ <TrackingNumber>1Z6296VW0397050011</TrackingNumber>
+ </Order>
+ <Order id="2613" shipped="YES" shipper="5" handling="0.00" shipping="8.97" total="8.97">
+ <TrackingNumber>1Z6296VW0398970012</TrackingNumber>
+ </Order>
+ <Order id="2616" shipped="NO" shipper="5" handling="0.00" shipping="9.84" total="9.84">
+ <TrackingNumber></TrackingNumber>
+ </Order>
+ <Order id="2631" shipped="NO" shipper="" handling="" shipping="" total="">
+ <TrackingNumber></TrackingNumber>
+ </Order>
<TotalOrders>15</TotalOrders>
<TotalShippedOrders>13</TotalShippedOrders>
<TotalProducts/>
<Bookmark/>
</TrackingUpdateResponse>
@@ -183,10 +262,10 @@
def invalid_login_response
<<-XML
<?xml version="1.0" encoding="ISO-8859-1"?>
<TrackingUpdateResponse><Status>Error</Status><ErrorMessage>
-Error with EmailAddress, valid email is required.
+Error with Valid Username/EmailAddress and Password Required.
There is an error in XML document.
</ErrorMessage></TrackingUpdateResponse>
XML
end
end