peddler 0.5.3 → 0.6.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 (102) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +237 -8
  3. data/lib/mws/feeds.rb +1 -0
  4. data/lib/mws/feeds/client.rb +97 -0
  5. data/lib/mws/feeds/parsers/feed.rb +14 -0
  6. data/lib/mws/feeds/parsers/feed_submission.rb +25 -0
  7. data/lib/mws/feeds/parsers/feed_submission_count.rb +13 -0
  8. data/lib/mws/feeds/parsers/feed_submission_list.rb +20 -0
  9. data/lib/mws/feeds/parsers/feed_submission_result.rb +10 -0
  10. data/lib/mws/feeds/parsers/feed_submissions.rb +18 -0
  11. data/lib/mws/feeds/requests/feed.rb +38 -0
  12. data/lib/mws/feeds/requests/feed_submission_count.rb +20 -0
  13. data/lib/mws/feeds/requests/feed_submission_list.rb +28 -0
  14. data/lib/mws/feeds/requests/feed_submission_result.rb +18 -0
  15. data/lib/mws/feeds/requests/feed_submissions.rb +20 -0
  16. data/lib/mws/fulfillment_inbound_shipment/client.rb +7 -0
  17. data/lib/mws/fulfillment_inventory/client.rb +7 -0
  18. data/lib/mws/fulfillment_outbound_shipment/client.rb +7 -0
  19. data/lib/mws/off_amazon_payments/client.rb +7 -0
  20. data/lib/mws/orders.rb +1 -0
  21. data/lib/mws/orders/client.rb +88 -0
  22. data/lib/mws/orders/parsers/invoice_data.rb +25 -0
  23. data/lib/mws/orders/parsers/order.rb +113 -0
  24. data/lib/mws/orders/parsers/order_item.rb +110 -0
  25. data/lib/mws/orders/parsers/order_items.rb +20 -0
  26. data/lib/mws/orders/parsers/orders.rb +20 -0
  27. data/lib/mws/orders/parsers/payment_execution_detail.rb +20 -0
  28. data/lib/mws/orders/parsers/payment_execution_detail_item.rb +17 -0
  29. data/lib/mws/orders/parsers/service_status.rb +36 -0
  30. data/lib/mws/orders/parsers/service_status_message.rb +17 -0
  31. data/lib/mws/orders/parsers/shipping_address.rb +37 -0
  32. data/lib/mws/orders/requests/order_items.rb +26 -0
  33. data/lib/mws/orders/requests/orders.rb +39 -0
  34. data/lib/mws/orders/requests/service_status.rb +15 -0
  35. data/lib/mws/products/client.rb +7 -0
  36. data/lib/mws/recommendations/client.rb +7 -0
  37. data/lib/mws/reports/client.rb +6 -0
  38. data/lib/mws/sellers/client.rb +7 -0
  39. data/lib/mws/subscriptions/client.rb +7 -0
  40. data/lib/peddler.rb +11 -1
  41. data/lib/peddler/client.rb +62 -0
  42. data/lib/peddler/parsers/base.rb +15 -0
  43. data/lib/peddler/parsers/collection.rb +23 -0
  44. data/lib/peddler/parsers/model.rb +43 -0
  45. data/lib/peddler/parsers/text.rb +13 -0
  46. data/lib/peddler/parsers/xml.rb +25 -0
  47. data/lib/peddler/request.rb +50 -0
  48. data/lib/peddler/request/parameters.rb +56 -0
  49. data/lib/peddler/request/structured_list.rb +43 -0
  50. data/lib/peddler/response_wrapper.rb +32 -0
  51. data/lib/peddler/version.rb +1 -1
  52. data/test/fixtures/feeds/feed_submission.xml +14 -0
  53. data/test/fixtures/feeds/feed_submission_count.xml +9 -0
  54. data/test/fixtures/feeds/feed_submission_list.xml +17 -0
  55. data/test/fixtures/feeds/feed_submissions.xml +15 -0
  56. data/test/fixtures/mws.yml +8 -0
  57. data/test/fixtures/mws.yml.example +4 -0
  58. data/test/fixtures/orders/order_items.xml +83 -0
  59. data/test/fixtures/orders/orders.xml +109 -0
  60. data/test/fixtures/orders/service_status.xml +19 -0
  61. data/test/helper.rb +5 -0
  62. data/test/integration/feeds/test_feed_submission_count.rb +13 -0
  63. data/test/integration/feeds/test_feed_submission_list.rb +15 -0
  64. data/test/integration/feeds/test_feed_submission_result.rb +15 -0
  65. data/test/integration/orders/test_order_items.rb +19 -0
  66. data/test/integration/orders/test_orders.rb +20 -0
  67. data/test/integration/orders/test_service_status.rb +12 -0
  68. data/test/integration_helper.rb +16 -0
  69. data/test/mws/feeds/parsers/test_feed.rb +13 -0
  70. data/test/mws/feeds/parsers/test_feed_submission.rb +25 -0
  71. data/test/mws/feeds/parsers/test_feed_submission_count.rb +13 -0
  72. data/test/mws/feeds/parsers/test_feed_submission_list.rb +14 -0
  73. data/test/mws/feeds/parsers/test_feed_submission_result.rb +13 -0
  74. data/test/mws/feeds/parsers/test_feed_submissions.rb +17 -0
  75. data/test/mws/feeds/requests/test_feed.rb +63 -0
  76. data/test/mws/feeds/requests/test_feed_submission_count.rb +23 -0
  77. data/test/mws/feeds/requests/test_feed_submission_list.rb +40 -0
  78. data/test/mws/feeds/requests/test_feed_submissions.rb +29 -0
  79. data/test/mws/orders/parsers/test_order.rb +86 -0
  80. data/test/mws/orders/parsers/test_order_item.rb +69 -0
  81. data/test/mws/orders/parsers/test_order_items.rb +14 -0
  82. data/test/mws/orders/parsers/test_orders.rb +14 -0
  83. data/test/mws/orders/parsers/test_payment_execution_detail.rb +14 -0
  84. data/test/mws/orders/parsers/test_payment_execution_detail_item.rb +17 -0
  85. data/test/mws/orders/parsers/test_service_status.rb +39 -0
  86. data/test/mws/orders/parsers/test_service_status_message.rb +17 -0
  87. data/test/mws/orders/parsers/test_shipping_address.rb +36 -0
  88. data/test/mws/orders/requests/test_order_items.rb +39 -0
  89. data/test/mws/orders/requests/test_orders.rb +49 -0
  90. data/test/mws/orders/requests/test_service_status.rb +25 -0
  91. data/test/parser_helper.rb +11 -0
  92. data/test/peddler/parsers/test_collection.rb +8 -0
  93. data/test/peddler/parsers/test_model.rb +34 -0
  94. data/test/peddler/request/test_parameters.rb +35 -0
  95. data/test/peddler/request/test_structured_list.rb +18 -0
  96. data/test/peddler/test_client.rb +42 -0
  97. data/test/request_helper.rb +20 -0
  98. metadata +213 -10
  99. data/lib/peddler/apis.rb +0 -45
  100. data/lib/peddler/service.rb +0 -83
  101. data/test/service_test.rb +0 -42
  102. data/test/test_helper.rb +0 -3
@@ -0,0 +1,19 @@
1
+ <?xml version="1.0"?>
2
+ <GetServiceStatusResponse
3
+ xmlns="https://mws.amazonservices.com/Orders/2011-01-01">
4
+ <GetServiceStatusResult>
5
+ <Status>GREEN_I</Status>
6
+ <Timestamp>2010-09-24T21:38:09.676Z</Timestamp>
7
+ <MessageId>173964729I</MessageId>
8
+ <Messages>
9
+ <Message>
10
+ <Locale>en_US</Locale>
11
+ <Text>We are experiencing high latency in UK because of heavy
12
+ traffic.</Text>
13
+ </Message>
14
+ </Messages>
15
+ </GetServiceStatusResult>
16
+ <ResponseMetadata>
17
+ <RequestId>d80c6c7b-f7c7-4fa7-bdd7-854711cb3bcc</RequestId>
18
+ </ResponseMetadata>
19
+ </GetServiceStatusResponse>
data/test/helper.rb ADDED
@@ -0,0 +1,5 @@
1
+ $:<< File.expand_path('../../lib', __FILE__)
2
+
3
+ require 'minitest/autorun'
4
+ require 'minitest/pride'
5
+ require 'pry'
@@ -0,0 +1,13 @@
1
+ require 'integration_helper'
2
+ require 'mws/feeds'
3
+
4
+ class FeedSubmissionCountTest < IntegrationTest
5
+ self.api = MWS::Feeds
6
+
7
+ def test_gets_feed_submission_count
8
+ @clients.each do |client|
9
+ res = client.get_feed_submission_count
10
+ assert_kind_of Integer, res.count
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,15 @@
1
+ require 'integration_helper'
2
+ require 'mws/feeds'
3
+
4
+ class FeedSubmissionListTest < IntegrationTest
5
+ self.api = MWS::Feeds
6
+
7
+ def test_gets_feed_submission_list
8
+ @clients.each do |client|
9
+ feeds = client.get_feed_submission_list
10
+ refute_empty feeds.to_a
11
+ more_feeds = client.get_feed_submission_list_by_next_token
12
+ refute_empty more_feeds.to_a
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,15 @@
1
+ require 'integration_helper'
2
+ require 'mws/feeds'
3
+
4
+ class FeedSubmissionResultTest < IntegrationTest
5
+ self.api = MWS::Feeds
6
+
7
+ def test_gets_feed_submission_result
8
+ @clients.each do |client|
9
+ feeds = client.get_feed_submission_list(feed_processing_status_list: '_DONE_', max_count: 1)
10
+ feed_submission_id = feeds.first.id
11
+ result = client.get_feed_submission_result(feed_submission_id)
12
+ refute_empty result.to_s
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,19 @@
1
+ require 'integration_helper'
2
+ require 'mws/orders'
3
+
4
+ class OrderItemsTest < IntegrationTest
5
+ self.api = MWS::Orders
6
+
7
+ def sample_amazon_order_id(client)
8
+ order = client.list_orders(created_after: Date.today - 365).to_a.sample
9
+ order.amazon_order_id
10
+ end
11
+
12
+ def test_list_order_items
13
+ @clients.each do |client|
14
+ amazon_order_id = sample_amazon_order_id(client)
15
+ order_items = client.list_order_items(amazon_order_id)
16
+ refute_empty order_items
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,20 @@
1
+ require 'integration_helper'
2
+ require 'mws/orders'
3
+
4
+ class OrdersTest < IntegrationTest
5
+ self.api = MWS::Orders
6
+
7
+ def test_lists_and_gets_orders
8
+ @clients.each do |client|
9
+ amazon_order_ids = []
10
+ orders = client.list_orders(created_after: Date.today - 365)
11
+ amazon_order_ids << orders.to_a.sample.amazon_order_id
12
+
13
+ orders = client.list_orders_by_next_token
14
+ amazon_order_ids << orders.to_a.sample.amazon_order_id
15
+
16
+ orders = client.get_order(*amazon_order_ids)
17
+ assert orders
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,12 @@
1
+ require 'integration_helper'
2
+ require 'mws/orders'
3
+
4
+ class ServiceStatusTest < IntegrationTest
5
+ self.api = MWS::Orders
6
+
7
+ def test_gets_service_status
8
+ @clients.each do |client|
9
+ assert client.get_service_status
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,16 @@
1
+ require 'yaml'
2
+ require 'helper'
3
+
4
+ class IntegrationTest < MiniTest::Test
5
+ class << self
6
+ attr_accessor :api
7
+ end
8
+
9
+ def accounts
10
+ YAML.load_file(File.expand_path('../fixtures/mws.yml', __FILE__))
11
+ end
12
+
13
+ def setup
14
+ @clients = accounts.map { |mws| self.class.api.const_get(:Client).new(*mws.values) }
15
+ end
16
+ end
@@ -0,0 +1,13 @@
1
+ require 'parser_helper'
2
+ require 'mws/feeds/parsers/feed'
3
+
4
+ class FeedParserTest < ParserTest
5
+ def setup
6
+ node = fixture('feeds/feed_submission').xpath('//xmlns:FeedSubmissionInfo').first
7
+ @feed = MWS::Feeds::Parsers::Feed.new(node)
8
+ end
9
+
10
+ def test_submission
11
+ assert_kind_of MWS::Feeds::Parsers::FeedSubmission, @feed.submission
12
+ end
13
+ end
@@ -0,0 +1,25 @@
1
+ require 'parser_helper'
2
+ require 'mws/feeds/parsers/feed_submission'
3
+
4
+ class FeedSubmissionParserTest < ParserTest
5
+ def setup
6
+ node = fixture('feeds/feed_submission').xpath('//xmlns:FeedSubmissionInfo').first
7
+ @feed = MWS::Feeds::Parsers::FeedSubmission.new(node)
8
+ end
9
+
10
+ def test_id
11
+ assert_kind_of String, @feed.id
12
+ end
13
+
14
+ def test_type
15
+ assert_kind_of String, @feed.type
16
+ end
17
+
18
+ def test_submitted_at
19
+ assert_kind_of Time, @feed.submitted_at
20
+ end
21
+
22
+ def test_processing_status
23
+ assert_kind_of String, @feed.processing_status
24
+ end
25
+ end
@@ -0,0 +1,13 @@
1
+ require 'parser_helper'
2
+ require 'mws/feeds/parsers/feed_submission_count'
3
+
4
+ class FeedSubmissionCountParserTest < ParserTest
5
+ def setup
6
+ node = fixture('feeds/feed_submission_count').xpath('//xmlns:GetFeedSubmissionCountResult')
7
+ @feeds = MWS::Feeds::Parsers::FeedSubmissionCount.new(node)
8
+ end
9
+
10
+ def test_feed_submission_count
11
+ assert_kind_of Integer, @feeds.count
12
+ end
13
+ end
@@ -0,0 +1,14 @@
1
+ require 'parser_helper'
2
+ require 'mws/feeds/parsers/feed_submission_list'
3
+
4
+ class FeedSubmissionListParserTest < ParserTest
5
+ def setup
6
+ node = fixture('feeds/feed_submission_list').xpath('//xmlns:GetFeedSubmissionListResult')
7
+ @feed_submission_list = MWS::Feeds::Parsers::FeedSubmissionList.new(node)
8
+ end
9
+
10
+ def test_has_feed_submission_list
11
+ refute_empty @feed_submission_list.to_a
12
+ @feed_submission_list.each { |feed| assert_kind_of MWS::Feeds::Parsers::FeedSubmission, feed }
13
+ end
14
+ end
@@ -0,0 +1,13 @@
1
+ require 'parser_helper'
2
+ require 'mws/feeds/parsers/feed_submission_result'
3
+
4
+ class FeedSubmissionResultParserTest < ParserTest
5
+ def setup
6
+ @body = 'foo'
7
+ @result = MWS::Feeds::Parsers::FeedSubmissionResult.new(@body)
8
+ end
9
+
10
+ def test_content
11
+ assert_equal @body, @result.to_s
12
+ end
13
+ end
@@ -0,0 +1,17 @@
1
+ require 'parser_helper'
2
+ require 'mws/feeds/parsers/feed_submissions'
3
+
4
+ class FeedSubmissionsParserTest < ParserTest
5
+ def setup
6
+ node = fixture('feeds/feed_submissions').xpath('//xmlns:CancelFeedSubmissionsResult')
7
+ @cancelations = MWS::Feeds::Parsers::FeedSubmissions.new(node)
8
+ end
9
+
10
+ def test_cancelation_count
11
+ assert_kind_of Integer, @cancelations.count
12
+ end
13
+
14
+ def test_canceled_feed_submissions
15
+ refute_empty @cancelations.feed_submissions
16
+ end
17
+ end
@@ -0,0 +1,63 @@
1
+ require 'request_helper'
2
+ require 'mws/feeds/requests/feed'
3
+
4
+ class FeedRequestTest < RequestTest
5
+ def mock_response_body
6
+ <<-EOF
7
+ <Response xmlns="ns">
8
+ <Result>
9
+ <FeedSubmissionInfo>
10
+ <FeedSubmissionId>123456</FeedSubmissionId>
11
+ <FeedType>_POST_PRODUCT_DATA_</FeedType>
12
+ <SubmittedDate>2009-02-20T02:10:35+00:00</SubmittedDate>
13
+ <FeedProcessingStatus>_CANCELLED_</FeedProcessingStatus>
14
+ </FeedSubmissionInfo>
15
+ </Response>
16
+ </Result>
17
+ EOF
18
+ end
19
+
20
+ def setup
21
+ @feed = MWS::Feeds::Requests::Feed.new(mock_client)
22
+ end
23
+
24
+ def test_submits_flat_file
25
+ @feed.client.expect(:default_country, 'US')
26
+ res = @feed.submit('foo', '_POST_FLAT_FILE_DATA_')
27
+ assert_kind_of MWS::Feeds::Parsers::Feed, res
28
+ end
29
+
30
+ def test_submits_xml
31
+ @feed.client.expect(:default_country, 'US')
32
+ xml = '<?xml version="1.0"?><Foo></Foo>'
33
+ res = @feed.submit(xml, '_POST_XML_DATA_')
34
+ assert_kind_of MWS::Feeds::Parsers::Feed, res
35
+ end
36
+
37
+ def test_headers_for_latin_flat_file
38
+ @feed.client.expect(:default_country, 'US')
39
+ @feed.body = 'foo'
40
+ @feed.set_content_type
41
+ assert_equal "text/tab-separated-values; charset=ISO-8859-1", @feed.headers.fetch('Content-Type')
42
+ end
43
+
44
+ def test_headers_for_chinese_flat_file
45
+ @feed.client.expect(:default_country, 'CN')
46
+ @feed.body = 'foo'
47
+ @feed.set_content_type
48
+ assert_equal 'text/tab-separated-values; charset=UTF-16', @feed.headers.fetch('Content-Type')
49
+ end
50
+
51
+ def test_headers_for_japanese_flat_file
52
+ @feed.client.expect(:default_country, 'JP')
53
+ @feed.body = 'foo'
54
+ @feed.set_content_type
55
+ assert_equal 'text/tab-separated-values; charset=Shift_JIS', @feed.headers.fetch('Content-Type')
56
+ end
57
+
58
+ def test_headers_for_xml
59
+ @feed.body = '<?xml version="1.0"?><Foo></Foo>'
60
+ @feed.set_content_type
61
+ assert_equal 'text/xml; charset=ISO-8859-1', @feed.headers.fetch('Content-Type')
62
+ end
63
+ end
@@ -0,0 +1,23 @@
1
+ require 'request_helper'
2
+ require 'mws/feeds/requests/feed_submission_count'
3
+
4
+ class FeedSubmissionCountRequestTest < RequestTest
5
+ def mock_response_body
6
+ <<-EOF
7
+ <Response xmlns="ns">
8
+ <Result>
9
+ <Count>1</Count>
10
+ </Response>
11
+ </Result>
12
+ EOF
13
+ end
14
+
15
+ def setup
16
+ @feeds = MWS::Feeds::Requests::FeedSubmissionCount.new(mock_client)
17
+ end
18
+
19
+ def test_gets_feed_submission_count
20
+ res = @feeds.get(submitted_from_date: 0)
21
+ assert_equal 1, res.count
22
+ end
23
+ end
@@ -0,0 +1,40 @@
1
+ require 'request_helper'
2
+ require 'mws/feeds/requests/feed_submission_list'
3
+
4
+ class FeedSubmissionListRequestTest < RequestTest
5
+ def mock_response_body
6
+ <<-EOF
7
+ <Response xmlns="ns">
8
+ <Result>
9
+ <NextToken>123</NextToken>
10
+ <FeedSubmissionInfo>
11
+ <FeedSubmissionId>123456</FeedSubmissionId>
12
+ <FeedType>_POST_PRODUCT_DATA_</FeedType>
13
+ <SubmittedDate>2009-02-20T02:10:35+00:00</SubmittedDate>
14
+ <FeedProcessingStatus>_SUBMITTED_</FeedProcessingStatus>
15
+ </FeedSubmissionInfo>
16
+ </Response>
17
+ </Result>
18
+ EOF
19
+ end
20
+
21
+ def setup
22
+ @feeds = MWS::Feeds::Requests::FeedSubmissionList.new(mock_client)
23
+ end
24
+
25
+ def test_gets_feed_submission_list
26
+ res = @feeds.get(submitted_from_date: 0)
27
+ assert_kind_of MWS::Feeds::Parsers::FeedSubmissionList, res
28
+ end
29
+
30
+ def test_returns_next_token
31
+ @feeds.last_response = mock_response
32
+ assert_equal '123', @feeds.next_token
33
+ end
34
+
35
+ def test_gets_feed_submission_list_by_next_token
36
+ @feeds.last_response = mock_response
37
+ res = @feeds.get_by_next_token
38
+ assert_kind_of MWS::Feeds::Parsers::FeedSubmissionList, res
39
+ end
40
+ end
@@ -0,0 +1,29 @@
1
+ require 'request_helper'
2
+ require 'mws/feeds/requests/feed_submissions'
3
+
4
+ class FeedSubmissionsRequesttTest < RequestTest
5
+ def mock_response_body
6
+ <<-EOF
7
+ <Response xmlns="ns">
8
+ <Result>
9
+ <Count>1</Count>
10
+ <FeedSubmissionInfo>
11
+ <FeedSubmissionId>123456</FeedSubmissionId>
12
+ <FeedType>_POST_PRODUCT_DATA_</FeedType>
13
+ <SubmittedDate>2009-02-20T02:10:35+00:00</SubmittedDate>
14
+ <FeedProcessingStatus>_CANCELLED_</FeedProcessingStatus>
15
+ </FeedSubmissionInfo>
16
+ </Response>
17
+ </Result>
18
+ EOF
19
+ end
20
+
21
+ def setup
22
+ @feeds = MWS::Feeds::Requests::FeedSubmissions.new(mock_client)
23
+ end
24
+
25
+ def test_cancels_feedback_submissions
26
+ res = @feeds.cancel(submitted_from_date: 0)
27
+ assert_kind_of MWS::Feeds::Parsers::FeedSubmissions, res
28
+ end
29
+ end
@@ -0,0 +1,86 @@
1
+ require 'parser_helper'
2
+ require 'mws/orders/parsers/order'
3
+
4
+ class OrderParserTest < ParserTest
5
+ def setup
6
+ node = fixture('orders/orders').xpath('//xmlns:Order').first
7
+ @order = MWS::Orders::Parsers::Order.new(node)
8
+ end
9
+
10
+ def test_amazon_order_id
11
+ assert_kind_of String, @order.amazon_order_id
12
+ end
13
+
14
+ def test_purchase_time
15
+ assert_kind_of Time, @order.purchased_at
16
+ end
17
+
18
+ def test_last_update_time
19
+ assert_kind_of Time, @order.last_updated_at
20
+ end
21
+
22
+ def test_status
23
+ assert_kind_of String, @order.status
24
+ end
25
+
26
+ def test_type
27
+ assert_kind_of String, @order.type
28
+ end
29
+
30
+ def test_sales_channel
31
+ assert_kind_of String, @order.sales_channel
32
+ end
33
+
34
+ def test_ship_service_level
35
+ assert_kind_of String, @order.ship_service_level
36
+ end
37
+
38
+ def test_fulfillment_channel
39
+ assert_kind_of String, @order.fulfillment_channel
40
+ end
41
+
42
+ def test_total
43
+ assert_kind_of Money, @order.total
44
+ end
45
+
46
+ def test_shipping_address
47
+ assert_kind_of MWS::Orders::Parsers::ShippingAddress, @order.shipping_address
48
+ end
49
+
50
+ def test_number_of_items_shipped
51
+ assert_kind_of Integer, @order.number_of_items_shipped
52
+ end
53
+
54
+ def test_number_of_items_unshipped
55
+ assert_kind_of Integer, @order.number_of_items_unshipped
56
+ end
57
+
58
+ def test_payment_execution_detail
59
+ assert_kind_of MWS::Orders::Parsers::PaymentExecutionDetail, @order.payment_execution_detail
60
+ end
61
+
62
+ def test_payment_method
63
+ assert_kind_of String, @order.payment_method
64
+ end
65
+
66
+ def test_marketplace_id
67
+ assert_kind_of String, @order.marketplace_id
68
+ end
69
+
70
+ def test_buyer_name
71
+ assert_kind_of String, @order.buyer_name
72
+ end
73
+
74
+ def test_buyer_email
75
+ assert_kind_of String, @order.buyer_email
76
+ end
77
+
78
+ def test_shipment_service_level_category
79
+ assert_kind_of String, @order.shipment_service_level_category
80
+ end
81
+
82
+ def test_no_shipping_adress
83
+ @order.shipping_address.document.remove
84
+ assert_nil @order.shipping_address
85
+ end
86
+ end