peddler 2.1.0 → 2.4.2

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of peddler might be problematic. Click here for more details.

Files changed (97) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +43 -41
  3. data/lib/mws.rb +2 -1
  4. data/lib/mws/easy_ship.rb +3 -0
  5. data/lib/mws/easy_ship/client.rb +93 -0
  6. data/lib/mws/fulfillment_inbound_shipment/client.rb +2 -2
  7. data/lib/mws/fulfillment_outbound_shipment/client.rb +1 -1
  8. data/lib/mws/orders/client.rb +7 -9
  9. data/lib/mws/reports/client.rb +9 -0
  10. data/lib/mws/shipment_invoicing.rb +3 -0
  11. data/lib/mws/shipment_invoicing/client.rb +74 -0
  12. data/lib/peddler/client.rb +18 -15
  13. data/lib/peddler/errors/builder.rb +7 -2
  14. data/lib/peddler/errors/class_generator.rb +7 -2
  15. data/lib/peddler/errors/error.rb +6 -2
  16. data/lib/peddler/errors/parser.rb +1 -1
  17. data/lib/peddler/flat_file_parser.rb +6 -4
  18. data/lib/peddler/headers.rb +53 -1
  19. data/lib/peddler/marketplace.rb +24 -22
  20. data/lib/peddler/operation.rb +17 -11
  21. data/lib/peddler/parser.rb +1 -1
  22. data/lib/peddler/structured_list.rb +1 -1
  23. data/lib/peddler/vcr_matcher.rb +7 -7
  24. data/lib/peddler/version.rb +1 -1
  25. data/lib/peddler/xml_parser.rb +1 -1
  26. data/lib/peddler/xml_response_parser.rb +3 -2
  27. metadata +15 -150
  28. data/lib/mws/off_amazon_payments/client.rb +0 -362
  29. data/lib/mws/reports/parser.rb +0 -35
  30. data/test/credentials.rb +0 -23
  31. data/test/helper.rb +0 -15
  32. data/test/integration/test_errors.rb +0 -25
  33. data/test/integration/test_feeds.rb +0 -37
  34. data/test/integration/test_fulfillment_inbound_shipment.rb +0 -35
  35. data/test/integration/test_fulfillment_inventory.rb +0 -20
  36. data/test/integration/test_fulfillment_outbound_shipment.rb +0 -13
  37. data/test/integration/test_merchant_fulfillment.rb +0 -69
  38. data/test/integration/test_multibyte_queries.rb +0 -17
  39. data/test/integration/test_mws_headers.rb +0 -16
  40. data/test/integration/test_off_amazon_payments.rb +0 -13
  41. data/test/integration/test_orders.rb +0 -30
  42. data/test/integration/test_products.rb +0 -97
  43. data/test/integration/test_recommendations.rb +0 -20
  44. data/test/integration/test_reports.rb +0 -51
  45. data/test/integration/test_sellers.rb +0 -13
  46. data/test/integration/test_subscriptions.rb +0 -27
  47. data/test/integration_helper.rb +0 -53
  48. data/test/mws.yml +0 -36
  49. data/test/mws.yml.example +0 -32
  50. data/test/null_client.rb +0 -25
  51. data/test/recorder.rb +0 -39
  52. data/test/unit/mws/test_feeds_client.rb +0 -103
  53. data/test/unit/mws/test_finances_client.rb +0 -74
  54. data/test/unit/mws/test_fulfillment_inbound_shipment_client.rb +0 -426
  55. data/test/unit/mws/test_fulfillment_inventory_client.rb +0 -48
  56. data/test/unit/mws/test_fulfillment_outbound_shipment_client.rb +0 -202
  57. data/test/unit/mws/test_merchant_fulfillment_client.rb +0 -109
  58. data/test/unit/mws/test_off_amazon_payments_client.rb +0 -286
  59. data/test/unit/mws/test_orders_client.rb +0 -111
  60. data/test/unit/mws/test_products_client.rb +0 -248
  61. data/test/unit/mws/test_recommendations_client.rb +0 -62
  62. data/test/unit/mws/test_reports_client.rb +0 -209
  63. data/test/unit/mws/test_sellers_client.rb +0 -47
  64. data/test/unit/mws/test_subscriptions_client.rb +0 -182
  65. data/test/unit/peddler/errors/test_builder.rb +0 -65
  66. data/test/unit/peddler/errors/test_class_generator.rb +0 -18
  67. data/test/unit/peddler/errors/test_error.rb +0 -33
  68. data/test/unit/peddler/errors/test_parser.rb +0 -44
  69. data/test/unit/peddler/test_client.rb +0 -203
  70. data/test/unit/peddler/test_flat_file_parser.rb +0 -102
  71. data/test/unit/peddler/test_headers.rb +0 -55
  72. data/test/unit/peddler/test_marketplace.rb +0 -47
  73. data/test/unit/peddler/test_operation.rb +0 -87
  74. data/test/unit/peddler/test_parser.rb +0 -36
  75. data/test/unit/peddler/test_structured_list.rb +0 -39
  76. data/test/unit/peddler/test_vcr_matcher.rb +0 -55
  77. data/test/unit/peddler/test_xml_parser.rb +0 -37
  78. data/test/unit/peddler/test_xml_response_parser.rb +0 -39
  79. data/test/unit/test_mws.rb +0 -11
  80. data/test/vcr_cassettes/CartInformation.yml +0 -433
  81. data/test/vcr_cassettes/CustomerInformation.yml +0 -433
  82. data/test/vcr_cassettes/Errors.yml +0 -885
  83. data/test/vcr_cassettes/Feeds.yml +0 -9957
  84. data/test/vcr_cassettes/FulfillmentInboundShipment.yml +0 -6166
  85. data/test/vcr_cassettes/FulfillmentInventory.yml +0 -850
  86. data/test/vcr_cassettes/FulfillmentOutboundShipment.yml +0 -433
  87. data/test/vcr_cassettes/MWSHeaders.yml +0 -2964
  88. data/test/vcr_cassettes/MerchantFulfillment.yml +0 -753
  89. data/test/vcr_cassettes/MultibyteQueries.yml +0 -437
  90. data/test/vcr_cassettes/OffAmazonPayments.yml +0 -433
  91. data/test/vcr_cassettes/Orders.yml +0 -4740
  92. data/test/vcr_cassettes/PeddlerVCRMatcher.yml +0 -41
  93. data/test/vcr_cassettes/Products.yml +0 -7139
  94. data/test/vcr_cassettes/Recommendations.yml +0 -3145
  95. data/test/vcr_cassettes/Reports.yml +0 -5549
  96. data/test/vcr_cassettes/Sellers.yml +0 -433
  97. data/test/vcr_cassettes/Subscriptions.yml +0 -1529
@@ -1,426 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'helper'
4
- require 'mws/fulfillment_inbound_shipment/client'
5
-
6
- class TestMWSFulfillmentInboundShipmentClient < MiniTest::Test
7
- def setup
8
- @client = MWS::FulfillmentInboundShipment::Client.new
9
- end
10
-
11
- def test_getting_inbound_guidance_for_sku
12
- operation = {
13
- 'Action' => 'GetInboundGuidanceForSKU',
14
- 'MarketplaceId' => 'ATVPDKIKX0DER',
15
- 'SellerSKUList.Id.1' => 'us001'
16
- }
17
-
18
- @client.stub(:run, nil) do
19
- @client.get_inbound_guidance_for_sku('ATVPDKIKX0DER', 'us001')
20
- end
21
-
22
- assert_equal operation, @client.operation
23
- end
24
-
25
- def test_getting_inbound_guidance_for_asin
26
- operation = {
27
- 'Action' => 'GetInboundGuidanceForASIN',
28
- 'MarketplaceId' => 'ATVPDKIKX0DER',
29
- 'ASINList.Id.1' => 'B00005N5PF'
30
- }
31
-
32
- @client.stub(:run, nil) do
33
- @client.get_inbound_guidance_for_asin('ATVPDKIKX0DER', 'B00005N5PF')
34
- end
35
-
36
- assert_equal operation, @client.operation
37
- end
38
-
39
- def test_creating_inbound_shipment_plan
40
- operation = {
41
- 'Action' => 'CreateInboundShipmentPlan',
42
- 'LabelPrepPreference' => 'SELLER_LABEL',
43
- 'ShipFromAddress.Name' => 'test1',
44
- 'ShipFromAddress.City' => 'Seattle',
45
- 'ShipFromAddress.CountryCode' => 'US',
46
- 'InboundShipmentPlanRequestItems.member.1.SellerSKU' => 'SKU00001',
47
- 'InboundShipmentPlanRequestItems.member.1.Quantity' => '1',
48
- 'InboundShipmentPlanRequestItems.member.1.PrepDetailsList.member.1.PrepInstruction' => 'Taping',
49
- 'InboundShipmentPlanRequestItems.member.1.PrepDetailsList.member.1.PrepOwner' => 'AMAZON',
50
- 'InboundShipmentPlanRequestItems.member.1.PrepDetailsList.member.2.PrepInstruction' => 'BubbleWrapping',
51
- 'InboundShipmentPlanRequestItems.member.1.PrepDetailsList.member.2.PrepOwner' => 'AMAZON',
52
- 'InboundShipmentPlanRequestItems.member.2.SellerSKU' => 'SKU00002',
53
- 'InboundShipmentPlanRequestItems.member.2.Quantity' => '1',
54
- 'InboundShipmentPlanRequestItems.member.2.PrepDetailsList.member.1.PrepInstruction' => 'Taping',
55
- 'InboundShipmentPlanRequestItems.member.2.PrepDetailsList.member.1.PrepOwner' => 'AMAZON',
56
- 'InboundShipmentPlanRequestItems.member.2.PrepDetailsList.member.2.PrepInstruction' => 'BubbleWrapping',
57
- 'InboundShipmentPlanRequestItems.member.2.PrepDetailsList.member.2.PrepOwner' => 'AMAZON'
58
- }
59
-
60
- @client.stub(:run, nil) do
61
- address = {
62
- 'Name' => 'test1',
63
- 'City' => 'Seattle',
64
- 'CountryCode' => 'US'
65
- }
66
- request_items = [
67
- {
68
- 'SellerSKU' => 'SKU00001',
69
- 'Quantity' => '1',
70
- 'PrepDetailsList' => [
71
- { 'PrepInstruction' => 'Taping', 'PrepOwner' => 'AMAZON' },
72
- { 'PrepInstruction' => 'BubbleWrapping', 'PrepOwner' => 'AMAZON' }
73
- ]
74
- }, {
75
- 'SellerSKU' => 'SKU00002',
76
- 'Quantity' => '1',
77
- 'PrepDetailsList' => [
78
- { 'PrepInstruction' => 'Taping', 'PrepOwner' => 'AMAZON' },
79
- { 'PrepInstruction' => 'BubbleWrapping', 'PrepOwner' => 'AMAZON' }
80
- ]
81
- }
82
- ]
83
- @client.create_inbound_shipment_plan(address, request_items,
84
- label_prep_preference: 'SELLER_LABEL')
85
- end
86
-
87
- assert_equal operation, @client.operation
88
- end
89
-
90
- def test_creating_inbound_shipment
91
- operation = {
92
- 'Action' => 'CreateInboundShipment',
93
- 'ShipmentId' => '1',
94
- 'InboundShipmentHeader.Foo' => '1',
95
- 'InboundShipmentItems.member.1.Bar' => '2'
96
- }
97
-
98
- @client.stub(:run, nil) do
99
- @client.create_inbound_shipment('1', { 'Foo' => '1' }, [{ 'Bar' => '2' }])
100
- end
101
-
102
- assert_equal operation, @client.operation
103
- end
104
-
105
- def test_updating_inbound_shipment
106
- operation = {
107
- 'Action' => 'UpdateInboundShipment',
108
- 'ShipmentId' => '1',
109
- 'InboundShipmentHeader.Foo' => '1',
110
- 'InboundShipmentItems.member.1.Bar' => '2'
111
- }
112
-
113
- @client.stub(:run, nil) do
114
- @client.update_inbound_shipment('1', { 'Foo' => '1' }, [{ 'Bar' => '2' }])
115
- end
116
-
117
- assert_equal operation, @client.operation
118
- end
119
-
120
- def test_getting_preorder_info
121
- operation = {
122
- 'Action' => 'GetPreorderInfo',
123
- 'ShipmentId' => '1'
124
- }
125
-
126
- @client.stub(:run, nil) do
127
- @client.get_preorder_info('1')
128
- end
129
-
130
- assert_equal operation, @client.operation
131
- end
132
-
133
- def test_confirming_preorder
134
- operation = {
135
- 'Action' => 'ConfirmPreorder',
136
- 'ShipmentId' => '1',
137
- 'NeedByDate' => '2015-12-27'
138
- }
139
-
140
- @client.stub(:run, nil) do
141
- @client.confirm_preorder('1', Date.new(2015, 12, 27))
142
- end
143
-
144
- assert_equal operation, @client.operation
145
- end
146
-
147
- def test_getting_prep_instructions_for_sku
148
- operation = {
149
- 'Action' => 'GetPrepInstructionsForSKU',
150
- 'ShipToCountryCode' => 'US',
151
- 'SellerSKUList.Id.1' => 'ca_001'
152
- }
153
-
154
- @client.stub(:run, nil) do
155
- @client.get_prep_instructions_for_sku('US', 'ca_001')
156
- end
157
-
158
- assert_equal operation, @client.operation
159
- end
160
-
161
- def test_getting_prep_instructions_for_asin
162
- operation = {
163
- 'Action' => 'GetPrepInstructionsForASIN',
164
- 'ShipToCountryCode' => 'US',
165
- 'ASINList.Id.1' => 'B00005N5PF',
166
- 'ASINList.Id.2' => 'B0INVALIDF'
167
- }
168
-
169
- @client.stub(:run, nil) do
170
- @client.get_prep_instructions_for_asin('US', 'B00005N5PF', 'B0INVALIDF')
171
- end
172
-
173
- assert_equal operation, @client.operation
174
- end
175
-
176
- def test_handling_bug_when_getting_prep_instructions_for_asin
177
- first_run = true
178
- callable = lambda {
179
- if first_run
180
- first_run = false
181
- raise Peddler::Errors::Error, "Value null at 'asinList'"
182
- end
183
- }
184
- @client.stub(:run, callable) do
185
- @client.get_prep_instructions_for_asin('US', 'B00005N5PF')
186
- end
187
-
188
- refute @client.operation.key?('ASINList.Id.1')
189
- assert @client.operation.key?('AsinList.Id.1')
190
- end
191
-
192
- def test_putting_transport_content_with_package_list
193
- transport_details = {
194
- parcel_data: {
195
- package_list: [
196
- {
197
- tracking_id: '123'
198
- }
199
- ]
200
- }
201
- }
202
-
203
- operation = {
204
- 'Action' => 'PutTransportContent',
205
- 'ShipmentId' => '1',
206
- 'IsPartnered' => true,
207
- 'ShipmentType' => 'Foo',
208
- 'TransportDetails.ParcelData.PackageList.member.1.TrackingId' => '123'
209
- }
210
-
211
- @client.stub(:run, nil) do
212
- @client.put_transport_content('1', true, 'Foo', transport_details)
213
- end
214
-
215
- assert_equal operation, @client.operation
216
- end
217
-
218
- def test_putting_transport_content_with_pallet_list
219
- transport_details = {
220
- parcel_data: {
221
- pallet_list: [
222
- {
223
- tracking_id: '123'
224
- }
225
- ]
226
- }
227
- }
228
-
229
- operation = {
230
- 'Action' => 'PutTransportContent',
231
- 'ShipmentId' => '1',
232
- 'IsPartnered' => true,
233
- 'ShipmentType' => 'Foo',
234
- 'TransportDetails.ParcelData.PalletList.member.1.TrackingId' => '123'
235
- }
236
-
237
- @client.stub(:run, nil) do
238
- @client.put_transport_content('1', true, 'Foo', transport_details)
239
- end
240
-
241
- assert_equal operation, @client.operation
242
- end
243
-
244
- def test_estimating_transport_request
245
- operation = {
246
- 'Action' => 'EstimateTransportRequest',
247
- 'ShipmentId' => '1'
248
- }
249
-
250
- @client.stub(:run, nil) do
251
- @client.estimate_transport_request('1')
252
- end
253
-
254
- assert_equal operation, @client.operation
255
- end
256
-
257
- def test_getting_transport_request
258
- operation = {
259
- 'Action' => 'GetTransportContent',
260
- 'ShipmentId' => '1'
261
- }
262
-
263
- @client.stub(:run, nil) do
264
- @client.get_transport_content('1')
265
- end
266
-
267
- assert_equal operation, @client.operation
268
- end
269
-
270
- def test_confirming_transport_request
271
- operation = {
272
- 'Action' => 'ConfirmTransportRequest',
273
- 'ShipmentId' => '1'
274
- }
275
-
276
- @client.stub(:run, nil) do
277
- @client.confirm_transport_request('1')
278
- end
279
-
280
- assert_equal operation, @client.operation
281
- end
282
-
283
- def test_voiding_transport_request
284
- operation = {
285
- 'Action' => 'VoidTransportRequest',
286
- 'ShipmentId' => '1'
287
- }
288
-
289
- @client.stub(:run, nil) do
290
- @client.void_transport_request('1')
291
- end
292
-
293
- assert_equal operation, @client.operation
294
- end
295
-
296
- def test_getting_package_labels
297
- operation = {
298
- 'Action' => 'GetPackageLabels',
299
- 'ShipmentId' => '1',
300
- 'PageType' => '2'
301
- }
302
-
303
- @client.stub(:run, nil) do
304
- @client.get_package_labels('1', '2')
305
- end
306
-
307
- assert_equal operation, @client.operation
308
- end
309
-
310
- def test_getting_unique_package_labels
311
- operation = {
312
- 'Action' => 'GetUniquePackageLabels',
313
- 'ShipmentId' => 'FBAQFGQZ',
314
- 'PageType' => 'PackageLabel_Letter_6',
315
- 'PackageLabelsToPrint.member.1' => 'CartonA',
316
- 'PackageLabelsToPrint.member.2' => 'CartonB',
317
- 'PackageLabelsToPrint.member.3' => 'CartonC',
318
- 'PackageLabelsToPrint.member.4' => 'CartonD'
319
- }
320
-
321
- @client.stub(:run, nil) do
322
- @client.get_unique_package_labels(
323
- 'FBAQFGQZ',
324
- 'PackageLabel_Letter_6',
325
- %w[CartonA CartonB CartonC CartonD]
326
- )
327
- end
328
-
329
- assert_equal operation, @client.operation
330
- end
331
-
332
- def test_getting_pallet_labels
333
- operation = {
334
- 'Action' => 'GetPalletLabels',
335
- 'ShipmentId' => 'FBAQFGQZ',
336
- 'PageType' => 'PackageLabel_Letter_4',
337
- 'NumberOfPallets' => 4
338
- }
339
-
340
- @client.stub(:run, nil) do
341
- @client.get_pallet_labels('FBAQFGQZ', 'PackageLabel_Letter_4', 4)
342
- end
343
-
344
- assert_equal operation, @client.operation
345
- end
346
-
347
- def test_getting_bill_of_lading
348
- operation = {
349
- 'Action' => 'GetBillOfLading',
350
- 'ShipmentId' => '1'
351
- }
352
-
353
- @client.stub(:run, nil) do
354
- @client.get_bill_of_lading('1')
355
- end
356
-
357
- assert_equal operation, @client.operation
358
- end
359
-
360
- def test_listing_inbound_shipments
361
- operation = {
362
- 'Action' => 'ListInboundShipments',
363
- 'ShipmentStatusList.member.1' => 'Foo',
364
- 'ShipmentIdList.member.1' => 'Bar'
365
- }
366
-
367
- @client.stub(:run, nil) do
368
- @client.list_inbound_shipments(
369
- shipment_status_list: ['Foo'],
370
- shipment_id_list: ['Bar']
371
- )
372
- end
373
-
374
- assert_equal operation, @client.operation
375
- end
376
-
377
- def test_listing_inbound_shipments_by_next_token
378
- operation = {
379
- 'Action' => 'ListInboundShipmentsByNextToken',
380
- 'NextToken' => '1'
381
- }
382
-
383
- @client.stub(:run, nil) do
384
- @client.list_inbound_shipments_by_next_token('1')
385
- end
386
-
387
- assert_equal operation, @client.operation
388
- end
389
-
390
- def test_listing_inbound_shipment_items
391
- operation = {
392
- 'Action' => 'ListInboundShipmentItems'
393
- }
394
-
395
- @client.stub(:run, nil) do
396
- @client.list_inbound_shipment_items
397
- end
398
-
399
- assert_equal operation, @client.operation
400
- end
401
-
402
- def test_listing_inbound_shipment_items_by_next_token
403
- operation = {
404
- 'Action' => 'ListInboundShipmentItemsByNextToken',
405
- 'NextToken' => '1'
406
- }
407
-
408
- @client.stub(:run, nil) do
409
- @client.list_inbound_shipment_items_by_next_token('1')
410
- end
411
-
412
- assert_equal operation, @client.operation
413
- end
414
-
415
- def test_getting_service_status
416
- operation = {
417
- 'Action' => 'GetServiceStatus'
418
- }
419
-
420
- @client.stub(:run, nil) do
421
- @client.get_service_status
422
- end
423
-
424
- assert_equal operation, @client.operation
425
- end
426
- end
@@ -1,48 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'helper'
4
- require 'mws/fulfillment_inventory/client'
5
-
6
- class TestMWSFulfillmentInventoryClient < MiniTest::Test
7
- def setup
8
- @client = MWS::FulfillmentInventory::Client.new
9
- end
10
-
11
- def test_listing_inventory_supply
12
- operation = {
13
- 'Action' => 'ListInventorySupply',
14
- 'SellerSkus.member.1' => '1'
15
- }
16
-
17
- @client.stub(:run, nil) do
18
- @client.list_inventory_supply(seller_skus: '1')
19
- end
20
-
21
- assert_equal operation, @client.operation
22
- end
23
-
24
- def test_listing_inventory_supply_by_next_token
25
- operation = {
26
- 'Action' => 'ListInventorySupplyByNextToken',
27
- 'NextToken' => '1'
28
- }
29
-
30
- @client.stub(:run, nil) do
31
- @client.list_inventory_supply_by_next_token('1')
32
- end
33
-
34
- assert_equal operation, @client.operation
35
- end
36
-
37
- def test_getting_service_status
38
- operation = {
39
- 'Action' => 'GetServiceStatus'
40
- }
41
-
42
- @client.stub(:run, nil) do
43
- @client.get_service_status
44
- end
45
-
46
- assert_equal operation, @client.operation
47
- end
48
- end