active_shipping 1.13.4 → 1.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +6 -0
- data/lib/active_shipping/carriers/canada_post_pws.rb +28 -24
- data/lib/active_shipping/carriers/correios.rb +3 -1
- data/lib/active_shipping/version.rb +1 -1
- data/test/fixtures/xml/canadapost_pws/merchant_details_response_no_contract_number.xml +7 -0
- data/test/remote/ups_test.rb +2 -1
- data/test/unit/carriers/canada_post_pws_register_test.rb +14 -0
- data/test/unit/carriers/canada_post_pws_shipping_test.rb +12 -0
- data/test/unit/carriers/correios_test.rb +2 -2
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cd3f080f7ff848e61dd530d4c4562c8010e76a01
|
4
|
+
data.tar.gz: 7b97efd00ca16978a0bf77b1a20c6244bf454de7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9d3acc9f7ed6d393ef7ad013e4f207a1dcdacf50b7ef1d06f5ba206575a2f8cea0bda68b02e02cea4b25635dd5932700186218d0aaf8bf3ac27623d421058a13
|
7
|
+
data.tar.gz: b4765b284a95d26de362fbbd4f0385a770a08a259e290d36e4d3443a3ea31f058f7c6547db74fa1ddd9fa0033d0f0253a9f74d09bd2299b38b3e1e156df13907
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,11 @@
|
|
1
1
|
# ActiveShipping CHANGELOG
|
2
2
|
|
3
|
+
### v1.14.0
|
4
|
+
- Update Correios default services list.
|
5
|
+
- Fix CanadaPostPWS from generating an empty options tag.
|
6
|
+
- Allow contract-number on CanadaPost merchant detail's response to be nil.
|
7
|
+
- Fix a flakey UPS remote test that would fail only on Fridays.
|
8
|
+
|
3
9
|
### v1.13.4
|
4
10
|
- Upcase postal code for CanadaPostPWS
|
5
11
|
- Fix failing USPS test
|
@@ -526,7 +526,7 @@ module ActiveShipping
|
|
526
526
|
raise "No Merchant Info" if doc.root.at('customer-number').blank?
|
527
527
|
options = {
|
528
528
|
:customer_number => doc.root.at('customer-number').text,
|
529
|
-
:contract_number => doc.root.at('contract-number').text,
|
529
|
+
:contract_number => doc.root.at('contract-number').try(:text),
|
530
530
|
:username => doc.root.at('merchant-username').text,
|
531
531
|
:password => doc.root.at('merchant-password').text,
|
532
532
|
:has_default_credit_card => doc.root.at('has-default-credit-card').text == 'true'
|
@@ -728,39 +728,43 @@ module ActiveShipping
|
|
728
728
|
|
729
729
|
def shipping_options_node(xml, available_options, options = {})
|
730
730
|
return if (options.symbolize_keys.keys & available_options).empty?
|
731
|
-
|
732
|
-
|
733
|
-
|
734
|
-
|
735
|
-
|
736
|
-
|
737
|
-
|
738
|
-
|
731
|
+
|
732
|
+
options_doc = Nokogiri::XML::Builder.new do |options_xml|
|
733
|
+
options_xml.public_send('options') do
|
734
|
+
if options[:cod] && options[:cod_amount]
|
735
|
+
options_xml.public_send('option') do
|
736
|
+
options_xml.public_send('option-code', 'COD')
|
737
|
+
options_xml.public_send('option-amount', options[:cod_amount])
|
738
|
+
options_xml.public_send('option-qualifier-1', options[:cod_includes_shipping]) unless options[:cod_includes_shipping].blank?
|
739
|
+
options_xml.public_send('option-qualifier-2', options[:cod_method_of_payment]) unless options[:cod_method_of_payment].blank?
|
740
|
+
end
|
739
741
|
end
|
740
|
-
end
|
741
742
|
|
742
|
-
|
743
|
-
|
744
|
-
|
745
|
-
|
743
|
+
if options[:cov]
|
744
|
+
options_xml.public_send('option') do
|
745
|
+
options_xml.public_send('option-code', 'COV')
|
746
|
+
options_xml.public_send('option-amount', options[:cov_amount]) unless options[:cov_amount].blank?
|
747
|
+
end
|
746
748
|
end
|
747
|
-
end
|
748
749
|
|
749
|
-
|
750
|
-
|
751
|
-
|
752
|
-
|
750
|
+
if options[:d2po]
|
751
|
+
options_xml.public_send('option') do
|
752
|
+
options_xml.public_send('option-code', 'D2PO')
|
753
|
+
options_xml.public_send('option-qualifier-2'. options[:d2po_office_id]) unless options[:d2po_office_id].blank?
|
754
|
+
end
|
753
755
|
end
|
754
|
-
end
|
755
756
|
|
756
|
-
|
757
|
-
|
758
|
-
|
759
|
-
|
757
|
+
[:so, :dc, :pa18, :pa19, :hfp, :dns, :lad, :rase, :rts, :aban].each do |code|
|
758
|
+
if options[code]
|
759
|
+
options_xml.public_send('option') do
|
760
|
+
options_xml.public_send('option-code', code.to_s.upcase)
|
761
|
+
end
|
760
762
|
end
|
761
763
|
end
|
762
764
|
end
|
763
765
|
end
|
766
|
+
|
767
|
+
xml.parent << options_doc.doc.at("options") if options_doc.doc.at("options").children.any?
|
764
768
|
end
|
765
769
|
|
766
770
|
def expected_date_from_node(node)
|
@@ -21,8 +21,10 @@ module ActiveShipping
|
|
21
21
|
|
22
22
|
protected
|
23
23
|
|
24
|
-
DEFAULT_SERVICES = [
|
24
|
+
DEFAULT_SERVICES = ['04510', '04014']
|
25
25
|
AVAILABLE_SERVICES = {
|
26
|
+
'04510' => 'PAC sem contrato',
|
27
|
+
'04014' => 'SEDEX sem contrato',
|
26
28
|
41106 => 'PAC sem contrato',
|
27
29
|
41068 => 'PAC com contrato',
|
28
30
|
41300 => 'PAC para grandes formatos',
|
@@ -0,0 +1,7 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<merchant-info xmlns="http://www.canadapost.ca/ws/merchant/registration">
|
3
|
+
<customer-number>1234567890</customer-number>
|
4
|
+
<merchant-username>1234567890123456</merchant-username>
|
5
|
+
<merchant-password>12343567890123456789012</merchant-password>
|
6
|
+
<has-default-credit-card>true</has-default-credit-card>
|
7
|
+
</merchant-info>
|
data/test/remote/ups_test.rb
CHANGED
@@ -387,7 +387,8 @@ class RemoteUPSTest < Minitest::Test
|
|
387
387
|
assert response.success?
|
388
388
|
refute_empty response.delivery_estimates
|
389
389
|
ww_express_estimate = response.delivery_estimates.select {|de| de.service_name == "UPS Worldwide Express"}.first
|
390
|
-
|
390
|
+
expected_estimate = today.friday? ? today + 1 : 1.business_days.after(today)
|
391
|
+
assert_equal expected_estimate, ww_express_estimate.date
|
391
392
|
end
|
392
393
|
|
393
394
|
def test_void_shipment
|
@@ -58,6 +58,20 @@ class CanadaPostPwsRegisterTest < Minitest::Test
|
|
58
58
|
assert_equal false, response.has_default_credit_card
|
59
59
|
end
|
60
60
|
|
61
|
+
def test_retrieve_merchant_details_without_contract_number
|
62
|
+
endpoint = @cp.endpoint + "ot/token/1234567890"
|
63
|
+
response = xml_fixture('canadapost_pws/merchant_details_response_no_contract_number')
|
64
|
+
@cp.expects(:ssl_get).with(endpoint, anything).returns(response)
|
65
|
+
|
66
|
+
response = @cp.retrieve_merchant_details(:token_id => '1234567890')
|
67
|
+
assert response.is_a?(CPPWSMerchantDetailsResponse)
|
68
|
+
assert_equal "1234567890", response.customer_number
|
69
|
+
assert_nil response.contract_number
|
70
|
+
assert_equal "1234567890123456", response.username
|
71
|
+
assert_equal "12343567890123456789012", response.password
|
72
|
+
assert_equal true, response.has_default_credit_card
|
73
|
+
end
|
74
|
+
|
61
75
|
def test_retrieve_merchant_with_error
|
62
76
|
endpoint = @cp.endpoint + "ot/token/1234567890"
|
63
77
|
response = xml_fixture('canadapost_pws/merchant_details_error')
|
@@ -120,6 +120,18 @@ class CanadaPostPwsShippingTest < Minitest::Test
|
|
120
120
|
refute request.blank?
|
121
121
|
end
|
122
122
|
|
123
|
+
def test_create_shipment_request_with_incomplete_options_hash
|
124
|
+
bad_shipping_opts = { :cod_amount => 50.00, :cov_amount => 100.00 }
|
125
|
+
options = @default_options.merge(bad_shipping_opts)
|
126
|
+
request = @cp.build_shipment_request(@home_params, @paris_params, @pkg1, @line_item1, options)
|
127
|
+
refute request.blank?
|
128
|
+
|
129
|
+
doc = Nokogiri.XML(request)
|
130
|
+
doc.remove_namespaces!
|
131
|
+
|
132
|
+
assert_nil doc.at('non-contract-shipment').at('delivery-spec').at('options')
|
133
|
+
end
|
134
|
+
|
123
135
|
def test_create_shipment_request_with_options
|
124
136
|
options = @default_options.merge(@shipping_opts1)
|
125
137
|
request = @cp.build_shipment_request(@home_params, @paris_params, @pkg1, @line_item1, options)
|
@@ -124,7 +124,7 @@ class CorreiosTest < Minitest::Test
|
|
124
124
|
"sCdMaoPropria=S",
|
125
125
|
"nVlValorDeclarado=10%2C5",
|
126
126
|
"sCdAvisoRecebimento=S",
|
127
|
-
"nCdServico=
|
127
|
+
"nCdServico=04510%2C04014",
|
128
128
|
"sCepOrigem=01415000",
|
129
129
|
"sCepDestino=38700000",
|
130
130
|
"nVlPeso=0.25",
|
@@ -220,7 +220,7 @@ class CorreiosTest < Minitest::Test
|
|
220
220
|
services = Correios.available_services
|
221
221
|
|
222
222
|
assert_kind_of Hash, services
|
223
|
-
assert_equal
|
223
|
+
assert_equal 21, services.size
|
224
224
|
assert_equal 'PAC sem contrato', services[41106]
|
225
225
|
assert_equal 'PAC com contrato', services[41068]
|
226
226
|
assert_equal 'PAC para grandes formatos', services[41300]
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: active_shipping
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.14.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Shopify
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-05-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: quantified
|
@@ -256,6 +256,7 @@ files:
|
|
256
256
|
- test/fixtures/xml/canadapost_pws/dnc_tracking_details_en.xml
|
257
257
|
- test/fixtures/xml/canadapost_pws/merchant_details_error.xml
|
258
258
|
- test/fixtures/xml/canadapost_pws/merchant_details_response.xml
|
259
|
+
- test/fixtures/xml/canadapost_pws/merchant_details_response_no_contract_number.xml
|
259
260
|
- test/fixtures/xml/canadapost_pws/option_response.xml
|
260
261
|
- test/fixtures/xml/canadapost_pws/option_response_no_conflicts.xml
|
261
262
|
- test/fixtures/xml/canadapost_pws/rates_info.xml
|
@@ -491,6 +492,7 @@ test_files:
|
|
491
492
|
- test/fixtures/xml/canadapost_pws/dnc_tracking_details_en.xml
|
492
493
|
- test/fixtures/xml/canadapost_pws/merchant_details_error.xml
|
493
494
|
- test/fixtures/xml/canadapost_pws/merchant_details_response.xml
|
495
|
+
- test/fixtures/xml/canadapost_pws/merchant_details_response_no_contract_number.xml
|
494
496
|
- test/fixtures/xml/canadapost_pws/option_response.xml
|
495
497
|
- test/fixtures/xml/canadapost_pws/option_response_no_conflicts.xml
|
496
498
|
- test/fixtures/xml/canadapost_pws/rates_info.xml
|