cheddargetter_client_ruby 0.1.0 → 0.2.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.
- data/VERSION +1 -1
- data/cheddargetter_client_ruby.gemspec +2 -2
- data/example/example.rb +5 -5
- data/lib/cheddar_getter/response.rb +37 -17
- data/test/test_cheddargetter_client_ruby.rb +74 -58
- metadata +4 -4
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.2.0
|
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{cheddargetter_client_ruby}
|
8
|
-
s.version = "0.
|
8
|
+
s.version = "0.2.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Expected Behavior"]
|
12
|
-
s.date = %q{2010-12-
|
12
|
+
s.date = %q{2010-12-10}
|
13
13
|
s.description = %q{A CheddarGetter API wrapper for Ruby}
|
14
14
|
s.email = %q{support@expectedbehavior.com}
|
15
15
|
s.extra_rdoc_files = [
|
data/example/example.rb
CHANGED
@@ -18,7 +18,7 @@ response = client.delete_all_customers
|
|
18
18
|
if response.valid?
|
19
19
|
puts "\tDeleted old customers"
|
20
20
|
else
|
21
|
-
puts "\tERROR: #{response.
|
21
|
+
puts "\tERROR: #{response.error_messages.inspect}"
|
22
22
|
end
|
23
23
|
|
24
24
|
puts ""
|
@@ -41,7 +41,7 @@ response = client.new_customer(data)
|
|
41
41
|
if response.valid?
|
42
42
|
puts "\tCreated Milton Waddams with code=MILTON_WADDAMS"
|
43
43
|
else
|
44
|
-
puts "\tERROR: #{response.
|
44
|
+
puts "\tERROR: #{response.error_messages.inspect}"
|
45
45
|
end
|
46
46
|
|
47
47
|
puts ""
|
@@ -70,7 +70,7 @@ response = client.new_customer(data)
|
|
70
70
|
if response.valid?
|
71
71
|
puts "\tCreated Bill Lumberg with code=BILL_LUMBERG. (This should not have happened)"
|
72
72
|
else
|
73
|
-
puts "\tExpect Error: #{response.
|
73
|
+
puts "\tExpect Error: #{response.error_messages.inspect}"
|
74
74
|
end
|
75
75
|
|
76
76
|
puts ""
|
@@ -100,7 +100,7 @@ response = client.new_customer(data)
|
|
100
100
|
if response.valid?
|
101
101
|
puts "\tCreated Bill Lumberg with code=BILL_LUMBERG"
|
102
102
|
else
|
103
|
-
puts "\tERROR: #{response.
|
103
|
+
puts "\tERROR: #{response.error_messages.inspect}"
|
104
104
|
end
|
105
105
|
|
106
106
|
#get lumberg and display current details
|
@@ -118,5 +118,5 @@ if response.valid?
|
|
118
118
|
puts "\t\t(#{charge[:quantity]}) #{charge[:code]} $#{charge[:eachAmount]*charge[:quantity]}"
|
119
119
|
end
|
120
120
|
else
|
121
|
-
puts "\tERROR: #{response.
|
121
|
+
puts "\tERROR: #{response.error_messages.inspect}"
|
122
122
|
end
|
@@ -7,7 +7,8 @@ module CheddarGetter
|
|
7
7
|
:customers => :customer,
|
8
8
|
:invoices => :invoice,
|
9
9
|
:charges => :charge,
|
10
|
-
:transactions => :transaction
|
10
|
+
:transactions => :transaction,
|
11
|
+
:errors => :error
|
11
12
|
}
|
12
13
|
|
13
14
|
KEY_TO_DATA_TYPE = {
|
@@ -42,7 +43,7 @@ module CheddarGetter
|
|
42
43
|
create_clean_response
|
43
44
|
end
|
44
45
|
|
45
|
-
[:
|
46
|
+
[:errors, :plans, :customers].each do |key|
|
46
47
|
define_method key.to_s do
|
47
48
|
self[key]
|
48
49
|
end
|
@@ -50,18 +51,19 @@ module CheddarGetter
|
|
50
51
|
|
51
52
|
#true if the response from CheddarGetter was valid
|
52
53
|
def valid?
|
53
|
-
|
54
|
+
self.errors.size == 0 && self.raw_response.code < 400
|
54
55
|
end
|
55
56
|
|
56
|
-
#the error
|
57
|
-
def
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
57
|
+
#the error messages (if there were any) if the CheddarGetter response was invalid
|
58
|
+
def error_messages
|
59
|
+
self.errors.map do |e|
|
60
|
+
msg = nil
|
61
|
+
if e
|
62
|
+
msg = e[:text]
|
63
|
+
msg += ": #{e[:fieldName]}" unless e[:fieldName].blank?
|
64
|
+
end
|
65
|
+
msg
|
63
66
|
end
|
64
|
-
msg
|
65
67
|
end
|
66
68
|
|
67
69
|
#Returns the given plan.
|
@@ -288,9 +290,24 @@ module CheddarGetter
|
|
288
290
|
end
|
289
291
|
end
|
290
292
|
|
293
|
+
def reduce_clean_errors!(data)
|
294
|
+
root_plural = [(data.delete(:errors) || { })[:error]].flatten
|
295
|
+
root_singular = [data.delete(:error)]
|
296
|
+
embed_singluar = []
|
297
|
+
embed_plural = []
|
298
|
+
embed = data[:customers] || data[:plans]
|
299
|
+
if embed
|
300
|
+
embed_singluar = [(embed.delete(:errors) || { })[:error]].flatten
|
301
|
+
embed_plural = [embed.delete(:error)]
|
302
|
+
end
|
303
|
+
new_errors = (root_plural + root_singular + embed_plural + embed_singluar).compact
|
304
|
+
data[:errors] = new_errors
|
305
|
+
end
|
306
|
+
|
291
307
|
def create_clean_response
|
292
308
|
data = self.raw_response.parsed_response.is_a?(Hash) ? self.raw_response.parsed_response : { }
|
293
309
|
deep_symbolize_keys!(data)
|
310
|
+
reduce_clean_errors!(data)
|
294
311
|
deep_fix_array_keys!(data)
|
295
312
|
deep_fix_data_types!(data)
|
296
313
|
self.clean_response = data
|
@@ -300,16 +317,19 @@ module CheddarGetter
|
|
300
317
|
data = Crack::XML.parse(self.raw_response.body.gsub(/<error(.*)>(.*)<\/error>/,
|
301
318
|
'<error\1><text>\2</text></error>'))
|
302
319
|
deep_symbolize_keys!(data)
|
320
|
+
reduce_clean_errors!(data)
|
303
321
|
deep_fix_array_keys!(data)
|
304
322
|
deep_fix_data_types!(data)
|
305
323
|
self.clean_response = data
|
306
|
-
|
307
|
-
|
308
|
-
|
309
|
-
|
310
|
-
|
311
|
-
|
324
|
+
self.errors.each do |e|
|
325
|
+
aux_code = (e[:auxCode] || "")
|
326
|
+
if aux_code[":"]
|
327
|
+
split_aux_code = aux_code.split(':')
|
328
|
+
e[:fieldName] = split_aux_code.first
|
329
|
+
e[:errorType] = split_aux_code.last
|
330
|
+
end
|
312
331
|
end
|
332
|
+
|
313
333
|
end
|
314
334
|
|
315
335
|
end
|
@@ -51,7 +51,7 @@ class TestCheddargetterClientRuby < Test::Unit::TestCase
|
|
51
51
|
},
|
52
52
|
}
|
53
53
|
end
|
54
|
-
|
54
|
+
|
55
55
|
should "check various client init exceptions" do
|
56
56
|
assert_raises(CheddarGetter::ClientException) do
|
57
57
|
CheddarGetter::Client.new(:product_code => "code", :password => "password")
|
@@ -75,24 +75,25 @@ class TestCheddargetterClientRuby < Test::Unit::TestCase
|
|
75
75
|
|
76
76
|
result = cg.get_plans
|
77
77
|
assert_equal false, result.valid?
|
78
|
-
assert_equal "Authentication required", result.
|
78
|
+
assert_equal ["Authentication required"], result.error_messages
|
79
79
|
|
80
80
|
cg.username = CG.username
|
81
81
|
cg.password = CG.password
|
82
82
|
result = cg.get_plans
|
83
83
|
assert_equal false, result.valid?
|
84
|
-
assert_equal "User michael@expectedbehavior.com does not have access to productCode=code",
|
84
|
+
assert_equal ["User michael@expectedbehavior.com does not have access to productCode=code"],
|
85
|
+
result.error_messages
|
85
86
|
|
86
87
|
cg.product_code = ""
|
87
88
|
result = cg.get_plans
|
88
89
|
assert_equal false, result.valid?
|
89
|
-
assert_equal "No product selected. Need a productId or productCode.", result.
|
90
|
+
assert_equal ["No product selected. Need a productId or productCode."], result.error_messages
|
90
91
|
|
91
92
|
cg.product_code = nil
|
92
93
|
cg.product_id = "id"
|
93
94
|
result = cg.get_plans
|
94
95
|
assert_equal false, result.valid?
|
95
|
-
assert_equal "User does not have access to productId=id", result.
|
96
|
+
assert_equal ["User does not have access to productId=id"], result.error_messages
|
96
97
|
end
|
97
98
|
|
98
99
|
should "get 3 plans from cheddar getter" do
|
@@ -136,7 +137,7 @@ class TestCheddargetterClientRuby < Test::Unit::TestCase
|
|
136
137
|
|
137
138
|
result = CG.get_plan(:code => "NOT_A_PLAN")
|
138
139
|
assert_equal false, result.valid?
|
139
|
-
assert_equal "Plan not found for code=NOT_A_PLAN within productCode=GEM_TEST", result.
|
140
|
+
assert_equal ["Plan not found for code=NOT_A_PLAN within productCode=GEM_TEST"], result.error_messages
|
140
141
|
end
|
141
142
|
|
142
143
|
should "create a single free customer at cheddar getter" do
|
@@ -166,74 +167,74 @@ class TestCheddargetterClientRuby < Test::Unit::TestCase
|
|
166
167
|
data[:subscription].delete(:ccCardCode)
|
167
168
|
result = CG.new_customer(data)
|
168
169
|
assert_equal false, result.valid?
|
169
|
-
assert_equal "A value is required: subscription[ccCardCode]", result.
|
170
|
+
assert_equal ["A value is required: subscription[ccCardCode]"], result.error_messages
|
170
171
|
|
171
172
|
data[:subscription][:ccExpiration] = "00/0000"
|
172
173
|
result = CG.new_customer(data)
|
173
174
|
assert_equal false, result.valid?
|
174
|
-
assert_equal("'00/0000' is not a valid date in format MM/YYYY: subscription[ccExpiration]",
|
175
|
-
result.
|
175
|
+
assert_equal(["'00/0000' is not a valid date in format MM/YYYY: subscription[ccExpiration]"],
|
176
|
+
result.error_messages)
|
176
177
|
|
177
178
|
data[:subscription].delete(:ccExpiration)
|
178
179
|
result = CG.new_customer(data)
|
179
180
|
assert_equal false, result.valid?
|
180
|
-
assert_equal "A value is required: subscription[ccExpiration]", result.
|
181
|
+
assert_equal ["A value is required: subscription[ccExpiration]"], result.error_messages
|
181
182
|
|
182
183
|
data[:subscription][:ccNumber] = "1"
|
183
184
|
result = CG.new_customer(data)
|
184
185
|
assert_equal false, result.valid?
|
185
|
-
assert_equal("'1' is not from an allowed institute: subscription[ccNumber]",
|
186
|
-
result.
|
186
|
+
assert_equal(["'1' is not from an allowed institute: subscription[ccNumber]"],
|
187
|
+
result.error_messages)
|
187
188
|
|
188
189
|
data[:subscription].delete(:ccNumber)
|
189
190
|
result = CG.new_customer(data)
|
190
191
|
assert_equal false, result.valid?
|
191
|
-
assert_equal "A value is required: subscription[ccNumber]", result.
|
192
|
+
assert_equal ["A value is required: subscription[ccNumber]"], result.error_messages
|
192
193
|
|
193
194
|
data[:subscription].delete(:ccZip)
|
194
195
|
result = CG.new_customer(data)
|
195
196
|
assert_equal false, result.valid?
|
196
|
-
assert_equal "A value is required: subscription[ccZip]", result.
|
197
|
+
assert_equal ["A value is required: subscription[ccZip]"], result.error_messages
|
197
198
|
|
198
199
|
data[:subscription].delete(:ccLastName)
|
199
200
|
result = CG.new_customer(data)
|
200
201
|
assert_equal false, result.valid?
|
201
|
-
assert_equal "A value is required: subscription[ccLastName]", result.
|
202
|
+
assert_equal ["A value is required: subscription[ccLastName]"], result.error_messages
|
202
203
|
|
203
204
|
data[:subscription].delete(:ccFirstName)
|
204
205
|
result = CG.new_customer(data)
|
205
206
|
assert_equal false, result.valid?
|
206
|
-
assert_equal "A value is required: subscription[ccFirstName]", result.
|
207
|
+
assert_equal ["A value is required: subscription[ccFirstName]"], result.error_messages
|
207
208
|
|
208
209
|
data.delete(:email)
|
209
210
|
result = CG.new_customer(data)
|
210
211
|
assert_equal false, result.valid?
|
211
|
-
assert_equal "A value is required: email", result.
|
212
|
+
assert_equal ["A value is required: email"], result.error_messages
|
212
213
|
|
213
214
|
data.delete(:code)
|
214
215
|
result = CG.new_customer(data)
|
215
216
|
assert_equal false, result.valid?
|
216
|
-
assert_equal "A value is required: code", result.
|
217
|
+
assert_equal ["A value is required: code"], result.error_messages
|
217
218
|
|
218
219
|
data.delete(:lastName)
|
219
220
|
result = CG.new_customer(data)
|
220
221
|
assert_equal false, result.valid?
|
221
|
-
assert_equal "A value is required: lastName", result.
|
222
|
+
assert_equal ["A value is required: lastName"], result.error_messages
|
222
223
|
|
223
224
|
data.delete(:firstName)
|
224
225
|
result = CG.new_customer(data)
|
225
226
|
assert_equal false, result.valid?
|
226
|
-
assert_equal "A value is required: firstName", result.
|
227
|
+
assert_equal ["A value is required: firstName"], result.error_messages
|
227
228
|
|
228
229
|
data[:subscription][:planCode] = "NOT_A_PLAN"
|
229
230
|
result = CG.new_customer(data)
|
230
231
|
assert_equal false, result.valid?
|
231
|
-
assert_equal "No plan found with code=NOT_A_PLAN", result.
|
232
|
+
assert_equal ["No plan found with code=NOT_A_PLAN"], result.error_messages
|
232
233
|
|
233
234
|
data[:subscription].delete(:planCode)
|
234
235
|
result = CG.new_customer(data)
|
235
236
|
assert_equal false, result.valid?
|
236
|
-
assert_equal "A pricing plan is required", result.
|
237
|
+
assert_equal ["A pricing plan is required"], result.error_messages
|
237
238
|
end
|
238
239
|
|
239
240
|
should "try to create a customer with direct forced card errors" do
|
@@ -243,7 +244,7 @@ class TestCheddargetterClientRuby < Test::Unit::TestCase
|
|
243
244
|
ERROR_CODES.each do |k, v|
|
244
245
|
result = CG.new_customer(paid_new_user_hash(1, "0#{k}"))
|
245
246
|
assert_equal false, result.valid?
|
246
|
-
assert_equal v, result.
|
247
|
+
assert_equal [v], result.error_messages
|
247
248
|
end
|
248
249
|
|
249
250
|
end
|
@@ -257,7 +258,7 @@ class TestCheddargetterClientRuby < Test::Unit::TestCase
|
|
257
258
|
|
258
259
|
result = CG.new_customer(paid_new_user_hash(1))
|
259
260
|
assert_equal false, result.valid?
|
260
|
-
assert_equal "Another customer already exists with code=1: code", result.
|
261
|
+
assert_equal ["Another customer already exists with code=1: code"], result.error_messages
|
261
262
|
end
|
262
263
|
|
263
264
|
should "get customers from cheddargetter" do
|
@@ -340,7 +341,7 @@ class TestCheddargetterClientRuby < Test::Unit::TestCase
|
|
340
341
|
assert_raises(CheddarGetter::ClientException){ CG.get_customer }
|
341
342
|
result = CG.get_customer(:code => 6)
|
342
343
|
assert_equal false, result.valid?
|
343
|
-
assert_equal "Customer not found", result.
|
344
|
+
assert_equal ["Customer not found"], result.error_messages
|
344
345
|
|
345
346
|
result = CG.get_customer(:code => 5)
|
346
347
|
assert_equal true, result.valid?
|
@@ -377,7 +378,7 @@ class TestCheddargetterClientRuby < Test::Unit::TestCase
|
|
377
378
|
|
378
379
|
result = CG.get_customer(:id => "bad_id")
|
379
380
|
assert_equal false, result.valid?
|
380
|
-
assert_equal "Customer not found", result.
|
381
|
+
assert_equal ["Customer not found"], result.error_messages
|
381
382
|
end
|
382
383
|
|
383
384
|
should "delete a customer from cheddargetter" do
|
@@ -394,11 +395,11 @@ class TestCheddargetterClientRuby < Test::Unit::TestCase
|
|
394
395
|
|
395
396
|
result = CG.delete_customer(:code => customer.customer[:code])
|
396
397
|
assert_equal false, result.valid?
|
397
|
-
assert_equal "Customer not found", result.
|
398
|
+
assert_equal ["Customer not found"], result.error_messages
|
398
399
|
|
399
400
|
result = CG.delete_customer(:id => customer.customer[:id])
|
400
401
|
assert_equal false, result.valid?
|
401
|
-
assert_equal "Customer not found", result.
|
402
|
+
assert_equal ["Customer not found"], result.error_messages
|
402
403
|
|
403
404
|
customer = CG.new_customer(paid_new_user_hash(1))
|
404
405
|
assert_equal true, customer.valid?
|
@@ -408,11 +409,11 @@ class TestCheddargetterClientRuby < Test::Unit::TestCase
|
|
408
409
|
|
409
410
|
result = CG.delete_customer(:code => customer.customer[:code])
|
410
411
|
assert_equal false, result.valid?
|
411
|
-
assert_equal "Customer not found", result.
|
412
|
+
assert_equal ["Customer not found"], result.error_messages
|
412
413
|
|
413
414
|
result = CG.delete_customer(:id => customer.customer[:id])
|
414
415
|
assert_equal false, result.valid?
|
415
|
-
assert_equal "Customer not found", result.
|
416
|
+
assert_equal ["Customer not found"], result.error_messages
|
416
417
|
end
|
417
418
|
|
418
419
|
should "cancel a subscription" do
|
@@ -446,11 +447,11 @@ class TestCheddargetterClientRuby < Test::Unit::TestCase
|
|
446
447
|
|
447
448
|
result = CG.edit_customer(:code => 1)
|
448
449
|
assert_equal false, result.valid?
|
449
|
-
assert_equal "Customer not found", result.
|
450
|
+
assert_equal ["Customer not found"], result.error_messages
|
450
451
|
|
451
452
|
result = CG.edit_customer(:id => "not_a_valid_id")
|
452
453
|
assert_equal false, result.valid?
|
453
|
-
assert_equal "Customer not found", result.
|
454
|
+
assert_equal ["Customer not found"], result.error_messages
|
454
455
|
|
455
456
|
result = CG.new_customer(free_new_user_hash(1))
|
456
457
|
customer = result.customer
|
@@ -494,11 +495,11 @@ class TestCheddargetterClientRuby < Test::Unit::TestCase
|
|
494
495
|
|
495
496
|
result = CG.edit_customer_only(:code => 1)
|
496
497
|
assert_equal false, result.valid?
|
497
|
-
assert_equal "Customer not found", result.
|
498
|
+
assert_equal ["Customer not found"], result.error_messages
|
498
499
|
|
499
500
|
result = CG.edit_customer_only(:id => "not_a_valid_id")
|
500
501
|
assert_equal false, result.valid?
|
501
|
-
assert_equal "Customer not found", result.
|
502
|
+
assert_equal ["Customer not found"], result.error_messages
|
502
503
|
|
503
504
|
result = CG.new_customer(free_new_user_hash(1))
|
504
505
|
customer = result.customer
|
@@ -535,11 +536,11 @@ class TestCheddargetterClientRuby < Test::Unit::TestCase
|
|
535
536
|
|
536
537
|
result = CG.edit_subscription(:code => 1)
|
537
538
|
assert_equal false, result.valid?
|
538
|
-
assert_equal "Customer not found", result.
|
539
|
+
assert_equal ["Customer not found"], result.error_messages
|
539
540
|
|
540
541
|
result = CG.edit_subscription(:id => "not_a_valid_id")
|
541
542
|
assert_equal false, result.valid?
|
542
|
-
assert_equal "Customer not found", result.
|
543
|
+
assert_equal ["Customer not found"], result.error_messages
|
543
544
|
|
544
545
|
result = CG.new_customer(free_new_user_hash(1))
|
545
546
|
customer = result.customer
|
@@ -589,27 +590,27 @@ class TestCheddargetterClientRuby < Test::Unit::TestCase
|
|
589
590
|
|
590
591
|
result = CG.add_item_quantity(:code => 1, :item_code => "TEST_ITEM_2")
|
591
592
|
assert_equal false, result.valid?
|
592
|
-
assert_equal "Customer not found", result.
|
593
|
+
assert_equal ["Customer not found"], result.error_messages
|
593
594
|
|
594
595
|
result = CG.add_item_quantity(:id => "not_a_valid_id", :item_code => "TEST_ITEM_2")
|
595
596
|
assert_equal false, result.valid?
|
596
|
-
assert_equal "Customer not found", result.
|
597
|
+
assert_equal ["Customer not found"], result.error_messages
|
597
598
|
|
598
599
|
result = CG.remove_item_quantity(:code => 1, :item_code => "TEST_ITEM_2")
|
599
600
|
assert_equal false, result.valid?
|
600
|
-
assert_equal "Customer not found", result.
|
601
|
+
assert_equal ["Customer not found"], result.error_messages
|
601
602
|
|
602
603
|
result = CG.remove_item_quantity(:id => "not_a_valid_id", :item_code => "TEST_ITEM_2")
|
603
604
|
assert_equal false, result.valid?
|
604
|
-
assert_equal "Customer not found", result.
|
605
|
+
assert_equal ["Customer not found"], result.error_messages
|
605
606
|
|
606
607
|
result = CG.set_item_quantity(:code => 1, :item_code => "TEST_ITEM_2")
|
607
608
|
assert_equal false, result.valid?
|
608
|
-
assert_equal "Customer not found", result.
|
609
|
+
assert_equal ["Customer not found"], result.error_messages
|
609
610
|
|
610
611
|
result = CG.set_item_quantity(:id => "not_a_valid_id", :item_code => "TEST_ITEM_2")
|
611
612
|
assert_equal false, result.valid?
|
612
|
-
assert_equal "Customer not found", result.
|
613
|
+
assert_equal ["Customer not found"], result.error_messages
|
613
614
|
|
614
615
|
result = CG.new_customer(paid_new_user_hash(1))
|
615
616
|
assert_equal true, result.valid?
|
@@ -618,27 +619,27 @@ class TestCheddargetterClientRuby < Test::Unit::TestCase
|
|
618
619
|
|
619
620
|
result = CG.add_item_quantity(:code => 1, :item_code => "NOT_AN_ITEM")
|
620
621
|
assert_equal false, result.valid?
|
621
|
-
assert_equal "Item not found (code=NOT_AN_ITEM)", result.
|
622
|
+
assert_equal ["Item not found (code=NOT_AN_ITEM)"], result.error_messages
|
622
623
|
|
623
624
|
result = CG.add_item_quantity(:code => 1, :item_id => "NOT_AN_ITEM")
|
624
625
|
assert_equal false, result.valid?
|
625
|
-
assert_equal "Item not found (id=NOT_AN_ITEM)", result.
|
626
|
+
assert_equal ["Item not found (id=NOT_AN_ITEM)"], result.error_messages
|
626
627
|
|
627
628
|
result = CG.remove_item_quantity(:code => 1, :item_code => "NOT_AN_ITEM")
|
628
629
|
assert_equal false, result.valid?
|
629
|
-
assert_equal "Item not found (code=NOT_AN_ITEM)", result.
|
630
|
+
assert_equal ["Item not found (code=NOT_AN_ITEM)"], result.error_messages
|
630
631
|
|
631
632
|
result = CG.remove_item_quantity(:code => 1, :item_id => "NOT_AN_ITEM")
|
632
633
|
assert_equal false, result.valid?
|
633
|
-
assert_equal "Item not found (id=NOT_AN_ITEM)", result.
|
634
|
+
assert_equal ["Item not found (id=NOT_AN_ITEM)"], result.error_messages
|
634
635
|
|
635
636
|
result = CG.set_item_quantity(:code => 1, :item_code => "NOT_AN_ITEM")
|
636
637
|
assert_equal false, result.valid?
|
637
|
-
assert_equal "Item not found (code=NOT_AN_ITEM)", result.
|
638
|
+
assert_equal ["Item not found (code=NOT_AN_ITEM)"], result.error_messages
|
638
639
|
|
639
640
|
result = CG.set_item_quantity(:code => 1, :item_id => "NOT_AN_ITEM")
|
640
641
|
assert_equal false, result.valid?
|
641
|
-
assert_equal "Item not found (id=NOT_AN_ITEM)", result.
|
642
|
+
assert_equal ["Item not found (id=NOT_AN_ITEM)"], result.error_messages
|
642
643
|
|
643
644
|
result = CG.add_item_quantity(:code => 1, :item_code => "TEST_ITEM_2")
|
644
645
|
assert_equal true, result.valid?
|
@@ -662,7 +663,7 @@ class TestCheddargetterClientRuby < Test::Unit::TestCase
|
|
662
663
|
|
663
664
|
result = CG.set_item_quantity({:code => 1, :item_code => "TEST_ITEM_2"})
|
664
665
|
assert_equal false, result.valid?
|
665
|
-
assert_equal "A value is required: quantity", result.
|
666
|
+
assert_equal ["A value is required: quantity"], result.error_messages
|
666
667
|
|
667
668
|
result = CG.set_item_quantity({:code => 1, :item_code => "TEST_ITEM_2"}, { :quantity => 6 })
|
668
669
|
assert_equal true, result.valid?
|
@@ -676,7 +677,7 @@ class TestCheddargetterClientRuby < Test::Unit::TestCase
|
|
676
677
|
|
677
678
|
result = CG.set_item_quantity({:code => 1, :item_code => "TEST_ITEM_2"}, { :quantity => 15 })
|
678
679
|
assert_equal false, result.valid?
|
679
|
-
assert_equal "'15' is not less than or equal to '10': quantity", result.
|
680
|
+
assert_equal ["'15' is not less than or equal to '10': quantity"], result.error_messages
|
680
681
|
|
681
682
|
result = CG.set_item_quantity({:code => 1, :item_code => "TEST_ITEM_1"}, { :quantity => 15 })
|
682
683
|
assert_equal 15, result.customer_item("TEST_ITEM_1")[:quantity]
|
@@ -694,26 +695,26 @@ class TestCheddargetterClientRuby < Test::Unit::TestCase
|
|
694
695
|
|
695
696
|
result = CG.add_charge(:code => 1)
|
696
697
|
assert_equal false, result.valid?
|
697
|
-
assert_equal "Customer not found", result.
|
698
|
+
assert_equal ["Customer not found"], result.error_messages
|
698
699
|
|
699
700
|
result = CG.add_charge(:id => "not_a_valid_id")
|
700
701
|
assert_equal false, result.valid?
|
701
|
-
assert_equal "Customer not found", result.
|
702
|
+
assert_equal ["Customer not found"], result.error_messages
|
702
703
|
|
703
704
|
result = CG.new_customer(paid_new_user_hash(1))
|
704
705
|
assert_equal true, result.valid?
|
705
706
|
|
706
707
|
result = CG.add_charge(:code => 1)
|
707
708
|
assert_equal false, result.valid?
|
708
|
-
assert_equal "A value is required: chargeCode", result.
|
709
|
+
assert_equal ["A value is required: chargeCode"], result.error_messages
|
709
710
|
|
710
711
|
result = CG.add_charge({:code => 1}, { :chargeCode => "MY_CHARGE" })
|
711
712
|
assert_equal false, result.valid?
|
712
|
-
assert_equal "A value is required: quantity", result.
|
713
|
+
assert_equal ["A value is required: quantity"], result.error_messages
|
713
714
|
|
714
715
|
result = CG.add_charge({:code => 1}, { :chargeCode => "MY_CHARGE", :quantity => 1 })
|
715
716
|
assert_equal false, result.valid?
|
716
|
-
assert_equal "A value is required: eachAmount", result.
|
717
|
+
assert_equal ["A value is required: eachAmount"], result.error_messages
|
717
718
|
|
718
719
|
result = CG.add_charge({:code => 1}, { :chargeCode => "MY_CHARGE", :quantity => 1, :eachAmount => 2 })
|
719
720
|
assert_equal true, result.valid?
|
@@ -750,7 +751,7 @@ class TestCheddargetterClientRuby < Test::Unit::TestCase
|
|
750
751
|
assert_equal 2, result.customer_subscriptions.count
|
751
752
|
assert_equal "Test Plan 2", result.customer_plan[:name]
|
752
753
|
end
|
753
|
-
|
754
|
+
|
754
755
|
should "test customer get filtering" do
|
755
756
|
result = CG.delete_all_customers
|
756
757
|
assert_equal true, result.valid?
|
@@ -800,7 +801,7 @@ class TestCheddargetterClientRuby < Test::Unit::TestCase
|
|
800
801
|
|
801
802
|
result = CG.get_customers(:planCode => "TEST_PLAN_1")
|
802
803
|
assert_equal false, result.valid?
|
803
|
-
assert_equal "No customers found.", result.
|
804
|
+
assert_equal ["No customers found."], result.error_messages
|
804
805
|
|
805
806
|
result = CG.get_customers(:planCode => ["TEST_PLAN_1", "TEST_PLAN_2", "FREE_PLAN_TEST"])
|
806
807
|
assert_equal true, result.valid?
|
@@ -828,7 +829,7 @@ class TestCheddargetterClientRuby < Test::Unit::TestCase
|
|
828
829
|
|
829
830
|
result = CG.get_customers(:search => "NotFirst")
|
830
831
|
assert_equal false, result.valid?
|
831
|
-
assert_equal "No customers found.", result.
|
832
|
+
assert_equal ["No customers found."], result.error_messages
|
832
833
|
end
|
833
834
|
|
834
835
|
should "get 100% code coverage :)" do
|
@@ -848,5 +849,20 @@ class TestCheddargetterClientRuby < Test::Unit::TestCase
|
|
848
849
|
assert_equal "string", data[:test]
|
849
850
|
CheddarGetter::Response::KEY_TO_DATA_TYPE.delete(:test)
|
850
851
|
end
|
852
|
+
|
853
|
+
should "test embedded errors" do
|
854
|
+
result = CG.delete_all_customers
|
855
|
+
assert_equal true, result.valid?
|
856
|
+
|
857
|
+
result = CG.new_customer(paid_new_user_hash(1))
|
858
|
+
assert_equal true, result.valid?
|
859
|
+
|
860
|
+
new_sub = paid_new_user_hash(1, "05003")[:subscription]
|
861
|
+
new_sub[:planCode] = "TEST_PLAN_1"
|
862
|
+
|
863
|
+
result = CG.edit_subscription({:code => 1}, new_sub)
|
864
|
+
assert_equal false, result.valid?
|
865
|
+
assert_equal ["Credit card type is not accepted"], result.error_messages
|
866
|
+
end
|
851
867
|
|
852
868
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cheddargetter_client_ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 23
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
-
-
|
8
|
+
- 2
|
9
9
|
- 0
|
10
|
-
version: 0.
|
10
|
+
version: 0.2.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Expected Behavior
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2010-12-
|
18
|
+
date: 2010-12-10 00:00:00 -05:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|