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,7 +1,7 @@
1
1
  require 'test_helper'
2
2
 
3
- class PackageTest < Minitest::Test
4
- def setup
3
+ class PackageTest < ActiveSupport::TestCase
4
+ setup do
5
5
  @weight = 100
6
6
  @dimensions = [5, 6, 7]
7
7
  @value = 1299
@@ -30,15 +30,16 @@ class PackageTest < Minitest::Test
30
30
  @package = Package.new(@weight, @dimensions, @options)
31
31
  @imperial_package = Package.new(@weight, @dimensions, @options.merge(units: :imperial, dim_units: :imperial, weight_units: :imperial))
32
32
 
33
- @mass = ::Quantified::Mass.new(@weight, :grams)
33
+ @mass = Measured::Weight.new(@weight, :grams)
34
34
  end
35
35
 
36
- def test_package_from_mass
37
- package = Package.new(Quantified::Mass.new(10, :pounds), [])
38
- assert_equal 10, package.weight
36
+ test "#initialize package from mass" do
37
+ ten_pounds = Measured::Weight.new(10, :pounds)
38
+ package = Package.new(ten_pounds, [])
39
+ assert_equal ten_pounds, package.weight
39
40
  end
40
41
 
41
- def test_initialize_defaults
42
+ test "#initialize with defaults" do
42
43
  assert_equal @value, @package.value
43
44
  assert_equal @currency, @package.currency
44
45
  assert_equal @cylinder, @package.cylinder?
@@ -48,61 +49,61 @@ class PackageTest < Minitest::Test
48
49
  assert_equal @gift, @package.gift?
49
50
  end
50
51
 
51
- def test_currency_cents
52
+ test "#initialize with currency cents" do
52
53
  @package = Package.new(@weight, @dimensions, value: money)
53
54
  assert_equal @currency, @package.currency
54
55
  assert_equal @value, @package.value
55
56
  end
56
57
 
57
- def test_initialize_sorted_dimensions
58
+ test "#initialize sorts the passed in dimensions" do
58
59
  @package = Package.new(@weight, [9, 8, 7], @options)
59
60
 
60
61
  assert_equal [7, 8, 9], @package.centimetres
61
62
  end
62
63
 
63
- def test_initialize_blank_dimensions
64
+ test "#initialize sets default dimensions if blank" do
64
65
  @package = Package.new(@weight, [], @options)
65
66
 
66
67
  assert_equal [0, 0, 0], @package.centimetres
67
68
  end
68
69
 
69
- def test_initialize_increases_dimension_size_to_three
70
+ test "#initialize increases dimension size to three elements in the array and pads" do
70
71
  @package = Package.new(@weight, [2], @options)
71
72
 
72
73
  assert_equal [2, 2, 2], @package.centimetres
73
74
  end
74
75
 
75
- def test_initialize_default_units
76
+ test "#initialize default units" do
76
77
  assert_equal @dimensions, @package.centimetres
77
78
  assert_equal @weight, @package.grams
78
79
  end
79
80
 
80
- def test_initialize_units
81
+ test "#initialize units" do
81
82
  assert_equal @dimensions, @imperial_package.inches
82
83
  end
83
84
 
84
- def test_initialize_weight_units
85
+ test "#initialize weight_units" do
85
86
  @package = Package.new(@weight, @dimensions, @options.merge(weight_units: :imperial))
86
87
 
87
88
  assert_equal @weight, @package.ounces
88
89
  end
89
90
 
90
- def test_unpackaged
91
+ test "#unpackaged?" do
91
92
  assert_predicate Package.new(@weight, @dimensions, unpackaged: true), :unpackaged?
92
93
  refute_predicate Package.new(@weight, @dimensions, unpackaged: false), :unpackaged?
93
94
  end
94
95
 
95
- def test_oversized
96
+ test "#oversized?" do
96
97
  assert_predicate Package.new(@weight, @dimensions, oversized: true), :oversized?
97
98
  refute_predicate Package.new(@weight, @dimensions, oversized: false), :oversized?
98
99
  end
99
100
 
100
- def test_gift
101
+ test "#gift?" do
101
102
  assert_predicate Package.new(@weight, @dimensions, gift: true), :gift?
102
103
  refute_predicate Package.new(@weight, @dimensions, gift: false), :gift?
103
104
  end
104
105
 
105
- def test_cylinder_tube
106
+ test "#cylinder? and #tube? check both values" do
106
107
  @package = Package.new(@weight, @dimensions, cylinder: false, tube: false)
107
108
  refute_predicate @package, :cylinder?
108
109
  refute_predicate @package, :tube?
@@ -120,28 +121,28 @@ class PackageTest < Minitest::Test
120
121
  assert_predicate @package, :tube?
121
122
  end
122
123
 
123
- def test_inches_number_index
124
+ test "#inches performs lookup with a numerical index" do
124
125
  assert_equal @dimensions[0], @imperial_package.inches(0)
125
126
  assert_equal @dimensions[1], @imperial_package.inches(1)
126
127
  assert_equal @dimensions[2], @imperial_package.inches(2)
127
128
  assert_nil @imperial_package.inches(3)
128
129
  end
129
130
 
130
- def test_inches_x
131
+ test "#inches for dimension x" do
131
132
  assert_equal @dimensions[2], @imperial_package.inches(:x)
132
133
  assert_equal @dimensions[2], @imperial_package.inches(:max)
133
134
  assert_equal @dimensions[2], @imperial_package.inches(:length)
134
135
  assert_equal @dimensions[2], @imperial_package.inches(:long)
135
136
  end
136
137
 
137
- def test_inches_y
138
+ test "#inches for dimension y" do
138
139
  assert_equal @dimensions[1], @imperial_package.inches(:y)
139
140
  assert_equal @dimensions[1], @imperial_package.inches(:mid)
140
141
  assert_equal @dimensions[1], @imperial_package.inches(:width)
141
142
  assert_equal @dimensions[1], @imperial_package.inches(:wide)
142
143
  end
143
144
 
144
- def test_inches_z
145
+ test "#inches for dimension z" do
145
146
  assert_equal @dimensions[0], @imperial_package.inches(:z)
146
147
  assert_equal @dimensions[0], @imperial_package.inches(:min)
147
148
  assert_equal @dimensions[0], @imperial_package.inches(:height)
@@ -150,7 +151,7 @@ class PackageTest < Minitest::Test
150
151
  assert_equal @dimensions[0], @imperial_package.inches(:deep)
151
152
  end
152
153
 
153
- def test_inches_girth_cylinder
154
+ test "#inches for girth of a cylinder" do
154
155
  @imperial_package = Package.new(@weight, @dimensions, @options.merge(cylinder: true, units: :imperial, dim_units: :imperial))
155
156
 
156
157
  assert_predicate @imperial_package, :cylinder?
@@ -160,60 +161,60 @@ class PackageTest < Minitest::Test
160
161
 
161
162
  end
162
163
 
163
- def test_inches_girth
164
+ test "#inches for girth of a non cylinder" do
164
165
  refute_predicate @imperial_package, :cylinder?
165
166
  assert_in_delta 22, @imperial_package.inches(:girth), 1
166
167
  assert_in_delta 22, @imperial_package.inches(:around), 1
167
168
  assert_in_delta 22, @imperial_package.inches(:circumference), 1
168
169
  end
169
170
 
170
- def test_inches_volume_cylinder
171
+ test "#inches for the volume of a cylinder" do
171
172
  @imperial_package = Package.new(@weight, @dimensions, @options.merge(cylinder: true, units: :imperial, dim_units: :imperial))
172
173
 
173
174
  assert_predicate @imperial_package, :cylinder?
174
175
  assert_in_delta 522.4, @imperial_package.inches(:volume), 1
175
176
  end
176
177
 
177
- def test_inches_volume
178
+ test "#inches for volume" do
178
179
  refute_predicate @imperial_package, :cylinder?
179
180
  assert_equal 210, @imperial_package.inches(:volume)
180
181
  end
181
182
 
182
- def test_inches_box_volume
183
+ test "#inches for box_volume" do
183
184
  assert_equal 210, @imperial_package.inches(:box_volume)
184
185
  end
185
186
 
186
- def test_inches_unknown
187
+ test "#inches of an unknown value" do
187
188
  assert_nil @imperial_package.inches(:unknown)
188
189
  end
189
190
 
190
- def test_inches_alias_in
191
+ test "#inches alias to #in" do
191
192
  assert_equal @dimensions, @imperial_package.inches
192
193
  assert_equal @dimensions, @imperial_package.in
193
194
  end
194
195
 
195
- def test_centimetres_number_index
196
+ test "#centimetres performs lookup with a numerical index" do
196
197
  assert_equal @dimensions[0], @package.centimetres(0)
197
198
  assert_equal @dimensions[1], @package.centimetres(1)
198
199
  assert_equal @dimensions[2], @package.centimetres(2)
199
200
  assert_nil @package.centimetres(3)
200
201
  end
201
202
 
202
- def test_centimetres_x
203
+ test "#centimetres for dimension x" do
203
204
  assert_equal @dimensions[2], @package.centimetres(:x)
204
205
  assert_equal @dimensions[2], @package.centimetres(:max)
205
206
  assert_equal @dimensions[2], @package.centimetres(:length)
206
207
  assert_equal @dimensions[2], @package.centimetres(:long)
207
208
  end
208
209
 
209
- def test_centimetres_y
210
+ test "#centimetres for dimension y" do
210
211
  assert_equal @dimensions[1], @package.centimetres(:y)
211
212
  assert_equal @dimensions[1], @package.centimetres(:mid)
212
213
  assert_equal @dimensions[1], @package.centimetres(:width)
213
214
  assert_equal @dimensions[1], @package.centimetres(:wide)
214
215
  end
215
216
 
216
- def test_centimetres_z
217
+ test "#centimetres for dimension z" do
217
218
  assert_equal @dimensions[0], @package.centimetres(:z)
218
219
  assert_equal @dimensions[0], @package.centimetres(:min)
219
220
  assert_equal @dimensions[0], @package.centimetres(:height)
@@ -222,7 +223,7 @@ class PackageTest < Minitest::Test
222
223
  assert_equal @dimensions[0], @package.centimetres(:deep)
223
224
  end
224
225
 
225
- def test_centimetres_girth_cylinder
226
+ test "#centimetres for girth of a cylinder" do
226
227
  @package = Package.new(@weight, @dimensions, @options.merge(cylinder: true, units: :metric, dim_units: :metric))
227
228
 
228
229
  assert_predicate @package, :cylinder?
@@ -232,158 +233,158 @@ class PackageTest < Minitest::Test
232
233
 
233
234
  end
234
235
 
235
- def test_centimetres_girth
236
+ test "#centimetres for girth of a non-cylinder" do
236
237
  refute_predicate @package, :cylinder?
237
238
  assert_in_delta 22, @package.centimetres(:girth), 1
238
239
  assert_in_delta 22, @package.centimetres(:around), 1
239
240
  assert_in_delta 22, @package.centimetres(:circumference), 1
240
241
  end
241
242
 
242
- def test_centimetres_volume_cylinder
243
+ test "#centimetres for the volume of a cylinder" do
243
244
  @package = Package.new(@weight, @dimensions, @options.merge(cylinder: true, units: :metric, dim_units: :metric))
244
245
 
245
246
  assert_predicate @package, :cylinder?
246
247
  assert_in_delta 522.4, @package.centimetres(:volume), 1
247
248
  end
248
249
 
249
- def test_centimetres_volume
250
+ test "#centimetres for volume" do
250
251
  refute_predicate @package, :cylinder?
251
252
  assert_equal 210, @package.centimetres(:volume)
252
253
  end
253
254
 
254
- def test_centimetres_box_volume
255
+ test "#centimetres for box_volume" do
255
256
  assert_equal 210, @package.centimetres(:box_volume)
256
257
  end
257
258
 
258
- def test_centimetres_unknown
259
+ test "#centimetres of an unknown value" do
259
260
  assert_nil @package.centimetres(:unknown)
260
261
  end
261
262
 
262
- def test_centimetres_alias_cm
263
+ test "#centimetres alias to #cm" do
263
264
  assert_equal @dimensions, @package.centimetres
264
265
  assert_equal @dimensions, @package.cm
265
266
  end
266
267
 
267
- def test_weight
268
+ test "#weight" do
268
269
  assert_equal @mass, @package.weight
269
- assert_instance_of ::Quantified::Mass, @package.weight
270
+ assert_instance_of Measured::Weight, @package.weight
270
271
  end
271
272
 
272
- def test_weight_actual
273
+ test "#weight for actual" do
273
274
  assert_equal @mass, @package.weight(type: :actual)
274
- assert_instance_of ::Quantified::Mass, @package.weight(type: :actual)
275
+ assert_instance_of Measured::Weight, @package.weight(type: :actual)
275
276
  end
276
277
 
277
- def test_weight_volumetric
278
- assert_equal ::Quantified::Mass.new(35, :grams), @package.weight(type: :volumetric)
278
+ test "#weight volumetric" do
279
+ assert_equal Measured::Weight.new(35, :grams), @package.weight(type: :volumetric)
279
280
  end
280
281
 
281
- def test_weight_dimensional
282
- assert_equal ::Quantified::Mass.new(35, :grams), @package.weight(type: :dimensional)
282
+ test "#weight dimensional" do
283
+ assert_equal Measured::Weight.new(35, :grams), @package.weight(type: :dimensional)
283
284
  end
284
285
 
285
- def test_weight_billable_max_weight_and_volumetric
286
- assert_equal ::Quantified::Mass.new(100, :grams), @package.weight(type: :billable)
286
+ test "#weight billable is the max of weight and volumetric" do
287
+ assert_equal Measured::Weight.new(100, :grams), @package.weight(type: :billable)
287
288
 
288
289
  @package = Package.new(500, [1, 1, 1], @options)
289
- assert_equal ::Quantified::Mass.new(500, :grams), @package.weight(type: :billable)
290
+ assert_equal Measured::Weight.new(500, :grams), @package.weight(type: :billable)
290
291
  end
291
292
 
292
- def test_grams_value
293
+ test "#grams value" do
293
294
  assert_equal 100, @package.grams
294
295
  end
295
296
 
296
- def test_grams_accepts_options_with_type
297
+ test "#grams accepts options with type" do
297
298
  assert_in_delta 35, @package.grams(type: :volumetric), 1
298
299
  end
299
300
 
300
- def test_grams_converts
301
+ test "#grams converts to another unit from another system" do
301
302
  @package = Package.new(@weight, @dimensions, weight_units: :imperial)
302
303
 
303
304
  assert_in_delta 2834.9, @package.grams, 1
304
305
  end
305
306
 
306
- def test_grams_alias_g
307
+ test "#grams alias to #g" do
307
308
  assert_equal @package.grams, @package.g
308
309
  end
309
310
 
310
- def test_ounces_value
311
+ test "#ounces value" do
311
312
  assert_equal 100, @imperial_package.ounces
312
313
  end
313
314
 
314
- def test_ounces_accepts_options_with_type
315
+ test "#ounces accepts options with type" do
315
316
  assert_in_delta 20.2, @imperial_package.ounces(type: :volumetric), 1
316
317
  end
317
318
 
318
- def test_ounces_converts
319
+ test "#ounces converts to another unit from another system" do
319
320
  assert_in_delta 3.5, @package.ounces, 1
320
321
  end
321
322
 
322
- def test_ounces_alias_oz
323
+ test "#ounces alias to #oz" do
323
324
  assert_equal @imperial_package.ounces, @imperial_package.oz
324
325
  end
325
326
 
326
- def test_pounds_value
327
+ test "#pounds value" do
327
328
  assert_equal 6.25, @imperial_package.pounds
328
329
  end
329
330
 
330
- def test_pounds_accepts_options_with_type
331
+ test "#pounds accepts options with type" do
331
332
  assert_in_delta 0.07, @package.pounds(type: :volumetric), 0.01
332
333
  end
333
334
 
334
- def test_pounds_converts
335
+ test "#pounds converts to another unit from another system" do
335
336
  assert_in_delta 0.22, @package.pounds, 0.01
336
337
  end
337
338
 
338
- def test_pounds_alias_lb
339
+ test "#pounds alias to #lb" do
339
340
  assert_equal @package.pounds, @package.lb
340
341
  end
341
342
 
342
- def test_pounds_alias_lbs
343
+ test "#pounds alias to #lbs" do
343
344
  assert_equal @package.pounds, @package.lbs
344
345
  end
345
346
 
346
- def test_kilograms_value
347
+ test "#kilograms value" do
347
348
  assert_equal 0.1, @package.kilograms
348
349
  end
349
350
 
350
- def test_kilograms_accepts_options_with_type
351
+ test "#kilograms accepts options with type" do
351
352
  assert_equal 0.035, @package.kilograms(type: :volumetric)
352
353
  end
353
354
 
354
- def test_kilograms_converts
355
+ test "#kilograms converts to another unit from another system" do
355
356
  assert_in_delta 2.8, @imperial_package.kilograms, 1
356
357
  end
357
358
 
358
- def test_kilograms_alias_kg
359
+ test "#kilograms alias to #kg" do
359
360
  assert_equal 0.1, @package.kg
360
361
  end
361
362
 
362
- def test_kilograms_alias_kgs
363
+ test "#kilograms alias to #kgs" do
363
364
  assert_equal @package.kilograms, @package.kgs
364
365
  end
365
366
 
366
- def test_cents_from_nil
367
+ test ".cents_from nil" do
367
368
  assert_nil Package.cents_from(nil)
368
369
  end
369
370
 
370
- def test_cents_from_cents
371
+ test ".cents_from cents on a money object" do
371
372
  assert_equal @value, Package.cents_from(money)
372
373
  end
373
374
 
374
- def test_cents_from_float
375
+ test ".cents_from float" do
375
376
  assert_equal 120, Package.cents_from(1.2)
376
377
  end
377
378
 
378
- def test_cents_from_string
379
+ test ".cents_from string" do
379
380
  assert_equal 120, Package.cents_from("1.20")
380
381
  end
381
382
 
382
- def test_cents_from_int
383
+ test ".cents_from integer" do
383
384
  assert_equal 12, Package.cents_from(12)
384
385
  end
385
386
 
386
- def test_cents_from_nonsense
387
+ test ".cents_from an unhandled object" do
387
388
  exception = assert_raises NoMethodError do
388
389
  Package.cents_from(Object.new)
389
390
  end
@@ -1,7 +1,7 @@
1
1
  require 'test_helper'
2
2
 
3
- class RateEstimateTest < Minitest::Test
4
- def setup
3
+ class RateEstimateTest < ActiveSupport::TestCase
4
+ setup do
5
5
  @origin = {address1: "61A York St", city: "Ottawa", province: "ON", country: "Canada", postal_code: "K1N 5T2"}
6
6
  @destination = {city: "Beverly Hills", state: "CA", country: "United States", postal_code: "90210"}
7
7
  @line_items = [Package.new(500, [2, 3, 4], description: "a box full of stuff", value: 2500)]
@@ -11,11 +11,7 @@ class RateEstimateTest < Minitest::Test
11
11
  @rate_estimate = RateEstimate.new(@origin, @destination, @carrier, @service_name, @options)
12
12
  end
13
13
 
14
- def test_date_for_nil_string
15
- assert_nil @rate_estimate.send(:date_for, nil)
16
- end
17
-
18
- def test_phone_required
14
+ test "#initialize accepts phone_required option field" do
19
15
  est = RateEstimate.new(@origin, @destination, @carrier, @service_name, @options.merge(phone_required: true))
20
16
  assert_equal true, est.phone_required
21
17
 
@@ -26,44 +22,40 @@ class RateEstimateTest < Minitest::Test
26
22
  assert_equal false, est.phone_required
27
23
  end
28
24
 
29
- def test_accepts_description_field
25
+ test "#initialize accepts description option field" do
30
26
  rate_estimate = RateEstimate.new(@origin, @destination, @carrier, @service_name, @options.merge(description: "It's free!"))
31
27
  assert_equal "It's free!", rate_estimate.description
32
28
  end
33
29
 
34
- def test_date_for_invalid_string_in_ruby_19
35
- assert_nil @rate_estimate.send(:date_for, "Up to 2 weeks") if RUBY_VERSION.include?('1.9')
36
- end
37
-
38
- def test_rate_estimate_converts_noniso_to_iso
30
+ test "#initialize converts noniso currency to iso" do
39
31
  rate_estimate = RateEstimate.new(@origin, @destination, @carrier, @service_name, @options.merge(currency: 'UKL'))
40
32
  assert_equal 'GBP', rate_estimate.currency
41
33
  end
42
34
 
43
- def test_creating_an_estimate_with_an_invalid_currency_raises
35
+ test "#initialize raises if invalid currency code" do
44
36
  assert_raises(ActiveUtils::InvalidCurrencyCodeError) do
45
37
  RateEstimate.new(nil, nil, nil, nil, currency: 'FAKE')
46
38
  end
47
39
  end
48
40
 
49
- def test_estimate_reference_is_set
41
+ test "#initialize accepts estimate_reference option field" do
50
42
  est = RateEstimate.new(@origin, @destination, @carrier, @service_name, @options.merge(estimate_reference: "somefakeref"))
51
43
 
52
44
  assert_equal "somefakeref", est.estimate_reference
53
45
  end
54
46
 
55
- def test_compare_price_is_set
47
+ test "#initialize accepts compare_price option field" do
56
48
  est = RateEstimate.new(@origin, @destination, @carrier, @service_name, @options.merge(compare_price: 10.0))
57
49
  assert_equal 1000, est.compare_price
58
50
  end
59
51
 
60
- def test_delivery_category_is_set
52
+ test "#initialize accepts delivery_category option field" do
61
53
  est = RateEstimate.new(@origin, @destination, @carrier, @service_name, @options.merge(delivery_category: "local_delivery"))
62
54
 
63
55
  assert_equal "local_delivery", est.delivery_category
64
56
  end
65
57
 
66
- def test_charge_items_is_set
58
+ test "#initialize accepts charge_items option field" do
67
59
  charge_items = [
68
60
  {
69
61
  group: "base_charge",
@@ -85,13 +77,17 @@ class RateEstimateTest < Minitest::Test
85
77
  assert_equal charge_items, est.charge_items
86
78
  end
87
79
 
88
- def test_delivery_date_pulls_from_delivery_range
80
+ test "delivery_date is pulled from the later date of the delivery_range" do
89
81
  assert_equal [DateTime.parse("Fri 01 Jul 2016"), DateTime.parse("Sun 03 Jul 2016")], @rate_estimate.delivery_range
90
82
  assert_equal DateTime.parse("Sun 03 Jul 2016"), @rate_estimate.delivery_date
91
83
  end
92
84
 
93
- def test_messages_is_set
85
+ test "#initialize accepts messages option field" do
94
86
  rate = RateEstimate.new(@origin, @destination, @carrier, @service_name, @options.merge(messages: ["warning"]))
95
87
  assert_equal ["warning"], rate.messages
96
88
  end
89
+
90
+ test "#date_for returns nil when given nil string" do
91
+ assert_nil @rate_estimate.send(:date_for, nil)
92
+ end
97
93
  end