active_fulfillment 2.0.2 → 2.1.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.
@@ -3,16 +3,16 @@ require 'test_helper'
3
3
  class WebgistixTest < Test::Unit::TestCase
4
4
  def setup
5
5
  Base.mode = :test
6
-
6
+
7
7
  @service = WebgistixService.new(
8
8
  :login => 'cody@example.com',
9
9
  :password => 'test'
10
10
  )
11
-
12
- @options = {
11
+
12
+ @options = {
13
13
  :shipping_method => 'UPS Ground'
14
14
  }
15
-
15
+
16
16
  @address = { :name => 'Fred Brooks',
17
17
  :address1 => '1234 Penny Lane',
18
18
  :city => 'Jonsetown',
@@ -21,32 +21,32 @@ class WebgistixTest < Test::Unit::TestCase
21
21
  :zip => '23456',
22
22
  :email => 'buyer@jadedpallet.com'
23
23
  }
24
-
24
+
25
25
  @line_items = [
26
26
  { :sku => '9999',
27
27
  :quantity => 25
28
28
  }
29
29
  ]
30
- end
31
-
30
+ end
31
+
32
32
  def test_missing_login
33
33
  assert_raise(ArgumentError) do
34
34
  WebgistixService.new(:password => 'test')
35
35
  end
36
36
  end
37
-
37
+
38
38
  def test_missing_password
39
39
  assert_raise(ArgumentError) do
40
40
  WebgistixService.new(:login => 'cody')
41
41
  end
42
42
  end
43
-
43
+
44
44
  def test_missing_credentials
45
45
  assert_raise(ArgumentError) do
46
46
  WebgistixService.new(:password => 'test')
47
47
  end
48
48
  end
49
-
49
+
50
50
  def test_credentials_present
51
51
  assert_nothing_raised do
52
52
  WebgistixService.new(
@@ -55,36 +55,36 @@ class WebgistixTest < Test::Unit::TestCase
55
55
  )
56
56
  end
57
57
  end
58
-
58
+
59
59
  def test_successful_fulfillment
60
60
  @service.expects(:ssl_post).returns(successful_response)
61
-
61
+
62
62
  response = @service.fulfill('123456', @address, @line_items, @options)
63
63
  assert response.success?
64
64
  assert response.test?
65
65
  assert_equal WebgistixService::SUCCESS_MESSAGE, response.message
66
66
  assert_equal '619669', response.params['order_id']
67
67
  end
68
-
68
+
69
69
  def test_minimal_successful_fulfillment
70
70
  @service.expects(:ssl_post).returns(minimal_successful_response)
71
-
71
+
72
72
  response = @service.fulfill('123456', @address, @line_items, @options)
73
73
  assert response.success?
74
74
  assert response.test?
75
75
  assert_equal WebgistixService::SUCCESS_MESSAGE, response.message
76
76
  assert_nil response.params['order_id']
77
77
  end
78
-
78
+
79
79
  def test_failed_fulfillment
80
80
  @service.expects(:ssl_post).returns(failure_response)
81
-
81
+
82
82
  response = @service.fulfill('123456', @address, @line_items, @options)
83
83
  assert !response.success?
84
84
  assert response.test?
85
85
  assert_equal 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']
89
89
  assert_equal 'Unknown ItemID: testitem', response.params['error_1']
90
90
  assert_equal 'Unknown ItemID: WX-01-1000', response.params['error_2']
@@ -92,7 +92,7 @@ class WebgistixTest < Test::Unit::TestCase
92
92
 
93
93
  def test_stock_levels
94
94
  @service.expects(:ssl_post).returns(inventory_response)
95
-
95
+
96
96
  response = @service.fetch_stock_levels
97
97
  assert response.success?
98
98
  assert_equal WebgistixService::SUCCESS_MESSAGE, response.message
@@ -102,7 +102,7 @@ class WebgistixTest < Test::Unit::TestCase
102
102
 
103
103
  def test_tracking_numbers
104
104
  @service.expects(:ssl_post).returns(xml_fixture('webgistix/tracking_response'))
105
-
105
+
106
106
  response = @service.fetch_tracking_numbers(['AB12345', 'XY4567'])
107
107
  assert response.success?
108
108
  assert_equal WebgistixService::SUCCESS_MESSAGE, response.message
@@ -121,38 +121,50 @@ class WebgistixTest < Test::Unit::TestCase
121
121
  assert_equal ['345678070437428', '546932544227'], response.tracking_numbers[invoice_number]
122
122
  end
123
123
 
124
+ def test_tracking_data
125
+ @service.expects(:ssl_post).returns(xml_fixture('webgistix/tracking_response'))
126
+
127
+ response = @service.fetch_tracking_data(['AB12345', 'XY4567'])
128
+
129
+ assert response.success?
130
+ assert_equal WebgistixService::SUCCESS_MESSAGE, response.message
131
+ assert_equal ['1Z8E5A380396682872'], response.tracking_numbers['AB12345']
132
+ assert_equal ['UPS'], response.tracking_companies['AB12345']
133
+ assert_equal({}, response.tracking_urls)
134
+ end
135
+
124
136
  def test_failed_login
125
137
  @service.expects(:ssl_post).returns(invalid_login_response)
126
-
138
+
127
139
  response = @service.fulfill('123456', @address, @line_items, @options)
128
140
  assert !response.success?
129
141
  assert response.test?
130
142
  assert_equal 'Invalid Credentials', response.message
131
143
  assert_nil response.params['order_id']
132
-
144
+
133
145
  assert_equal 'Invalid Credentials', response.params['error_0']
134
146
  end
135
-
147
+
136
148
  def test_garbage_response
137
149
  @service.expects(:ssl_post).returns(garbage_response)
138
-
150
+
139
151
  response = @service.fulfill('123456', @address, @line_items, @options)
140
152
  assert !response.success?
141
153
  assert response.test?
142
154
  assert_equal WebgistixService::FAILURE_MESSAGE, response.message
143
155
  assert_nil response.params['order_id']
144
156
  end
145
-
157
+
146
158
  def test_valid_credentials
147
159
  @service.expects(:ssl_post).returns(failure_response)
148
160
  assert @service.valid_credentials?
149
161
  end
150
-
162
+
151
163
  def test_invalid_credentials
152
164
  @service.expects(:ssl_post).returns(invalid_login_response)
153
165
  assert !@service.valid_credentials?
154
166
  end
155
-
167
+
156
168
  def test_duplicate_response_is_treated_as_success
157
169
  response = stub(:code => 200, :body => duplicate_response, :message => '')
158
170
  Net::HTTP.any_instance.stubs(:post).raises(ActiveMerchant::ConnectionError).returns(response)
@@ -168,35 +180,35 @@ class WebgistixTest < Test::Unit::TestCase
168
180
  def test_ensure_gateway_uses_safe_retry
169
181
  assert @service.retry_safe
170
182
  end
171
-
183
+
172
184
  private
173
185
  def minimal_successful_response
174
186
  '<Completed><Success>True</Success></Completed>'
175
187
  end
176
-
188
+
177
189
  def successful_response
178
190
  '<Completed><Success>True</Success><OrderID>619669</OrderID></Completed>'
179
191
  end
180
-
192
+
181
193
  def invalid_login_response
182
194
  '<Errors><Error>Invalid Credentials</Error></Errors>'
183
195
  end
184
-
196
+
185
197
  def failure_response
186
198
  '<Errors><Error>No Address Line 1</Error><Error>Unknown ItemID: testitem</Error><Error>Unknown ItemID: WX-01-1000</Error></Errors>'
187
199
  end
188
-
200
+
189
201
  def garbage_response
190
202
  '<font face="Arial" size=2>/XML/shippingTest.asp</font><font face="Arial" size=2>, line 39</font>'
191
203
  end
192
-
204
+
193
205
  def inventory_response
194
206
  '<InventoryXML>' +
195
207
  '<Item><ItemID>GN-00-01A</ItemID><ItemQty>202</ItemQty></Item>' +
196
208
  '<Item><ItemID>GN-00-02A</ItemID><ItemQty>199</ItemQty></Item>' +
197
209
  '</InventoryXML>'
198
210
  end
199
-
211
+
200
212
  def duplicate_response
201
213
  '<Completed><Success>Duplicate</Success></Completed>'
202
214
  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: 2.0.2
4
+ version: 2.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Cody Fauser