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.
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,12 +1,10 @@
1
1
  module ActiveShipping #:nodoc:
2
2
  class Package
3
- include Quantified
4
-
5
3
  cattr_accessor :default_options
6
4
  attr_reader :options, :value, :currency
7
5
 
8
6
  # Package.new(100, [10, 20, 30], :units => :metric)
9
- # Package.new(Mass.new(100, :grams), [10, 20, 30].map {|m| Length.new(m, :centimetres)})
7
+ # Package.new(Measured::Weight.new(100, :g), [10, 20, 30].map {|m| Length.new(m, :centimetres)})
10
8
  # Package.new(100.grams, [10, 20, 30].map(&:centimetres))
11
9
  def initialize(grams_or_ounces, dimensions, options = {})
12
10
  options = @@default_options.update(options) if @@default_options
@@ -15,28 +13,26 @@ module ActiveShipping #:nodoc:
15
13
 
16
14
  @dimensions = [dimensions].flatten.reject(&:nil?)
17
15
 
18
- imperial = (options[:units] == :imperial) ||
19
- ([grams_or_ounces, *dimensions].all? { |m| m.respond_to?(:unit) && m.unit.to_sym == :imperial })
16
+ imperial = (options[:units] == :imperial)
20
17
 
21
18
  weight_imperial = dimensions_imperial = imperial if options.include?(:units)
22
19
 
23
20
  if options.include?(:weight_units)
24
- weight_imperial = (options[:weight_units] == :imperial) ||
25
- (grams_or_ounces.respond_to?(:unit) && m.unit.to_sym == :imperial)
21
+ weight_imperial = (options[:weight_units] == :imperial)
26
22
  end
27
23
 
28
24
  if options.include?(:dim_units)
29
- dimensions_imperial = (options[:dim_units] == :imperial) ||
30
- (dimensions && dimensions.all? { |m| m.respond_to?(:unit) && m.unit.to_sym == :imperial })
25
+ dimensions_imperial = (options[:dim_units] == :imperial)
31
26
  end
32
27
 
33
28
  @weight_unit_system = weight_imperial ? :imperial : :metric
34
29
  @dimensions_unit_system = dimensions_imperial ? :imperial : :metric
35
30
 
36
- @weight = attribute_from_metric_or_imperial(grams_or_ounces, Mass, @weight_unit_system, :grams, :ounces)
31
+ @weight = attribute_from_metric_or_imperial(grams_or_ounces, Measured::Weight, @weight_unit_system, :grams, :ounces)
37
32
 
38
33
  if @dimensions.blank?
39
- @dimensions = [Length.new(0, (dimensions_imperial ? :inches : :centimetres))] * 3
34
+ zero_length = Measured::Length.new(0, (dimensions_imperial ? :inches : :centimetres))
35
+ @dimensions = [zero_length] * 3
40
36
  else
41
37
  process_dimensions
42
38
  end
@@ -67,35 +63,35 @@ module ActiveShipping #:nodoc:
67
63
  end
68
64
 
69
65
  def ounces(options = {})
70
- weight(options).in_ounces.amount
66
+ weight(options).convert_to(:oz).value.to_f
71
67
  end
72
68
  alias_method :oz, :ounces
73
69
 
74
70
  def grams(options = {})
75
- weight(options).in_grams.amount
71
+ weight(options).convert_to(:g).value.to_f
76
72
  end
77
73
  alias_method :g, :grams
78
74
 
79
75
  def pounds(options = {})
80
- weight(options).in_pounds.amount
76
+ weight(options).convert_to(:lb).value.to_f
81
77
  end
82
78
  alias_method :lb, :pounds
83
79
  alias_method :lbs, :pounds
84
80
 
85
81
  def kilograms(options = {})
86
- weight(options).in_kilograms.amount
82
+ weight(options).convert_to(:kg).value.to_f
87
83
  end
88
84
  alias_method :kg, :kilograms
89
85
  alias_method :kgs, :kilograms
90
86
 
91
87
  def inches(measurement = nil)
92
- @inches ||= @dimensions.map { |m| m.in_inches.amount }
88
+ @inches ||= @dimensions.map { |m| m.convert_to(:in).value.to_f }
93
89
  measurement.nil? ? @inches : measure(measurement, @inches)
94
90
  end
95
91
  alias_method :in, :inches
96
92
 
97
93
  def centimetres(measurement = nil)
98
- @centimetres ||= @dimensions.map { |m| m.in_centimetres.amount }
94
+ @centimetres ||= @dimensions.map { |m| m.convert_to(:cm).value.to_f }
99
95
  measurement.nil? ? @centimetres : measure(measurement, @centimetres)
100
96
  end
101
97
  alias_method :cm, :centimetres
@@ -106,8 +102,8 @@ module ActiveShipping #:nodoc:
106
102
  @weight
107
103
  when :volumetric, :dimensional
108
104
  @volumetric_weight ||= begin
109
- m = Mass.new((centimetres(:box_volume) / 6.0), :grams)
110
- @weight_unit_system == :imperial ? m.in_ounces : m
105
+ m = Measured::Weight.new((centimetres(:box_volume) / 6.0), :grams)
106
+ @weight_unit_system == :imperial ? m.convert_to(:oz) : m
111
107
  end
112
108
  when :billable
113
109
  [weight, weight(:type => :volumetric)].max
@@ -143,7 +139,7 @@ module ActiveShipping #:nodoc:
143
139
 
144
140
  def measure(measurement, ary)
145
141
  case measurement
146
- when Fixnum then ary[measurement]
142
+ when Integer then ary[measurement]
147
143
  when :x, :max, :length, :long then ary[2]
148
144
  when :y, :mid, :width, :wide then ary[1]
149
145
  when :z, :min, :height, :depth, :high, :deep then ary[0]
@@ -156,7 +152,7 @@ module ActiveShipping #:nodoc:
156
152
 
157
153
  def process_dimensions
158
154
  @dimensions = @dimensions.map do |l|
159
- attribute_from_metric_or_imperial(l, Length, @dimensions_unit_system, :centimetres, :inches)
155
+ attribute_from_metric_or_imperial(l, Measured::Length, @dimensions_unit_system, :centimetres, :inches)
160
156
  end.sort
161
157
  # [1,2] => [1,1,2]
162
158
  # [5] => [5,5,5]
@@ -1,18 +1,16 @@
1
1
  module ActiveShipping #:nodoc:
2
2
  class PackageItem
3
- include Quantified
4
-
5
3
  attr_reader :sku, :hs_code, :value, :name, :weight, :quantity, :options
6
4
 
7
5
  def initialize(name, grams_or_ounces, value, quantity, options = {})
8
6
  @name = name
9
7
 
10
- imperial = (options[:units] == :imperial) ||
11
- (grams_or_ounces.respond_to?(:unit) && m.unit.to_sym == :imperial)
8
+ imperial = (options[:units] == :imperial)
12
9
 
13
10
  @unit_system = imperial ? :imperial : :metric
14
11
 
15
- @weight = attribute_from_metric_or_imperial(grams_or_ounces, Mass, :grams, :ounces)
12
+ @weight = grams_or_ounces
13
+ @weight = Measured::Weight.new(grams_or_ounces, (@unit_system == :imperial ? :oz : :g)) unless @weight.is_a?(Measured::Weight)
16
14
 
17
15
  @value = Package.cents_from(value)
18
16
  @quantity = quantity > 0 ? quantity : 1
@@ -28,7 +26,7 @@ module ActiveShipping #:nodoc:
28
26
  @weight
29
27
  when :volumetric, :dimensional
30
28
  @volumetric_weight ||= begin
31
- m = Mass.new((centimetres(:box_volume) / 6.0), :grams)
29
+ m = Measured::Weight.new((centimetres(:box_volume) / 6.0), :grams)
32
30
  @unit_system == :imperial ? m.in_ounces : m
33
31
  end
34
32
  when :billable
@@ -38,35 +36,25 @@ module ActiveShipping #:nodoc:
38
36
  alias_method :mass, :weight
39
37
 
40
38
  def ounces(options = {})
41
- weight(options).in_ounces.amount
39
+ weight(options).convert_to(:oz).value
42
40
  end
43
41
  alias_method :oz, :ounces
44
42
 
45
43
  def grams(options = {})
46
- weight(options).in_grams.amount
44
+ weight(options).convert_to(:g).value
47
45
  end
48
46
  alias_method :g, :grams
49
47
 
50
48
  def pounds(options = {})
51
- weight(options).in_pounds.amount
49
+ weight(options).convert_to(:lb).value
52
50
  end
53
51
  alias_method :lb, :pounds
54
52
  alias_method :lbs, :pounds
55
53
 
56
54
  def kilograms(options = {})
57
- weight(options).in_kilograms.amount
55
+ weight(options).convert_to(:kg).value
58
56
  end
59
57
  alias_method :kg, :kilograms
60
58
  alias_method :kgs, :kilograms
61
-
62
- private
63
-
64
- def attribute_from_metric_or_imperial(obj, klass, metric_unit, imperial_unit)
65
- if obj.is_a?(klass)
66
- return value
67
- else
68
- return klass.new(obj, (@unit_system == :imperial ? imperial_unit : metric_unit))
69
- end
70
- end
71
59
  end
72
60
  end
@@ -189,7 +189,7 @@ module ActiveShipping
189
189
  # @return [Date, nil] The Date object absed on the input, or `nil` if no date
190
190
  # could be determined.
191
191
  def date_for(date)
192
- date && DateTime.strptime(date.to_s, "%Y-%m-%d")
192
+ date && Date.strptime(date.to_s, "%Y-%m-%d")
193
193
  rescue ArgumentError
194
194
  nil
195
195
  end
@@ -1,3 +1,3 @@
1
1
  module ActiveShipping
2
- VERSION = "1.14.2"
2
+ VERSION = "2.0.0"
3
3
  end
@@ -10,9 +10,9 @@
10
10
  <item>
11
11
  <quantity>1</quantity>
12
12
  <weight>0.5</weight>
13
- <length>4</length>
14
- <width>3</width>
15
- <height>2</height>
13
+ <length>4.0</length>
14
+ <width>3.0</width>
15
+ <height>2.0</height>
16
16
  <description>a box full of stuff</description>
17
17
  <readyToShip/>
18
18
  </item>
@@ -0,0 +1,54 @@
1
+ module HolidayHelpers
2
+ class MissingConfigurationError < RuntimeError; end
3
+
4
+ HOLIDAYS = {
5
+ ups: { # https://compass.ups.com/ups-holiday-schedule-2016/
6
+ "2016" => [
7
+ { month: 1, day: 1 },
8
+ { month: 5, day: 30 },
9
+ { month: 6, day: 4 },
10
+ { month: 9, day: 5 },
11
+ { month: 11, day: 24 },
12
+ { month: 12, day: 26 },
13
+ ],
14
+ "2017" => [
15
+ { month: 1, day: 2 },
16
+ { month: 5, day: 29 },
17
+ { month: 6, day: 4 },
18
+ { month: 9, day: 4 },
19
+ { month: 11, day: 23 },
20
+ { month: 12, day: 25 },
21
+ ]
22
+ }
23
+ }
24
+
25
+ def with_holidays(carrier, year=Date.current.year)
26
+ holiday_config = fetch_holidays(carrier, year)
27
+
28
+ BusinessTime::Config.with(holidays: holiday_config) do
29
+ yield
30
+ end
31
+
32
+ rescue MissingConfigurationError
33
+ self.logger.warn(
34
+ "[HolidayHelpers] Missing holiday configuration. You need to update test/helpers/holiday_helpers.rb. "\
35
+ "test: #{self}, carrier: #{carrier}, year: #{year}")
36
+ yield
37
+ end
38
+
39
+ private
40
+
41
+ def fetch_holidays(carrier, year)
42
+ carrier_holiday_config = case carrier
43
+ when :ups
44
+ HOLIDAYS[carrier]
45
+ else
46
+ raise MissingConfigurationError
47
+ end
48
+ raise MissingConfigurationError unless carrier_holiday_config.include?(year.to_s)
49
+
50
+ carrier_holiday_config[year.to_s].map do |holiday|
51
+ Date.new(year, holiday[:month], holiday[:day])
52
+ end
53
+ end
54
+ end
@@ -1,6 +1,6 @@
1
1
  require 'test_helper'
2
2
 
3
- class RemoteAustraliaPostTest < Minitest::Test
3
+ class RemoteAustraliaPostTest < ActiveSupport::TestCase
4
4
  include ActiveShipping::Test::Credentials
5
5
  include ActiveShipping::Test::Fixtures
6
6
 
@@ -1,9 +1,7 @@
1
- # encoding: utf-8
2
-
3
1
  require 'test_helper'
4
2
 
5
3
  # All remote tests require Canada Post development environment credentials
6
- class RemoteCanadaPostPWSPlatformTest < Minitest::Test
4
+ class RemoteCanadaPostPWSPlatformTest < ActiveSupport::TestCase
7
5
  include ActiveShipping::Test::Credentials
8
6
  include ActiveShipping::Test::Fixtures
9
7
 
@@ -1,6 +1,6 @@
1
1
  require 'test_helper'
2
2
 
3
- class RemoteCanadaPostPWSTest < Minitest::Test
3
+ class RemoteCanadaPostPWSTest < ActiveSupport::TestCase
4
4
  # All remote tests require Canada Post development environment credentials
5
5
  include ActiveShipping::Test::Credentials
6
6
  include ActiveShipping::Test::Fixtures
@@ -1,6 +1,6 @@
1
1
  require 'test_helper'
2
2
 
3
- class RemoteCanadaPostTest < Minitest::Test
3
+ class RemoteCanadaPostTest < ActiveSupport::TestCase
4
4
  include ActiveShipping::Test::Credentials
5
5
 
6
6
  def setup
@@ -1,7 +1,6 @@
1
1
  require 'test_helper'
2
2
 
3
- class RemoteCorreiosTest < Minitest::Test
4
-
3
+ class RemoteCorreiosTest < ActiveSupport::TestCase
5
4
  def setup
6
5
  @carrier = Correios.new
7
6
 
@@ -1,6 +1,6 @@
1
1
  require 'test_helper'
2
2
 
3
- class RemoteFedExTest < Minitest::Test
3
+ class RemoteFedExTest < ActiveSupport::TestCase
4
4
  include ActiveShipping::Test::Credentials
5
5
  include ActiveShipping::Test::Fixtures
6
6
 
@@ -33,7 +33,7 @@ class RemoteFedExTest < Minitest::Test
33
33
  assert response.rates.length > 0
34
34
  response.rates.each do |rate|
35
35
  assert_instance_of String, rate.service_name
36
- assert_instance_of Fixnum, rate.price
36
+ assert_kind_of Integer, rate.price
37
37
  end
38
38
  end
39
39
 
@@ -75,7 +75,7 @@ class RemoteFedExTest < Minitest::Test
75
75
  assert response.rates.length > 0
76
76
  response.rates.each do |rate|
77
77
  assert_instance_of String, rate.service_name
78
- assert_instance_of Fixnum, rate.price
78
+ assert_kind_of Integer, rate.price
79
79
  end
80
80
  end
81
81
 
@@ -134,7 +134,7 @@ class RemoteFedExTest < Minitest::Test
134
134
  assert response.rates.length > 0
135
135
  response.rates.each do |rate|
136
136
  assert_instance_of String, rate.service_name
137
- assert_instance_of Fixnum, rate.price
137
+ assert_kind_of Integer, rate.price
138
138
  end
139
139
  end
140
140
 
@@ -149,7 +149,7 @@ class RemoteFedExTest < Minitest::Test
149
149
  assert response.rates.length > 0
150
150
  response.rates.each do |rate|
151
151
  assert_instance_of String, rate.service_name
152
- assert_instance_of Fixnum, rate.price
152
+ assert_kind_of Integer, rate.price
153
153
  end
154
154
  end
155
155
 
@@ -164,7 +164,7 @@ class RemoteFedExTest < Minitest::Test
164
164
  assert response.rates.length > 0
165
165
  response.rates.each do |rate|
166
166
  assert_instance_of String, rate.service_name
167
- assert_instance_of Fixnum, rate.price
167
+ assert_kind_of Integer, rate.price
168
168
  end
169
169
  end
170
170
 
@@ -179,7 +179,7 @@ class RemoteFedExTest < Minitest::Test
179
179
  assert response.rates.length > 0
180
180
  response.rates.each do |rate|
181
181
  assert_instance_of String, rate.service_name
182
- assert_instance_of Fixnum, rate.price
182
+ assert_kind_of Integer, rate.price
183
183
  end
184
184
  end
185
185
 
@@ -194,7 +194,7 @@ class RemoteFedExTest < Minitest::Test
194
194
  assert response.rates.length > 0
195
195
  response.rates.each do |rate|
196
196
  assert_instance_of String, rate.service_name
197
- assert_instance_of Fixnum, rate.price
197
+ assert_kind_of Integer, rate.price
198
198
  end
199
199
  end
200
200
 
@@ -1,6 +1,6 @@
1
1
  require 'test_helper'
2
2
 
3
- class RemoteKunakiTest < Minitest::Test
3
+ class RemoteKunakiTest < 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 RemoteNewZealandPostTest < Minitest::Test
3
+ class RemoteNewZealandPostTest < ActiveSupport::TestCase
4
4
  include ActiveShipping::Test::Credentials
5
5
  include ActiveShipping::Test::Fixtures
6
6
 
@@ -1,6 +1,6 @@
1
1
  require 'test_helper'
2
2
 
3
- class RemoteShipwireTest < Minitest::Test
3
+ class RemoteShipwireTest < ActiveSupport::TestCase
4
4
  include ActiveShipping::Test::Credentials
5
5
  include ActiveShipping::Test::Fixtures
6
6
 
@@ -1,6 +1,6 @@
1
1
  require 'test_helper'
2
2
 
3
- class RemoteStampsTest < Minitest::Test
3
+ class RemoteStampsTest < ActiveSupport::TestCase
4
4
  include ActiveShipping::Test::Credentials
5
5
  include ActiveShipping::Test::Fixtures
6
6
 
@@ -138,7 +138,7 @@ class RemoteStampsTest < Minitest::Test
138
138
  assert_equal '10017', response.rate.destination.zip
139
139
  assert_equal 'US', response.rate.destination.country_code
140
140
 
141
- assert_instance_of Fixnum, response.rate.total_price
141
+ assert_kind_of Integer, response.rate.total_price
142
142
  assert_instance_of String, response.stamps_tx_id
143
143
 
144
144
  assert_nil response.label_url
@@ -169,7 +169,7 @@ class RemoteStampsTest < Minitest::Test
169
169
  assert_equal 'K1P 1J1', response.rate.destination.zip
170
170
  assert_equal 'CA', response.rate.destination.country_code
171
171
 
172
- assert_instance_of Fixnum, response.rate.total_price
172
+ assert_kind_of Integer, response.rate.total_price
173
173
  assert_instance_of String, response.stamps_tx_id
174
174
  assert_instance_of String, response.label_url
175
175
 
@@ -299,8 +299,8 @@ class RemoteStampsTest < Minitest::Test
299
299
  rate = response.rates.first
300
300
  assert_equal 'Stamps', rate.carrier
301
301
  assert_equal 'USD', rate.currency
302
- assert_instance_of Fixnum, rate.total_price
303
- assert_instance_of Fixnum, rate.price
302
+ assert_kind_of Integer, rate.total_price
303
+ assert_kind_of Integer, rate.price
304
304
  assert_instance_of String, rate.service_name
305
305
  assert_instance_of String, rate.service_code
306
306
  assert_instance_of Array, rate.package_rates
@@ -328,8 +328,8 @@ class RemoteStampsTest < Minitest::Test
328
328
  rate = response.rates.first
329
329
  assert_equal 'Stamps', rate.carrier
330
330
  assert_equal 'USD', rate.currency
331
- assert_instance_of Fixnum, rate.total_price
332
- assert_instance_of Fixnum, rate.price
331
+ assert_kind_of Integer, rate.total_price
332
+ assert_kind_of Integer, rate.price
333
333
  assert_instance_of String, rate.service_name
334
334
  assert_instance_of String, rate.service_code
335
335
  assert_instance_of Array, rate.package_rates