amazon-mws 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +1 -0
- data/README.markdown +31 -0
- data/Rakefile +14 -0
- data/VERSION +1 -0
- data/amazon-mws.gemspec +164 -0
- data/examples/xml/cancel_feed_submissions.xml +16 -0
- data/examples/xml/cancel_report_requests.xml +18 -0
- data/examples/xml/error.xml +10 -0
- data/examples/xml/get_feed_submission_count.xml +10 -0
- data/examples/xml/get_feed_submission_list.xml +16 -0
- data/examples/xml/get_feed_submission_list_by_next_token.xml +16 -0
- data/examples/xml/get_feed_submission_result.xml +30 -0
- data/examples/xml/get_report_count.xml +9 -0
- data/examples/xml/get_report_list.xml +17 -0
- data/examples/xml/get_report_request_count.xml +8 -0
- data/examples/xml/get_report_request_list.xml +120 -0
- data/examples/xml/get_report_request_list_by_next_token.xml +20 -0
- data/examples/xml/get_report_schedule_count.xml +10 -0
- data/examples/xml/get_report_schedule_list.xml +15 -0
- data/examples/xml/get_report_schedule_list_by_next_token.xml +15 -0
- data/examples/xml/manage_report_schedule.xml +14 -0
- data/examples/xml/request_report.xml +17 -0
- data/examples/xml/submit_feed.xml +14 -0
- data/examples/xml/update_report_acknowledgements.xml +18 -0
- data/examples/xsd/Inventory.xsd +49 -0
- data/examples/xsd/Item.xsd +285 -0
- data/examples/xsd/Listings.xsd +32 -0
- data/examples/xsd/OrderAcknowledgement.xsd +55 -0
- data/examples/xsd/OrderAdjustment.xsd +94 -0
- data/examples/xsd/OrderFulfillment.xsd +57 -0
- data/examples/xsd/Override.xsd +48 -0
- data/examples/xsd/Price.xsd +59 -0
- data/examples/xsd/ProcessingReport.xsd +87 -0
- data/examples/xsd/Product.xsd +220 -0
- data/examples/xsd/Product/AutoAccessory.xsd +807 -0
- data/examples/xsd/Product/Beauty.xsd +114 -0
- data/examples/xsd/Product/CE.xsd +544 -0
- data/examples/xsd/Product/CameraPhoto.xsd +2410 -0
- data/examples/xsd/Product/FoodAndBeverages.xsd +270 -0
- data/examples/xsd/Product/Gourmet.xsd +85 -0
- data/examples/xsd/Product/Health.xsd +189 -0
- data/examples/xsd/Product/Home.xsd +654 -0
- data/examples/xsd/Product/Jewelry.xsd +603 -0
- data/examples/xsd/Product/Miscellaneous.xsd +157 -0
- data/examples/xsd/Product/MusicalInstruments.xsd +853 -0
- data/examples/xsd/Product/Office.xsd +550 -0
- data/examples/xsd/Product/PetSupplies.xsd +40 -0
- data/examples/xsd/Product/ProductClothing.xsd +197 -0
- data/examples/xsd/Product/SWVG.xsd +238 -0
- data/examples/xsd/Product/Sports.xsd +308 -0
- data/examples/xsd/Product/TiresAndWheels.xsd +159 -0
- data/examples/xsd/Product/Tools.xsd +66 -0
- data/examples/xsd/Product/ToysBaby.xsd +241 -0
- data/examples/xsd/Product/Wireless.xsd +77 -0
- data/examples/xsd/ProductImage.xsd +39 -0
- data/examples/xsd/Relationship.xsd +47 -0
- data/examples/xsd/SettlementReport.xsd +158 -0
- data/examples/xsd/amzn-base.xsd +1601 -0
- data/examples/xsd/amzn-envelope.xsd +98 -0
- data/examples/xsd/amzn-header.xsd +45 -0
- data/lib/amazon/mws.rb +86 -0
- data/lib/amazon/mws/authentication.rb +9 -0
- data/lib/amazon/mws/authentication/query_string.rb +28 -0
- data/lib/amazon/mws/authentication/signature.rb +43 -0
- data/lib/amazon/mws/base.rb +61 -0
- data/lib/amazon/mws/connection.rb +99 -0
- data/lib/amazon/mws/connection/management.rb +94 -0
- data/lib/amazon/mws/connection/request_builder.rb +67 -0
- data/lib/amazon/mws/exceptions.rb +80 -0
- data/lib/amazon/mws/feed.rb +223 -0
- data/lib/amazon/mws/feed_builder.rb +67 -0
- data/lib/amazon/mws/feed_enumerations.rb +46 -0
- data/lib/amazon/mws/feed_submission.rb +14 -0
- data/lib/amazon/mws/lib/extensions.rb +162 -0
- data/lib/amazon/mws/lib/memoizable.rb +10 -0
- data/lib/amazon/mws/orders.rb +9 -0
- data/lib/amazon/mws/report.rb +310 -0
- data/lib/amazon/mws/report_enumerations.rb +44 -0
- data/lib/amazon/mws/report_info.rb +16 -0
- data/lib/amazon/mws/report_request.rb +19 -0
- data/lib/amazon/mws/report_schedule.rb +13 -0
- data/lib/amazon/mws/response.rb +32 -0
- data/lib/amazon/mws/response/cancel_feed_submissions_response.rb +14 -0
- data/lib/amazon/mws/response/cancel_report_requests_response.rb +14 -0
- data/lib/amazon/mws/response/get_feed_submission_count_response.rb +13 -0
- data/lib/amazon/mws/response/get_feed_submission_list_by_next_token_response.rb +15 -0
- data/lib/amazon/mws/response/get_feed_submission_list_response.rb +15 -0
- data/lib/amazon/mws/response/get_feed_submission_result_response.rb +54 -0
- data/lib/amazon/mws/response/get_report_count_response.rb +13 -0
- data/lib/amazon/mws/response/get_report_list_response.rb +15 -0
- data/lib/amazon/mws/response/get_report_request_count_response.rb +13 -0
- data/lib/amazon/mws/response/get_report_request_list_by_next_token_response.rb +15 -0
- data/lib/amazon/mws/response/get_report_request_list_response.rb +15 -0
- data/lib/amazon/mws/response/get_report_schedule_count_response.rb +13 -0
- data/lib/amazon/mws/response/get_report_schedule_list_by_next_token_response.rb +15 -0
- data/lib/amazon/mws/response/get_report_schedule_list_response.rb +15 -0
- data/lib/amazon/mws/response/manage_report_schedule_response.rb +14 -0
- data/lib/amazon/mws/response/request_report_response.rb +14 -0
- data/lib/amazon/mws/response/response_error.rb +15 -0
- data/lib/amazon/mws/response/submit_feed_response.rb +13 -0
- data/lib/amazon/mws/response/update_reports_acknowledgements_response.rb +14 -0
- data/lib/amazon/mws/version.rb +12 -0
- data/pkg/amazon-mws-0.1.0.gem +0 -0
- data/test/authentication_test.rb +15 -0
- data/test/connection_test.rb +5 -0
- data/test/feed_builder_test.rb +15 -0
- data/test/feed_submission_test.rb +32 -0
- data/test/feed_test.rb +64 -0
- data/test/query_string_test.rb +21 -0
- data/test/report_test.rb +29 -0
- data/test/request_test.rb +18 -0
- data/test/response_test.rb +197 -0
- data/test/signature_test.rb +30 -0
- data/test/test_config.yml +5 -0
- data/test/test_helper.rb +22 -0
- metadata +179 -0
@@ -0,0 +1,14 @@
|
|
1
|
+
module Amazon
|
2
|
+
module MWS
|
3
|
+
|
4
|
+
class UpdateReportAcknowledgementsResponse < Response
|
5
|
+
xml_name "UpdateReportAcknowledgementsResponse"
|
6
|
+
result = "UpdateReportAcknowledgementsResult"
|
7
|
+
|
8
|
+
xml_reader :count, :as => Integer, :in => result
|
9
|
+
xml_reader :reports, :as => [ReportInfo], :in => result
|
10
|
+
xml_reader :request_id, :in => "ResponseMetadata"
|
11
|
+
end
|
12
|
+
|
13
|
+
end
|
14
|
+
end
|
Binary file
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), 'test_helper')
|
2
|
+
|
3
|
+
class AuthenticationTest < Test::Unit::TestCase
|
4
|
+
def setup
|
5
|
+
@request = Net::HTTP::Get.new("https://mws.amazonaws.com")
|
6
|
+
@access_key_id = "yyy"
|
7
|
+
@secret_access_key = "xxx"
|
8
|
+
@merchant_id = 0
|
9
|
+
@marketplace_id = 0
|
10
|
+
end
|
11
|
+
|
12
|
+
def test_first
|
13
|
+
puts Amazon::MWS::Authentication::QueryString.new(@request, @access_key_id, @secret_access_key, @merchant_id, @marketplace_id)
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), 'test_helper')
|
2
|
+
|
3
|
+
class FeedTest < Test::Unit::TestCase
|
4
|
+
def setup
|
5
|
+
end
|
6
|
+
|
7
|
+
def test_nothing
|
8
|
+
puts AWS::MWS::FeedBuilder.new(:product, {
|
9
|
+
"Product" => "somethinglame",
|
10
|
+
"NestedHash" => {"hash"=> 7},
|
11
|
+
"NestedArray" => [{"NA1"=> 1}, {"NA2"=> 2}]
|
12
|
+
}).render
|
13
|
+
# puts feed.xml
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), 'test_helper')
|
2
|
+
require 'yaml'
|
3
|
+
|
4
|
+
class FeedSubmissionTest < Test::Unit::TestCase
|
5
|
+
def setup
|
6
|
+
config = YAML.load_file( File.join(File.dirname(__FILE__), '../lib/amazon/mws.yml') )
|
7
|
+
|
8
|
+
AWS::MWS::Base.establish_connection!(
|
9
|
+
config['production']
|
10
|
+
)
|
11
|
+
end
|
12
|
+
|
13
|
+
def test_get_feed_submission_list
|
14
|
+
# Amazon::MWS::API.submit_feed(:product_data, :product, @product)
|
15
|
+
# response = Amazon::MWS::API.get_feed_submission_list
|
16
|
+
|
17
|
+
#response = Amazon::MWS::API.request_report(:flat_file_orders)
|
18
|
+
|
19
|
+
#report_id = response["RequestReportResponse"]["RequestReportResult"]["ReportRequestInfo"]["ReportRequestId"]
|
20
|
+
|
21
|
+
|
22
|
+
response = Amazon::MWS::API.get_report_list
|
23
|
+
|
24
|
+
report_id = response["GetReportListResult"]["ReportInfo"]["ReportId"]
|
25
|
+
|
26
|
+
response = Amazon::MWS::API.get_report(report_id)
|
27
|
+
#response = Amazon::MWS::API.get_report_request_list
|
28
|
+
|
29
|
+
#response = Amazon::MWS::API.get_report_request_count
|
30
|
+
puts response.inspect
|
31
|
+
end
|
32
|
+
end
|
data/test/feed_test.rb
ADDED
@@ -0,0 +1,64 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), 'test_helper')
|
2
|
+
# flatten the namespace
|
3
|
+
require 'mocha'
|
4
|
+
include AWS::MWS
|
5
|
+
|
6
|
+
AWS::MWS::Base.debug = true
|
7
|
+
|
8
|
+
class FeedTest < Test::Unit::TestCase
|
9
|
+
def setup
|
10
|
+
config = YAML.load_file( File.join(File.dirname(__FILE__), 'test_config.yml') )
|
11
|
+
@marketplace = AWS::MWS::Base.new(config)
|
12
|
+
end
|
13
|
+
|
14
|
+
#def test_submit_feed
|
15
|
+
#response = Feed.submit
|
16
|
+
#response = Feed.submit_feed
|
17
|
+
#end
|
18
|
+
|
19
|
+
def test_get_feed_submission_list_failure
|
20
|
+
@marketplace.stubs(:get).returns(
|
21
|
+
mock_response(401, :body => File.read(xml_for('error')), :content_type => "text/xml")
|
22
|
+
)
|
23
|
+
|
24
|
+
response = @marketplace.submission_list
|
25
|
+
assert_kind_of(ResponseError, response)
|
26
|
+
end
|
27
|
+
|
28
|
+
def test_get_feed_submission_list_success
|
29
|
+
@marketplace.stubs(:get).returns(
|
30
|
+
mock_response(200, :body => File.read(xml_for('get_feed_submission_list')), :content_type => "text/xml")
|
31
|
+
)
|
32
|
+
|
33
|
+
response = @marketplace.submission_list
|
34
|
+
assert_kind_of(GetFeedSubmissionListResponse, response)
|
35
|
+
end
|
36
|
+
|
37
|
+
=begin
|
38
|
+
def test_get_feed_submission_list_by_next_token
|
39
|
+
#response = Feed.submission_list_by_next_token
|
40
|
+
#response = Feed.get_feed_submission_list_by_next_token
|
41
|
+
end
|
42
|
+
|
43
|
+
def test_get_feed_submission_list_by_next_token
|
44
|
+
#response = Feed.submission_list_by_next_token
|
45
|
+
#response = Feed.get_feed_submission_list_by_next_token
|
46
|
+
end
|
47
|
+
|
48
|
+
def test_get_feed_submission_count
|
49
|
+
#response = Feed.submission_count
|
50
|
+
#response = Feed.get_feed_submission_count
|
51
|
+
end
|
52
|
+
|
53
|
+
|
54
|
+
def test_cancel_feed_submissions
|
55
|
+
#response = Feed.cancel_submissions
|
56
|
+
#response = Feed.cancel_feed_submissions
|
57
|
+
end
|
58
|
+
|
59
|
+
def test_get_feed_submission_result
|
60
|
+
#response = Feed.submission_result
|
61
|
+
#response = Feed.get_feed_submission_result
|
62
|
+
end
|
63
|
+
=end
|
64
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), 'test_helper')
|
2
|
+
|
3
|
+
class MockSignature
|
4
|
+
end
|
5
|
+
|
6
|
+
class QueryStringTest < Test::Unit::TestCase
|
7
|
+
def setup
|
8
|
+
# need a stub for Signature!
|
9
|
+
end
|
10
|
+
|
11
|
+
def test_expected_string
|
12
|
+
string = AWS::MWS::Authentication::QueryString.new(
|
13
|
+
:access_key => 'opensesame',
|
14
|
+
:marketplace_id => '9876',
|
15
|
+
:merchant_id => '12345',
|
16
|
+
:uri => URI.parse('/')
|
17
|
+
)
|
18
|
+
|
19
|
+
assert_kind_of(String, string)
|
20
|
+
end
|
21
|
+
end
|
data/test/report_test.rb
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), 'test_helper')
|
2
|
+
require 'yaml'
|
3
|
+
|
4
|
+
|
5
|
+
# import the namespace
|
6
|
+
include Amazon::MWS
|
7
|
+
|
8
|
+
class FeedTest < Test::Unit::TestCase
|
9
|
+
def setup
|
10
|
+
config = YAML.load_file( File.join(File.dirname(__FILE__), '../lib/amazon/mws.yml') )
|
11
|
+
|
12
|
+
AWS::MWS::Base.establish_connection!(
|
13
|
+
config['production']
|
14
|
+
)
|
15
|
+
AWS::MWS::Base.debug = true
|
16
|
+
end
|
17
|
+
|
18
|
+
def test_request
|
19
|
+
#response = Report.request(:flat_file_orders)
|
20
|
+
|
21
|
+
#result = Report.request(:flat_file_orders, :start_date => Time.now, :end_date => Time.now.iso8601)
|
22
|
+
|
23
|
+
result = Report.request_list
|
24
|
+
|
25
|
+
puts result.inspect
|
26
|
+
end
|
27
|
+
|
28
|
+
|
29
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), 'test_helper')
|
2
|
+
require 'yaml'
|
3
|
+
|
4
|
+
AWS::MWS::Base.debug = true
|
5
|
+
|
6
|
+
class RequestTest < Test::Unit::TestCase
|
7
|
+
def setup
|
8
|
+
config = YAML.load_file( File.join(File.dirname(__FILE__), '../lib/amazon/mws.yml') )
|
9
|
+
|
10
|
+
@marketplace = AWS::MWS::Base.new(config['production'])
|
11
|
+
end
|
12
|
+
|
13
|
+
def test_first
|
14
|
+
response = @marketplace.request_report(:converged_flat_file_order_report)
|
15
|
+
response = @marketplace.get_report_request_list('MaxCount' => 100)
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
@@ -0,0 +1,197 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), 'test_helper')
|
2
|
+
|
3
|
+
include Amazon::MWS
|
4
|
+
|
5
|
+
class ResponseTest < Test::Unit::TestCase
|
6
|
+
|
7
|
+
def test_submit_feed_response
|
8
|
+
response = SubmitFeedResponse.format(xml_for('submit_feed'))
|
9
|
+
|
10
|
+
assert_equal(response.feed_submission.id, 2291326430)
|
11
|
+
assert_equal(response.feed_submission.feed_type, '_POST_PRODUCT_DATA_')
|
12
|
+
assert_equal(response.request_id, '75424a38-f333-4105-98f0-2aa9592d665c')
|
13
|
+
end
|
14
|
+
|
15
|
+
def test_feed_submission_list_response
|
16
|
+
response = GetFeedSubmissionListResponse.format(xml_for('get_feed_submission_list'))
|
17
|
+
|
18
|
+
assert_equal("1105b931-6f1c-4480-8e97-f3b467840a9e", response.request_id)
|
19
|
+
assert(response.has_next?)
|
20
|
+
assert_equal(response.next_token, "2YgYW55IGNhcm5hbCBwbGVhc3VyZS4=")
|
21
|
+
assert_equal(response.feed_submissions.size, 1)
|
22
|
+
assert_equal(response.feed_submissions.first.id, 2291326430)
|
23
|
+
end
|
24
|
+
|
25
|
+
def test_get_feed_submission_list_by_next_token
|
26
|
+
response = GetFeedSubmissionListByNextTokenResponse.format(xml_for('get_feed_submission_list_by_next_token'))
|
27
|
+
|
28
|
+
assert_equal("1105b931-6f1c-4480-8e97-f3b467840a9e", response.request_id)
|
29
|
+
assert_equal(false, response.has_next?) # same as false ???
|
30
|
+
assert_equal('none', response.next_token)
|
31
|
+
assert_equal(response.feed_submissions.size, 1)
|
32
|
+
assert_equal(response.feed_submissions.first.id, 2291326430)
|
33
|
+
assert_equal('1105b931-6f1c-4480-8e97-f3b467840a9e', response.request_id)
|
34
|
+
end
|
35
|
+
|
36
|
+
def test_get_feed_submission_count
|
37
|
+
response = GetFeedSubmissionCountResponse.format(xml_for('get_feed_submission_count'))
|
38
|
+
|
39
|
+
assert_equal(463, response.count)
|
40
|
+
assert_equal('21e482a8-15c7-4da3-91a4-424995ed0756', response.request_id)
|
41
|
+
end
|
42
|
+
|
43
|
+
def test_cancel_feed_submissions
|
44
|
+
response = CancelFeedSubmissionsResponse.format(xml_for('cancel_feed_submissions'))
|
45
|
+
|
46
|
+
assert_equal(1, response.count)
|
47
|
+
assert_equal(1, response.feed_submissions.size)
|
48
|
+
assert_equal('18e78983-bbf9-43aa-a661-ae7696cb49d4', response.request_id)
|
49
|
+
end
|
50
|
+
|
51
|
+
def test_get_feed_submission_result
|
52
|
+
response = GetFeedSubmissionResultResponse.format(xml_for('get_feed_submission_result'))
|
53
|
+
assert_equal(1.02, response.document_version)
|
54
|
+
assert_equal('M_EXAMPLE_9876543210', response.merchant_id)
|
55
|
+
|
56
|
+
assert_equal('ProcessingReport', response.message_type)
|
57
|
+
|
58
|
+
assert_equal(1, response.message.id)
|
59
|
+
assert_equal(2060950676, response.message.document_transaction_id)
|
60
|
+
assert_equal("Complete", response.message.status_code)
|
61
|
+
|
62
|
+
assert_equal(0, response.message.processing_summary.messages_processed)
|
63
|
+
assert_equal(0, response.message.processing_summary.messages_successful)
|
64
|
+
assert_equal(1, response.message.processing_summary.messages_with_error)
|
65
|
+
assert_equal(0, response.message.processing_summary.messages_with_warning)
|
66
|
+
|
67
|
+
assert_equal(0, response.message.result.message_id)
|
68
|
+
assert_equal('Error', response.message.result.result_code)
|
69
|
+
assert_equal(6001, response.message.result.message_code)
|
70
|
+
assert_equal('XML parsing fatal error at line 1, column 1: Invalid document structure', response.message.result.description)
|
71
|
+
assert_equal(0, response.message.result.sku)
|
72
|
+
end
|
73
|
+
|
74
|
+
def test_request_report
|
75
|
+
response = RequestReportResponse.format(xml_for('request_report'))
|
76
|
+
|
77
|
+
assert_equal("88faca76-b600-46d2-b53c-0c8c4533e43a", response.request_id)
|
78
|
+
|
79
|
+
assert(response.report_request)
|
80
|
+
assert_equal(response.report_request.report_type, "_GET_MERCHANT_LISTINGS_DATA_")
|
81
|
+
assert_equal(response.report_request.scheduled?, false)
|
82
|
+
assert_equal(response.report_request.report_processing_status, "_SUBMITTED_")
|
83
|
+
end
|
84
|
+
|
85
|
+
def test_get_report_request_list
|
86
|
+
response = GetReportRequestListResponse.format(xml_for('get_report_request_list'))
|
87
|
+
|
88
|
+
assert_equal(response.request_id, "1e1d7b22-004e-4333-a881-1f20b671097f")
|
89
|
+
assert(response.has_next?)
|
90
|
+
assert_equal(response.next_token, "gTw92cRxgz0D2s1QD6a1Fdz+0b6t4r6aM48r5nOh7ZQ2cKWBkRSk57AfQiDLYYb/tts/YTgAGXw7u4xT348+ZoSJ8NeAlfpOrrBJpKO2HAHCv/LqsB0EzxybTwcKfw+6oQjX0m4upU+Q1A2v3FCYQ1eWYigAJMzhvZSqczZdpQRFrR1eNdlVGQ==")
|
91
|
+
assert_equal(response.report_requests.size, 10)
|
92
|
+
end
|
93
|
+
|
94
|
+
def test_get_report_request_list_by_next_token
|
95
|
+
response = GetReportRequestListByNextTokenResponse.format(xml_for('get_report_request_list_by_next_token'))
|
96
|
+
|
97
|
+
assert_equal("732480cb-84a8-4c15-9084-a46bd9a0889b", response.request_id)
|
98
|
+
assert_equal('none', response.next_token)
|
99
|
+
assert_equal(false, response.has_next?) # same as false ???
|
100
|
+
|
101
|
+
assert_equal(1, response.report_requests.size)
|
102
|
+
assert_equal(2291326454, response.report_requests.first.id)
|
103
|
+
assert_equal('732480cb-84a8-4c15-9084-a46bd9a0889b', response.request_id)
|
104
|
+
end
|
105
|
+
|
106
|
+
def test_get_report_request_count
|
107
|
+
response = GetReportRequestCountResponse.format(xml_for('get_report_request_count'))
|
108
|
+
|
109
|
+
assert_equal(1276, response.count)
|
110
|
+
assert_equal('7e155027-3741-4422-95a7-1de12703c13e', response.request_id)
|
111
|
+
end
|
112
|
+
|
113
|
+
def test_cancel_report_requests
|
114
|
+
response = CancelReportRequestsResponse.format(xml_for('cancel_report_requests'))
|
115
|
+
|
116
|
+
assert_equal(10, response.count)
|
117
|
+
assert_equal(1, response.report_requests.size)
|
118
|
+
assert_equal('a720f9d6-83e9-4684-bc35-065b41ed5ca4', response.request_id)
|
119
|
+
end
|
120
|
+
|
121
|
+
def test_get_report_list_response
|
122
|
+
response = GetReportListResponse.format(xml_for('get_report_list'))
|
123
|
+
|
124
|
+
assert_equal("fbf677c1-dcee-4110-bc88-2ba3702e331b", response.request_id)
|
125
|
+
assert(response.has_next?)
|
126
|
+
#assert_equal(response.next_token, "2YgYW55IGNhcm5hbCBwbGVhc3VyZS4=")
|
127
|
+
assert_equal(response.reports.size, 1)
|
128
|
+
|
129
|
+
assert_equal(898899473, response.reports.first.id)
|
130
|
+
assert_equal('_GET_MERCHANT_LISTINGS_DATA_', response.reports.first.type)
|
131
|
+
assert_equal(2278662938, response.reports.first.report_request_id)
|
132
|
+
assert_equal(Time.parse('Tue Feb 10 04:22:33 -0500 2009'), response.reports.first.available_date)
|
133
|
+
assert_equal(response.reports.first.acknowledged?, false)
|
134
|
+
end
|
135
|
+
|
136
|
+
def test_get_report_count
|
137
|
+
response = GetReportCountResponse.format(xml_for('get_report_count'))
|
138
|
+
|
139
|
+
assert_equal(166, response.count)
|
140
|
+
assert_equal('a497aadb-5ea1-49bf-aa14-dabe914465e3', response.request_id)
|
141
|
+
end
|
142
|
+
|
143
|
+
def test_manage_report_schedule
|
144
|
+
response = ManageReportScheduleResponse.format(xml_for('manage_report_schedule'))
|
145
|
+
|
146
|
+
assert_equal(1, response.count)
|
147
|
+
assert_equal('7ee1bc50-5a13-4db1-afd7-1386e481984e', response.request_id)
|
148
|
+
|
149
|
+
assert(response.report_schedule)
|
150
|
+
assert_equal('_GET_ORDERS_DATA_', response.report_schedule.report_type)
|
151
|
+
assert_equal('_30_DAYS_', response.report_schedule.schedule)
|
152
|
+
assert_equal(Time.parse('2009-02-20T02:10:42+00:00'), response.report_schedule.scheduled_date)
|
153
|
+
end
|
154
|
+
|
155
|
+
def test_get_report_schedule_list_response
|
156
|
+
response = GetReportScheduleListResponse.format(xml_for('get_report_schedule_list'))
|
157
|
+
|
158
|
+
assert_equal("c0464157-b74f-4e52-bd1a-4ebf4bc7e5aa", response.request_id)
|
159
|
+
assert(response.has_next?)
|
160
|
+
assert_equal("4XgYW55IPQhcm5hbCBwbGVhc3VyZS4=", response.next_token)
|
161
|
+
|
162
|
+
assert_equal(response.report_schedules.size, 1)
|
163
|
+
|
164
|
+
assert_equal('_GET_ORDERS_DATA_', response.report_schedules[0].report_type)
|
165
|
+
assert_equal('_30_DAYS_', response.report_schedules[0].schedule)
|
166
|
+
assert_equal(Time.parse('2009-02-20T02:10:42+00:00'), response.report_schedules[0].scheduled_date)
|
167
|
+
end
|
168
|
+
|
169
|
+
def test_get_report_schedule_list_by_next_token
|
170
|
+
response = GetReportScheduleListByNextTokenResponse.format(xml_for('get_report_schedule_list_by_next_token'))
|
171
|
+
|
172
|
+
assert_equal("c0464157-b74f-4e52-bd1a-4ebf4bc7e5aa", response.request_id)
|
173
|
+
assert_equal('none', response.next_token)
|
174
|
+
assert_equal(false, response.has_next?) # same as false ???
|
175
|
+
|
176
|
+
assert_equal(1, response.report_schedules.size)
|
177
|
+
# assert_equal(13050620, response.report_schedules[0].id)
|
178
|
+
assert_equal('c0464157-b74f-4e52-bd1a-4ebf4bc7e5aa', response.request_id)
|
179
|
+
end
|
180
|
+
|
181
|
+
def test_get_report_schedule_count
|
182
|
+
response = GetReportScheduleCountResponse.format(xml_for('get_report_schedule_count'))
|
183
|
+
|
184
|
+
assert_equal(18, response.count)
|
185
|
+
assert_equal('21e482a8-15c7-4da3-91a4-424995ed0756', response.request_id)
|
186
|
+
end
|
187
|
+
|
188
|
+
def test_update_report_acknowledgements
|
189
|
+
response = UpdateReportAcknowledgementsResponse.format(xml_for('update_report_acknowledgements'))
|
190
|
+
|
191
|
+
assert_equal(1, response.count)
|
192
|
+
assert_equal('42a578a7-ed92-486b-ac67-5de7464fcdfa', response.request_id)
|
193
|
+
assert(response.reports)
|
194
|
+
end
|
195
|
+
|
196
|
+
end
|
197
|
+
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), 'test_helper')
|
2
|
+
|
3
|
+
class SignatureTest < Test::Unit::TestCase
|
4
|
+
def setup
|
5
|
+
@expected_base64 = "F8zvW31wDYENPZrwkVYaPOLHh2R+goZncb0SlwTwyes="
|
6
|
+
@expected_digest = "\027\314\357[}p\r\201\r=\232\360\221V\032<\342\307\207d~\202\206gq\275\022\227\004\360\311\353"
|
7
|
+
end
|
8
|
+
|
9
|
+
def test_sign_with_string_keys
|
10
|
+
signature = Amazon::MWS::Authentication::Signature.new(
|
11
|
+
{"devil" => "666"},
|
12
|
+
{:verb => :get, :secret_access_key => "beelzebub"}
|
13
|
+
)
|
14
|
+
|
15
|
+
# Not sure if this really helps, just locks it down
|
16
|
+
assert_equal(@expected_base64, signature)
|
17
|
+
assert_equal(@expected_digest, Base64.decode64(signature))
|
18
|
+
end
|
19
|
+
|
20
|
+
def test_sign_with_symbol_keys
|
21
|
+
signature = Amazon::MWS::Authentication::Signature.new(
|
22
|
+
{:devil => "666"},
|
23
|
+
{:verb => :get, :secret_access_key => "beelzebub"}
|
24
|
+
)
|
25
|
+
|
26
|
+
# Not sure if this really helps, just locks it down
|
27
|
+
assert_equal(@expected_base64, signature)
|
28
|
+
assert_equal(@expected_digest, Base64.decode64(signature))
|
29
|
+
end
|
30
|
+
end
|