mws-orders 0.2.0 → 0.4.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 (37) hide show
  1. checksums.yaml +5 -5
  2. data/README.md +13 -9
  3. data/lib/mws/orders/collection.rb +10 -10
  4. data/lib/mws/orders/document.rb +4 -2
  5. data/lib/mws/orders/entity.rb +13 -10
  6. data/lib/mws/orders/invoice_data.rb +7 -5
  7. data/lib/mws/orders/message.rb +17 -0
  8. data/lib/mws/orders/order.rb +40 -32
  9. data/lib/mws/orders/order_item.rb +33 -27
  10. data/lib/mws/orders/order_items.rb +7 -5
  11. data/lib/mws/orders/orders.rb +7 -5
  12. data/lib/mws/orders/parser.rb +49 -24
  13. data/lib/mws/orders/payment_execution_detail.rb +8 -4
  14. data/lib/mws/orders/payment_execution_detail_item.rb +5 -3
  15. data/lib/mws/orders/service_status.rb +8 -6
  16. data/lib/mws/orders/shipping_address.rb +9 -7
  17. data/lib/mws/orders/tokenable.rb +3 -1
  18. data/lib/mws/orders/version.rb +3 -1
  19. data/test/fixtures/orders.xml +4 -1
  20. data/test/mws/orders/test_entity.rb +44 -42
  21. data/test/mws/orders/test_message.rb +18 -0
  22. data/test/mws/orders/test_order.rb +16 -2
  23. data/test/mws/orders/test_order_item.rb +8 -2
  24. data/test/mws/orders/test_order_items.rb +4 -2
  25. data/test/mws/orders/test_orders.rb +4 -2
  26. data/test/mws/orders/test_parser.rb +3 -1
  27. data/test/mws/orders/test_payment_execution_detail.rb +6 -2
  28. data/test/mws/orders/test_payment_execution_detail_item.rb +5 -2
  29. data/test/mws/orders/test_service_status.rb +6 -2
  30. data/test/mws/orders/test_shipping_address.rb +4 -2
  31. data/test/mws/orders/test_tokenable.rb +8 -6
  32. data/test/test_helper.rb +12 -9
  33. metadata +70 -33
  34. data/lib/mws-orders.rb +0 -2
  35. data/lib/mws/orders/service_status_message.rb +0 -15
  36. data/test/integration/test_mws_orders.rb +0 -27
  37. data/test/mws/orders/test_service_status_message.rb +0 -16
@@ -1,8 +1,10 @@
1
- require "test_helper"
1
+ # frozen_string_literal: true
2
+
3
+ require 'test_helper'
2
4
 
3
5
  class TestOrder < MiniTest::Test
4
6
  def setup
5
- node = load_xml_fixture("orders").at_xpath("//xmlns:Order")
7
+ node = load_fixture('orders').at_xpath('//xmlns:Order')
6
8
  @order = Order.new(node)
7
9
  end
8
10
 
@@ -82,4 +84,16 @@ class TestOrder < MiniTest::Test
82
84
  @order.xpath('ShippingAddress').remove
83
85
  assert_nil @order.shipping_address
84
86
  end
87
+
88
+ def test_latest_shipped_at
89
+ assert_kind_of Time, @order.latest_shipped_at
90
+ end
91
+
92
+ def test_latest_delivered_at
93
+ assert_kind_of Time, @order.latest_delivered_at
94
+ end
95
+
96
+ def test_to_s
97
+ assert_equal @order.amazon_order_id, @order.to_s
98
+ end
85
99
  end
@@ -1,8 +1,10 @@
1
- require "test_helper"
1
+ # frozen_string_literal: true
2
+
3
+ require 'test_helper'
2
4
 
3
5
  class TestOrderItemTest < MiniTest::Test
4
6
  def setup
5
- node = load_xml_fixture("order_items").at_xpath("//xmlns:OrderItem")
7
+ node = load_fixture('order_items').at_xpath('//xmlns:OrderItem')
6
8
  @order_item = OrderItem.new(node)
7
9
  end
8
10
 
@@ -65,4 +67,8 @@ class TestOrderItemTest < MiniTest::Test
65
67
  def test_gift_wrap_level
66
68
  assert_kind_of String, @order_item.gift_wrap_level
67
69
  end
70
+
71
+ def test_to_s
72
+ assert_equal @order_item.order_item_id, @order_item.to_s
73
+ end
68
74
  end
@@ -1,8 +1,10 @@
1
- require "test_helper"
1
+ # frozen_string_literal: true
2
+
3
+ require 'test_helper'
2
4
 
3
5
  class TestOrderItems < MiniTest::Test
4
6
  def setup
5
- node = load_xml_fixture("order_items").xpath("//xmlns:ListOrderItemsResult")
7
+ node = load_fixture('order_items').xpath('//xmlns:ListOrderItemsResult')
6
8
  @order_items = OrderItems.new(node)
7
9
  end
8
10
 
@@ -1,8 +1,10 @@
1
- require "test_helper"
1
+ # frozen_string_literal: true
2
+
3
+ require 'test_helper'
2
4
 
3
5
  class TestOrders < MiniTest::Test
4
6
  def setup
5
- node = load_xml_fixture("orders").xpath("//xmlns:ListOrdersResult")
7
+ node = load_fixture('orders').xpath('//xmlns:ListOrdersResult')
6
8
  @orders = Orders.new(node)
7
9
  end
8
10
 
@@ -1,4 +1,6 @@
1
- require "test_helper"
1
+ # frozen_string_literal: true
2
+
3
+ require 'test_helper'
2
4
 
3
5
  class TestParser < MiniTest::Test
4
6
  def test_overrides_peddlers_parser
@@ -1,8 +1,12 @@
1
- require "test_helper"
1
+ # frozen_string_literal: true
2
+
3
+ require 'test_helper'
2
4
 
3
5
  class TestPaymentExecutionDetail < MiniTest::Test
4
6
  def setup
5
- node = load_xml_fixture("orders").xpath("//xmlns:PaymentExecutionDetail").first
7
+ node =
8
+ load_fixture('orders').xpath('//xmlns:PaymentExecutionDetail')
9
+ .first
6
10
  @ped = PaymentExecutionDetail.new(node)
7
11
  end
8
12
 
@@ -1,8 +1,11 @@
1
- require "test_helper"
1
+ # frozen_string_literal: true
2
+
3
+ require 'test_helper'
2
4
 
3
5
  class TestPaymentExecutionDetailItem < MiniTest::Test
4
6
  def setup
5
- node = load_xml_fixture("orders").xpath("//xmlns:PaymentExecutionDetailItem").first
7
+ node =
8
+ load_fixture('orders').xpath('//xmlns:PaymentExecutionDetailItem').first
6
9
  @pedi = PaymentExecutionDetailItem.new(node)
7
10
  end
8
11
 
@@ -1,8 +1,12 @@
1
- require "test_helper"
1
+ # frozen_string_literal: true
2
+
3
+ require 'test_helper'
2
4
 
3
5
  class TestServiceStatus < MiniTest::Test
4
6
  def setup
5
- node = load_xml_fixture("service_status").xpath("//xmlns:GetServiceStatusResult").first
7
+ node =
8
+ load_fixture('service_status').xpath('//xmlns:GetServiceStatusResult')
9
+ .first
6
10
  @status = ServiceStatus.new(node)
7
11
  end
8
12
 
@@ -1,8 +1,10 @@
1
- require "test_helper"
1
+ # frozen_string_literal: true
2
+
3
+ require 'test_helper'
2
4
 
3
5
  class TestShippingAddress < MiniTest::Test
4
6
  def setup
5
- node = load_xml_fixture("orders").xpath("//xmlns:ShippingAddress").first
7
+ node = load_fixture('orders').xpath('//xmlns:ShippingAddress').first
6
8
  @address = ShippingAddress.new(node)
7
9
  end
8
10
 
@@ -1,19 +1,21 @@
1
- require "test_helper"
1
+ # frozen_string_literal: true
2
+
3
+ require 'test_helper'
2
4
 
3
5
  class TestTokenable < MiniTest::Test
4
6
  def test_parses_next_token
5
- xml = <<-EOF
7
+ xml = <<-XML
6
8
  <NextToken xmlns="example">123</NextToken>
7
- EOF
9
+ XML
8
10
  tokenable = build_tokenable(xml)
9
11
 
10
- assert_equal "123", tokenable.next_token
12
+ assert_equal '123', tokenable.next_token
11
13
  end
12
14
 
13
15
  def test_returns_nil_if_next_token_is_not_present
14
- xml = <<-EOF
16
+ xml = <<-XML
15
17
  <Foo xmlns="example"/>
16
- EOF
18
+ XML
17
19
  tokenable = build_tokenable(xml)
18
20
 
19
21
  refute tokenable.next_token
data/test/test_helper.rb CHANGED
@@ -1,16 +1,19 @@
1
- require "minitest/autorun"
2
- require "pry"
3
- require "mws-orders"
1
+ # frozen_string_literal: true
2
+
3
+ require 'minitest/autorun'
4
+ require 'mws/orders/parser'
4
5
 
5
6
  I18n.enforce_available_locales = false
6
7
 
7
- class MiniTest::Test
8
- include MWS::Orders
8
+ module MiniTest
9
+ class Test
10
+ include MWS::Orders
9
11
 
10
- def load_xml_fixture(type)
11
- file = File.expand_path("../fixtures/#{type}.xml", __FILE__)
12
- body = File.read(file)
12
+ def load_fixture(type)
13
+ file = File.expand_path("../fixtures/#{type}.xml", __FILE__)
14
+ body = File.read(file)
13
15
 
14
- Nokogiri(body)
16
+ Nokogiri(body)
17
+ end
15
18
  end
16
19
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mws-orders
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Hakan Ensari
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-03-20 00:00:00.000000000 Z
11
+ date: 2019-08-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: money
@@ -30,43 +30,85 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '1.5'
33
+ version: '1.0'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '1.5'
40
+ version: '1.0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: peddler
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ">="
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 0.13.0
47
+ version: '2.0'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ">="
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 0.13.0
54
+ version: '2.0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: structure
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: 1.0.0
61
+ version: '2.0'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: 1.0.0
69
- description: A rich Ruby interface to the Amazon MWS Orders API
68
+ version: '2.0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: minitest
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: rake
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: rubocop
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ description:
70
112
  email:
71
113
  - me@hakanensari.com
72
114
  executables: []
@@ -75,11 +117,11 @@ extra_rdoc_files: []
75
117
  files:
76
118
  - LICENSE
77
119
  - README.md
78
- - lib/mws-orders.rb
79
120
  - lib/mws/orders/collection.rb
80
121
  - lib/mws/orders/document.rb
81
122
  - lib/mws/orders/entity.rb
82
123
  - lib/mws/orders/invoice_data.rb
124
+ - lib/mws/orders/message.rb
83
125
  - lib/mws/orders/order.rb
84
126
  - lib/mws/orders/order_item.rb
85
127
  - lib/mws/orders/order_items.rb
@@ -88,15 +130,14 @@ files:
88
130
  - lib/mws/orders/payment_execution_detail.rb
89
131
  - lib/mws/orders/payment_execution_detail_item.rb
90
132
  - lib/mws/orders/service_status.rb
91
- - lib/mws/orders/service_status_message.rb
92
133
  - lib/mws/orders/shipping_address.rb
93
134
  - lib/mws/orders/tokenable.rb
94
135
  - lib/mws/orders/version.rb
95
136
  - test/fixtures/order_items.xml
96
137
  - test/fixtures/orders.xml
97
138
  - test/fixtures/service_status.xml
98
- - test/integration/test_mws_orders.rb
99
139
  - test/mws/orders/test_entity.rb
140
+ - test/mws/orders/test_message.rb
100
141
  - test/mws/orders/test_order.rb
101
142
  - test/mws/orders/test_order_item.rb
102
143
  - test/mws/orders/test_order_items.rb
@@ -105,11 +146,10 @@ files:
105
146
  - test/mws/orders/test_payment_execution_detail.rb
106
147
  - test/mws/orders/test_payment_execution_detail_item.rb
107
148
  - test/mws/orders/test_service_status.rb
108
- - test/mws/orders/test_service_status_message.rb
109
149
  - test/mws/orders/test_shipping_address.rb
110
150
  - test/mws/orders/test_tokenable.rb
111
151
  - test/test_helper.rb
112
- homepage: http://github.com/hakanensari/mws-orders
152
+ homepage: https://github.com/hakanensari/mws-orders
113
153
  licenses:
114
154
  - MIT
115
155
  metadata: {}
@@ -121,34 +161,31 @@ required_ruby_version: !ruby/object:Gem::Requirement
121
161
  requirements:
122
162
  - - ">="
123
163
  - !ruby/object:Gem::Version
124
- version: '1.9'
164
+ version: '2.4'
125
165
  required_rubygems_version: !ruby/object:Gem::Requirement
126
166
  requirements:
127
167
  - - ">="
128
168
  - !ruby/object:Gem::Version
129
169
  version: '0'
130
170
  requirements: []
131
- rubyforge_project:
132
- rubygems_version: 2.4.5
171
+ rubygems_version: 3.0.3
133
172
  signing_key:
134
173
  specification_version: 4
135
- summary: Wraps the Amazon MWS Orders API
174
+ summary: A Ruby wrapper for the Amazon MWS Orders API
136
175
  test_files:
137
- - test/fixtures/order_items.xml
138
- - test/fixtures/orders.xml
139
- - test/fixtures/service_status.xml
140
- - test/integration/test_mws_orders.rb
141
- - test/mws/orders/test_entity.rb
142
- - test/mws/orders/test_order.rb
143
- - test/mws/orders/test_order_item.rb
144
- - test/mws/orders/test_order_items.rb
145
176
  - test/mws/orders/test_orders.rb
146
- - test/mws/orders/test_parser.rb
147
- - test/mws/orders/test_payment_execution_detail.rb
148
- - test/mws/orders/test_payment_execution_detail_item.rb
177
+ - test/mws/orders/test_order.rb
149
178
  - test/mws/orders/test_service_status.rb
150
- - test/mws/orders/test_service_status_message.rb
151
179
  - test/mws/orders/test_shipping_address.rb
152
180
  - test/mws/orders/test_tokenable.rb
181
+ - test/mws/orders/test_message.rb
182
+ - test/mws/orders/test_payment_execution_detail_item.rb
183
+ - test/mws/orders/test_order_items.rb
184
+ - test/mws/orders/test_entity.rb
185
+ - test/mws/orders/test_payment_execution_detail.rb
186
+ - test/mws/orders/test_parser.rb
187
+ - test/mws/orders/test_order_item.rb
188
+ - test/fixtures/order_items.xml
189
+ - test/fixtures/service_status.xml
190
+ - test/fixtures/orders.xml
153
191
  - test/test_helper.rb
154
- has_rdoc:
data/lib/mws-orders.rb DELETED
@@ -1,2 +0,0 @@
1
- require "peddler"
2
- require "mws/orders/parser"
@@ -1,15 +0,0 @@
1
- require "mws/orders/entity"
2
-
3
- module MWS
4
- module Orders
5
- class ServiceStatusMessage < Entity
6
- attribute(:locale) do
7
- text_at_xpath("Locale")
8
- end
9
-
10
- attribute(:text) do
11
- text_at_xpath("Text")
12
- end
13
- end
14
- end
15
- end
@@ -1,27 +0,0 @@
1
- require "test_helper"
2
-
3
- class TestMWSOrders < MiniTest::Test
4
- def setup
5
- skip unless ENV['AWS_ACCESS_KEY_ID']
6
- @client = MWS.orders
7
- end
8
-
9
- def test_gets_service_status
10
- assert_kind_of ServiceStatus, @client.get_service_status
11
- end
12
-
13
- def test_lists_orders_and_their_items
14
- orders = @client.list_orders(created_after: one_year_ago)
15
- refute_empty orders
16
- amazon_order_id = orders.to_a.sample.amazon_order_id
17
- assert_kind_of MWS::Orders::Order, @client.get_order(amazon_order_id)
18
- order_items = @client.list_order_items(amazon_order_id)
19
- refute_empty order_items
20
- end
21
-
22
- private
23
-
24
- def one_year_ago
25
- Date.today - 365
26
- end
27
- end