reactive_shipping 3.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +15 -0
- data/.travis.yml +33 -0
- data/.yardopts +13 -0
- data/CHANGELOG.md +225 -0
- data/CONTRIBUTING.md +23 -0
- data/Gemfile +3 -0
- data/MIT-LICENSE +21 -0
- data/README.md +158 -0
- data/Rakefile +35 -0
- data/dev.yml +17 -0
- data/gemfiles/activesupport42.gemfile +5 -0
- data/gemfiles/activesupport50.gemfile +6 -0
- data/gemfiles/activesupport51.gemfile +5 -0
- data/gemfiles/activesupport52.gemfile +5 -0
- data/gemfiles/activesupport_master.gemfile +5 -0
- data/lib/certs/eParcel.dtd +111 -0
- data/lib/reactive_shipping.rb +26 -0
- data/lib/reactive_shipping/address_validation_response.rb +30 -0
- data/lib/reactive_shipping/carrier.rb +184 -0
- data/lib/reactive_shipping/carriers.rb +35 -0
- data/lib/reactive_shipping/carriers/australia_post.rb +248 -0
- data/lib/reactive_shipping/carriers/benchmark_carrier.rb +31 -0
- data/lib/reactive_shipping/carriers/bogus_carrier.rb +12 -0
- data/lib/reactive_shipping/carriers/canada_post.rb +263 -0
- data/lib/reactive_shipping/carriers/canada_post_pws.rb +908 -0
- data/lib/reactive_shipping/carriers/fedex.rb +797 -0
- data/lib/reactive_shipping/carriers/kunaki.rb +155 -0
- data/lib/reactive_shipping/carriers/new_zealand_post.rb +260 -0
- data/lib/reactive_shipping/carriers/shipwire.rb +178 -0
- data/lib/reactive_shipping/carriers/stamps.rb +860 -0
- data/lib/reactive_shipping/carriers/ups.rb +1060 -0
- data/lib/reactive_shipping/carriers/usps.rb +708 -0
- data/lib/reactive_shipping/carriers/usps_returns.rb +86 -0
- data/lib/reactive_shipping/delivery_date_estimate.rb +20 -0
- data/lib/reactive_shipping/delivery_date_estimates_response.rb +11 -0
- data/lib/reactive_shipping/errors.rb +35 -0
- data/lib/reactive_shipping/external_return_label_request.rb +417 -0
- data/lib/reactive_shipping/external_return_label_response.rb +26 -0
- data/lib/reactive_shipping/label.rb +10 -0
- data/lib/reactive_shipping/label_response.rb +10 -0
- data/lib/reactive_shipping/location.rb +166 -0
- data/lib/reactive_shipping/package.rb +165 -0
- data/lib/reactive_shipping/package_item.rb +60 -0
- data/lib/reactive_shipping/rate_estimate.rb +197 -0
- data/lib/reactive_shipping/rate_response.rb +33 -0
- data/lib/reactive_shipping/response.rb +44 -0
- data/lib/reactive_shipping/shipment_event.rb +22 -0
- data/lib/reactive_shipping/shipment_packer.rb +108 -0
- data/lib/reactive_shipping/shipping_response.rb +34 -0
- data/lib/reactive_shipping/tracking_response.rb +120 -0
- data/lib/reactive_shipping/version.rb +3 -0
- data/reactive_shipping.gemspec +38 -0
- data/shipit.rubygems.yml +1 -0
- data/test/console.rb +39 -0
- data/test/credentials.yml +76 -0
- data/test/fixtures/files/label1.pdf +0 -0
- data/test/fixtures/files/ups-shipping-label.gif +0 -0
- data/test/fixtures/json/australia_post/calculate_domestic.json +13 -0
- data/test/fixtures/json/australia_post/calculate_domestic_2.json +19 -0
- data/test/fixtures/json/australia_post/calculate_international.json +12 -0
- data/test/fixtures/json/australia_post/calculate_international_2.json +15 -0
- data/test/fixtures/json/australia_post/error_message.json +5 -0
- data/test/fixtures/json/australia_post/service_domestic.json +117 -0
- data/test/fixtures/json/australia_post/service_domestic_2.json +117 -0
- data/test/fixtures/json/australia_post/service_international.json +76 -0
- data/test/fixtures/json/australia_post/service_international_2.json +59 -0
- data/test/fixtures/json/newzealandpost/domestic_book.json +1 -0
- data/test/fixtures/json/newzealandpost/domestic_default.json +1 -0
- data/test/fixtures/json/newzealandpost/domestic_error.json +1 -0
- data/test/fixtures/json/newzealandpost/domestic_poster.json +1 -0
- data/test/fixtures/json/newzealandpost/domestic_small_half_pound.json +1 -0
- data/test/fixtures/json/newzealandpost/international_book.json +1 -0
- data/test/fixtures/json/newzealandpost/international_new_zealand_wii.json +1 -0
- data/test/fixtures/json/newzealandpost/international_small_half_pound.json +1 -0
- data/test/fixtures/json/newzealandpost/international_wii.json +1 -0
- data/test/fixtures/xml/canadapost/example_request.xml +25 -0
- data/test/fixtures/xml/canadapost/example_response.xml +130 -0
- data/test/fixtures/xml/canadapost/example_response_error.xml +16 -0
- data/test/fixtures/xml/canadapost/example_response_french.xml +122 -0
- data/test/fixtures/xml/canadapost/example_response_with_nil_value.xml +164 -0
- data/test/fixtures/xml/canadapost/example_response_with_postal_outlet.xml +155 -0
- data/test/fixtures/xml/canadapost/example_response_with_postal_outlet_french.xml +274 -0
- data/test/fixtures/xml/canadapost/example_response_with_strange_delivery_date.xml +130 -0
- data/test/fixtures/xml/canadapost_pws/dnc_tracking_details_en.xml +112 -0
- data/test/fixtures/xml/canadapost_pws/merchant_details_error.xml +7 -0
- data/test/fixtures/xml/canadapost_pws/merchant_details_response.xml +7 -0
- data/test/fixtures/xml/canadapost_pws/option_response.xml +13 -0
- data/test/fixtures/xml/canadapost_pws/option_response_no_conflicts.xml +7 -0
- data/test/fixtures/xml/canadapost_pws/rates_info.xml +190 -0
- data/test/fixtures/xml/canadapost_pws/rates_info_error.xml +7 -0
- data/test/fixtures/xml/canadapost_pws/receipt_response.xml +42 -0
- data/test/fixtures/xml/canadapost_pws/receipt_response_no_priced_options.xml +36 -0
- data/test/fixtures/xml/canadapost_pws/register_token_error.xml +7 -0
- data/test/fixtures/xml/canadapost_pws/register_token_response.xml +3 -0
- data/test/fixtures/xml/canadapost_pws/service_options_response.xml +42 -0
- data/test/fixtures/xml/canadapost_pws/services_error.xml +6 -0
- data/test/fixtures/xml/canadapost_pws/services_response.xml +32 -0
- data/test/fixtures/xml/canadapost_pws/shipment_domestic.xml +69 -0
- data/test/fixtures/xml/canadapost_pws/shipment_response.xml +20 -0
- data/test/fixtures/xml/canadapost_pws/shipment_us.xml +69 -0
- data/test/fixtures/xml/canadapost_pws/tracking_details_en.xml +152 -0
- data/test/fixtures/xml/canadapost_pws/tracking_details_en_error.xml +7 -0
- data/test/fixtures/xml/canadapost_pws/tracking_details_en_undelivered.xml +116 -0
- data/test/fixtures/xml/canadapost_pws/tracking_details_fr.xml +156 -0
- data/test/fixtures/xml/canadapost_pws/tracking_details_no_expected_delivery_date.xml +40 -0
- data/test/fixtures/xml/fedex/create_shipment_response.xml +2 -0
- data/test/fixtures/xml/fedex/freight_rate_request.xml +82 -0
- data/test/fixtures/xml/fedex/freight_rate_response.xml +506 -0
- data/test/fixtures/xml/fedex/invalid_fedex_reply.xml +27 -0
- data/test/fixtures/xml/fedex/ottawa_to_beverly_hills_commercial_rate_request.xml +79 -0
- data/test/fixtures/xml/fedex/ottawa_to_beverly_hills_no_saturday_rate_request.xml +79 -0
- data/test/fixtures/xml/fedex/ottawa_to_beverly_hills_rate_request.xml +80 -0
- data/test/fixtures/xml/fedex/ottawa_to_beverly_hills_rate_response.xml +214 -0
- data/test/fixtures/xml/fedex/raterequest_reply.xml +213 -0
- data/test/fixtures/xml/fedex/raterequest_response_with_ground_home_delivery.xml +206 -0
- data/test/fixtures/xml/fedex/reply_without_notifications.xml +185 -0
- data/test/fixtures/xml/fedex/tracking_request.xml +29 -0
- data/test/fixtures/xml/fedex/tracking_response_bad_tracking_number.xml +20 -0
- data/test/fixtures/xml/fedex/tracking_response_delivered_at_door.xml +254 -0
- data/test/fixtures/xml/fedex/tracking_response_delivered_at_facility.xml +403 -0
- data/test/fixtures/xml/fedex/tracking_response_delivered_with_signature.xml +269 -0
- data/test/fixtures/xml/fedex/tracking_response_empty_status_detail.xml +84 -0
- data/test/fixtures/xml/fedex/tracking_response_failure_code_9045.xml +52 -0
- data/test/fixtures/xml/fedex/tracking_response_failure_code_9080.xml +51 -0
- data/test/fixtures/xml/fedex/tracking_response_in_transit.xml +127 -0
- data/test/fixtures/xml/fedex/tracking_response_invalid_tracking_number.xml +52 -0
- data/test/fixtures/xml/fedex/tracking_response_missing_status_code.xml +89 -0
- data/test/fixtures/xml/fedex/tracking_response_multiple_results.xml +100 -0
- data/test/fixtures/xml/fedex/tracking_response_not_found.xml +52 -0
- data/test/fixtures/xml/fedex/tracking_response_shipment_exception.xml +209 -0
- data/test/fixtures/xml/fedex/tracking_response_unable_to_process.xml +32 -0
- data/test/fixtures/xml/fedex/tracking_response_with_blank_state.xml +107 -0
- data/test/fixtures/xml/fedex/unknown_fedex_document_reply.xml +3 -0
- data/test/fixtures/xml/kunaki/invalid_state_response.xml +3 -0
- data/test/fixtures/xml/kunaki/no_valid_items_response.xml +3 -0
- data/test/fixtures/xml/kunaki/successful_rates_response.xml +3 -0
- data/test/fixtures/xml/kunaki/unsuccessful_rates_response.xml +9 -0
- data/test/fixtures/xml/shipwire/international_rates_response.xml +17 -0
- data/test/fixtures/xml/shipwire/new_carrier_rate_response.xml +18 -0
- data/test/fixtures/xml/shipwire/no_rates_response.xml +7 -0
- data/test/fixtures/xml/shipwire/rates_response.xml +36 -0
- data/test/fixtures/xml/shipwire/rates_response_no_estimate.xml +14 -0
- data/test/fixtures/xml/stamps/authenticate_user_request.xml +15 -0
- data/test/fixtures/xml/stamps/authenticate_user_response.xml +10 -0
- data/test/fixtures/xml/stamps/cleanse_address_request.xml +19 -0
- data/test/fixtures/xml/stamps/cleanse_address_response.xml +27 -0
- data/test/fixtures/xml/stamps/create_indicium_request.xml +69 -0
- data/test/fixtures/xml/stamps/create_indicium_response.xml +40 -0
- data/test/fixtures/xml/stamps/expired_authenticator_response.xml +15 -0
- data/test/fixtures/xml/stamps/get_account_info_request.xml +11 -0
- data/test/fixtures/xml/stamps/get_account_info_response.xml +36 -0
- data/test/fixtures/xml/stamps/get_purchase_status_request.xml +12 -0
- data/test/fixtures/xml/stamps/get_purchase_status_response.xml +16 -0
- data/test/fixtures/xml/stamps/get_rates_request.xml +19 -0
- data/test/fixtures/xml/stamps/get_rates_response.xml +351 -0
- data/test/fixtures/xml/stamps/purchase_postage_request.xml +13 -0
- data/test/fixtures/xml/stamps/purchase_postage_response.xml +17 -0
- data/test/fixtures/xml/stamps/track_shipment_request.xml +12 -0
- data/test/fixtures/xml/stamps/track_shipment_response.xml +45 -0
- data/test/fixtures/xml/ups/access_request.xml +6 -0
- data/test/fixtures/xml/ups/delivered_shipment_with_refund.xml +290 -0
- data/test/fixtures/xml/ups/delivered_shipment_without_events_tracking_response.xml +62 -0
- data/test/fixtures/xml/ups/delivery_dates_response.xml +140 -0
- data/test/fixtures/xml/ups/example_tracking_response.xml +53 -0
- data/test/fixtures/xml/ups/in_transit_shipment.xml +183 -0
- data/test/fixtures/xml/ups/out_for_delivery_shipment.xml +165 -0
- data/test/fixtures/xml/ups/package_exceeds_maximum_length.xml +12 -0
- data/test/fixtures/xml/ups/rate_single_service.xml +54 -0
- data/test/fixtures/xml/ups/rescheduled_shipment.xml +204 -0
- data/test/fixtures/xml/ups/shipment_accept_response.xml +42 -0
- data/test/fixtures/xml/ups/shipment_confirm_response.xml +33 -0
- data/test/fixtures/xml/ups/shipment_from_tiger_direct.xml +222 -0
- data/test/fixtures/xml/ups/test_real_home_as_residential_destination_response.xml +290 -0
- data/test/fixtures/xml/ups/test_real_home_as_residential_destination_response_with_insured.xml +289 -0
- data/test/fixtures/xml/ups/test_real_home_as_residential_destination_with_origin_account_response.xml +311 -0
- data/test/fixtures/xml/ups/tracking_request.xml +9 -0
- data/test/fixtures/xml/ups/triple_accept_response.xml +72 -0
- data/test/fixtures/xml/ups/triple_confirm_response.xml +32 -0
- data/test/fixtures/xml/ups/void_shipment_response.xml +11 -0
- data/test/fixtures/xml/usps/api_error_rate_response.xml +53 -0
- data/test/fixtures/xml/usps/beverly_hills_to_new_york_book_commercial_base_rate_response.xml +2 -0
- data/test/fixtures/xml/usps/beverly_hills_to_new_york_book_commercial_plus_rate_response.xml +258 -0
- data/test/fixtures/xml/usps/beverly_hills_to_new_york_book_rate_response.xml +108 -0
- data/test/fixtures/xml/usps/beverly_hills_to_ottawa_american_wii_commercial_base_rate_response.xml +84 -0
- data/test/fixtures/xml/usps/beverly_hills_to_ottawa_american_wii_commercial_plus_rate_response.xml +212 -0
- data/test/fixtures/xml/usps/beverly_hills_to_ottawa_american_wii_rate_response.xml +230 -0
- data/test/fixtures/xml/usps/first_class_packages_with_invalid_mail_type_response.xml +12 -0
- data/test/fixtures/xml/usps/first_class_packages_with_mail_type_response.xml +16 -0
- data/test/fixtures/xml/usps/first_class_packages_without_mail_type_response.xml +12 -0
- data/test/fixtures/xml/usps/invalid_xml_response.xml +10 -0
- data/test/fixtures/xml/usps/invalid_xml_tracking_response_error.xml +2 -0
- data/test/fixtures/xml/usps/tracking_request.xml +10 -0
- data/test/fixtures/xml/usps/tracking_request_batch.xml +12 -0
- data/test/fixtures/xml/usps/tracking_response.xml +162 -0
- data/test/fixtures/xml/usps/tracking_response_alt.xml +53 -0
- data/test/fixtures/xml/usps/tracking_response_batch.xml +231 -0
- data/test/fixtures/xml/usps/tracking_response_failure.xml +11 -0
- data/test/fixtures/xml/usps/tracking_response_not_available.xml +12 -0
- data/test/fixtures/xml/usps/tracking_response_test_error.xml +8 -0
- data/test/fixtures/xml/usps/us_rate_request.xml +18 -0
- data/test/fixtures/xml/usps/us_rate_request_large.xml +18 -0
- data/test/fixtures/xml/usps/world_rate_request_only_country.xml +22 -0
- data/test/fixtures/xml/usps/world_rate_request_with_value.xml +24 -0
- data/test/fixtures/xml/usps/world_rate_request_without_value.xml +24 -0
- data/test/fixtures/xml/usps_returns/external_return_label_response.xml +2 -0
- data/test/fixtures/xml/usps_returns/external_return_label_response_failure.xml +10 -0
- data/test/remote/australia_post_test.rb +140 -0
- data/test/remote/canada_post_pws_platform_test.rb +259 -0
- data/test/remote/canada_post_pws_test.rb +169 -0
- data/test/remote/canada_post_test.rb +55 -0
- data/test/remote/fedex_test.rb +400 -0
- data/test/remote/kunaki_test.rb +37 -0
- data/test/remote/new_zealand_post_test.rb +149 -0
- data/test/remote/shipwire_test.rb +84 -0
- data/test/remote/stamps_test.rb +396 -0
- data/test/remote/usps_returns_test.rb +72 -0
- data/test/remote/usps_test.rb +243 -0
- data/test/test_helper.rb +296 -0
- data/test/unit/carrier_test.rb +130 -0
- data/test/unit/carriers/australia_post_test.rb +181 -0
- data/test/unit/carriers/benchmark_test.rb +18 -0
- data/test/unit/carriers/canada_post_pws_rating_test.rb +379 -0
- data/test/unit/carriers/canada_post_pws_register_test.rb +76 -0
- data/test/unit/carriers/canada_post_pws_shipping_test.rb +258 -0
- data/test/unit/carriers/canada_post_pws_test.rb +59 -0
- data/test/unit/carriers/canada_post_pws_tracking_test.rb +154 -0
- data/test/unit/carriers/canada_post_test.rb +148 -0
- data/test/unit/carriers/fedex_test.rb +693 -0
- data/test/unit/carriers/kunaki_test.rb +56 -0
- data/test/unit/carriers/new_zealand_post_test.rb +177 -0
- data/test/unit/carriers/shipwire_test.rb +188 -0
- data/test/unit/carriers/stamps_test.rb +245 -0
- data/test/unit/carriers/ups_test.rb +580 -0
- data/test/unit/carriers/usps_returns_test.rb +45 -0
- data/test/unit/carriers/usps_test.rb +633 -0
- data/test/unit/carriers_test.rb +16 -0
- data/test/unit/external_return_label_request_test.rb +258 -0
- data/test/unit/location_test.rb +234 -0
- data/test/unit/package_item_test.rb +232 -0
- data/test/unit/package_test.rb +404 -0
- data/test/unit/rate_estimate_test.rb +93 -0
- data/test/unit/response_test.rb +38 -0
- data/test/unit/shipment_event_test.rb +20 -0
- data/test/unit/shipment_packer_test.rb +212 -0
- data/test/unit/tracking_response_test.rb +41 -0
- metadata +684 -0
@@ -0,0 +1,93 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class RateEstimateTest < ActiveSupport::TestCase
|
4
|
+
setup do
|
5
|
+
@origin = {address1: "61A York St", city: "Ottawa", province: "ON", country: "Canada", postal_code: "K1N 5T2"}
|
6
|
+
@destination = {city: "Beverly Hills", state: "CA", country: "United States", postal_code: "90210"}
|
7
|
+
@line_items = [Package.new(500, [2, 3, 4], description: "a box full of stuff", value: 2500)]
|
8
|
+
@carrier = CanadaPost.new(login: 'test')
|
9
|
+
@options = {currency: 'USD', delivery_range: [DateTime.parse("Fri 01 Jul 2016"), DateTime.parse("Sun 03 Jul 2016")]}
|
10
|
+
|
11
|
+
@rate_estimate = RateEstimate.new(@origin, @destination, @carrier, @service_name, @options)
|
12
|
+
end
|
13
|
+
|
14
|
+
test "#initialize accepts phone_required option field" do
|
15
|
+
est = RateEstimate.new(@origin, @destination, @carrier, @service_name, @options.merge(phone_required: true))
|
16
|
+
assert_equal true, est.phone_required
|
17
|
+
|
18
|
+
est = RateEstimate.new(@origin, @destination, @carrier, @service_name, @options.merge(phone_required: nil))
|
19
|
+
assert_equal false, est.phone_required
|
20
|
+
|
21
|
+
est = RateEstimate.new(@origin, @destination, @carrier, @service_name, @options.merge(phone_required: false))
|
22
|
+
assert_equal false, est.phone_required
|
23
|
+
end
|
24
|
+
|
25
|
+
test "#initialize accepts description option field" do
|
26
|
+
rate_estimate = RateEstimate.new(@origin, @destination, @carrier, @service_name, @options.merge(description: "It's free!"))
|
27
|
+
assert_equal "It's free!", rate_estimate.description
|
28
|
+
end
|
29
|
+
|
30
|
+
test "#initialize converts noniso currency to iso" do
|
31
|
+
rate_estimate = RateEstimate.new(@origin, @destination, @carrier, @service_name, @options.merge(currency: 'UKL'))
|
32
|
+
assert_equal 'GBP', rate_estimate.currency
|
33
|
+
end
|
34
|
+
|
35
|
+
test "#initialize raises if invalid currency code" do
|
36
|
+
assert_raises(ActiveUtils::InvalidCurrencyCodeError) do
|
37
|
+
RateEstimate.new(nil, nil, nil, nil, currency: 'FAKE')
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
test "#initialize accepts estimate_reference option field" do
|
42
|
+
est = RateEstimate.new(@origin, @destination, @carrier, @service_name, @options.merge(estimate_reference: "somefakeref"))
|
43
|
+
|
44
|
+
assert_equal "somefakeref", est.estimate_reference
|
45
|
+
end
|
46
|
+
|
47
|
+
test "#initialize accepts compare_price option field" do
|
48
|
+
est = RateEstimate.new(@origin, @destination, @carrier, @service_name, @options.merge(compare_price: 10.0))
|
49
|
+
assert_equal 1000, est.compare_price
|
50
|
+
end
|
51
|
+
|
52
|
+
test "#initialize accepts delivery_category option field" do
|
53
|
+
est = RateEstimate.new(@origin, @destination, @carrier, @service_name, @options.merge(delivery_category: "local_delivery"))
|
54
|
+
|
55
|
+
assert_equal "local_delivery", est.delivery_category
|
56
|
+
end
|
57
|
+
|
58
|
+
test "#initialize accepts charge_items option field" do
|
59
|
+
charge_items = [
|
60
|
+
{
|
61
|
+
group: "base_charge",
|
62
|
+
code: 'label',
|
63
|
+
name: "USPS Priority Mail label",
|
64
|
+
description: "USPS Priority Mail label to New York, NY, US",
|
65
|
+
amount: 14.64
|
66
|
+
},
|
67
|
+
{
|
68
|
+
group: "included_option",
|
69
|
+
code: 'tracking',
|
70
|
+
name: "Tracking",
|
71
|
+
description: "Free tracking",
|
72
|
+
amount: 0
|
73
|
+
}
|
74
|
+
]
|
75
|
+
est = RateEstimate.new(@origin, @destination, @carrier, @service_name, @options.merge(charge_items: charge_items))
|
76
|
+
|
77
|
+
assert_equal charge_items, est.charge_items
|
78
|
+
end
|
79
|
+
|
80
|
+
test "delivery_date is pulled from the later date of the delivery_range" do
|
81
|
+
assert_equal [DateTime.parse("Fri 01 Jul 2016"), DateTime.parse("Sun 03 Jul 2016")], @rate_estimate.delivery_range
|
82
|
+
assert_equal DateTime.parse("Sun 03 Jul 2016"), @rate_estimate.delivery_date
|
83
|
+
end
|
84
|
+
|
85
|
+
test "#initialize accepts messages option field" do
|
86
|
+
rate = RateEstimate.new(@origin, @destination, @carrier, @service_name, @options.merge(messages: ["warning"]))
|
87
|
+
assert_equal ["warning"], rate.messages
|
88
|
+
end
|
89
|
+
|
90
|
+
test "#date_for returns nil when given nil string" do
|
91
|
+
assert_nil @rate_estimate.send(:date_for, nil)
|
92
|
+
end
|
93
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class ResponseTest < ActiveSupport::TestCase
|
4
|
+
test "#initialize for a successful response" do
|
5
|
+
response = RateResponse.new(
|
6
|
+
true,
|
7
|
+
"success!",
|
8
|
+
{ rate: 'Free!' },
|
9
|
+
rates: [ stub(service_name: 'Free!', total_price: 0) ],
|
10
|
+
xml: "<rate>Free!</rate>"
|
11
|
+
)
|
12
|
+
assert_predicate response, :success?
|
13
|
+
end
|
14
|
+
|
15
|
+
test "#initialize for a failed response raises ResponseError" do
|
16
|
+
assert_raises(ReactiveShipping::ResponseError) do
|
17
|
+
RateResponse.new(
|
18
|
+
false,
|
19
|
+
"fail!",
|
20
|
+
{ rate: 'Free!' },
|
21
|
+
rates: [ stub(service_name: 'Free!', total_price: 0) ],
|
22
|
+
xml: "<rate>Free!</rate>"
|
23
|
+
)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
test "#initialize doesn't raise when you pass in allow_failure" do
|
28
|
+
response = RateResponse.new(
|
29
|
+
false,
|
30
|
+
"fail!",
|
31
|
+
{ rate: 'Free!' },
|
32
|
+
rates: [ stub(service_name: 'Free!', total_price: 0) ],
|
33
|
+
xml: "<rate>Free!</rate>",
|
34
|
+
allow_failure: true,
|
35
|
+
)
|
36
|
+
refute_predicate response, :success?
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class ShipmentEventTest < ActiveSupport::TestCase
|
4
|
+
def test_equality
|
5
|
+
options1 = [
|
6
|
+
'ARRIVED AT UNIT',
|
7
|
+
DateTime.parse('Thu 12 May 2016 05:45:00'),
|
8
|
+
Location.new(city: 'SAN JOSE', state: 'CA', postal_code: '90001', country: 'US'),
|
9
|
+
'ARRIVED AT UNIT',
|
10
|
+
'07'
|
11
|
+
]
|
12
|
+
# Copies options to create new DateTime and Location objects to check for similar distinct objects
|
13
|
+
options2 = options1.dup
|
14
|
+
|
15
|
+
shipment_event_1 = ShipmentEvent.new(*options1)
|
16
|
+
shipment_event_2 = ShipmentEvent.new(*options2)
|
17
|
+
|
18
|
+
assert_equal shipment_event_1, shipment_event_2
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,212 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class ShipmentPackerTest < ActiveSupport::TestCase
|
4
|
+
def setup
|
5
|
+
@dimensions = [5.1, 15.2, 30.5]
|
6
|
+
end
|
7
|
+
|
8
|
+
test "pack divide order into a single package" do
|
9
|
+
items = [{ grams: 1, quantity: 1, price: 1.0 }]
|
10
|
+
|
11
|
+
packages = ShipmentPacker.pack(items, @dimensions, 1, 'USD')
|
12
|
+
assert_equal 1, packages.size
|
13
|
+
|
14
|
+
package = packages.first
|
15
|
+
assert_equal Measured::Weight(1, :g), package.weight
|
16
|
+
end
|
17
|
+
|
18
|
+
test "divide order with multiple lines into a single package" do
|
19
|
+
items = [{ grams: 1, quantity: 2, price: 1.0 }]
|
20
|
+
|
21
|
+
packages = ShipmentPacker.pack(items, @dimensions, 2, 'USD')
|
22
|
+
assert_equal 1, packages.size
|
23
|
+
|
24
|
+
package = packages.first
|
25
|
+
assert_equal Measured::Weight(2, :g), package.weight
|
26
|
+
end
|
27
|
+
|
28
|
+
test "divide order with single line into two packages" do
|
29
|
+
items = [{ grams: 1, quantity: 2, price: 1.0 }]
|
30
|
+
|
31
|
+
packages = ShipmentPacker.pack(items, @dimensions, 1, 'USD')
|
32
|
+
assert_equal 2, packages.size
|
33
|
+
|
34
|
+
packages.each do |package|
|
35
|
+
assert_equal Measured::Weight(1, :g), package.weight
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
test "divide order with single line into two packages max weight as float" do
|
40
|
+
max_weight = 68038.8555
|
41
|
+
|
42
|
+
items = [{ grams: 45359, quantity: 2, price: 1.0 }]
|
43
|
+
|
44
|
+
packages = ShipmentPacker.pack(items, @dimensions, max_weight, 'USD')
|
45
|
+
assert_equal 2, packages.size
|
46
|
+
|
47
|
+
packages.each do |package|
|
48
|
+
assert_equal Measured::Weight(45359, :g), package.weight
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
test "divide order with multiple lines into two packages" do
|
53
|
+
items = [
|
54
|
+
{ grams: 1, quantity: 1, price: 1.0 },
|
55
|
+
{ grams: 1, quantity: 1, price: 1.0 }
|
56
|
+
]
|
57
|
+
|
58
|
+
packages = ShipmentPacker.pack(items, @dimensions, 1, 'USD')
|
59
|
+
assert_equal 2, packages.size
|
60
|
+
|
61
|
+
packages.each do |package|
|
62
|
+
assert_equal Measured::Weight(1, :g), package.weight
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
test "divide order into two packages mixing line items" do
|
67
|
+
items = [
|
68
|
+
{ grams: 1, quantity: 1, price: 1.0 },
|
69
|
+
{ grams: 1, quantity: 1, price: 1.0 },
|
70
|
+
{ grams: 1, quantity: 1, price: 1.0 }
|
71
|
+
]
|
72
|
+
|
73
|
+
packages = ShipmentPacker.pack(items, @dimensions, 2, 'USD')
|
74
|
+
assert_equal 2, packages.size
|
75
|
+
|
76
|
+
assert_equal Measured::Weight(2, :g), packages[0].weight
|
77
|
+
assert_equal Measured::Weight(1, :g), packages[1].weight
|
78
|
+
end
|
79
|
+
|
80
|
+
test "raise overweight exception when a single item exceeds the maximum weight of a package" do
|
81
|
+
assert_raises(ShipmentPacker::OverweightItem) do
|
82
|
+
items = [{ grams: 2, quantity: 1, price: 1.0 }]
|
83
|
+
ShipmentPacker.pack(items, @dimensions, 1, 'USD')
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
test "raise over weight exceptions before over package limit exceptions" do
|
88
|
+
assert_raises(ShipmentPacker::OverweightItem) do
|
89
|
+
items = [{ grams: 5, quantity: ShipmentPacker::EXCESS_PACKAGE_QUANTITY_THRESHOLD + 1, price: 1.0 }]
|
90
|
+
ShipmentPacker.pack(items, @dimensions, 4, 'USD')
|
91
|
+
end
|
92
|
+
end
|
93
|
+
|
94
|
+
test "returns an empty list when no items provided" do
|
95
|
+
assert_equal [], ShipmentPacker.pack([], @dimensions, 1, 'USD')
|
96
|
+
end
|
97
|
+
|
98
|
+
test "add summarized prices for all items and currency to package" do
|
99
|
+
items = [
|
100
|
+
{ grams: 1, quantity: 3, price: 1.0 },
|
101
|
+
{ grams: 2, quantity: 1, price: 2.0 }
|
102
|
+
]
|
103
|
+
packages = ShipmentPacker.pack(items, @dimensions, 5, 'USD')
|
104
|
+
assert_equal 1, packages.size
|
105
|
+
assert_equal 500, packages.first.value
|
106
|
+
assert_equal 'USD', packages.first.currency
|
107
|
+
end
|
108
|
+
|
109
|
+
test "divide items and prices accordingly when splitting into two packages" do
|
110
|
+
items = [
|
111
|
+
{ grams: 1, quantity: 1, price: 1.0 },
|
112
|
+
{ grams: 1, quantity: 1, price: 1.0 },
|
113
|
+
{ grams: 1, quantity: 1, price: 1.0 }
|
114
|
+
]
|
115
|
+
|
116
|
+
packages = ShipmentPacker.pack(items, @dimensions, 2, 'USD')
|
117
|
+
assert_equal 2, packages.size
|
118
|
+
|
119
|
+
assert_equal 200, packages[0].value
|
120
|
+
assert_equal 100, packages[1].value
|
121
|
+
assert_equal 'USD', packages[0].currency
|
122
|
+
assert_equal 'USD', packages[1].currency
|
123
|
+
end
|
124
|
+
|
125
|
+
test "symbolize item keys" do
|
126
|
+
string_key_items = [{ 'grams' => 1, 'quantity' => 1, 'price' => 1.0 }]
|
127
|
+
indifferent_access_items = [{ 'grams' => 1, 'quantity' => 1, 'price' => 1.0 }.with_indifferent_access]
|
128
|
+
|
129
|
+
[string_key_items, indifferent_access_items].each do |items|
|
130
|
+
packages = ShipmentPacker.pack(items, @dimensions, 1, 'USD')
|
131
|
+
assert_equal 1, packages.size
|
132
|
+
|
133
|
+
package = packages.first
|
134
|
+
assert_equal Measured::Weight(1, :g), package.weight
|
135
|
+
assert_equal 100, package.value
|
136
|
+
end
|
137
|
+
end
|
138
|
+
|
139
|
+
test "cast quantity and grams to int" do
|
140
|
+
items = [{ grams: '1', quantity: '1', price: '1.0' }]
|
141
|
+
|
142
|
+
packages = ShipmentPacker.pack(items, @dimensions, 1, 'USD')
|
143
|
+
|
144
|
+
package = packages.first
|
145
|
+
assert_equal Measured::Weight(1, :g), package.weight
|
146
|
+
assert_equal 100, package.value
|
147
|
+
end
|
148
|
+
|
149
|
+
test "excess packages raised over threshold before packing begins" do
|
150
|
+
ReactiveShipping::Package.expects(:new).never
|
151
|
+
items = [{ grams: 1, quantity: ShipmentPacker::EXCESS_PACKAGE_QUANTITY_THRESHOLD + 1, price: 1.0 }]
|
152
|
+
|
153
|
+
assert_raises(ShipmentPacker::ExcessPackageQuantity) do
|
154
|
+
ShipmentPacker.pack(items, @dimensions, 1, 'USD')
|
155
|
+
end
|
156
|
+
end
|
157
|
+
|
158
|
+
test "excess packages not raised at threshold" do
|
159
|
+
items = [{ grams: 1, quantity: ShipmentPacker::EXCESS_PACKAGE_QUANTITY_THRESHOLD, price: 1.0 }]
|
160
|
+
packages = ShipmentPacker.pack(items, @dimensions, 1, 'USD')
|
161
|
+
|
162
|
+
assert_predicate packages, :present?
|
163
|
+
end
|
164
|
+
|
165
|
+
test "excess packages not raised below threshold" do
|
166
|
+
items = [{ grams: 1, quantity: ShipmentPacker::EXCESS_PACKAGE_QUANTITY_THRESHOLD - 1, price: 1.0 }]
|
167
|
+
packages = ShipmentPacker.pack(items, @dimensions, 1, 'USD')
|
168
|
+
|
169
|
+
assert_predicate packages, :present?
|
170
|
+
end
|
171
|
+
|
172
|
+
test "excess packages with slightly larger max weight than item weight" do
|
173
|
+
max_weight = 750
|
174
|
+
items = [{ grams: 500, quantity: ShipmentPacker::EXCESS_PACKAGE_QUANTITY_THRESHOLD + 1, price: 1.0 }]
|
175
|
+
|
176
|
+
assert_raises(ShipmentPacker::ExcessPackageQuantity) do
|
177
|
+
ShipmentPacker.pack(items, @dimensions, max_weight, 'USD')
|
178
|
+
end
|
179
|
+
end
|
180
|
+
|
181
|
+
test "lots of zero weight items" do
|
182
|
+
items = [{ grams: 0, quantity: 1_000_000, price: 1.0 }]
|
183
|
+
packages = ShipmentPacker.pack(items, @dimensions, 1, 'USD')
|
184
|
+
|
185
|
+
assert_equal 1, packages.size
|
186
|
+
assert_equal 0, packages[0].grams
|
187
|
+
assert_equal 100_000_000, packages[0].value
|
188
|
+
end
|
189
|
+
|
190
|
+
test "dont destroy input items" do
|
191
|
+
items = [{ grams: 1, quantity: 5, price: 1.0 }]
|
192
|
+
|
193
|
+
packages = ShipmentPacker.pack(items, @dimensions, 10, 'USD')
|
194
|
+
|
195
|
+
assert_equal 1, items.size
|
196
|
+
assert_equal 1, packages.size
|
197
|
+
end
|
198
|
+
|
199
|
+
test "dont modify input item quantities" do
|
200
|
+
items = [{ grams: 1, quantity: 5, price: 1.0 }]
|
201
|
+
|
202
|
+
ShipmentPacker.pack(items, @dimensions, 10, 'USD')
|
203
|
+
assert_equal 5, items.first[:quantity]
|
204
|
+
end
|
205
|
+
|
206
|
+
test "items with negative weight" do
|
207
|
+
items = [{ grams: -1, quantity: 5, price: 1.0 }]
|
208
|
+
|
209
|
+
ShipmentPacker.pack(items, @dimensions, 10, 'USD')
|
210
|
+
assert_equal 5, items.first[:quantity]
|
211
|
+
end
|
212
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class TrackingResponseTest < ActiveSupport::TestCase
|
4
|
+
def test_equality
|
5
|
+
options1 = {
|
6
|
+
carrier: 'usps',
|
7
|
+
status: 'DELIVERED',
|
8
|
+
status_code: 'I0',
|
9
|
+
status_description: 'DELIVERED',
|
10
|
+
actual_delivery_date: DateTime.parse("Sat 14 May 2016 13:20:00"),
|
11
|
+
tracking_number: 'TRACKINGNUMBER1234ABC',
|
12
|
+
shipment_events: [
|
13
|
+
ShipmentEvent.new(
|
14
|
+
'DELIVERED',
|
15
|
+
DateTime.parse("Sat 14 May 2016 13:20:00"),
|
16
|
+
Location.new(city: 'LOS ANGELES', state: 'CA', postal_code: '90210', country: 'US'),
|
17
|
+
'DELIVERED',
|
18
|
+
'I0'
|
19
|
+
),
|
20
|
+
ShipmentEvent.new(
|
21
|
+
'ARRIVED AT UNIT',
|
22
|
+
DateTime.parse("Thu 12 May 2016 05:45:00"),
|
23
|
+
Location.new(city: 'SAN JOSE', state: 'CA', postal_code: '90001', country: 'US'),
|
24
|
+
'ARRIVED AT UNIT',
|
25
|
+
'07'
|
26
|
+
)
|
27
|
+
],
|
28
|
+
destination: Location.new(postal_code: '90210'),
|
29
|
+
origin: Location.new(postal_code: '00001')
|
30
|
+
}
|
31
|
+
# Deep copies options1 to create new ShipmentEvent, Location, etc. objects to check for similar distinct objects
|
32
|
+
options2 = Marshal.load(Marshal.dump(options1))
|
33
|
+
options2[:shipment_events][0], options2[:shipment_events][1] =
|
34
|
+
options2[:shipment_events][1], options2[:shipment_events][0]
|
35
|
+
|
36
|
+
tracking_response_1 = TrackingResponse.new(true, nil, {}, options1)
|
37
|
+
tracking_response_2 = TrackingResponse.new(true, nil, {}, options2)
|
38
|
+
|
39
|
+
assert_equal tracking_response_1, tracking_response_2
|
40
|
+
end
|
41
|
+
end
|
metadata
ADDED
@@ -0,0 +1,684 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: reactive_shipping
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 3.0.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Sub Pop Records
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2018-08-24 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: measured
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '2.0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '2.0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: activesupport
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '4.2'
|
34
|
+
- - "<"
|
35
|
+
- !ruby/object:Gem::Version
|
36
|
+
version: '6.1'
|
37
|
+
type: :runtime
|
38
|
+
prerelease: false
|
39
|
+
version_requirements: !ruby/object:Gem::Requirement
|
40
|
+
requirements:
|
41
|
+
- - ">="
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '4.2'
|
44
|
+
- - "<"
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: '6.1'
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: active_utils
|
49
|
+
requirement: !ruby/object:Gem::Requirement
|
50
|
+
requirements:
|
51
|
+
- - "~>"
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: 3.3.1
|
54
|
+
type: :runtime
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
requirements:
|
58
|
+
- - "~>"
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
version: 3.3.1
|
61
|
+
- !ruby/object:Gem::Dependency
|
62
|
+
name: nokogiri
|
63
|
+
requirement: !ruby/object:Gem::Requirement
|
64
|
+
requirements:
|
65
|
+
- - ">="
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
version: '1.6'
|
68
|
+
type: :runtime
|
69
|
+
prerelease: false
|
70
|
+
version_requirements: !ruby/object:Gem::Requirement
|
71
|
+
requirements:
|
72
|
+
- - ">="
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
version: '1.6'
|
75
|
+
- !ruby/object:Gem::Dependency
|
76
|
+
name: minitest
|
77
|
+
requirement: !ruby/object:Gem::Requirement
|
78
|
+
requirements:
|
79
|
+
- - ">="
|
80
|
+
- !ruby/object:Gem::Version
|
81
|
+
version: '0'
|
82
|
+
type: :development
|
83
|
+
prerelease: false
|
84
|
+
version_requirements: !ruby/object:Gem::Requirement
|
85
|
+
requirements:
|
86
|
+
- - ">="
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
version: '0'
|
89
|
+
- !ruby/object:Gem::Dependency
|
90
|
+
name: minitest-reporters
|
91
|
+
requirement: !ruby/object:Gem::Requirement
|
92
|
+
requirements:
|
93
|
+
- - ">="
|
94
|
+
- !ruby/object:Gem::Version
|
95
|
+
version: '0'
|
96
|
+
type: :development
|
97
|
+
prerelease: false
|
98
|
+
version_requirements: !ruby/object:Gem::Requirement
|
99
|
+
requirements:
|
100
|
+
- - ">="
|
101
|
+
- !ruby/object:Gem::Version
|
102
|
+
version: '0'
|
103
|
+
- !ruby/object:Gem::Dependency
|
104
|
+
name: rake
|
105
|
+
requirement: !ruby/object:Gem::Requirement
|
106
|
+
requirements:
|
107
|
+
- - ">="
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '0'
|
110
|
+
type: :development
|
111
|
+
prerelease: false
|
112
|
+
version_requirements: !ruby/object:Gem::Requirement
|
113
|
+
requirements:
|
114
|
+
- - ">="
|
115
|
+
- !ruby/object:Gem::Version
|
116
|
+
version: '0'
|
117
|
+
- !ruby/object:Gem::Dependency
|
118
|
+
name: mocha
|
119
|
+
requirement: !ruby/object:Gem::Requirement
|
120
|
+
requirements:
|
121
|
+
- - "~>"
|
122
|
+
- !ruby/object:Gem::Version
|
123
|
+
version: '1'
|
124
|
+
type: :development
|
125
|
+
prerelease: false
|
126
|
+
version_requirements: !ruby/object:Gem::Requirement
|
127
|
+
requirements:
|
128
|
+
- - "~>"
|
129
|
+
- !ruby/object:Gem::Version
|
130
|
+
version: '1'
|
131
|
+
- !ruby/object:Gem::Dependency
|
132
|
+
name: timecop
|
133
|
+
requirement: !ruby/object:Gem::Requirement
|
134
|
+
requirements:
|
135
|
+
- - ">="
|
136
|
+
- !ruby/object:Gem::Version
|
137
|
+
version: '0'
|
138
|
+
type: :development
|
139
|
+
prerelease: false
|
140
|
+
version_requirements: !ruby/object:Gem::Requirement
|
141
|
+
requirements:
|
142
|
+
- - ">="
|
143
|
+
- !ruby/object:Gem::Version
|
144
|
+
version: '0'
|
145
|
+
- !ruby/object:Gem::Dependency
|
146
|
+
name: business_time
|
147
|
+
requirement: !ruby/object:Gem::Requirement
|
148
|
+
requirements:
|
149
|
+
- - ">="
|
150
|
+
- !ruby/object:Gem::Version
|
151
|
+
version: '0'
|
152
|
+
type: :development
|
153
|
+
prerelease: false
|
154
|
+
version_requirements: !ruby/object:Gem::Requirement
|
155
|
+
requirements:
|
156
|
+
- - ">="
|
157
|
+
- !ruby/object:Gem::Version
|
158
|
+
version: '0'
|
159
|
+
- !ruby/object:Gem::Dependency
|
160
|
+
name: pry
|
161
|
+
requirement: !ruby/object:Gem::Requirement
|
162
|
+
requirements:
|
163
|
+
- - ">="
|
164
|
+
- !ruby/object:Gem::Version
|
165
|
+
version: '0'
|
166
|
+
type: :development
|
167
|
+
prerelease: false
|
168
|
+
version_requirements: !ruby/object:Gem::Requirement
|
169
|
+
requirements:
|
170
|
+
- - ">="
|
171
|
+
- !ruby/object:Gem::Version
|
172
|
+
version: '0'
|
173
|
+
- !ruby/object:Gem::Dependency
|
174
|
+
name: pry-byebug
|
175
|
+
requirement: !ruby/object:Gem::Requirement
|
176
|
+
requirements:
|
177
|
+
- - ">="
|
178
|
+
- !ruby/object:Gem::Version
|
179
|
+
version: '0'
|
180
|
+
type: :development
|
181
|
+
prerelease: false
|
182
|
+
version_requirements: !ruby/object:Gem::Requirement
|
183
|
+
requirements:
|
184
|
+
- - ">="
|
185
|
+
- !ruby/object:Gem::Version
|
186
|
+
version: '0'
|
187
|
+
- !ruby/object:Gem::Dependency
|
188
|
+
name: vcr
|
189
|
+
requirement: !ruby/object:Gem::Requirement
|
190
|
+
requirements:
|
191
|
+
- - ">="
|
192
|
+
- !ruby/object:Gem::Version
|
193
|
+
version: '0'
|
194
|
+
type: :development
|
195
|
+
prerelease: false
|
196
|
+
version_requirements: !ruby/object:Gem::Requirement
|
197
|
+
requirements:
|
198
|
+
- - ">="
|
199
|
+
- !ruby/object:Gem::Version
|
200
|
+
version: '0'
|
201
|
+
- !ruby/object:Gem::Dependency
|
202
|
+
name: webmock
|
203
|
+
requirement: !ruby/object:Gem::Requirement
|
204
|
+
requirements:
|
205
|
+
- - ">="
|
206
|
+
- !ruby/object:Gem::Version
|
207
|
+
version: '0'
|
208
|
+
type: :development
|
209
|
+
prerelease: false
|
210
|
+
version_requirements: !ruby/object:Gem::Requirement
|
211
|
+
requirements:
|
212
|
+
- - ">="
|
213
|
+
- !ruby/object:Gem::Version
|
214
|
+
version: '0'
|
215
|
+
description: Get rates and tracking info from various shipping carriers. A fork of
|
216
|
+
Shopify's original ActiveShipping gem.
|
217
|
+
email:
|
218
|
+
- webmaster@subpop.com
|
219
|
+
executables: []
|
220
|
+
extensions: []
|
221
|
+
extra_rdoc_files: []
|
222
|
+
files:
|
223
|
+
- ".gitignore"
|
224
|
+
- ".travis.yml"
|
225
|
+
- ".yardopts"
|
226
|
+
- CHANGELOG.md
|
227
|
+
- CONTRIBUTING.md
|
228
|
+
- Gemfile
|
229
|
+
- MIT-LICENSE
|
230
|
+
- README.md
|
231
|
+
- Rakefile
|
232
|
+
- dev.yml
|
233
|
+
- gemfiles/activesupport42.gemfile
|
234
|
+
- gemfiles/activesupport50.gemfile
|
235
|
+
- gemfiles/activesupport51.gemfile
|
236
|
+
- gemfiles/activesupport52.gemfile
|
237
|
+
- gemfiles/activesupport_master.gemfile
|
238
|
+
- lib/certs/eParcel.dtd
|
239
|
+
- lib/reactive_shipping.rb
|
240
|
+
- lib/reactive_shipping/address_validation_response.rb
|
241
|
+
- lib/reactive_shipping/carrier.rb
|
242
|
+
- lib/reactive_shipping/carriers.rb
|
243
|
+
- lib/reactive_shipping/carriers/australia_post.rb
|
244
|
+
- lib/reactive_shipping/carriers/benchmark_carrier.rb
|
245
|
+
- lib/reactive_shipping/carriers/bogus_carrier.rb
|
246
|
+
- lib/reactive_shipping/carriers/canada_post.rb
|
247
|
+
- lib/reactive_shipping/carriers/canada_post_pws.rb
|
248
|
+
- lib/reactive_shipping/carriers/fedex.rb
|
249
|
+
- lib/reactive_shipping/carriers/kunaki.rb
|
250
|
+
- lib/reactive_shipping/carriers/new_zealand_post.rb
|
251
|
+
- lib/reactive_shipping/carriers/shipwire.rb
|
252
|
+
- lib/reactive_shipping/carriers/stamps.rb
|
253
|
+
- lib/reactive_shipping/carriers/ups.rb
|
254
|
+
- lib/reactive_shipping/carriers/usps.rb
|
255
|
+
- lib/reactive_shipping/carriers/usps_returns.rb
|
256
|
+
- lib/reactive_shipping/delivery_date_estimate.rb
|
257
|
+
- lib/reactive_shipping/delivery_date_estimates_response.rb
|
258
|
+
- lib/reactive_shipping/errors.rb
|
259
|
+
- lib/reactive_shipping/external_return_label_request.rb
|
260
|
+
- lib/reactive_shipping/external_return_label_response.rb
|
261
|
+
- lib/reactive_shipping/label.rb
|
262
|
+
- lib/reactive_shipping/label_response.rb
|
263
|
+
- lib/reactive_shipping/location.rb
|
264
|
+
- lib/reactive_shipping/package.rb
|
265
|
+
- lib/reactive_shipping/package_item.rb
|
266
|
+
- lib/reactive_shipping/rate_estimate.rb
|
267
|
+
- lib/reactive_shipping/rate_response.rb
|
268
|
+
- lib/reactive_shipping/response.rb
|
269
|
+
- lib/reactive_shipping/shipment_event.rb
|
270
|
+
- lib/reactive_shipping/shipment_packer.rb
|
271
|
+
- lib/reactive_shipping/shipping_response.rb
|
272
|
+
- lib/reactive_shipping/tracking_response.rb
|
273
|
+
- lib/reactive_shipping/version.rb
|
274
|
+
- reactive_shipping.gemspec
|
275
|
+
- shipit.rubygems.yml
|
276
|
+
- test/console.rb
|
277
|
+
- test/credentials.yml
|
278
|
+
- test/fixtures/files/label1.pdf
|
279
|
+
- test/fixtures/files/ups-shipping-label.gif
|
280
|
+
- test/fixtures/json/australia_post/calculate_domestic.json
|
281
|
+
- test/fixtures/json/australia_post/calculate_domestic_2.json
|
282
|
+
- test/fixtures/json/australia_post/calculate_international.json
|
283
|
+
- test/fixtures/json/australia_post/calculate_international_2.json
|
284
|
+
- test/fixtures/json/australia_post/error_message.json
|
285
|
+
- test/fixtures/json/australia_post/service_domestic.json
|
286
|
+
- test/fixtures/json/australia_post/service_domestic_2.json
|
287
|
+
- test/fixtures/json/australia_post/service_international.json
|
288
|
+
- test/fixtures/json/australia_post/service_international_2.json
|
289
|
+
- test/fixtures/json/newzealandpost/domestic_book.json
|
290
|
+
- test/fixtures/json/newzealandpost/domestic_default.json
|
291
|
+
- test/fixtures/json/newzealandpost/domestic_error.json
|
292
|
+
- test/fixtures/json/newzealandpost/domestic_poster.json
|
293
|
+
- test/fixtures/json/newzealandpost/domestic_small_half_pound.json
|
294
|
+
- test/fixtures/json/newzealandpost/international_book.json
|
295
|
+
- test/fixtures/json/newzealandpost/international_new_zealand_wii.json
|
296
|
+
- test/fixtures/json/newzealandpost/international_small_half_pound.json
|
297
|
+
- test/fixtures/json/newzealandpost/international_wii.json
|
298
|
+
- test/fixtures/xml/canadapost/example_request.xml
|
299
|
+
- test/fixtures/xml/canadapost/example_response.xml
|
300
|
+
- test/fixtures/xml/canadapost/example_response_error.xml
|
301
|
+
- test/fixtures/xml/canadapost/example_response_french.xml
|
302
|
+
- test/fixtures/xml/canadapost/example_response_with_nil_value.xml
|
303
|
+
- test/fixtures/xml/canadapost/example_response_with_postal_outlet.xml
|
304
|
+
- test/fixtures/xml/canadapost/example_response_with_postal_outlet_french.xml
|
305
|
+
- test/fixtures/xml/canadapost/example_response_with_strange_delivery_date.xml
|
306
|
+
- test/fixtures/xml/canadapost_pws/dnc_tracking_details_en.xml
|
307
|
+
- test/fixtures/xml/canadapost_pws/merchant_details_error.xml
|
308
|
+
- test/fixtures/xml/canadapost_pws/merchant_details_response.xml
|
309
|
+
- test/fixtures/xml/canadapost_pws/option_response.xml
|
310
|
+
- test/fixtures/xml/canadapost_pws/option_response_no_conflicts.xml
|
311
|
+
- test/fixtures/xml/canadapost_pws/rates_info.xml
|
312
|
+
- test/fixtures/xml/canadapost_pws/rates_info_error.xml
|
313
|
+
- test/fixtures/xml/canadapost_pws/receipt_response.xml
|
314
|
+
- test/fixtures/xml/canadapost_pws/receipt_response_no_priced_options.xml
|
315
|
+
- test/fixtures/xml/canadapost_pws/register_token_error.xml
|
316
|
+
- test/fixtures/xml/canadapost_pws/register_token_response.xml
|
317
|
+
- test/fixtures/xml/canadapost_pws/service_options_response.xml
|
318
|
+
- test/fixtures/xml/canadapost_pws/services_error.xml
|
319
|
+
- test/fixtures/xml/canadapost_pws/services_response.xml
|
320
|
+
- test/fixtures/xml/canadapost_pws/shipment_domestic.xml
|
321
|
+
- test/fixtures/xml/canadapost_pws/shipment_response.xml
|
322
|
+
- test/fixtures/xml/canadapost_pws/shipment_us.xml
|
323
|
+
- test/fixtures/xml/canadapost_pws/tracking_details_en.xml
|
324
|
+
- test/fixtures/xml/canadapost_pws/tracking_details_en_error.xml
|
325
|
+
- test/fixtures/xml/canadapost_pws/tracking_details_en_undelivered.xml
|
326
|
+
- test/fixtures/xml/canadapost_pws/tracking_details_fr.xml
|
327
|
+
- test/fixtures/xml/canadapost_pws/tracking_details_no_expected_delivery_date.xml
|
328
|
+
- test/fixtures/xml/fedex/create_shipment_response.xml
|
329
|
+
- test/fixtures/xml/fedex/freight_rate_request.xml
|
330
|
+
- test/fixtures/xml/fedex/freight_rate_response.xml
|
331
|
+
- test/fixtures/xml/fedex/invalid_fedex_reply.xml
|
332
|
+
- test/fixtures/xml/fedex/ottawa_to_beverly_hills_commercial_rate_request.xml
|
333
|
+
- test/fixtures/xml/fedex/ottawa_to_beverly_hills_no_saturday_rate_request.xml
|
334
|
+
- test/fixtures/xml/fedex/ottawa_to_beverly_hills_rate_request.xml
|
335
|
+
- test/fixtures/xml/fedex/ottawa_to_beverly_hills_rate_response.xml
|
336
|
+
- test/fixtures/xml/fedex/raterequest_reply.xml
|
337
|
+
- test/fixtures/xml/fedex/raterequest_response_with_ground_home_delivery.xml
|
338
|
+
- test/fixtures/xml/fedex/reply_without_notifications.xml
|
339
|
+
- test/fixtures/xml/fedex/tracking_request.xml
|
340
|
+
- test/fixtures/xml/fedex/tracking_response_bad_tracking_number.xml
|
341
|
+
- test/fixtures/xml/fedex/tracking_response_delivered_at_door.xml
|
342
|
+
- test/fixtures/xml/fedex/tracking_response_delivered_at_facility.xml
|
343
|
+
- test/fixtures/xml/fedex/tracking_response_delivered_with_signature.xml
|
344
|
+
- test/fixtures/xml/fedex/tracking_response_empty_status_detail.xml
|
345
|
+
- test/fixtures/xml/fedex/tracking_response_failure_code_9045.xml
|
346
|
+
- test/fixtures/xml/fedex/tracking_response_failure_code_9080.xml
|
347
|
+
- test/fixtures/xml/fedex/tracking_response_in_transit.xml
|
348
|
+
- test/fixtures/xml/fedex/tracking_response_invalid_tracking_number.xml
|
349
|
+
- test/fixtures/xml/fedex/tracking_response_missing_status_code.xml
|
350
|
+
- test/fixtures/xml/fedex/tracking_response_multiple_results.xml
|
351
|
+
- test/fixtures/xml/fedex/tracking_response_not_found.xml
|
352
|
+
- test/fixtures/xml/fedex/tracking_response_shipment_exception.xml
|
353
|
+
- test/fixtures/xml/fedex/tracking_response_unable_to_process.xml
|
354
|
+
- test/fixtures/xml/fedex/tracking_response_with_blank_state.xml
|
355
|
+
- test/fixtures/xml/fedex/unknown_fedex_document_reply.xml
|
356
|
+
- test/fixtures/xml/kunaki/invalid_state_response.xml
|
357
|
+
- test/fixtures/xml/kunaki/no_valid_items_response.xml
|
358
|
+
- test/fixtures/xml/kunaki/successful_rates_response.xml
|
359
|
+
- test/fixtures/xml/kunaki/unsuccessful_rates_response.xml
|
360
|
+
- test/fixtures/xml/shipwire/international_rates_response.xml
|
361
|
+
- test/fixtures/xml/shipwire/new_carrier_rate_response.xml
|
362
|
+
- test/fixtures/xml/shipwire/no_rates_response.xml
|
363
|
+
- test/fixtures/xml/shipwire/rates_response.xml
|
364
|
+
- test/fixtures/xml/shipwire/rates_response_no_estimate.xml
|
365
|
+
- test/fixtures/xml/stamps/authenticate_user_request.xml
|
366
|
+
- test/fixtures/xml/stamps/authenticate_user_response.xml
|
367
|
+
- test/fixtures/xml/stamps/cleanse_address_request.xml
|
368
|
+
- test/fixtures/xml/stamps/cleanse_address_response.xml
|
369
|
+
- test/fixtures/xml/stamps/create_indicium_request.xml
|
370
|
+
- test/fixtures/xml/stamps/create_indicium_response.xml
|
371
|
+
- test/fixtures/xml/stamps/expired_authenticator_response.xml
|
372
|
+
- test/fixtures/xml/stamps/get_account_info_request.xml
|
373
|
+
- test/fixtures/xml/stamps/get_account_info_response.xml
|
374
|
+
- test/fixtures/xml/stamps/get_purchase_status_request.xml
|
375
|
+
- test/fixtures/xml/stamps/get_purchase_status_response.xml
|
376
|
+
- test/fixtures/xml/stamps/get_rates_request.xml
|
377
|
+
- test/fixtures/xml/stamps/get_rates_response.xml
|
378
|
+
- test/fixtures/xml/stamps/purchase_postage_request.xml
|
379
|
+
- test/fixtures/xml/stamps/purchase_postage_response.xml
|
380
|
+
- test/fixtures/xml/stamps/track_shipment_request.xml
|
381
|
+
- test/fixtures/xml/stamps/track_shipment_response.xml
|
382
|
+
- test/fixtures/xml/ups/access_request.xml
|
383
|
+
- test/fixtures/xml/ups/delivered_shipment_with_refund.xml
|
384
|
+
- test/fixtures/xml/ups/delivered_shipment_without_events_tracking_response.xml
|
385
|
+
- test/fixtures/xml/ups/delivery_dates_response.xml
|
386
|
+
- test/fixtures/xml/ups/example_tracking_response.xml
|
387
|
+
- test/fixtures/xml/ups/in_transit_shipment.xml
|
388
|
+
- test/fixtures/xml/ups/out_for_delivery_shipment.xml
|
389
|
+
- test/fixtures/xml/ups/package_exceeds_maximum_length.xml
|
390
|
+
- test/fixtures/xml/ups/rate_single_service.xml
|
391
|
+
- test/fixtures/xml/ups/rescheduled_shipment.xml
|
392
|
+
- test/fixtures/xml/ups/shipment_accept_response.xml
|
393
|
+
- test/fixtures/xml/ups/shipment_confirm_response.xml
|
394
|
+
- test/fixtures/xml/ups/shipment_from_tiger_direct.xml
|
395
|
+
- test/fixtures/xml/ups/test_real_home_as_residential_destination_response.xml
|
396
|
+
- test/fixtures/xml/ups/test_real_home_as_residential_destination_response_with_insured.xml
|
397
|
+
- test/fixtures/xml/ups/test_real_home_as_residential_destination_with_origin_account_response.xml
|
398
|
+
- test/fixtures/xml/ups/tracking_request.xml
|
399
|
+
- test/fixtures/xml/ups/triple_accept_response.xml
|
400
|
+
- test/fixtures/xml/ups/triple_confirm_response.xml
|
401
|
+
- test/fixtures/xml/ups/void_shipment_response.xml
|
402
|
+
- test/fixtures/xml/usps/api_error_rate_response.xml
|
403
|
+
- test/fixtures/xml/usps/beverly_hills_to_new_york_book_commercial_base_rate_response.xml
|
404
|
+
- test/fixtures/xml/usps/beverly_hills_to_new_york_book_commercial_plus_rate_response.xml
|
405
|
+
- test/fixtures/xml/usps/beverly_hills_to_new_york_book_rate_response.xml
|
406
|
+
- test/fixtures/xml/usps/beverly_hills_to_ottawa_american_wii_commercial_base_rate_response.xml
|
407
|
+
- test/fixtures/xml/usps/beverly_hills_to_ottawa_american_wii_commercial_plus_rate_response.xml
|
408
|
+
- test/fixtures/xml/usps/beverly_hills_to_ottawa_american_wii_rate_response.xml
|
409
|
+
- test/fixtures/xml/usps/first_class_packages_with_invalid_mail_type_response.xml
|
410
|
+
- test/fixtures/xml/usps/first_class_packages_with_mail_type_response.xml
|
411
|
+
- test/fixtures/xml/usps/first_class_packages_without_mail_type_response.xml
|
412
|
+
- test/fixtures/xml/usps/invalid_xml_response.xml
|
413
|
+
- test/fixtures/xml/usps/invalid_xml_tracking_response_error.xml
|
414
|
+
- test/fixtures/xml/usps/tracking_request.xml
|
415
|
+
- test/fixtures/xml/usps/tracking_request_batch.xml
|
416
|
+
- test/fixtures/xml/usps/tracking_response.xml
|
417
|
+
- test/fixtures/xml/usps/tracking_response_alt.xml
|
418
|
+
- test/fixtures/xml/usps/tracking_response_batch.xml
|
419
|
+
- test/fixtures/xml/usps/tracking_response_failure.xml
|
420
|
+
- test/fixtures/xml/usps/tracking_response_not_available.xml
|
421
|
+
- test/fixtures/xml/usps/tracking_response_test_error.xml
|
422
|
+
- test/fixtures/xml/usps/us_rate_request.xml
|
423
|
+
- test/fixtures/xml/usps/us_rate_request_large.xml
|
424
|
+
- test/fixtures/xml/usps/world_rate_request_only_country.xml
|
425
|
+
- test/fixtures/xml/usps/world_rate_request_with_value.xml
|
426
|
+
- test/fixtures/xml/usps/world_rate_request_without_value.xml
|
427
|
+
- test/fixtures/xml/usps_returns/external_return_label_response.xml
|
428
|
+
- test/fixtures/xml/usps_returns/external_return_label_response_failure.xml
|
429
|
+
- test/remote/australia_post_test.rb
|
430
|
+
- test/remote/canada_post_pws_platform_test.rb
|
431
|
+
- test/remote/canada_post_pws_test.rb
|
432
|
+
- test/remote/canada_post_test.rb
|
433
|
+
- test/remote/fedex_test.rb
|
434
|
+
- test/remote/kunaki_test.rb
|
435
|
+
- test/remote/new_zealand_post_test.rb
|
436
|
+
- test/remote/shipwire_test.rb
|
437
|
+
- test/remote/stamps_test.rb
|
438
|
+
- test/remote/usps_returns_test.rb
|
439
|
+
- test/remote/usps_test.rb
|
440
|
+
- test/test_helper.rb
|
441
|
+
- test/unit/carrier_test.rb
|
442
|
+
- test/unit/carriers/australia_post_test.rb
|
443
|
+
- test/unit/carriers/benchmark_test.rb
|
444
|
+
- test/unit/carriers/canada_post_pws_rating_test.rb
|
445
|
+
- test/unit/carriers/canada_post_pws_register_test.rb
|
446
|
+
- test/unit/carriers/canada_post_pws_shipping_test.rb
|
447
|
+
- test/unit/carriers/canada_post_pws_test.rb
|
448
|
+
- test/unit/carriers/canada_post_pws_tracking_test.rb
|
449
|
+
- test/unit/carriers/canada_post_test.rb
|
450
|
+
- test/unit/carriers/fedex_test.rb
|
451
|
+
- test/unit/carriers/kunaki_test.rb
|
452
|
+
- test/unit/carriers/new_zealand_post_test.rb
|
453
|
+
- test/unit/carriers/shipwire_test.rb
|
454
|
+
- test/unit/carriers/stamps_test.rb
|
455
|
+
- test/unit/carriers/ups_test.rb
|
456
|
+
- test/unit/carriers/usps_returns_test.rb
|
457
|
+
- test/unit/carriers/usps_test.rb
|
458
|
+
- test/unit/carriers_test.rb
|
459
|
+
- test/unit/external_return_label_request_test.rb
|
460
|
+
- test/unit/location_test.rb
|
461
|
+
- test/unit/package_item_test.rb
|
462
|
+
- test/unit/package_test.rb
|
463
|
+
- test/unit/rate_estimate_test.rb
|
464
|
+
- test/unit/response_test.rb
|
465
|
+
- test/unit/shipment_event_test.rb
|
466
|
+
- test/unit/shipment_packer_test.rb
|
467
|
+
- test/unit/tracking_response_test.rb
|
468
|
+
homepage: http://github.com/realsubpop/reactive_shipping
|
469
|
+
licenses:
|
470
|
+
- MIT
|
471
|
+
metadata: {}
|
472
|
+
post_install_message: Thanks for installing ReactiveShipping! https://github.com/realsubpop/reactive_shipping/blob/master/CHANGELOG.md.
|
473
|
+
rdoc_options: []
|
474
|
+
require_paths:
|
475
|
+
- lib
|
476
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
477
|
+
requirements:
|
478
|
+
- - ">="
|
479
|
+
- !ruby/object:Gem::Version
|
480
|
+
version: '0'
|
481
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
482
|
+
requirements:
|
483
|
+
- - ">="
|
484
|
+
- !ruby/object:Gem::Version
|
485
|
+
version: '0'
|
486
|
+
requirements: []
|
487
|
+
rubyforge_project:
|
488
|
+
rubygems_version: 2.6.10
|
489
|
+
signing_key:
|
490
|
+
specification_version: 4
|
491
|
+
summary: Simple shipping abstraction library
|
492
|
+
test_files:
|
493
|
+
- test/console.rb
|
494
|
+
- test/credentials.yml
|
495
|
+
- test/fixtures/files/label1.pdf
|
496
|
+
- test/fixtures/files/ups-shipping-label.gif
|
497
|
+
- test/fixtures/json/australia_post/calculate_domestic.json
|
498
|
+
- test/fixtures/json/australia_post/calculate_domestic_2.json
|
499
|
+
- test/fixtures/json/australia_post/calculate_international.json
|
500
|
+
- test/fixtures/json/australia_post/calculate_international_2.json
|
501
|
+
- test/fixtures/json/australia_post/error_message.json
|
502
|
+
- test/fixtures/json/australia_post/service_domestic.json
|
503
|
+
- test/fixtures/json/australia_post/service_domestic_2.json
|
504
|
+
- test/fixtures/json/australia_post/service_international.json
|
505
|
+
- test/fixtures/json/australia_post/service_international_2.json
|
506
|
+
- test/fixtures/json/newzealandpost/domestic_book.json
|
507
|
+
- test/fixtures/json/newzealandpost/domestic_default.json
|
508
|
+
- test/fixtures/json/newzealandpost/domestic_error.json
|
509
|
+
- test/fixtures/json/newzealandpost/domestic_poster.json
|
510
|
+
- test/fixtures/json/newzealandpost/domestic_small_half_pound.json
|
511
|
+
- test/fixtures/json/newzealandpost/international_book.json
|
512
|
+
- test/fixtures/json/newzealandpost/international_new_zealand_wii.json
|
513
|
+
- test/fixtures/json/newzealandpost/international_small_half_pound.json
|
514
|
+
- test/fixtures/json/newzealandpost/international_wii.json
|
515
|
+
- test/fixtures/xml/canadapost/example_request.xml
|
516
|
+
- test/fixtures/xml/canadapost/example_response.xml
|
517
|
+
- test/fixtures/xml/canadapost/example_response_error.xml
|
518
|
+
- test/fixtures/xml/canadapost/example_response_french.xml
|
519
|
+
- test/fixtures/xml/canadapost/example_response_with_nil_value.xml
|
520
|
+
- test/fixtures/xml/canadapost/example_response_with_postal_outlet.xml
|
521
|
+
- test/fixtures/xml/canadapost/example_response_with_postal_outlet_french.xml
|
522
|
+
- test/fixtures/xml/canadapost/example_response_with_strange_delivery_date.xml
|
523
|
+
- test/fixtures/xml/canadapost_pws/dnc_tracking_details_en.xml
|
524
|
+
- test/fixtures/xml/canadapost_pws/merchant_details_error.xml
|
525
|
+
- test/fixtures/xml/canadapost_pws/merchant_details_response.xml
|
526
|
+
- test/fixtures/xml/canadapost_pws/option_response.xml
|
527
|
+
- test/fixtures/xml/canadapost_pws/option_response_no_conflicts.xml
|
528
|
+
- test/fixtures/xml/canadapost_pws/rates_info.xml
|
529
|
+
- test/fixtures/xml/canadapost_pws/rates_info_error.xml
|
530
|
+
- test/fixtures/xml/canadapost_pws/receipt_response.xml
|
531
|
+
- test/fixtures/xml/canadapost_pws/receipt_response_no_priced_options.xml
|
532
|
+
- test/fixtures/xml/canadapost_pws/register_token_error.xml
|
533
|
+
- test/fixtures/xml/canadapost_pws/register_token_response.xml
|
534
|
+
- test/fixtures/xml/canadapost_pws/service_options_response.xml
|
535
|
+
- test/fixtures/xml/canadapost_pws/services_error.xml
|
536
|
+
- test/fixtures/xml/canadapost_pws/services_response.xml
|
537
|
+
- test/fixtures/xml/canadapost_pws/shipment_domestic.xml
|
538
|
+
- test/fixtures/xml/canadapost_pws/shipment_response.xml
|
539
|
+
- test/fixtures/xml/canadapost_pws/shipment_us.xml
|
540
|
+
- test/fixtures/xml/canadapost_pws/tracking_details_en.xml
|
541
|
+
- test/fixtures/xml/canadapost_pws/tracking_details_en_error.xml
|
542
|
+
- test/fixtures/xml/canadapost_pws/tracking_details_en_undelivered.xml
|
543
|
+
- test/fixtures/xml/canadapost_pws/tracking_details_fr.xml
|
544
|
+
- test/fixtures/xml/canadapost_pws/tracking_details_no_expected_delivery_date.xml
|
545
|
+
- test/fixtures/xml/fedex/create_shipment_response.xml
|
546
|
+
- test/fixtures/xml/fedex/freight_rate_request.xml
|
547
|
+
- test/fixtures/xml/fedex/freight_rate_response.xml
|
548
|
+
- test/fixtures/xml/fedex/invalid_fedex_reply.xml
|
549
|
+
- test/fixtures/xml/fedex/ottawa_to_beverly_hills_commercial_rate_request.xml
|
550
|
+
- test/fixtures/xml/fedex/ottawa_to_beverly_hills_no_saturday_rate_request.xml
|
551
|
+
- test/fixtures/xml/fedex/ottawa_to_beverly_hills_rate_request.xml
|
552
|
+
- test/fixtures/xml/fedex/ottawa_to_beverly_hills_rate_response.xml
|
553
|
+
- test/fixtures/xml/fedex/raterequest_reply.xml
|
554
|
+
- test/fixtures/xml/fedex/raterequest_response_with_ground_home_delivery.xml
|
555
|
+
- test/fixtures/xml/fedex/reply_without_notifications.xml
|
556
|
+
- test/fixtures/xml/fedex/tracking_request.xml
|
557
|
+
- test/fixtures/xml/fedex/tracking_response_bad_tracking_number.xml
|
558
|
+
- test/fixtures/xml/fedex/tracking_response_delivered_at_door.xml
|
559
|
+
- test/fixtures/xml/fedex/tracking_response_delivered_at_facility.xml
|
560
|
+
- test/fixtures/xml/fedex/tracking_response_delivered_with_signature.xml
|
561
|
+
- test/fixtures/xml/fedex/tracking_response_empty_status_detail.xml
|
562
|
+
- test/fixtures/xml/fedex/tracking_response_failure_code_9045.xml
|
563
|
+
- test/fixtures/xml/fedex/tracking_response_failure_code_9080.xml
|
564
|
+
- test/fixtures/xml/fedex/tracking_response_in_transit.xml
|
565
|
+
- test/fixtures/xml/fedex/tracking_response_invalid_tracking_number.xml
|
566
|
+
- test/fixtures/xml/fedex/tracking_response_missing_status_code.xml
|
567
|
+
- test/fixtures/xml/fedex/tracking_response_multiple_results.xml
|
568
|
+
- test/fixtures/xml/fedex/tracking_response_not_found.xml
|
569
|
+
- test/fixtures/xml/fedex/tracking_response_shipment_exception.xml
|
570
|
+
- test/fixtures/xml/fedex/tracking_response_unable_to_process.xml
|
571
|
+
- test/fixtures/xml/fedex/tracking_response_with_blank_state.xml
|
572
|
+
- test/fixtures/xml/fedex/unknown_fedex_document_reply.xml
|
573
|
+
- test/fixtures/xml/kunaki/invalid_state_response.xml
|
574
|
+
- test/fixtures/xml/kunaki/no_valid_items_response.xml
|
575
|
+
- test/fixtures/xml/kunaki/successful_rates_response.xml
|
576
|
+
- test/fixtures/xml/kunaki/unsuccessful_rates_response.xml
|
577
|
+
- test/fixtures/xml/shipwire/international_rates_response.xml
|
578
|
+
- test/fixtures/xml/shipwire/new_carrier_rate_response.xml
|
579
|
+
- test/fixtures/xml/shipwire/no_rates_response.xml
|
580
|
+
- test/fixtures/xml/shipwire/rates_response.xml
|
581
|
+
- test/fixtures/xml/shipwire/rates_response_no_estimate.xml
|
582
|
+
- test/fixtures/xml/stamps/authenticate_user_request.xml
|
583
|
+
- test/fixtures/xml/stamps/authenticate_user_response.xml
|
584
|
+
- test/fixtures/xml/stamps/cleanse_address_request.xml
|
585
|
+
- test/fixtures/xml/stamps/cleanse_address_response.xml
|
586
|
+
- test/fixtures/xml/stamps/create_indicium_request.xml
|
587
|
+
- test/fixtures/xml/stamps/create_indicium_response.xml
|
588
|
+
- test/fixtures/xml/stamps/expired_authenticator_response.xml
|
589
|
+
- test/fixtures/xml/stamps/get_account_info_request.xml
|
590
|
+
- test/fixtures/xml/stamps/get_account_info_response.xml
|
591
|
+
- test/fixtures/xml/stamps/get_purchase_status_request.xml
|
592
|
+
- test/fixtures/xml/stamps/get_purchase_status_response.xml
|
593
|
+
- test/fixtures/xml/stamps/get_rates_request.xml
|
594
|
+
- test/fixtures/xml/stamps/get_rates_response.xml
|
595
|
+
- test/fixtures/xml/stamps/purchase_postage_request.xml
|
596
|
+
- test/fixtures/xml/stamps/purchase_postage_response.xml
|
597
|
+
- test/fixtures/xml/stamps/track_shipment_request.xml
|
598
|
+
- test/fixtures/xml/stamps/track_shipment_response.xml
|
599
|
+
- test/fixtures/xml/ups/access_request.xml
|
600
|
+
- test/fixtures/xml/ups/delivered_shipment_with_refund.xml
|
601
|
+
- test/fixtures/xml/ups/delivered_shipment_without_events_tracking_response.xml
|
602
|
+
- test/fixtures/xml/ups/delivery_dates_response.xml
|
603
|
+
- test/fixtures/xml/ups/example_tracking_response.xml
|
604
|
+
- test/fixtures/xml/ups/in_transit_shipment.xml
|
605
|
+
- test/fixtures/xml/ups/out_for_delivery_shipment.xml
|
606
|
+
- test/fixtures/xml/ups/package_exceeds_maximum_length.xml
|
607
|
+
- test/fixtures/xml/ups/rate_single_service.xml
|
608
|
+
- test/fixtures/xml/ups/rescheduled_shipment.xml
|
609
|
+
- test/fixtures/xml/ups/shipment_accept_response.xml
|
610
|
+
- test/fixtures/xml/ups/shipment_confirm_response.xml
|
611
|
+
- test/fixtures/xml/ups/shipment_from_tiger_direct.xml
|
612
|
+
- test/fixtures/xml/ups/test_real_home_as_residential_destination_response.xml
|
613
|
+
- test/fixtures/xml/ups/test_real_home_as_residential_destination_response_with_insured.xml
|
614
|
+
- test/fixtures/xml/ups/test_real_home_as_residential_destination_with_origin_account_response.xml
|
615
|
+
- test/fixtures/xml/ups/tracking_request.xml
|
616
|
+
- test/fixtures/xml/ups/triple_accept_response.xml
|
617
|
+
- test/fixtures/xml/ups/triple_confirm_response.xml
|
618
|
+
- test/fixtures/xml/ups/void_shipment_response.xml
|
619
|
+
- test/fixtures/xml/usps/api_error_rate_response.xml
|
620
|
+
- test/fixtures/xml/usps/beverly_hills_to_new_york_book_commercial_base_rate_response.xml
|
621
|
+
- test/fixtures/xml/usps/beverly_hills_to_new_york_book_commercial_plus_rate_response.xml
|
622
|
+
- test/fixtures/xml/usps/beverly_hills_to_new_york_book_rate_response.xml
|
623
|
+
- test/fixtures/xml/usps/beverly_hills_to_ottawa_american_wii_commercial_base_rate_response.xml
|
624
|
+
- test/fixtures/xml/usps/beverly_hills_to_ottawa_american_wii_commercial_plus_rate_response.xml
|
625
|
+
- test/fixtures/xml/usps/beverly_hills_to_ottawa_american_wii_rate_response.xml
|
626
|
+
- test/fixtures/xml/usps/first_class_packages_with_invalid_mail_type_response.xml
|
627
|
+
- test/fixtures/xml/usps/first_class_packages_with_mail_type_response.xml
|
628
|
+
- test/fixtures/xml/usps/first_class_packages_without_mail_type_response.xml
|
629
|
+
- test/fixtures/xml/usps/invalid_xml_response.xml
|
630
|
+
- test/fixtures/xml/usps/invalid_xml_tracking_response_error.xml
|
631
|
+
- test/fixtures/xml/usps/tracking_request.xml
|
632
|
+
- test/fixtures/xml/usps/tracking_request_batch.xml
|
633
|
+
- test/fixtures/xml/usps/tracking_response.xml
|
634
|
+
- test/fixtures/xml/usps/tracking_response_alt.xml
|
635
|
+
- test/fixtures/xml/usps/tracking_response_batch.xml
|
636
|
+
- test/fixtures/xml/usps/tracking_response_failure.xml
|
637
|
+
- test/fixtures/xml/usps/tracking_response_not_available.xml
|
638
|
+
- test/fixtures/xml/usps/tracking_response_test_error.xml
|
639
|
+
- test/fixtures/xml/usps/us_rate_request.xml
|
640
|
+
- test/fixtures/xml/usps/us_rate_request_large.xml
|
641
|
+
- test/fixtures/xml/usps/world_rate_request_only_country.xml
|
642
|
+
- test/fixtures/xml/usps/world_rate_request_with_value.xml
|
643
|
+
- test/fixtures/xml/usps/world_rate_request_without_value.xml
|
644
|
+
- test/fixtures/xml/usps_returns/external_return_label_response.xml
|
645
|
+
- test/fixtures/xml/usps_returns/external_return_label_response_failure.xml
|
646
|
+
- test/remote/australia_post_test.rb
|
647
|
+
- test/remote/canada_post_pws_platform_test.rb
|
648
|
+
- test/remote/canada_post_pws_test.rb
|
649
|
+
- test/remote/canada_post_test.rb
|
650
|
+
- test/remote/fedex_test.rb
|
651
|
+
- test/remote/kunaki_test.rb
|
652
|
+
- test/remote/new_zealand_post_test.rb
|
653
|
+
- test/remote/shipwire_test.rb
|
654
|
+
- test/remote/stamps_test.rb
|
655
|
+
- test/remote/usps_returns_test.rb
|
656
|
+
- test/remote/usps_test.rb
|
657
|
+
- test/test_helper.rb
|
658
|
+
- test/unit/carrier_test.rb
|
659
|
+
- test/unit/carriers/australia_post_test.rb
|
660
|
+
- test/unit/carriers/benchmark_test.rb
|
661
|
+
- test/unit/carriers/canada_post_pws_rating_test.rb
|
662
|
+
- test/unit/carriers/canada_post_pws_register_test.rb
|
663
|
+
- test/unit/carriers/canada_post_pws_shipping_test.rb
|
664
|
+
- test/unit/carriers/canada_post_pws_test.rb
|
665
|
+
- test/unit/carriers/canada_post_pws_tracking_test.rb
|
666
|
+
- test/unit/carriers/canada_post_test.rb
|
667
|
+
- test/unit/carriers/fedex_test.rb
|
668
|
+
- test/unit/carriers/kunaki_test.rb
|
669
|
+
- test/unit/carriers/new_zealand_post_test.rb
|
670
|
+
- test/unit/carriers/shipwire_test.rb
|
671
|
+
- test/unit/carriers/stamps_test.rb
|
672
|
+
- test/unit/carriers/ups_test.rb
|
673
|
+
- test/unit/carriers/usps_returns_test.rb
|
674
|
+
- test/unit/carriers/usps_test.rb
|
675
|
+
- test/unit/carriers_test.rb
|
676
|
+
- test/unit/external_return_label_request_test.rb
|
677
|
+
- test/unit/location_test.rb
|
678
|
+
- test/unit/package_item_test.rb
|
679
|
+
- test/unit/package_test.rb
|
680
|
+
- test/unit/rate_estimate_test.rb
|
681
|
+
- test/unit/response_test.rb
|
682
|
+
- test/unit/shipment_event_test.rb
|
683
|
+
- test/unit/shipment_packer_test.rb
|
684
|
+
- test/unit/tracking_response_test.rb
|