active_shipping 1.14.2 → 2.0.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/.travis.yml +3 -25
- data/CHANGELOG.md +5 -0
- data/CONTRIBUTING.md +2 -0
- data/README.md +2 -8
- data/active_shipping.gemspec +9 -3
- data/gemfiles/activesupport42.gemfile +0 -1
- data/lib/active_shipping.rb +1 -1
- data/lib/active_shipping/carrier.rb +2 -4
- data/lib/active_shipping/carriers/australia_post.rb +2 -4
- data/lib/active_shipping/carriers/canada_post.rb +1 -1
- data/lib/active_shipping/carriers/canada_post_pws.rb +33 -37
- data/lib/active_shipping/carriers/correios.rb +0 -2
- data/lib/active_shipping/carriers/new_zealand_post.rb +0 -2
- data/lib/active_shipping/carriers/ups.rb +0 -2
- data/lib/active_shipping/carriers/usps.rb +1 -3
- data/lib/active_shipping/external_return_label_request.rb +0 -4
- data/lib/active_shipping/location.rb +65 -52
- data/lib/active_shipping/package.rb +17 -21
- data/lib/active_shipping/package_item.rb +8 -20
- data/lib/active_shipping/rate_estimate.rb +1 -1
- data/lib/active_shipping/version.rb +1 -1
- data/test/fixtures/xml/canadapost/example_request.xml +3 -3
- data/test/helpers/holiday_helpers.rb +54 -0
- data/test/remote/australia_post_test.rb +1 -1
- data/test/remote/canada_post_pws_platform_test.rb +1 -3
- data/test/remote/canada_post_pws_test.rb +1 -1
- data/test/remote/canada_post_test.rb +1 -1
- data/test/remote/correios_test.rb +1 -2
- data/test/remote/fedex_test.rb +8 -8
- data/test/remote/kunaki_test.rb +1 -1
- data/test/remote/new_zealand_post_test.rb +1 -1
- data/test/remote/shipwire_test.rb +1 -1
- data/test/remote/stamps_test.rb +7 -7
- data/test/remote/ups_surepost_test.rb +1 -1
- data/test/remote/ups_test.rb +13 -11
- data/test/remote/usps_returns_test.rb +1 -1
- data/test/remote/usps_test.rb +5 -5
- data/test/test_helper.rb +16 -6
- data/test/unit/carrier_test.rb +25 -25
- data/test/unit/carriers/australia_post_test.rb +5 -5
- data/test/unit/carriers/benchmark_test.rb +1 -1
- data/test/unit/carriers/canada_post_pws_rating_test.rb +1 -15
- data/test/unit/carriers/canada_post_pws_register_test.rb +1 -15
- data/test/unit/carriers/canada_post_pws_shipping_test.rb +1 -13
- data/test/unit/carriers/canada_post_pws_test.rb +4 -4
- data/test/unit/carriers/canada_post_pws_tracking_test.rb +1 -1
- data/test/unit/carriers/canada_post_test.rb +9 -9
- data/test/unit/carriers/correios_test.rb +1 -2
- data/test/unit/carriers/fedex_test.rb +5 -5
- data/test/unit/carriers/kunaki_test.rb +1 -1
- data/test/unit/carriers/new_zealand_post_test.rb +9 -10
- data/test/unit/carriers/shipwire_test.rb +1 -1
- data/test/unit/carriers/stamps_test.rb +1 -1
- data/test/unit/carriers/ups_test.rb +1 -1
- data/test/unit/carriers/usps_returns_test.rb +1 -1
- data/test/unit/carriers/usps_test.rb +1 -1
- data/test/unit/carriers_test.rb +4 -5
- data/test/unit/external_return_label_request_test.rb +129 -83
- data/test/unit/location_test.rb +187 -91
- data/test/unit/package_item_test.rb +42 -47
- data/test/unit/package_test.rb +76 -75
- data/test/unit/rate_estimate_test.rb +16 -20
- data/test/unit/response_test.rb +28 -9
- data/test/unit/shipment_event_test.rb +1 -1
- data/test/unit/shipment_packer_test.rb +31 -31
- data/test/unit/tracking_response_test.rb +1 -1
- metadata +71 -23
- data/gemfiles/activesupport32.gemfile +0 -7
- data/gemfiles/activesupport32_nokogiri_17.gemfile +0 -7
- data/gemfiles/activesupport40.gemfile +0 -6
- data/gemfiles/activesupport40_nokogiri_17.gemfile +0 -6
- data/gemfiles/activesupport41.gemfile +0 -6
- data/gemfiles/activesupport41_nokogiri_17.gemfile +0 -6
- data/gemfiles/activesupport42_nokogiri_17.gemfile +0 -6
- data/test/fixtures/xml/canadapost_pws/merchant_details_response_no_contract_number.xml +0 -7
- data/test/fixtures/xml/canadapost_pws/service_options_response_priority_worldwide.xml +0 -41
@@ -1,6 +1,6 @@
|
|
1
1
|
require 'test_helper'
|
2
2
|
|
3
|
-
class CanadaPostTest <
|
3
|
+
class CanadaPostTest < ActiveSupport::TestCase
|
4
4
|
include ActiveShipping::Test::Fixtures
|
5
5
|
|
6
6
|
def setup
|
@@ -25,10 +25,10 @@ class CanadaPostTest < Minitest::Test
|
|
25
25
|
|
26
26
|
rate_estimates.rates.each do |rate|
|
27
27
|
assert_instance_of RateEstimate, rate
|
28
|
-
assert_instance_of
|
29
|
-
assert_instance_of
|
28
|
+
assert_instance_of Date, rate.delivery_date
|
29
|
+
assert_instance_of Date, rate.shipping_date
|
30
30
|
assert_instance_of String, rate.service_name
|
31
|
-
|
31
|
+
assert_kind_of Integer, rate.total_price
|
32
32
|
end
|
33
33
|
|
34
34
|
rate_estimates.boxes.each do |box|
|
@@ -41,7 +41,7 @@ class CanadaPostTest < Minitest::Test
|
|
41
41
|
assert_instance_of Float, box.width
|
42
42
|
|
43
43
|
box.packedItems.each do |p|
|
44
|
-
|
44
|
+
assert_kind_of Integer, p.quantity
|
45
45
|
assert_instance_of String, p.description
|
46
46
|
end
|
47
47
|
end
|
@@ -58,10 +58,10 @@ class CanadaPostTest < Minitest::Test
|
|
58
58
|
|
59
59
|
rate_estimates.rates.each do |rate|
|
60
60
|
assert_instance_of RateEstimate, rate
|
61
|
-
assert_instance_of
|
62
|
-
assert_instance_of
|
61
|
+
assert_instance_of Date, rate.delivery_date
|
62
|
+
assert_instance_of Date, rate.shipping_date
|
63
63
|
assert_instance_of String, rate.service_name
|
64
|
-
|
64
|
+
assert_kind_of Integer, rate.total_price
|
65
65
|
end
|
66
66
|
|
67
67
|
rate_estimates.boxes.each do |box|
|
@@ -74,7 +74,7 @@ class CanadaPostTest < Minitest::Test
|
|
74
74
|
assert_instance_of Float, box.width
|
75
75
|
|
76
76
|
box.packedItems.each do |p|
|
77
|
-
|
77
|
+
assert_kind_of Integer, p.quantity
|
78
78
|
assert_instance_of String, p.description
|
79
79
|
end
|
80
80
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
require 'test_helper'
|
2
2
|
|
3
|
-
class FedExTest <
|
3
|
+
class FedExTest < ActiveSupport::TestCase
|
4
4
|
include ActiveShipping::Test::Fixtures
|
5
5
|
|
6
6
|
def setup
|
@@ -156,8 +156,8 @@ class FedExTest < Minitest::Test
|
|
156
156
|
rate = response.rates.first
|
157
157
|
assert_equal 'FedEx', rate.carrier
|
158
158
|
assert_equal 'USD', rate.currency
|
159
|
-
|
160
|
-
|
159
|
+
assert_kind_of Integer, rate.total_price
|
160
|
+
assert_kind_of Integer, rate.price
|
161
161
|
assert_instance_of String, rate.service_name
|
162
162
|
assert_instance_of String, rate.service_code
|
163
163
|
assert_instance_of Array, rate.package_rates
|
@@ -189,8 +189,8 @@ class FedExTest < Minitest::Test
|
|
189
189
|
rate = response.rates.first
|
190
190
|
assert_equal 'FedEx', rate.carrier
|
191
191
|
assert_equal 'CAD', rate.currency
|
192
|
-
|
193
|
-
|
192
|
+
assert_kind_of Integer, rate.total_price
|
193
|
+
assert_kind_of Integer, rate.price
|
194
194
|
assert_instance_of String, rate.service_name
|
195
195
|
assert_instance_of String, rate.service_code
|
196
196
|
assert_instance_of Array, rate.package_rates
|
@@ -1,6 +1,6 @@
|
|
1
1
|
require "test_helper"
|
2
2
|
|
3
|
-
class NewZealandPostTest <
|
3
|
+
class NewZealandPostTest < ActiveSupport::TestCase
|
4
4
|
include ActiveShipping::Test::Fixtures
|
5
5
|
|
6
6
|
def setup
|
@@ -11,20 +11,20 @@ class NewZealandPostTest < Minitest::Test
|
|
11
11
|
end
|
12
12
|
|
13
13
|
def test_domestic_book_request
|
14
|
-
url = "http://api.nzpost.co.nz/ratefinder/domestic?api_key=4d9dc0f0-dda0-012e-066f-000c29b44ac0&carrier=all&format=json&height=20&length=190&postcode_dest=1010&postcode_src=6011&thickness=140&weight=0.25"
|
14
|
+
url = "http://api.nzpost.co.nz/ratefinder/domestic?api_key=4d9dc0f0-dda0-012e-066f-000c29b44ac0&carrier=all&format=json&height=20.0&length=190.0&postcode_dest=1010&postcode_src=6011&thickness=140.0&weight=0.25"
|
15
15
|
@carrier.expects(:commit).with([url]).returns([json_fixture("newzealandpost/domestic_book")])
|
16
16
|
@carrier.find_rates(@wellington, @auckland, package_fixtures[:book])
|
17
17
|
end
|
18
18
|
|
19
19
|
def test_domestic_poster_request
|
20
|
-
url = "http://api.nzpost.co.nz/ratefinder/domestic?api_key=4d9dc0f0-dda0-012e-066f-000c29b44ac0&carrier=all&diameter=100&format=json&length=930&postcode_dest=1010&postcode_src=6011&weight=0.1"
|
20
|
+
url = "http://api.nzpost.co.nz/ratefinder/domestic?api_key=4d9dc0f0-dda0-012e-066f-000c29b44ac0&carrier=all&diameter=100.0&format=json&length=930.0&postcode_dest=1010&postcode_src=6011&weight=0.1"
|
21
21
|
@carrier.expects(:commit).with([url]).returns([json_fixture("newzealandpost/domestic_poster")])
|
22
22
|
@carrier.find_rates(@wellington, @auckland, package_fixtures[:poster])
|
23
23
|
end
|
24
24
|
|
25
25
|
def test_domestic_combined_request
|
26
26
|
urls = [
|
27
|
-
"http://api.nzpost.co.nz/ratefinder/domestic?api_key=4d9dc0f0-dda0-012e-066f-000c29b44ac0&carrier=all&format=json&height=20&length=190&postcode_dest=1010&postcode_src=6011&thickness=140&weight=0.25",
|
27
|
+
"http://api.nzpost.co.nz/ratefinder/domestic?api_key=4d9dc0f0-dda0-012e-066f-000c29b44ac0&carrier=all&format=json&height=20.0&length=190.0&postcode_dest=1010&postcode_src=6011&thickness=140.0&weight=0.25",
|
28
28
|
"http://api.nzpost.co.nz/ratefinder/domestic?api_key=4d9dc0f0-dda0-012e-066f-000c29b44ac0&carrier=all&format=json&height=25.4&length=25.4&postcode_dest=1010&postcode_src=6011&thickness=25.4&weight=0.226796185"
|
29
29
|
]
|
30
30
|
@carrier.expects(:commit).with(urls).returns([json_fixture("newzealandpost/domestic_book"), json_fixture("newzealandpost/domestic_small_half_pound")])
|
@@ -75,14 +75,14 @@ class NewZealandPostTest < Minitest::Test
|
|
75
75
|
end
|
76
76
|
|
77
77
|
def test_domestic_blank_package_response
|
78
|
-
url = "http://api.nzpost.co.nz/ratefinder/domestic?api_key=4d9dc0f0-dda0-012e-066f-000c29b44ac0&carrier=all&format=json&height=0&length=0&postcode_dest=1010&postcode_src=6011&thickness=0&weight=0.0"
|
78
|
+
url = "http://api.nzpost.co.nz/ratefinder/domestic?api_key=4d9dc0f0-dda0-012e-066f-000c29b44ac0&carrier=all&format=json&height=0.0&length=0.0&postcode_dest=1010&postcode_src=6011&thickness=0.0&weight=0.0"
|
79
79
|
@carrier.expects(:commit).with([url]).returns([json_fixture("newzealandpost/domestic_default")])
|
80
80
|
response = @carrier.find_rates(@wellington, @auckland, package_fixtures[:just_zero_grams])
|
81
81
|
assert_equal [240, 300, 400, 420, 450, 450, 450, 500, 550, 589, 715, 830, 890], response.rates.map(&:price)
|
82
82
|
end
|
83
83
|
|
84
84
|
def test_domestic_book_response_params
|
85
|
-
url = "http://api.nzpost.co.nz/ratefinder/domestic?api_key=4d9dc0f0-dda0-012e-066f-000c29b44ac0&carrier=all&format=json&height=20&length=190&postcode_dest=1010&postcode_src=6011&thickness=140&weight=0.25"
|
85
|
+
url = "http://api.nzpost.co.nz/ratefinder/domestic?api_key=4d9dc0f0-dda0-012e-066f-000c29b44ac0&carrier=all&format=json&height=20.0&length=190.0&postcode_dest=1010&postcode_src=6011&thickness=140.0&weight=0.25"
|
86
86
|
@carrier.expects(:commit).with([url]).returns([json_fixture("newzealandpost/domestic_book")])
|
87
87
|
response = @carrier.find_rates(@wellington, @auckland, package_fixtures[:book])
|
88
88
|
assert_equal [url], response.request
|
@@ -91,7 +91,7 @@ class NewZealandPostTest < Minitest::Test
|
|
91
91
|
end
|
92
92
|
|
93
93
|
def test_international_book_request
|
94
|
-
url = "http://api.nzpost.co.nz/ratefinder/international?api_key=4d9dc0f0-dda0-012e-066f-000c29b44ac0&country_code=CA&format=json&height=20&length=190&thickness=140&value=0&weight=0.25"
|
94
|
+
url = "http://api.nzpost.co.nz/ratefinder/international?api_key=4d9dc0f0-dda0-012e-066f-000c29b44ac0&country_code=CA&format=json&height=20.0&length=190.0&thickness=140.0&value=0&weight=0.25"
|
95
95
|
@carrier.expects(:commit).with([url]).returns([json_fixture("newzealandpost/international_book")])
|
96
96
|
@carrier.find_rates(@wellington, @ottawa, package_fixtures[:book])
|
97
97
|
end
|
@@ -109,7 +109,7 @@ class NewZealandPostTest < Minitest::Test
|
|
109
109
|
end
|
110
110
|
|
111
111
|
def test_international_book_response_params
|
112
|
-
url = "http://api.nzpost.co.nz/ratefinder/international?api_key=4d9dc0f0-dda0-012e-066f-000c29b44ac0&country_code=CA&format=json&height=20&length=190&thickness=140&value=0&weight=0.25"
|
112
|
+
url = "http://api.nzpost.co.nz/ratefinder/international?api_key=4d9dc0f0-dda0-012e-066f-000c29b44ac0&country_code=CA&format=json&height=20.0&length=190.0&thickness=140.0&value=0&weight=0.25"
|
113
113
|
@carrier.expects(:commit).with([url]).returns([json_fixture("newzealandpost/international_book")])
|
114
114
|
response = @carrier.find_rates(@wellington, @ottawa, package_fixtures[:book])
|
115
115
|
assert_equal [url], response.request
|
@@ -119,7 +119,7 @@ class NewZealandPostTest < Minitest::Test
|
|
119
119
|
|
120
120
|
def test_international_combined_request
|
121
121
|
urls = [
|
122
|
-
"http://api.nzpost.co.nz/ratefinder/international?api_key=4d9dc0f0-dda0-012e-066f-000c29b44ac0&country_code=CA&format=json&height=20&length=190&thickness=140&value=0&weight=0.25",
|
122
|
+
"http://api.nzpost.co.nz/ratefinder/international?api_key=4d9dc0f0-dda0-012e-066f-000c29b44ac0&country_code=CA&format=json&height=20.0&length=190.0&thickness=140.0&value=0&weight=0.25",
|
123
123
|
"http://api.nzpost.co.nz/ratefinder/international?api_key=4d9dc0f0-dda0-012e-066f-000c29b44ac0&country_code=CA&format=json&height=25.4&length=25.4&thickness=25.4&value=0&weight=0.226796185"
|
124
124
|
]
|
125
125
|
@carrier.expects(:commit).with(urls).returns([json_fixture("newzealandpost/international_book"), json_fixture("newzealandpost/international_wii")])
|
@@ -145,7 +145,6 @@ class NewZealandPostTest < Minitest::Test
|
|
145
145
|
@carrier.expects(:commit).returns([""])
|
146
146
|
error = @carrier.find_rates(@wellington, @ottawa, package_fixtures[:book]) rescue $!
|
147
147
|
assert_equal ActiveShipping::ResponseError, error.class
|
148
|
-
assert_equal "A JSON text must at least contain two octets!", error.message
|
149
148
|
assert_equal [""], error.response.raw_responses
|
150
149
|
response_params = { "responses" => [] }
|
151
150
|
assert_equal response_params, error.response.params
|
data/test/unit/carriers_test.rb
CHANGED
@@ -1,17 +1,16 @@
|
|
1
1
|
require 'test_helper'
|
2
2
|
|
3
|
-
class CarriersTest <
|
4
|
-
|
5
|
-
def test_get_usps_by_string
|
3
|
+
class CarriersTest < ActiveSupport::TestCase
|
4
|
+
test ".find searches by string for a carrier and finds USPS" do
|
6
5
|
assert_equal ActiveShipping::USPS, ActiveShipping::Carriers.find('usps')
|
7
6
|
assert_equal ActiveShipping::USPS, ActiveShipping::Carriers.find('USPS')
|
8
7
|
end
|
9
8
|
|
10
|
-
|
9
|
+
test ".find searches by symbol for a carrier and finds USPS" do
|
11
10
|
assert_equal ActiveShipping::USPS, ActiveShipping::Carriers.find(:usps)
|
12
11
|
end
|
13
12
|
|
14
|
-
|
13
|
+
test ".find raises with an unknown carrier" do
|
15
14
|
assert_raises(NameError) { ActiveShipping::Carriers.find(:polar_north) }
|
16
15
|
end
|
17
16
|
end
|
@@ -1,123 +1,167 @@
|
|
1
1
|
require 'test_helper'
|
2
2
|
|
3
|
-
class ExternalReturnLabelRequestTest <
|
3
|
+
class ExternalReturnLabelRequestTest < ActiveSupport::TestCase
|
4
4
|
include ActiveShipping::Test::Fixtures
|
5
5
|
|
6
|
-
|
6
|
+
setup do
|
7
7
|
@external_request_label_req =
|
8
|
-
ExternalReturnLabelRequest.from_hash
|
9
|
-
:
|
10
|
-
:
|
11
|
-
:
|
12
|
-
:
|
13
|
-
:
|
14
|
-
:
|
15
|
-
:
|
16
|
-
:
|
17
|
-
:
|
18
|
-
:
|
19
|
-
:
|
20
|
-
:
|
21
|
-
|
22
|
-
|
8
|
+
ExternalReturnLabelRequest.from_hash(
|
9
|
+
customer_name: "Test Customer",
|
10
|
+
customer_address1: "122 Hudson St.",
|
11
|
+
customer_city: "New York",
|
12
|
+
customer_state: "NY",
|
13
|
+
customer_zipcode: "10013",
|
14
|
+
label_format: "No Instructions",
|
15
|
+
label_definition: "4X6",
|
16
|
+
service_type_code: "044",
|
17
|
+
merchant_account_id: "12345",
|
18
|
+
mid: "12345678",
|
19
|
+
call_center_or_self_service: "Customer",
|
20
|
+
address_override_notification: "true",
|
21
|
+
)
|
22
|
+
@email = "no-reply@example.com"
|
23
|
+
@invalid_email = "not_a_valid_email"
|
24
|
+
@anything = "Any string"
|
25
|
+
@blank_values = ["", " "]
|
23
26
|
end
|
24
27
|
|
25
|
-
|
28
|
+
test "#recipient_bcc raises on an invalid email" do
|
26
29
|
assert_raises(USPSValidationError) do
|
27
|
-
@external_request_label_req.recipient_bcc =
|
28
|
-
end
|
29
|
-
assert_silent do
|
30
|
-
@external_request_label_req.recipient_bcc = "no-reply@example.com"
|
30
|
+
@external_request_label_req.recipient_bcc = @invalid_email
|
31
31
|
end
|
32
32
|
end
|
33
33
|
|
34
|
-
|
34
|
+
test "#recipient_bcc assigns the email" do
|
35
|
+
@external_request_label_req.recipient_bcc = @email
|
36
|
+
assert_equal @email, @external_request_label_req.recipient_bcc
|
37
|
+
end
|
38
|
+
|
39
|
+
test "#recipient_email raises if invalid" do
|
35
40
|
assert_raises(USPSValidationError) do
|
36
|
-
@external_request_label_req.recipient_email =
|
37
|
-
end
|
38
|
-
assert_silent do
|
39
|
-
@external_request_label_req.recipient_email = "no-reply@example.com"
|
41
|
+
@external_request_label_req.recipient_email = @invalid_email
|
40
42
|
end
|
41
43
|
end
|
42
44
|
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
end
|
45
|
+
test "#recipient_email assigns the email" do
|
46
|
+
@external_request_label_req.recipient_email = @email
|
47
|
+
assert_equal @email, @external_request_label_req.recipient_email
|
47
48
|
end
|
48
49
|
|
49
|
-
|
50
|
+
test "#recipient_name accepts anything" do
|
51
|
+
@external_request_label_req.recipient_name = @anything
|
52
|
+
assert_equal @anything, @external_request_label_req.recipient_name
|
53
|
+
end
|
54
|
+
|
55
|
+
test "#sender_email raises if invalid" do
|
50
56
|
assert_raises(USPSValidationError) do
|
51
|
-
@external_request_label_req.sender_email =
|
52
|
-
end
|
53
|
-
assert_silent do
|
54
|
-
@external_request_label_req.sender_email = "no-reply@example.com"
|
57
|
+
@external_request_label_req.sender_email = @invalid_email
|
55
58
|
end
|
56
59
|
end
|
57
60
|
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
+
test "#sender_email assigns the email" do
|
62
|
+
@external_request_label_req.sender_email = @email
|
63
|
+
assert_equal @email, @external_request_label_req.sender_email
|
64
|
+
end
|
65
|
+
|
66
|
+
test "#sender_name assigns the value" do
|
67
|
+
@external_request_label_req.sender_name = @anything
|
68
|
+
assert_equal @anything, @external_request_label_req.sender_name
|
69
|
+
end
|
70
|
+
|
71
|
+
test "#sender_name raises if blank or nil" do
|
72
|
+
@blank_values.each do |blank|
|
73
|
+
assert_raises(USPSValidationError) do
|
74
|
+
@external_request_label_req.sender_name = blank
|
75
|
+
end
|
61
76
|
end
|
77
|
+
end
|
78
|
+
|
79
|
+
test "#sender_name raises if nil" do
|
62
80
|
assert_raises(USPSValidationError) do
|
63
|
-
@external_request_label_req.sender_name =
|
81
|
+
@external_request_label_req.sender_name = nil
|
64
82
|
end
|
65
83
|
end
|
66
84
|
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
end
|
85
|
+
test "#image_type accepts a valid image type" do
|
86
|
+
ExternalReturnLabelRequest::IMAGE_TYPE.each do |type|
|
87
|
+
@external_request_label_req.image_type = type.downcase
|
88
|
+
assert_equal type, @external_request_label_req.image_type
|
72
89
|
end
|
90
|
+
end
|
91
|
+
|
92
|
+
test "#image_type raises on jpg" do
|
73
93
|
assert_raises(USPSValidationError) do
|
74
94
|
@external_request_label_req.image_type = "jpg"
|
75
95
|
end
|
76
96
|
end
|
77
97
|
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
end
|
98
|
+
test "#call_center_or_self_service accepts the valid values defined" do
|
99
|
+
ExternalReturnLabelRequest::CALL_CENTER_OR_SELF_SERVICE.each do |cc_or_cs|
|
100
|
+
@external_request_label_req.call_center_or_self_service = cc_or_cs
|
101
|
+
assert_equal cc_or_cs, @external_request_label_req.call_center_or_self_service
|
83
102
|
end
|
103
|
+
end
|
104
|
+
|
105
|
+
test "#call_center_or_self_service raises on an invalid value" do
|
84
106
|
assert_raises(USPSValidationError) do
|
85
107
|
@external_request_label_req.call_center_or_self_service = "Invalid"
|
86
108
|
end
|
87
109
|
end
|
88
110
|
|
89
|
-
|
90
|
-
|
91
|
-
|
111
|
+
test "#packaging_information accepts a value" do
|
112
|
+
@external_request_label_req.packaging_information = @anything
|
113
|
+
assert_equal @anything, @external_request_label_req.packaging_information
|
114
|
+
end
|
115
|
+
|
116
|
+
test "#packaging_information accepts blank values" do
|
117
|
+
@blank_values.each do |blank|
|
118
|
+
@external_request_label_req.packaging_information = blank
|
119
|
+
assert_equal "", @external_request_label_req.packaging_information
|
92
120
|
end
|
121
|
+
end
|
122
|
+
|
123
|
+
test "#packaging_information raises on a value too long" do
|
93
124
|
assert_raises(USPSValidationError) do
|
94
|
-
@external_request_label_req.packaging_information =
|
125
|
+
@external_request_label_req.packaging_information = "a" * 16
|
95
126
|
end
|
96
127
|
end
|
97
128
|
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
129
|
+
test "#packaging_information2 accepts a value" do
|
130
|
+
@external_request_label_req.packaging_information2 = @anything
|
131
|
+
assert_equal @anything, @external_request_label_req.packaging_information2
|
132
|
+
end
|
133
|
+
|
134
|
+
test "#packaging_information2 accepts blank values" do
|
135
|
+
@blank_values.each do |blank|
|
136
|
+
@external_request_label_req.packaging_information2 = blank
|
137
|
+
assert_equal "", @external_request_label_req.packaging_information2
|
105
138
|
end
|
139
|
+
end
|
140
|
+
|
141
|
+
test "#packaging_information2 raises when a value is too long" do
|
106
142
|
assert_raises(USPSValidationError) do
|
107
|
-
@external_request_label_req.packaging_information2 =
|
143
|
+
@external_request_label_req.packaging_information2 = "a" * 16
|
108
144
|
end
|
109
145
|
end
|
110
146
|
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
147
|
+
test "#customer_address2 accepts a value" do
|
148
|
+
@external_request_label_req.customer_address2 = @anything
|
149
|
+
assert_equal @anything, @external_request_label_req.customer_address2
|
150
|
+
end
|
151
|
+
|
152
|
+
test "#customer_address2 accepts blank values" do
|
153
|
+
@blank_values.each do |blank|
|
154
|
+
@external_request_label_req.customer_address2 = blank
|
155
|
+
assert_nil @external_request_label_req.customer_address2
|
117
156
|
end
|
118
157
|
end
|
119
158
|
|
120
|
-
|
159
|
+
test "#customer_address2 accepts nil" do
|
160
|
+
@external_request_label_req.customer_address2 = nil
|
161
|
+
assert_nil @external_request_label_req.customer_address2
|
162
|
+
end
|
163
|
+
|
164
|
+
test "#sanitize scrubs strings" do
|
121
165
|
assert_equal "", @external_request_label_req.send(:sanitize,' ')
|
122
166
|
assert_equal 'some string', @external_request_label_req.send(:sanitize, 'some string ')
|
123
167
|
assert_nil @external_request_label_req.send(:sanitize, {})
|
@@ -127,18 +171,21 @@ class ExternalReturnLabelRequestTest < Minitest::Test
|
|
127
171
|
assert_equal ExternalReturnLabelRequest::CAP_STRING_LEN, @external_request_label_req.send(:sanitize, (1..100).to_a.join("_")).size
|
128
172
|
end
|
129
173
|
|
130
|
-
|
174
|
+
test "#to_bool coerces true values" do
|
131
175
|
assert_equal true, @external_request_label_req.send(:to_bool, 'yes')
|
132
176
|
assert_equal true, @external_request_label_req.send(:to_bool, 'true')
|
133
177
|
assert_equal true, @external_request_label_req.send(:to_bool, true)
|
134
178
|
assert_equal true, @external_request_label_req.send(:to_bool, '1')
|
179
|
+
end
|
180
|
+
|
181
|
+
test "#to_bool coerces false values" do
|
135
182
|
assert_equal false, @external_request_label_req.send(:to_bool, '0')
|
136
183
|
assert_equal false, @external_request_label_req.send(:to_bool, 'false')
|
137
184
|
assert_equal false, @external_request_label_req.send(:to_bool, false)
|
138
185
|
assert_equal false, @external_request_label_req.send(:to_bool, nil, false)
|
139
186
|
end
|
140
187
|
|
141
|
-
|
188
|
+
test "#validate_range" do
|
142
189
|
assert_raises(USPSValidationError) do
|
143
190
|
@external_request_label_req.send(:validate_range, '1', 5, 10, __method__)
|
144
191
|
end
|
@@ -149,7 +196,7 @@ class ExternalReturnLabelRequestTest < Minitest::Test
|
|
149
196
|
@external_request_label_req.send(:validate_range, '5 char', nil, 10, __method__)
|
150
197
|
end
|
151
198
|
|
152
|
-
|
199
|
+
test "#validate_string_length" do
|
153
200
|
assert_raises(USPSValidationError) do
|
154
201
|
@external_request_label_req.send(:validate_string_length, '14 char string', 13, __method__)
|
155
202
|
end
|
@@ -159,7 +206,7 @@ class ExternalReturnLabelRequestTest < Minitest::Test
|
|
159
206
|
@external_request_label_req.send(:validate_string_length, '14 char string', 14, __method__)
|
160
207
|
end
|
161
208
|
|
162
|
-
|
209
|
+
test "#validate_set_inclusion" do
|
163
210
|
assert_raises(USPSValidationError) do
|
164
211
|
@external_request_label_req.send(:validate_set_inclusion, 'not_in_set', ['v1','v2','v3'], __method__)
|
165
212
|
end
|
@@ -169,20 +216,22 @@ class ExternalReturnLabelRequestTest < Minitest::Test
|
|
169
216
|
@external_request_label_req.send(:validate_set_inclusion, 'v1', ['v1','v2','v3'], __method__)
|
170
217
|
end
|
171
218
|
|
172
|
-
|
219
|
+
test "#validate_email" do
|
173
220
|
assert_raises(USPSValidationError) do
|
174
|
-
@external_request_label_req.send(:validate_email,
|
221
|
+
@external_request_label_req.send(:validate_email, @invalid_email, __method__)
|
175
222
|
end
|
176
223
|
assert_raises(USPSValidationError) do
|
177
|
-
@external_request_label_req.send(:validate_email,
|
224
|
+
@external_request_label_req.send(:validate_email, " ", __method__)
|
178
225
|
end
|
179
|
-
assert_equal
|
180
|
-
assert_equal
|
226
|
+
assert_equal @email, @external_request_label_req.send(:validate_email, @email, __method__)
|
227
|
+
assert_equal @email, @external_request_label_req.send(:validate_email, " #{@email} ", __method__)
|
181
228
|
end
|
182
229
|
|
183
|
-
|
230
|
+
test "#initialize raises with no tag" do
|
184
231
|
assert_raises(USPSMissingRequiredTagError) { ExternalReturnLabelRequest.new }
|
232
|
+
end
|
185
233
|
|
234
|
+
test "#initialize passes with valid values and that every key is necessary" do
|
186
235
|
sample_hash = {
|
187
236
|
:customer_name => "Test Customer",
|
188
237
|
:customer_address1 => "122 Hudson St.",
|
@@ -198,9 +247,7 @@ class ExternalReturnLabelRequestTest < Minitest::Test
|
|
198
247
|
:address_override_notification => "true"
|
199
248
|
}
|
200
249
|
|
201
|
-
|
202
|
-
ExternalReturnLabelRequest.from_hash(sample_hash)
|
203
|
-
end
|
250
|
+
assert ExternalReturnLabelRequest.from_hash(sample_hash)
|
204
251
|
|
205
252
|
sample_hash.keys.each do |k|
|
206
253
|
assert_raises(USPSMissingRequiredTagError) do
|
@@ -208,5 +255,4 @@ class ExternalReturnLabelRequestTest < Minitest::Test
|
|
208
255
|
end
|
209
256
|
end
|
210
257
|
end
|
211
|
-
|
212
258
|
end
|