mws-orders 0.2.0 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
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