active_shipping 1.14.2 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|