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,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