active_fulfillment 2.1.9 → 3.0.0.pre2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +68 -0
- data/lib/active_fulfillment.rb +5 -5
- data/lib/active_fulfillment/base.rb +10 -0
- data/lib/active_fulfillment/response.rb +26 -0
- data/lib/active_fulfillment/service.rb +56 -0
- data/lib/active_fulfillment/services.rb +5 -0
- data/lib/active_fulfillment/services/amazon_mws.rb +473 -0
- data/lib/active_fulfillment/services/james_and_james.rb +122 -0
- data/lib/active_fulfillment/services/shipwire.rb +266 -0
- data/lib/active_fulfillment/services/shopify_api.rb +125 -0
- data/lib/active_fulfillment/services/webgistix.rb +334 -0
- data/lib/active_fulfillment/version.rb +4 -0
- data/test/remote/amazon_mws_test.rb +20 -17
- data/test/remote/james_and_james_test.rb +77 -0
- data/test/remote/shipwire_test.rb +25 -25
- data/test/remote/webgistix_test.rb +21 -21
- data/test/test_helper.rb +27 -52
- data/test/unit/base_test.rb +4 -4
- data/test/unit/services/amazon_mws_test.rb +56 -26
- data/test/unit/services/james_and_james_test.rb +90 -0
- data/test/unit/services/shipwire_test.rb +18 -18
- data/test/unit/services/shopify_api_test.rb +7 -20
- data/test/unit/services/webgistix_test.rb +35 -35
- metadata +32 -114
- data/CHANGELOG +0 -62
- data/lib/active_fulfillment/fulfillment/base.rb +0 -12
- data/lib/active_fulfillment/fulfillment/response.rb +0 -28
- data/lib/active_fulfillment/fulfillment/service.rb +0 -58
- data/lib/active_fulfillment/fulfillment/services.rb +0 -5
- data/lib/active_fulfillment/fulfillment/services/amazon.rb +0 -389
- data/lib/active_fulfillment/fulfillment/services/amazon_mws.rb +0 -454
- data/lib/active_fulfillment/fulfillment/services/shipwire.rb +0 -268
- data/lib/active_fulfillment/fulfillment/services/shopify_api.rb +0 -125
- data/lib/active_fulfillment/fulfillment/services/webgistix.rb +0 -338
- data/lib/active_fulfillment/fulfillment/version.rb +0 -6
- data/test/fixtures.yml +0 -16
- data/test/fixtures/xml/amazon/inventory_get_response.xml +0 -17
- data/test/fixtures/xml/amazon/inventory_list_response.xml +0 -29
- data/test/fixtures/xml/amazon/inventory_list_response_with_next_1.xml +0 -30
- data/test/fixtures/xml/amazon/inventory_list_response_with_next_2.xml +0 -29
- data/test/fixtures/xml/amazon/tracking_response_1.xml +0 -56
- data/test/fixtures/xml/amazon/tracking_response_2.xml +0 -38
- data/test/fixtures/xml/amazon/tracking_response_error.xml +0 -13
- data/test/fixtures/xml/amazon/tracking_response_not_found.xml +0 -13
- data/test/fixtures/xml/amazon_mws/fulfillment_get_fulfillment_order.xml +0 -114
- data/test/fixtures/xml/amazon_mws/fulfillment_get_fulfillment_order_2.xml +0 -90
- data/test/fixtures/xml/amazon_mws/fulfillment_get_fullfillment_order_with_multiple_tracking_numbers.xml +0 -121
- data/test/fixtures/xml/amazon_mws/fulfillment_list_all_fulfillment_orders.xml +0 -70
- data/test/fixtures/xml/amazon_mws/inventory_list_inventory_item_supply.xml +0 -32
- data/test/fixtures/xml/amazon_mws/inventory_list_inventory_supply.xml +0 -75
- data/test/fixtures/xml/amazon_mws/inventory_list_inventory_supply_by_next_token.xml +0 -38
- data/test/fixtures/xml/amazon_mws/tracking_response_error.xml +0 -9
- data/test/fixtures/xml/amazon_mws/tracking_response_not_found.xml +0 -9
- data/test/fixtures/xml/shipwire/fulfillment_failure_response.xml +0 -7
- data/test/fixtures/xml/shipwire/invalid_login_response.xml +0 -7
- data/test/fixtures/xml/shipwire/inventory_get_response.xml +0 -44
- data/test/fixtures/xml/shipwire/successful_empty_tracking_response.xml +0 -8
- data/test/fixtures/xml/shipwire/successful_live_tracking_response.xml +0 -53
- data/test/fixtures/xml/shipwire/successful_tracking_response.xml +0 -16
- data/test/fixtures/xml/shipwire/successful_tracking_response_with_tracking_urls.xml +0 -31
- data/test/fixtures/xml/webgistix/multiple_tracking_response.xml +0 -21
- data/test/fixtures/xml/webgistix/tracking_response.xml +0 -14
- data/test/remote/amazon_test.rb +0 -124
- data/test/unit/services/amazon_test.rb +0 -271
@@ -0,0 +1,90 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class JamesAndJamesTest < Minitest::Test
|
4
|
+
def setup
|
5
|
+
ActiveFulfillment::Base.mode = :test
|
6
|
+
|
7
|
+
@service = ActiveFulfillment::JamesAndJamesService.new(subdomain: "client", key: "secret")
|
8
|
+
|
9
|
+
@options = {
|
10
|
+
:shipping_method => 'UPS Ground'
|
11
|
+
}
|
12
|
+
|
13
|
+
@address = { :name => 'Fred Brooks',
|
14
|
+
:address1 => '1234 Penny Lane',
|
15
|
+
:city => 'Jonsetown',
|
16
|
+
:state => 'NC',
|
17
|
+
:country => 'US',
|
18
|
+
:zip => '23456',
|
19
|
+
:email => 'buyer@jadedpallet.com'
|
20
|
+
}
|
21
|
+
|
22
|
+
@line_items = [
|
23
|
+
{sku: '9999', quantity: 25}
|
24
|
+
]
|
25
|
+
end
|
26
|
+
|
27
|
+
def test_missing_key
|
28
|
+
assert_raises(ArgumentError) do
|
29
|
+
ActiveFulfillment::JamesAndJamesService.new
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
def test_credentials_present
|
34
|
+
assert ActiveFulfillment::JamesAndJamesService.new(subdomain: "client", key: "secret")
|
35
|
+
end
|
36
|
+
|
37
|
+
def test_successful_fulfillment
|
38
|
+
@service.expects(:ssl_post).returns(successful_response)
|
39
|
+
|
40
|
+
@options[:billing_address] = @address
|
41
|
+
response = @service.fulfill('123456', @address, @line_items, @options)
|
42
|
+
assert response.success?
|
43
|
+
assert response.test?
|
44
|
+
end
|
45
|
+
|
46
|
+
def test_failed_fulfillment
|
47
|
+
@service.expects(:ssl_post).returns(failure_response)
|
48
|
+
|
49
|
+
@options[:billing_address] = @address
|
50
|
+
response = @service.fulfill('123456', @address, @line_items, @options)
|
51
|
+
assert !response.success?
|
52
|
+
assert response.test?
|
53
|
+
end
|
54
|
+
|
55
|
+
def test_stock_levels
|
56
|
+
@service.expects(:ssl_get).returns(inventory_response)
|
57
|
+
|
58
|
+
response = @service.fetch_stock_levels
|
59
|
+
assert response.success?
|
60
|
+
assert_equal 99, response.stock['AAA']
|
61
|
+
assert_equal 9, response.stock['BBB']
|
62
|
+
end
|
63
|
+
|
64
|
+
def test_garbage_response
|
65
|
+
@service.expects(:ssl_post).returns(garbage_response)
|
66
|
+
|
67
|
+
@options[:billing_address] = @address
|
68
|
+
response = @service.fulfill('123456', @address, @line_items, @options)
|
69
|
+
assert !response.success?
|
70
|
+
end
|
71
|
+
|
72
|
+
private
|
73
|
+
|
74
|
+
def successful_response
|
75
|
+
'{"success": true, "valid": true, "test": true}'
|
76
|
+
end
|
77
|
+
|
78
|
+
def failure_response
|
79
|
+
'{"success": false, "test": true}'
|
80
|
+
end
|
81
|
+
|
82
|
+
def garbage_response
|
83
|
+
'<font face="Arial" size=2>/XML/shippingTest.asp</font><font face="Arial" size=2>, line 39</font>'
|
84
|
+
end
|
85
|
+
|
86
|
+
def inventory_response
|
87
|
+
'{"success": true, "stock": {"AAA": 99, "BBB": 9}, "test": true}'
|
88
|
+
end
|
89
|
+
|
90
|
+
end
|
@@ -1,10 +1,12 @@
|
|
1
1
|
require 'test_helper'
|
2
2
|
|
3
|
-
class ShipwireTest < Test
|
3
|
+
class ShipwireTest < Minitest::Test
|
4
|
+
include ActiveFulfillment::Test::Fixtures
|
5
|
+
|
4
6
|
def setup
|
5
|
-
Base.mode = :test
|
7
|
+
ActiveFulfillment::Base.mode = :test
|
6
8
|
|
7
|
-
@shipwire = ShipwireService.new(
|
9
|
+
@shipwire = ActiveFulfillment::ShipwireService.new(
|
8
10
|
:login => 'cody@example.com',
|
9
11
|
:password => 'test'
|
10
12
|
)
|
@@ -29,30 +31,28 @@ class ShipwireTest < Test::Unit::TestCase
|
|
29
31
|
end
|
30
32
|
|
31
33
|
def test_missing_login
|
32
|
-
|
33
|
-
ShipwireService.new(:password => 'test')
|
34
|
+
assert_raises(ArgumentError) do
|
35
|
+
ActiveFulfillment::ShipwireService.new(:password => 'test')
|
34
36
|
end
|
35
37
|
end
|
36
38
|
|
37
39
|
def test_missing_password
|
38
|
-
|
39
|
-
ShipwireService.new(:login => 'cody')
|
40
|
+
assert_raises(ArgumentError) do
|
41
|
+
ActiveFulfillment::ShipwireService.new(:login => 'cody')
|
40
42
|
end
|
41
43
|
end
|
42
44
|
|
43
45
|
def test_missing_credentials
|
44
|
-
|
45
|
-
ShipwireService.new(:password => 'test')
|
46
|
+
assert_raises(ArgumentError) do
|
47
|
+
ActiveFulfillment::ShipwireService.new(:password => 'test')
|
46
48
|
end
|
47
49
|
end
|
48
50
|
|
49
51
|
def test_credentials_present
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
)
|
55
|
-
end
|
52
|
+
assert ActiveFulfillment::ShipwireService.new(
|
53
|
+
:login => 'cody',
|
54
|
+
:password => 'test'
|
55
|
+
)
|
56
56
|
end
|
57
57
|
|
58
58
|
def test_country_format
|
@@ -72,7 +72,7 @@ class ShipwireTest < Test::Unit::TestCase
|
|
72
72
|
end
|
73
73
|
|
74
74
|
def test_stock_levels_include_pending_when_set
|
75
|
-
@shipwire = ShipwireService.new(
|
75
|
+
@shipwire = ActiveFulfillment::ShipwireService.new(
|
76
76
|
:login => 'cody@example.com',
|
77
77
|
:password => 'test',
|
78
78
|
:include_pending_stock => true
|
@@ -88,7 +88,7 @@ class ShipwireTest < Test::Unit::TestCase
|
|
88
88
|
end
|
89
89
|
|
90
90
|
def test_inventory_request_with_include_empty_tag
|
91
|
-
@shipwire = ShipwireService.new(
|
91
|
+
@shipwire = ActiveFulfillment::ShipwireService.new(
|
92
92
|
:login => 'cody@example.com',
|
93
93
|
:password => 'test',
|
94
94
|
:include_empty_stock => true
|
@@ -163,7 +163,7 @@ class ShipwireTest < Test::Unit::TestCase
|
|
163
163
|
end
|
164
164
|
|
165
165
|
def test_affiliate_id
|
166
|
-
|
166
|
+
ActiveFulfillment::ShipwireService.affiliate_id = 'affiliate_id'
|
167
167
|
|
168
168
|
xml = REXML::Document.new(@shipwire.send(:build_fulfillment_request, '123456', @address, @line_items, @options))
|
169
169
|
affiliate_id = REXML::XPath.first(xml, "//AffiliateId")
|
@@ -1,6 +1,6 @@
|
|
1
1
|
require 'test_helper'
|
2
2
|
|
3
|
-
class ShopifyAPITest < Test
|
3
|
+
class ShopifyAPITest < Minitest::Test
|
4
4
|
|
5
5
|
def setup
|
6
6
|
@service = build_service()
|
@@ -64,19 +64,6 @@ class ShopifyAPITest < Test::Unit::TestCase
|
|
64
64
|
assert_equal expected, service.fetch_stock_levels().stock_levels
|
65
65
|
end
|
66
66
|
|
67
|
-
def test_parse_tracking_data_response_parses_xml_correctly
|
68
|
-
service = build_service(format: 'xml')
|
69
|
-
xml = '<TrackingNumbers><Order><ID>123</ID><Tracking>abc</Tracking></Order><Order><ID>456</ID><Tracking>def</Tracking></Order></TrackingNumbers>'
|
70
|
-
expected = {'123' => 'abc', '456' => 'def'}
|
71
|
-
request_params = {order_ids: [1, 2, 4], order_names: [1, 2, 4]}
|
72
|
-
|
73
|
-
mock_app_request('fetch_tracking_numbers', request_params, xml)
|
74
|
-
assert_equal expected, service.fetch_tracking_data([1,2,4]).tracking_numbers
|
75
|
-
|
76
|
-
after_deprecation = Time.now.to_date >= ShopifyAPIService::OrderIdCutoffDate
|
77
|
-
flunk "The request params should no longer include 'order_ids'" if after_deprecation
|
78
|
-
end
|
79
|
-
|
80
67
|
def test_parse_stock_level_response_parses_json_with_root_correctly
|
81
68
|
json = '{"stock_levels": {"998KIB":"10"}}'
|
82
69
|
expected = {'998KIB' => "10"}
|
@@ -111,19 +98,19 @@ class ShopifyAPITest < Test::Unit::TestCase
|
|
111
98
|
|
112
99
|
def test_send_app_request_rescues_response_errors
|
113
100
|
response = stub(code: "404", message: "Not Found")
|
114
|
-
@service.expects(:ssl_get).raises(
|
115
|
-
refute @service.fetch_stock_levels
|
101
|
+
@service.expects(:ssl_get).raises(ActiveUtils::ResponseError, response)
|
102
|
+
refute @service.fetch_stock_levels.success?
|
116
103
|
end
|
117
104
|
|
118
105
|
def test_send_app_request_rescues_invalid_response_errors
|
119
|
-
@service.expects(:ssl_get).raises(
|
120
|
-
refute @service.fetch_stock_levels
|
106
|
+
@service.expects(:ssl_get).raises(ActiveUtils::InvalidResponseError.new("error html"))
|
107
|
+
refute @service.fetch_stock_levels.success?
|
121
108
|
end
|
122
109
|
|
123
110
|
private
|
124
111
|
|
125
112
|
def mock_app_request(action, input, output)
|
126
|
-
ShopifyAPIService.any_instance.expects(:send_app_request).with(action, nil, input).returns(output)
|
113
|
+
ActiveFulfillment::ShopifyAPIService.any_instance.expects(:send_app_request).with(action, nil, input).returns(output)
|
127
114
|
end
|
128
115
|
|
129
116
|
def build_service(options = {})
|
@@ -132,6 +119,6 @@ class ShopifyAPITest < Test::Unit::TestCase
|
|
132
119
|
callback_url: 'http://supershopifyapptwin.com',
|
133
120
|
format: 'json'
|
134
121
|
})
|
135
|
-
ShopifyAPIService.new(options)
|
122
|
+
ActiveFulfillment::ShopifyAPIService.new(options)
|
136
123
|
end
|
137
124
|
end
|
@@ -1,19 +1,21 @@
|
|
1
1
|
require 'test_helper'
|
2
2
|
|
3
|
-
class WebgistixTest < Test
|
4
|
-
|
5
|
-
Base.mode = :test
|
3
|
+
class WebgistixTest < Minitest::Test
|
4
|
+
include ActiveFulfillment::Test::Fixtures
|
6
5
|
|
7
|
-
|
6
|
+
def setup
|
7
|
+
ActiveFulfillment::Base.mode = :test
|
8
|
+
|
9
|
+
@service = ActiveFulfillment::WebgistixService.new(
|
8
10
|
:login => 'cody@example.com',
|
9
11
|
:password => 'test'
|
10
12
|
)
|
11
13
|
|
12
|
-
|
13
|
-
|
14
|
-
|
14
|
+
@options = {
|
15
|
+
:shipping_method => 'UPS Ground'
|
16
|
+
}
|
15
17
|
|
16
|
-
|
18
|
+
@address = { :name => 'Fred Brooks',
|
17
19
|
:address1 => '1234 Penny Lane',
|
18
20
|
:city => 'Jonsetown',
|
19
21
|
:state => 'NC',
|
@@ -22,38 +24,36 @@ class WebgistixTest < Test::Unit::TestCase
|
|
22
24
|
:email => 'buyer@jadedpallet.com'
|
23
25
|
}
|
24
26
|
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
27
|
+
@line_items = [
|
28
|
+
{ :sku => '9999',
|
29
|
+
:quantity => 25
|
30
|
+
}
|
31
|
+
]
|
30
32
|
end
|
31
33
|
|
32
34
|
def test_missing_login
|
33
|
-
|
34
|
-
WebgistixService.new(:password => 'test')
|
35
|
+
assert_raises(ArgumentError) do
|
36
|
+
ActiveFulfillment::WebgistixService.new(:password => 'test')
|
35
37
|
end
|
36
38
|
end
|
37
39
|
|
38
40
|
def test_missing_password
|
39
|
-
|
40
|
-
WebgistixService.new(:login => 'cody')
|
41
|
+
assert_raises(ArgumentError) do
|
42
|
+
ActiveFulfillment::WebgistixService.new(:login => 'cody')
|
41
43
|
end
|
42
44
|
end
|
43
45
|
|
44
46
|
def test_missing_credentials
|
45
|
-
|
46
|
-
WebgistixService.new(:password => 'test')
|
47
|
+
assert_raises(ArgumentError) do
|
48
|
+
ActiveFulfillment::WebgistixService.new(:password => 'test')
|
47
49
|
end
|
48
50
|
end
|
49
51
|
|
50
52
|
def test_credentials_present
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
)
|
56
|
-
end
|
53
|
+
assert ActiveFulfillment::WebgistixService.new(
|
54
|
+
:login => 'cody',
|
55
|
+
:password => 'test'
|
56
|
+
)
|
57
57
|
end
|
58
58
|
|
59
59
|
def test_successful_fulfillment
|
@@ -62,7 +62,7 @@ class WebgistixTest < Test::Unit::TestCase
|
|
62
62
|
response = @service.fulfill('123456', @address, @line_items, @options)
|
63
63
|
assert response.success?
|
64
64
|
assert response.test?
|
65
|
-
assert_equal WebgistixService::SUCCESS_MESSAGE, response.message
|
65
|
+
assert_equal ActiveFulfillment::WebgistixService::SUCCESS_MESSAGE, response.message
|
66
66
|
assert_equal '619669', response.params['order_id']
|
67
67
|
end
|
68
68
|
|
@@ -72,7 +72,7 @@ class WebgistixTest < Test::Unit::TestCase
|
|
72
72
|
response = @service.fulfill('123456', @address, @line_items, @options)
|
73
73
|
assert response.success?
|
74
74
|
assert response.test?
|
75
|
-
assert_equal WebgistixService::SUCCESS_MESSAGE, response.message
|
75
|
+
assert_equal ActiveFulfillment::WebgistixService::SUCCESS_MESSAGE, response.message
|
76
76
|
assert_nil response.params['order_id']
|
77
77
|
end
|
78
78
|
|
@@ -82,7 +82,7 @@ class WebgistixTest < Test::Unit::TestCase
|
|
82
82
|
response = @service.fulfill('123456', @address, @line_items, @options)
|
83
83
|
assert !response.success?
|
84
84
|
assert response.test?
|
85
|
-
assert_equal WebgistixService::FAILURE_MESSAGE, response.message
|
85
|
+
assert_equal ActiveFulfillment::WebgistixService::FAILURE_MESSAGE, response.message
|
86
86
|
assert_nil response.params['order_id']
|
87
87
|
|
88
88
|
assert_equal 'No Address Line 1', response.params['error_0']
|
@@ -95,7 +95,7 @@ class WebgistixTest < Test::Unit::TestCase
|
|
95
95
|
|
96
96
|
response = @service.fetch_stock_levels
|
97
97
|
assert response.success?
|
98
|
-
assert_equal WebgistixService::SUCCESS_MESSAGE, response.message
|
98
|
+
assert_equal ActiveFulfillment::WebgistixService::SUCCESS_MESSAGE, response.message
|
99
99
|
assert_equal 202, response.stock_levels['GN-00-01A']
|
100
100
|
assert_equal 199, response.stock_levels['GN-00-02A']
|
101
101
|
end
|
@@ -105,7 +105,7 @@ class WebgistixTest < Test::Unit::TestCase
|
|
105
105
|
|
106
106
|
response = @service.fetch_tracking_numbers(['AB12345', 'XY4567'])
|
107
107
|
assert response.success?
|
108
|
-
assert_equal WebgistixService::SUCCESS_MESSAGE, response.message
|
108
|
+
assert_equal ActiveFulfillment::WebgistixService::SUCCESS_MESSAGE, response.message
|
109
109
|
assert_equal ['1Z8E5A380396682872'], response.tracking_numbers['AB12345']
|
110
110
|
assert_nil response.tracking_numbers['XY4567']
|
111
111
|
end
|
@@ -117,7 +117,7 @@ class WebgistixTest < Test::Unit::TestCase
|
|
117
117
|
response = @service.fetch_tracking_numbers([invoice_number])
|
118
118
|
|
119
119
|
assert response.success?
|
120
|
-
assert_equal WebgistixService::SUCCESS_MESSAGE, response.message
|
120
|
+
assert_equal ActiveFulfillment::WebgistixService::SUCCESS_MESSAGE, response.message
|
121
121
|
assert_equal ['345678070437428', '546932544227'], response.tracking_numbers[invoice_number]
|
122
122
|
end
|
123
123
|
|
@@ -127,7 +127,7 @@ class WebgistixTest < Test::Unit::TestCase
|
|
127
127
|
response = @service.fetch_tracking_data(['AB12345', 'XY4567'])
|
128
128
|
|
129
129
|
assert response.success?
|
130
|
-
assert_equal WebgistixService::SUCCESS_MESSAGE, response.message
|
130
|
+
assert_equal ActiveFulfillment::WebgistixService::SUCCESS_MESSAGE, response.message
|
131
131
|
assert_equal ['1Z8E5A380396682872'], response.tracking_numbers['AB12345']
|
132
132
|
assert_equal ['UPS'], response.tracking_companies['AB12345']
|
133
133
|
assert_equal({}, response.tracking_urls)
|
@@ -151,7 +151,7 @@ class WebgistixTest < Test::Unit::TestCase
|
|
151
151
|
response = @service.fulfill('123456', @address, @line_items, @options)
|
152
152
|
assert !response.success?
|
153
153
|
assert response.test?
|
154
|
-
assert_equal WebgistixService::FAILURE_MESSAGE, response.message
|
154
|
+
assert_equal ActiveFulfillment::WebgistixService::FAILURE_MESSAGE, response.message
|
155
155
|
assert_nil response.params['order_id']
|
156
156
|
end
|
157
157
|
|
@@ -167,12 +167,12 @@ class WebgistixTest < Test::Unit::TestCase
|
|
167
167
|
|
168
168
|
def test_duplicate_response_is_treated_as_success
|
169
169
|
response = stub(:code => 200, :body => duplicate_response, :message => '')
|
170
|
-
Net::HTTP.any_instance.stubs(:post).raises(
|
170
|
+
Net::HTTP.any_instance.stubs(:post).raises(ActiveUtils::ConnectionError).returns(response)
|
171
171
|
|
172
172
|
response = @service.fulfill('123456', @address, @line_items, @options)
|
173
173
|
assert response.success?
|
174
174
|
assert response.test?
|
175
|
-
assert_equal WebgistixService::DUPLICATE_MESSAGE, response.message
|
175
|
+
assert_equal ActiveFulfillment::WebgistixService::DUPLICATE_MESSAGE, response.message
|
176
176
|
assert response.params['duplicate']
|
177
177
|
assert_nil response.params['order_id']
|
178
178
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: active_fulfillment
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 3.0.0.pre2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Cody Fauser
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2015-08-04 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activesupport
|
@@ -45,14 +45,14 @@ dependencies:
|
|
45
45
|
requirements:
|
46
46
|
- - "~>"
|
47
47
|
- !ruby/object:Gem::Version
|
48
|
-
version:
|
48
|
+
version: '3.0'
|
49
49
|
type: :runtime
|
50
50
|
prerelease: false
|
51
51
|
version_requirements: !ruby/object:Gem::Requirement
|
52
52
|
requirements:
|
53
53
|
- - "~>"
|
54
54
|
- !ruby/object:Gem::Version
|
55
|
-
version:
|
55
|
+
version: '3.0'
|
56
56
|
- !ruby/object:Gem::Dependency
|
57
57
|
name: rake
|
58
58
|
requirement: !ruby/object:Gem::Requirement
|
@@ -67,48 +67,34 @@ dependencies:
|
|
67
67
|
- - ">="
|
68
68
|
- !ruby/object:Gem::Version
|
69
69
|
version: '0'
|
70
|
-
- !ruby/object:Gem::Dependency
|
71
|
-
name: byebug
|
72
|
-
requirement: !ruby/object:Gem::Requirement
|
73
|
-
requirements:
|
74
|
-
- - ">="
|
75
|
-
- !ruby/object:Gem::Version
|
76
|
-
version: '0'
|
77
|
-
type: :development
|
78
|
-
prerelease: false
|
79
|
-
version_requirements: !ruby/object:Gem::Requirement
|
80
|
-
requirements:
|
81
|
-
- - ">="
|
82
|
-
- !ruby/object:Gem::Version
|
83
|
-
version: '0'
|
84
70
|
- !ruby/object:Gem::Dependency
|
85
71
|
name: mocha
|
86
72
|
requirement: !ruby/object:Gem::Requirement
|
87
73
|
requirements:
|
88
|
-
- - "
|
74
|
+
- - "~>"
|
89
75
|
- !ruby/object:Gem::Version
|
90
|
-
version: '
|
76
|
+
version: '1.1'
|
91
77
|
type: :development
|
92
78
|
prerelease: false
|
93
79
|
version_requirements: !ruby/object:Gem::Requirement
|
94
80
|
requirements:
|
95
|
-
- - "
|
81
|
+
- - "~>"
|
96
82
|
- !ruby/object:Gem::Version
|
97
|
-
version: '
|
83
|
+
version: '1.1'
|
98
84
|
- !ruby/object:Gem::Dependency
|
99
85
|
name: minitest
|
100
86
|
requirement: !ruby/object:Gem::Requirement
|
101
87
|
requirements:
|
102
88
|
- - ">="
|
103
89
|
- !ruby/object:Gem::Version
|
104
|
-
version: '
|
90
|
+
version: '4.7'
|
105
91
|
type: :development
|
106
92
|
prerelease: false
|
107
93
|
version_requirements: !ruby/object:Gem::Requirement
|
108
94
|
requirements:
|
109
95
|
- - ">="
|
110
96
|
- !ruby/object:Gem::Version
|
111
|
-
version: '
|
97
|
+
version: '4.7'
|
112
98
|
- !ruby/object:Gem::Dependency
|
113
99
|
name: timecop
|
114
100
|
requirement: !ruby/object:Gem::Requirement
|
@@ -123,73 +109,32 @@ dependencies:
|
|
123
109
|
- - ">="
|
124
110
|
- !ruby/object:Gem::Version
|
125
111
|
version: '0'
|
126
|
-
- !ruby/object:Gem::Dependency
|
127
|
-
name: rdoc
|
128
|
-
requirement: !ruby/object:Gem::Requirement
|
129
|
-
requirements:
|
130
|
-
- - ">="
|
131
|
-
- !ruby/object:Gem::Version
|
132
|
-
version: 2.4.2
|
133
|
-
type: :development
|
134
|
-
prerelease: false
|
135
|
-
version_requirements: !ruby/object:Gem::Requirement
|
136
|
-
requirements:
|
137
|
-
- - ">="
|
138
|
-
- !ruby/object:Gem::Version
|
139
|
-
version: 2.4.2
|
140
112
|
description:
|
141
113
|
email: cody@shopify.com
|
142
114
|
executables: []
|
143
115
|
extensions: []
|
144
116
|
extra_rdoc_files: []
|
145
117
|
files:
|
146
|
-
- CHANGELOG
|
118
|
+
- CHANGELOG.md
|
147
119
|
- lib/active_fulfillment.rb
|
148
|
-
- lib/active_fulfillment/
|
149
|
-
- lib/active_fulfillment/
|
150
|
-
- lib/active_fulfillment/
|
151
|
-
- lib/active_fulfillment/
|
152
|
-
- lib/active_fulfillment/
|
153
|
-
- lib/active_fulfillment/
|
154
|
-
- lib/active_fulfillment/
|
155
|
-
- lib/active_fulfillment/
|
156
|
-
- lib/active_fulfillment/
|
157
|
-
- lib/active_fulfillment/
|
158
|
-
- test/fixtures.yml
|
159
|
-
- test/fixtures/xml/amazon/inventory_get_response.xml
|
160
|
-
- test/fixtures/xml/amazon/inventory_list_response.xml
|
161
|
-
- test/fixtures/xml/amazon/inventory_list_response_with_next_1.xml
|
162
|
-
- test/fixtures/xml/amazon/inventory_list_response_with_next_2.xml
|
163
|
-
- test/fixtures/xml/amazon/tracking_response_1.xml
|
164
|
-
- test/fixtures/xml/amazon/tracking_response_2.xml
|
165
|
-
- test/fixtures/xml/amazon/tracking_response_error.xml
|
166
|
-
- test/fixtures/xml/amazon/tracking_response_not_found.xml
|
167
|
-
- test/fixtures/xml/amazon_mws/fulfillment_get_fulfillment_order.xml
|
168
|
-
- test/fixtures/xml/amazon_mws/fulfillment_get_fulfillment_order_2.xml
|
169
|
-
- test/fixtures/xml/amazon_mws/fulfillment_get_fullfillment_order_with_multiple_tracking_numbers.xml
|
170
|
-
- test/fixtures/xml/amazon_mws/fulfillment_list_all_fulfillment_orders.xml
|
171
|
-
- test/fixtures/xml/amazon_mws/inventory_list_inventory_item_supply.xml
|
172
|
-
- test/fixtures/xml/amazon_mws/inventory_list_inventory_supply.xml
|
173
|
-
- test/fixtures/xml/amazon_mws/inventory_list_inventory_supply_by_next_token.xml
|
174
|
-
- test/fixtures/xml/amazon_mws/tracking_response_error.xml
|
175
|
-
- test/fixtures/xml/amazon_mws/tracking_response_not_found.xml
|
176
|
-
- test/fixtures/xml/shipwire/fulfillment_failure_response.xml
|
177
|
-
- test/fixtures/xml/shipwire/invalid_login_response.xml
|
178
|
-
- test/fixtures/xml/shipwire/inventory_get_response.xml
|
179
|
-
- test/fixtures/xml/shipwire/successful_empty_tracking_response.xml
|
180
|
-
- test/fixtures/xml/shipwire/successful_live_tracking_response.xml
|
181
|
-
- test/fixtures/xml/shipwire/successful_tracking_response.xml
|
182
|
-
- test/fixtures/xml/shipwire/successful_tracking_response_with_tracking_urls.xml
|
183
|
-
- test/fixtures/xml/webgistix/multiple_tracking_response.xml
|
184
|
-
- test/fixtures/xml/webgistix/tracking_response.xml
|
120
|
+
- lib/active_fulfillment/base.rb
|
121
|
+
- lib/active_fulfillment/response.rb
|
122
|
+
- lib/active_fulfillment/service.rb
|
123
|
+
- lib/active_fulfillment/services.rb
|
124
|
+
- lib/active_fulfillment/services/amazon_mws.rb
|
125
|
+
- lib/active_fulfillment/services/james_and_james.rb
|
126
|
+
- lib/active_fulfillment/services/shipwire.rb
|
127
|
+
- lib/active_fulfillment/services/shopify_api.rb
|
128
|
+
- lib/active_fulfillment/services/webgistix.rb
|
129
|
+
- lib/active_fulfillment/version.rb
|
185
130
|
- test/remote/amazon_mws_test.rb
|
186
|
-
- test/remote/
|
131
|
+
- test/remote/james_and_james_test.rb
|
187
132
|
- test/remote/shipwire_test.rb
|
188
133
|
- test/remote/webgistix_test.rb
|
189
134
|
- test/test_helper.rb
|
190
135
|
- test/unit/base_test.rb
|
191
136
|
- test/unit/services/amazon_mws_test.rb
|
192
|
-
- test/unit/services/
|
137
|
+
- test/unit/services/james_and_james_test.rb
|
193
138
|
- test/unit/services/shipwire_test.rb
|
194
139
|
- test/unit/services/shopify_api_test.rb
|
195
140
|
- test/unit/services/webgistix_test.rb
|
@@ -212,47 +157,20 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
212
157
|
version: '0'
|
213
158
|
requirements: []
|
214
159
|
rubyforge_project:
|
215
|
-
rubygems_version: 2.2.
|
160
|
+
rubygems_version: 2.2.3
|
216
161
|
signing_key:
|
217
162
|
specification_version: 4
|
218
163
|
summary: Framework and tools for dealing with shipping, tracking and order fulfillment
|
219
164
|
services.
|
220
165
|
test_files:
|
221
|
-
- test/fixtures/xml/amazon/inventory_get_response.xml
|
222
|
-
- test/fixtures/xml/amazon/inventory_list_response.xml
|
223
|
-
- test/fixtures/xml/amazon/inventory_list_response_with_next_1.xml
|
224
|
-
- test/fixtures/xml/amazon/inventory_list_response_with_next_2.xml
|
225
|
-
- test/fixtures/xml/amazon/tracking_response_1.xml
|
226
|
-
- test/fixtures/xml/amazon/tracking_response_2.xml
|
227
|
-
- test/fixtures/xml/amazon/tracking_response_error.xml
|
228
|
-
- test/fixtures/xml/amazon/tracking_response_not_found.xml
|
229
|
-
- test/fixtures/xml/amazon_mws/fulfillment_get_fulfillment_order.xml
|
230
|
-
- test/fixtures/xml/amazon_mws/fulfillment_get_fulfillment_order_2.xml
|
231
|
-
- test/fixtures/xml/amazon_mws/fulfillment_get_fullfillment_order_with_multiple_tracking_numbers.xml
|
232
|
-
- test/fixtures/xml/amazon_mws/fulfillment_list_all_fulfillment_orders.xml
|
233
|
-
- test/fixtures/xml/amazon_mws/inventory_list_inventory_item_supply.xml
|
234
|
-
- test/fixtures/xml/amazon_mws/inventory_list_inventory_supply.xml
|
235
|
-
- test/fixtures/xml/amazon_mws/inventory_list_inventory_supply_by_next_token.xml
|
236
|
-
- test/fixtures/xml/amazon_mws/tracking_response_error.xml
|
237
|
-
- test/fixtures/xml/amazon_mws/tracking_response_not_found.xml
|
238
|
-
- test/fixtures/xml/shipwire/fulfillment_failure_response.xml
|
239
|
-
- test/fixtures/xml/shipwire/invalid_login_response.xml
|
240
|
-
- test/fixtures/xml/shipwire/inventory_get_response.xml
|
241
|
-
- test/fixtures/xml/shipwire/successful_empty_tracking_response.xml
|
242
|
-
- test/fixtures/xml/shipwire/successful_live_tracking_response.xml
|
243
|
-
- test/fixtures/xml/shipwire/successful_tracking_response.xml
|
244
|
-
- test/fixtures/xml/shipwire/successful_tracking_response_with_tracking_urls.xml
|
245
|
-
- test/fixtures/xml/webgistix/multiple_tracking_response.xml
|
246
|
-
- test/fixtures/xml/webgistix/tracking_response.xml
|
247
|
-
- test/fixtures.yml
|
248
|
-
- test/remote/amazon_mws_test.rb
|
249
|
-
- test/remote/amazon_test.rb
|
250
|
-
- test/remote/shipwire_test.rb
|
251
|
-
- test/remote/webgistix_test.rb
|
252
166
|
- test/test_helper.rb
|
253
|
-
- test/
|
254
|
-
- test/
|
255
|
-
- test/
|
256
|
-
- test/
|
167
|
+
- test/remote/webgistix_test.rb
|
168
|
+
- test/remote/shipwire_test.rb
|
169
|
+
- test/remote/james_and_james_test.rb
|
170
|
+
- test/remote/amazon_mws_test.rb
|
257
171
|
- test/unit/services/shopify_api_test.rb
|
258
172
|
- test/unit/services/webgistix_test.rb
|
173
|
+
- test/unit/services/shipwire_test.rb
|
174
|
+
- test/unit/services/james_and_james_test.rb
|
175
|
+
- test/unit/services/amazon_mws_test.rb
|
176
|
+
- test/unit/base_test.rb
|