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.
Files changed (77) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +3 -25
  3. data/CHANGELOG.md +5 -0
  4. data/CONTRIBUTING.md +2 -0
  5. data/README.md +2 -8
  6. data/active_shipping.gemspec +9 -3
  7. data/gemfiles/activesupport42.gemfile +0 -1
  8. data/lib/active_shipping.rb +1 -1
  9. data/lib/active_shipping/carrier.rb +2 -4
  10. data/lib/active_shipping/carriers/australia_post.rb +2 -4
  11. data/lib/active_shipping/carriers/canada_post.rb +1 -1
  12. data/lib/active_shipping/carriers/canada_post_pws.rb +33 -37
  13. data/lib/active_shipping/carriers/correios.rb +0 -2
  14. data/lib/active_shipping/carriers/new_zealand_post.rb +0 -2
  15. data/lib/active_shipping/carriers/ups.rb +0 -2
  16. data/lib/active_shipping/carriers/usps.rb +1 -3
  17. data/lib/active_shipping/external_return_label_request.rb +0 -4
  18. data/lib/active_shipping/location.rb +65 -52
  19. data/lib/active_shipping/package.rb +17 -21
  20. data/lib/active_shipping/package_item.rb +8 -20
  21. data/lib/active_shipping/rate_estimate.rb +1 -1
  22. data/lib/active_shipping/version.rb +1 -1
  23. data/test/fixtures/xml/canadapost/example_request.xml +3 -3
  24. data/test/helpers/holiday_helpers.rb +54 -0
  25. data/test/remote/australia_post_test.rb +1 -1
  26. data/test/remote/canada_post_pws_platform_test.rb +1 -3
  27. data/test/remote/canada_post_pws_test.rb +1 -1
  28. data/test/remote/canada_post_test.rb +1 -1
  29. data/test/remote/correios_test.rb +1 -2
  30. data/test/remote/fedex_test.rb +8 -8
  31. data/test/remote/kunaki_test.rb +1 -1
  32. data/test/remote/new_zealand_post_test.rb +1 -1
  33. data/test/remote/shipwire_test.rb +1 -1
  34. data/test/remote/stamps_test.rb +7 -7
  35. data/test/remote/ups_surepost_test.rb +1 -1
  36. data/test/remote/ups_test.rb +13 -11
  37. data/test/remote/usps_returns_test.rb +1 -1
  38. data/test/remote/usps_test.rb +5 -5
  39. data/test/test_helper.rb +16 -6
  40. data/test/unit/carrier_test.rb +25 -25
  41. data/test/unit/carriers/australia_post_test.rb +5 -5
  42. data/test/unit/carriers/benchmark_test.rb +1 -1
  43. data/test/unit/carriers/canada_post_pws_rating_test.rb +1 -15
  44. data/test/unit/carriers/canada_post_pws_register_test.rb +1 -15
  45. data/test/unit/carriers/canada_post_pws_shipping_test.rb +1 -13
  46. data/test/unit/carriers/canada_post_pws_test.rb +4 -4
  47. data/test/unit/carriers/canada_post_pws_tracking_test.rb +1 -1
  48. data/test/unit/carriers/canada_post_test.rb +9 -9
  49. data/test/unit/carriers/correios_test.rb +1 -2
  50. data/test/unit/carriers/fedex_test.rb +5 -5
  51. data/test/unit/carriers/kunaki_test.rb +1 -1
  52. data/test/unit/carriers/new_zealand_post_test.rb +9 -10
  53. data/test/unit/carriers/shipwire_test.rb +1 -1
  54. data/test/unit/carriers/stamps_test.rb +1 -1
  55. data/test/unit/carriers/ups_test.rb +1 -1
  56. data/test/unit/carriers/usps_returns_test.rb +1 -1
  57. data/test/unit/carriers/usps_test.rb +1 -1
  58. data/test/unit/carriers_test.rb +4 -5
  59. data/test/unit/external_return_label_request_test.rb +129 -83
  60. data/test/unit/location_test.rb +187 -91
  61. data/test/unit/package_item_test.rb +42 -47
  62. data/test/unit/package_test.rb +76 -75
  63. data/test/unit/rate_estimate_test.rb +16 -20
  64. data/test/unit/response_test.rb +28 -9
  65. data/test/unit/shipment_event_test.rb +1 -1
  66. data/test/unit/shipment_packer_test.rb +31 -31
  67. data/test/unit/tracking_response_test.rb +1 -1
  68. metadata +71 -23
  69. data/gemfiles/activesupport32.gemfile +0 -7
  70. data/gemfiles/activesupport32_nokogiri_17.gemfile +0 -7
  71. data/gemfiles/activesupport40.gemfile +0 -6
  72. data/gemfiles/activesupport40_nokogiri_17.gemfile +0 -6
  73. data/gemfiles/activesupport41.gemfile +0 -6
  74. data/gemfiles/activesupport41_nokogiri_17.gemfile +0 -6
  75. data/gemfiles/activesupport42_nokogiri_17.gemfile +0 -6
  76. data/test/fixtures/xml/canadapost_pws/merchant_details_response_no_contract_number.xml +0 -7
  77. 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 CanadaPostPwsTrackingTest < Minitest::Test
3
+ class CanadaPostPwsTrackingTest < ActiveSupport::TestCase
4
4
  include ActiveShipping::Test::Fixtures
5
5
 
6
6
  def setup
@@ -1,6 +1,6 @@
1
1
  require 'test_helper'
2
2
 
3
- class CanadaPostTest < Minitest::Test
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 DateTime, rate.delivery_date
29
- assert_instance_of DateTime, rate.shipping_date
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
- assert_instance_of Fixnum, rate.total_price
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
- assert_instance_of Fixnum, p.quantity
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 DateTime, rate.delivery_date
62
- assert_instance_of DateTime, rate.shipping_date
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
- assert_instance_of Fixnum, rate.total_price
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
- assert_instance_of Fixnum, p.quantity
77
+ assert_kind_of Integer, p.quantity
78
78
  assert_instance_of String, p.description
79
79
  end
80
80
  end
@@ -1,7 +1,6 @@
1
- # -*- coding: utf-8 -*-
2
1
  require "test_helper"
3
2
 
4
- class CorreiosTest < Minitest::Test
3
+ class CorreiosTest < ActiveSupport::TestCase
5
4
  include ActiveShipping::Test::Fixtures
6
5
 
7
6
  def setup
@@ -1,6 +1,6 @@
1
1
  require 'test_helper'
2
2
 
3
- class FedExTest < Minitest::Test
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
- assert_instance_of Fixnum, rate.total_price
160
- assert_instance_of Fixnum, rate.price
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
- assert_instance_of Fixnum, rate.total_price
193
- assert_instance_of Fixnum, rate.price
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 KunakiTest < Minitest::Test
3
+ class KunakiTest < ActiveSupport::TestCase
4
4
  include ActiveShipping::Test::Fixtures
5
5
 
6
6
  def setup
@@ -1,6 +1,6 @@
1
1
  require "test_helper"
2
2
 
3
- class NewZealandPostTest < Minitest::Test
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
@@ -1,6 +1,6 @@
1
1
  require 'test_helper'
2
2
 
3
- class ShipwireTest < Minitest::Test
3
+ class ShipwireTest < ActiveSupport::TestCase
4
4
  include ActiveShipping::Test::Fixtures
5
5
 
6
6
  def setup
@@ -1,6 +1,6 @@
1
1
  require 'test_helper'
2
2
 
3
- class StampsTest < Minitest::Test
3
+ class StampsTest < ActiveSupport::TestCase
4
4
  include ActiveShipping::Test::Fixtures
5
5
 
6
6
  def setup
@@ -1,6 +1,6 @@
1
1
  require 'test_helper'
2
2
 
3
- class UPSTest < Minitest::Test
3
+ class UPSTest < ActiveSupport::TestCase
4
4
  include ActiveShipping::Test::Fixtures
5
5
 
6
6
  def setup
@@ -1,6 +1,6 @@
1
1
  require 'test_helper'
2
2
 
3
- class USPSReturnsTest < Minitest::Test
3
+ class USPSReturnsTest < ActiveSupport::TestCase
4
4
  include ActiveShipping::Test::Fixtures
5
5
 
6
6
  attr_reader :carrier
@@ -1,6 +1,6 @@
1
1
  require 'test_helper'
2
2
 
3
- class USPSTest < Minitest::Test
3
+ class USPSTest < ActiveSupport::TestCase
4
4
  include ActiveShipping::Test::Fixtures
5
5
 
6
6
  def setup
@@ -1,17 +1,16 @@
1
1
  require 'test_helper'
2
2
 
3
- class CarriersTest < Minitest::Test
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
- def test_get_usps_by_name
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
- def test_get_unknown_carrier
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 < Minitest::Test
3
+ class ExternalReturnLabelRequestTest < ActiveSupport::TestCase
4
4
  include ActiveShipping::Test::Fixtures
5
5
 
6
- def setup
6
+ setup do
7
7
  @external_request_label_req =
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
-
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
- def test_recipient_bcc
28
+ test "#recipient_bcc raises on an invalid email" do
26
29
  assert_raises(USPSValidationError) do
27
- @external_request_label_req.recipient_bcc = "not_a_valid_email"
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
- def test_recipient_email
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 = "not_a_valid_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
- def test_recipient_name
44
- assert_silent do
45
- @external_request_label_req.recipient_name = "any string"
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
- def test_sender_email
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 = "not_a_valid_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
- def test_sender_name
59
- assert_silent do
60
- @external_request_label_req.sender_name = "any string"
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
- def test_image_type
68
- assert_silent do
69
- ExternalReturnLabelRequest::IMAGE_TYPE.each do |img_type|
70
- @external_request_label_req.image_type = img_type.downcase
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
- def test_call_center_or_self_service
79
- assert_silent do
80
- ExternalReturnLabelRequest::CALL_CENTER_OR_SELF_SERVICE.each do |cc_or_cs|
81
- @external_request_label_req.call_center_or_self_service = cc_or_cs
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
- def test_packaging_information
90
- assert_silent do
91
- @external_request_label_req.packaging_information = "Any String"
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 = (1..50).to_a.join("_")
125
+ @external_request_label_req.packaging_information = "a" * 16
95
126
  end
96
127
  end
97
128
 
98
- def test_packaging_information2
99
- assert_silent do
100
- @external_request_label_req.packaging_information2 = "Any String"
101
- end
102
- assert_silent do
103
- @external_request_label_req.packaging_information2 = " "
104
- @external_request_label_req.packaging_information2 = ""
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 = (1..50).to_a.join("_")
143
+ @external_request_label_req.packaging_information2 = "a" * 16
108
144
  end
109
145
  end
110
146
 
111
- def test_customer_address2
112
- assert_silent do
113
- @external_request_label_req.customer_address2 = " "
114
- end
115
- assert_silent do
116
- @external_request_label_req.customer_address2 = nil
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
- def test_sanitize
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
- def test_to_bool
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
- def test_validate_range
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
- def test_validate_string_length
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
- def test_validate_set_inclusion
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
- def test_validate_email
219
+ test "#validate_email" do
173
220
  assert_raises(USPSValidationError) do
174
- @external_request_label_req.send(:validate_email, 'not_a_valid_email', __method__)
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, ' ', __method__)
224
+ @external_request_label_req.send(:validate_email, " ", __method__)
178
225
  end
179
- assert_equal 'no-reply@example.com', @external_request_label_req.send(:validate_email, 'no-reply@example.com', __method__)
180
- assert_equal 'no-reply@example.com', @external_request_label_req.send(:validate_email, ' no-reply@example.com ', __method__)
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
- def test_tag_required
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
- assert_silent do
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