hps 1.0.1 → 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (54) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +8 -8
  3. data/LICENSE.txt +32 -32
  4. data/PRIVACY.txt +65 -65
  5. data/README.md +40 -40
  6. data/Rakefile +15 -15
  7. data/hps.gemspec +26 -26
  8. data/lib/hps/configuration.rb +16 -16
  9. data/lib/hps/entities/hps_account_verify.rb +8 -8
  10. data/lib/hps/entities/hps_address.rb +6 -6
  11. data/lib/hps/entities/hps_authorization.rb +12 -12
  12. data/lib/hps/entities/hps_batch.rb +6 -6
  13. data/lib/hps/entities/hps_cardholder.rb +10 -6
  14. data/lib/hps/entities/hps_charge.rb +8 -8
  15. data/lib/hps/entities/hps_charge_exceptions.rb +6 -6
  16. data/lib/hps/entities/hps_credit_card.rb +32 -32
  17. data/lib/hps/entities/hps_refund.rb +8 -8
  18. data/lib/hps/entities/hps_report_transaction_details.rb +10 -10
  19. data/lib/hps/entities/hps_report_transaction_summary.rb +6 -6
  20. data/lib/hps/entities/hps_reversal.rb +10 -10
  21. data/lib/hps/entities/hps_token_data.rb +10 -10
  22. data/lib/hps/entities/hps_transaction.rb +161 -161
  23. data/lib/hps/entities/hps_transaction_details.rb +6 -6
  24. data/lib/hps/entities/hps_transaction_header.rb +8 -8
  25. data/lib/hps/entities/hps_transaction_type.rb +16 -16
  26. data/lib/hps/entities/hps_void.rb +8 -8
  27. data/lib/hps/infrastructure/api_connection_exception.rb +11 -11
  28. data/lib/hps/infrastructure/authentication_exception.rb +11 -11
  29. data/lib/hps/infrastructure/card_exception.rb +15 -15
  30. data/lib/hps/infrastructure/exceptions.json +468 -468
  31. data/lib/hps/infrastructure/hps_exception.rb +25 -25
  32. data/lib/hps/infrastructure/hps_exception_mapper.rb +134 -134
  33. data/lib/hps/infrastructure/hps_sdk_codes.rb +48 -48
  34. data/lib/hps/infrastructure/invalid_request_exception.rb +15 -15
  35. data/lib/hps/services/hps_batch_service.rb +29 -29
  36. data/lib/hps/services/hps_charge_service.rb +634 -634
  37. data/lib/hps/services/hps_service.rb +128 -128
  38. data/lib/hps/version.rb +3 -3
  39. data/lib/hps.rb +45 -45
  40. data/tests/amex_tests.rb +230 -230
  41. data/tests/cert_tests.rb +80 -80
  42. data/tests/discover_tests.rb +324 -324
  43. data/tests/exception_mapper_tests.rb +244 -244
  44. data/tests/general_tests.rb +58 -58
  45. data/tests/hps_token_service.rb +56 -56
  46. data/tests/mastercard_tests.rb +325 -325
  47. data/tests/secret_key.rb +11 -11
  48. data/tests/test_data.rb +127 -127
  49. data/tests/test_helper.rb +108 -92
  50. data/tests/token_tests.rb +513 -513
  51. data/tests/visa_tests.rb +378 -378
  52. metadata +4 -6
  53. data/.DS_Store +0 -0
  54. data/.gitignore +0 -24
data/tests/visa_tests.rb CHANGED
@@ -1,378 +1,378 @@
1
- require File.join( File.dirname(__FILE__), "test_helper" )
2
-
3
- describe "Visa Tests" do
4
-
5
- it "Visa when card is ok, should return valid result" do
6
- charge = Hps::TestHelper.charge_valid_visa(50)
7
- expect(charge.response_code).to eql("00")
8
- end
9
-
10
- # avs tests
11
-
12
- # TODO: Gateway changed
13
- it "Visa avs result code should equal B" do
14
- charge = Hps::TestHelper.charge_valid_visa(90.01)
15
- #expect(charge.avs_result_code).to eql("B")
16
- expect(charge.avs_result_code).to eql("0")
17
- end
18
-
19
- # TODO: Gateway changed
20
- it "Visa avs result code should equal C" do
21
- charge = Hps::TestHelper.charge_valid_visa(90.02)
22
- #expect(charge.avs_result_code).to eql("C")
23
- expect(charge.avs_result_code).to eql("0")
24
- end
25
-
26
- # TODO: Gateway changed
27
- it "Visa avs result code should equal D" do
28
- charge = Hps::TestHelper.charge_valid_visa(90.03)
29
- #expect(charge.avs_result_code).to eql("D")
30
- expect(charge.avs_result_code).to eql("0")
31
- end
32
-
33
- # TODO: Gateway changed
34
- it "Visa avs result code should equal I" do
35
- charge = Hps::TestHelper.charge_valid_visa(90.05)
36
- #expect(charge.avs_result_code).to eql("I")
37
- expect(charge.avs_result_code).to eql("0")
38
- end
39
-
40
- # TODO: Gateway changed
41
- it "Visa avs result code should equal M" do
42
- charge = Hps::TestHelper.charge_valid_visa(90.06)
43
- #expect(charge.avs_result_code).to eql("M")
44
- expect(charge.avs_result_code).to eql("0")
45
- end
46
-
47
- # TODO: Gateway changed
48
- it "Visa avs result code should equal P" do
49
- charge = Hps::TestHelper.charge_valid_visa(90.07)
50
- #expect(charge.avs_result_code).to eql("P")
51
- expect(charge.avs_result_code).to eql("0")
52
- end
53
-
54
- # cvv tests
55
-
56
- it "Visa cvv result code should equal M" do
57
- charge = Hps::TestHelper.charge_valid_visa(96.01)
58
- expect(charge.cvv_result_code).to eql("M")
59
- end
60
-
61
- it "Visa cvv result code should equal N" do
62
- charge = Hps::TestHelper.charge_valid_visa(96.02)
63
- expect(charge.cvv_result_code).to eql("N")
64
- end
65
-
66
- it "Visa cvv result code should equal P" do
67
- charge = Hps::TestHelper.charge_valid_visa(96.03)
68
- expect(charge.cvv_result_code).to eql("P")
69
- end
70
-
71
- it "Visa cvv result code should equal S" do
72
- charge = Hps::TestHelper.charge_valid_visa(96.04)
73
- expect(charge.cvv_result_code).to eql("S")
74
- end
75
-
76
- it "Visa cvv result code should equal U" do
77
- charge = Hps::TestHelper.charge_valid_visa(96.05)
78
- expect(charge.cvv_result_code).to eql("U")
79
- end
80
-
81
- # visa to visa 2nd
82
-
83
- it "Visa response code should indicate refer card issuer" do
84
- expect {
85
- Hps::TestHelper.charge_valid_visa(10.34)
86
- }.to raise_error(Hps::CardException) { |error|
87
- expect(error.code).to eql("card_declined")
88
- expect(error.response_code).to eql("02")
89
- expect(error.response_text).to eql("CALL")
90
- }
91
- end
92
-
93
- it "Visa response code should indicate invalid merchant" do
94
- expect {
95
- Hps::TestHelper.charge_valid_visa(10.22)
96
- }.to raise_error(Hps::CardException) { |error|
97
- expect(error.code).to eql("card_declined")
98
- expect(error.response_code).to eql("03")
99
- expect(error.response_text).to eql("TERM ID ERROR")
100
- }
101
- end
102
-
103
- it "Visa response code should indicate pickup card" do
104
- expect {
105
- Hps::TestHelper.charge_valid_visa(10.04)
106
- }.to raise_error(Hps::CardException) { |error|
107
- expect(error.code).to eql("card_declined")
108
- expect(error.response_code).to eql("44")
109
- expect(error.response_text).to eql("HOLD-CALL")
110
- }
111
- end
112
-
113
- it "Visa response code should indicate do not honor" do
114
- expect {
115
- Hps::TestHelper.charge_valid_visa(10.25)
116
- }.to raise_error(Hps::CardException) { |error|
117
- expect(error.code).to eql("card_declined")
118
- expect(error.response_code).to eql("05")
119
- expect(error.response_text).to eql("DECLINE")
120
- }
121
- end
122
-
123
- it "Visa response code should indicate invalid transaction" do
124
- expect {
125
- Hps::TestHelper.charge_valid_visa(10.26)
126
- }.to raise_error(Hps::CardException) { |error|
127
- expect(error.code).to eql("processing_error")
128
- expect(error.response_code).to eql("12")
129
- expect(error.response_text).to eql("INVALID TRANS")
130
- }
131
- end
132
-
133
- it "Visa response code should indicate invalid amount" do
134
- expect {
135
- Hps::TestHelper.charge_valid_visa(10.27)
136
- }.to raise_error(Hps::CardException) { |error|
137
- expect(error.code).to eql("invalid_amount")
138
- expect(error.response_code).to eql("13")
139
- expect(error.response_text).to eql("AMOUNT ERROR")
140
- }
141
- end
142
-
143
- it "Visa response code should indicate invalid card" do
144
- expect {
145
- Hps::TestHelper.charge_valid_visa(10.28)
146
- }.to raise_error(Hps::CardException) { |error|
147
- expect(error.code).to eql("incorrect_number")
148
- expect(error.response_code).to eql("14")
149
- expect(error.response_text).to eql("CARD NO. ERROR")
150
- }
151
- end
152
-
153
- it "Visa response code should indicate invalid issuer" do
154
- expect {
155
- Hps::TestHelper.charge_valid_visa(10.18)
156
- }.to raise_error(Hps::CardException) { |error|
157
- expect(error.code).to eql("processing_error")
158
- expect(error.response_code).to eql("15")
159
- expect(error.response_text).to eql("NO SUCH ISSUER")
160
- }
161
- end
162
-
163
- it "Visa response code should indicate system error re-enter" do
164
- expect {
165
- Hps::TestHelper.charge_valid_visa(10.29)
166
- }.to raise_error(Hps::CardException) { |error|
167
- expect(error.code).to eql("processing_error")
168
- expect(error.response_code).to eql("19")
169
- expect(error.response_text).to eql("RE ENTER")
170
- }
171
- end
172
-
173
- it "Visa response code should indicate lost card" do
174
- expect {
175
- Hps::TestHelper.charge_valid_visa(10.31)
176
- }.to raise_error(Hps::CardException) { |error|
177
- expect(error.code).to eql("card_declined")
178
- expect(error.response_code).to eql("41")
179
- expect(error.response_text).to eql("HOLD-CALL")
180
- }
181
- end
182
-
183
- it "Visa response code should indicate hot card pickup" do
184
- expect {
185
- Hps::TestHelper.charge_valid_visa(10.03)
186
- }.to raise_error(Hps::CardException) { |error|
187
- expect(error.code).to eql("card_declined")
188
- expect(error.response_code).to eql("43")
189
- expect(error.response_text).to eql("HOLD-CALL")
190
- }
191
- end
192
-
193
- it "Visa response code should indicate insufficient fund" do
194
- expect {
195
- Hps::TestHelper.charge_valid_visa(10.08)
196
- }.to raise_error(Hps::CardException) { |error|
197
- expect(error.code).to eql("card_declined")
198
- # TODO: Gateway changed
199
- #expect(error.response_code).to eql("05")
200
- expect(error.response_code).to eql("51")
201
- expect(error.response_text).to eql("DECLINE")
202
- }
203
- end
204
-
205
- it "Visa response code should indicate no checking account" do
206
- expect {
207
- Hps::TestHelper.charge_valid_visa(10.16)
208
- }.to raise_error(Hps::CardException) { |error|
209
- expect(error.code).to eql("processing_error")
210
- expect(error.response_code).to eql("52")
211
- expect(error.response_text).to eql("NO CHECK ACCOUNT")
212
- }
213
- end
214
-
215
- it "Visa response code should indicate no savings account" do
216
- expect {
217
- Hps::TestHelper.charge_valid_visa(10.17)
218
- }.to raise_error(Hps::CardException) { |error|
219
- expect(error.code).to eql("processing_error")
220
- expect(error.response_code).to eql("53")
221
- expect(error.response_text).to eql("NO SAVE ACCOUNT")
222
- }
223
- end
224
-
225
- it "Visa response code should indicate expired card" do
226
- expect {
227
- Hps::TestHelper.charge_valid_visa(10.32)
228
- }.to raise_error(Hps::CardException) { |error|
229
- expect(error.code).to eql("expired_card")
230
- expect(error.response_code).to eql("54")
231
- expect(error.response_text).to eql("EXPIRED CARD")
232
- }
233
- end
234
-
235
- it "Visa response code should indicate txn not permitted on card card" do
236
- expect {
237
- Hps::TestHelper.charge_valid_visa(10.20)
238
- }.to raise_error(Hps::CardException) { |error|
239
- # TODO: Gateway changed
240
- #expect(error.code).to eql("processing_error")
241
- #expect(error.response_code).to eql("57")
242
- #expect(error.response_text).to eql("SERV NOT ALLOWED")
243
- expect(error.code).to eql("unknown_card_exception")
244
- expect(error.response_code).to eql("R1")
245
- expect(error.response_text).to eql("STOP RECURRING")
246
- }
247
- end
248
-
249
- it "Visa response code should indicate invalid acquirer" do
250
- expect {
251
- Hps::TestHelper.charge_valid_visa(10.30)
252
- }.to raise_error(Hps::CardException) { |error|
253
- expect(error.code).to eql("processing_error")
254
- expect(error.response_code).to eql("58")
255
- expect(error.response_text).to eql("SERV NOT ALLOWED")
256
- }
257
- end
258
-
259
- it "Visa response code should indicate exceeds limit" do
260
- expect {
261
- Hps::TestHelper.charge_valid_visa(10.09)
262
- }.to raise_error(Hps::CardException) { |error|
263
- expect(error.code).to eql("card_declined")
264
- expect(error.response_code).to eql("61")
265
- expect(error.response_text).to eql("DECLINE")
266
- }
267
- end
268
-
269
- it "Visa response code should indicate restricted card" do
270
- expect {
271
- Hps::TestHelper.charge_valid_visa(10.10)
272
- }.to raise_error(Hps::CardException) { |error|
273
- expect(error.code).to eql("card_declined")
274
- expect(error.response_code).to eql("62")
275
- expect(error.response_text).to eql("DECLINE")
276
- }
277
- end
278
-
279
- it "Visa response code should indicate security violation" do
280
- expect {
281
- Hps::TestHelper.charge_valid_visa(10.11)
282
- }.to raise_error(Hps::CardException) { |error|
283
- expect(error.code).to eql("card_declined")
284
- expect(error.response_code).to eql("65")
285
- expect(error.response_text).to eql("DECLINE")
286
- }
287
- end
288
-
289
- it "Visa response code should indicate check digit error" do
290
- expect {
291
- Hps::TestHelper.charge_valid_visa(10.05)
292
- }.to raise_error(Hps::CardException) { |error|
293
- expect(error.code).to eql("incorrect_cvc")
294
- expect(error.response_code).to eql("EB")
295
- expect(error.response_text).to eql("CHECK DIGIT ERR")
296
- }
297
- end
298
-
299
- it "Visa response code should indicate switch not available" do
300
- expect {
301
- Hps::TestHelper.charge_valid_visa(10.33)
302
- }.to raise_error(Hps::HpsException) { |error|
303
- #}.to raise_error(Hps::CardException) { |error|
304
- #expect(error.code).to eql("processing_error")
305
- #expect(error.response_code).to eql("14")
306
- expect(error.code).to eql("issuer_timeout")
307
- expect(error.response_code).to eql("91")
308
- expect(error.response_text).to eql("NO REPLY")
309
- }
310
- end
311
-
312
- it "Visa response code should indicate system error" do
313
- expect {
314
- Hps::TestHelper.charge_valid_visa(10.21)
315
- }.to raise_error(Hps::CardException) { |error|
316
- expect(error.code).to eql("processing_error")
317
- expect(error.response_code).to eql("96")
318
- expect(error.response_text).to eql("SYSTEM ERROR")
319
- }
320
- end
321
-
322
- it "Visa response code should indicate CVV2 mismatch" do
323
- expect {
324
- Hps::TestHelper.charge_valid_visa(10.23)
325
- }.to raise_error(Hps::CardException) { |error|
326
- expect(error.code).to eql("incorrect_cvc")
327
- expect(error.response_code).to eql("N7")
328
- expect(error.response_text).to eql("CVV2 MISMATCH")
329
- }
330
- end
331
-
332
- # verify, authorize, refund, and capture
333
-
334
- it "Visa verify should return OK" do
335
- service = Hps::HpsChargeService.new()
336
- result = service.verify(Hps::TestData.valid_visa, Hps::TestData.valid_cardholder)
337
- expect(result.response_code).to eql("85")
338
- end
339
-
340
- it "Visa verify should return Token" do
341
- service = Hps::HpsChargeService.new()
342
- result = service.verify(Hps::TestData.valid_visa, Hps::TestData.valid_cardholder,true)
343
- expect(result.response_code).to eql("85")
344
- expect(result.token_data.response_message).to eql("Success")
345
- result.token_data.token_value.should_not eq(nil)
346
-
347
- end
348
-
349
- it "Visa authorize should return OK" do
350
- service = Hps::HpsChargeService.new()
351
- result = service.authorize(50.00, "usd", Hps::TestData.valid_visa, Hps::TestData.valid_cardholder)
352
- expect(result.response_code).to eql("00")
353
- end
354
-
355
- it "Visa authorize and request token should return OK" do
356
- service = Hps::HpsChargeService.new()
357
- result = service.authorize(50.00, "usd", Hps::TestData.valid_visa, Hps::TestData.valid_cardholder, true)
358
- expect(result.token_data.response_code).to eql("0")
359
- expect(result.response_code).to eql("00")
360
- end
361
-
362
- it "Visa should refund OK" do
363
- service = Hps::HpsChargeService.new()
364
- charge = service.charge(25.00, "usd", Hps::TestData.valid_visa, Hps::TestData.valid_cardholder)
365
- refund = service.refund_transaction(25.00, "usd", charge.transaction_id)
366
- expect(refund.response_code).to eql("00")
367
- end
368
-
369
- it "Visa authorize and capture should return OK" do
370
- service = Hps::HpsChargeService.new()
371
- result = service.authorize(50.00, "usd", Hps::TestData.valid_visa, Hps::TestData.valid_cardholder)
372
- expect(result.response_code).to eql("00")
373
-
374
- capture_result = service.capture(result.transaction_id)
375
- expect(capture_result.response_code).to eql("00")
376
- end
377
-
378
- end
1
+ require File.join( File.dirname(__FILE__), "test_helper" )
2
+
3
+ describe "Visa Tests" do
4
+
5
+ it "Visa when card is ok, should return valid result" do
6
+ charge = Hps::TestHelper.charge_valid_visa(50)
7
+ expect(charge.response_code).to eql("00")
8
+ end
9
+
10
+ # avs tests
11
+
12
+ # TODO: Gateway changed
13
+ it "Visa avs result code should equal B" do
14
+ charge = Hps::TestHelper.charge_valid_visa(90.01)
15
+ #expect(charge.avs_result_code).to eql("B")
16
+ expect(charge.avs_result_code).to eql("0")
17
+ end
18
+
19
+ # TODO: Gateway changed
20
+ it "Visa avs result code should equal C" do
21
+ charge = Hps::TestHelper.charge_valid_visa(90.02)
22
+ #expect(charge.avs_result_code).to eql("C")
23
+ expect(charge.avs_result_code).to eql("0")
24
+ end
25
+
26
+ # TODO: Gateway changed
27
+ it "Visa avs result code should equal D" do
28
+ charge = Hps::TestHelper.charge_valid_visa(90.03)
29
+ #expect(charge.avs_result_code).to eql("D")
30
+ expect(charge.avs_result_code).to eql("0")
31
+ end
32
+
33
+ # TODO: Gateway changed
34
+ it "Visa avs result code should equal I" do
35
+ charge = Hps::TestHelper.charge_valid_visa(90.05)
36
+ #expect(charge.avs_result_code).to eql("I")
37
+ expect(charge.avs_result_code).to eql("0")
38
+ end
39
+
40
+ # TODO: Gateway changed
41
+ it "Visa avs result code should equal M" do
42
+ charge = Hps::TestHelper.charge_valid_visa(90.06)
43
+ #expect(charge.avs_result_code).to eql("M")
44
+ expect(charge.avs_result_code).to eql("0")
45
+ end
46
+
47
+ # TODO: Gateway changed
48
+ it "Visa avs result code should equal P" do
49
+ charge = Hps::TestHelper.charge_valid_visa(90.07)
50
+ #expect(charge.avs_result_code).to eql("P")
51
+ expect(charge.avs_result_code).to eql("0")
52
+ end
53
+
54
+ # cvv tests
55
+
56
+ it "Visa cvv result code should equal M" do
57
+ charge = Hps::TestHelper.charge_valid_visa(96.01)
58
+ expect(charge.cvv_result_code).to eql("M")
59
+ end
60
+
61
+ it "Visa cvv result code should equal N" do
62
+ charge = Hps::TestHelper.charge_valid_visa(96.02)
63
+ expect(charge.cvv_result_code).to eql("N")
64
+ end
65
+
66
+ it "Visa cvv result code should equal P" do
67
+ charge = Hps::TestHelper.charge_valid_visa(96.03)
68
+ expect(charge.cvv_result_code).to eql("P")
69
+ end
70
+
71
+ it "Visa cvv result code should equal S" do
72
+ charge = Hps::TestHelper.charge_valid_visa(96.04)
73
+ expect(charge.cvv_result_code).to eql("S")
74
+ end
75
+
76
+ it "Visa cvv result code should equal U" do
77
+ charge = Hps::TestHelper.charge_valid_visa(96.05)
78
+ expect(charge.cvv_result_code).to eql("U")
79
+ end
80
+
81
+ # visa to visa 2nd
82
+
83
+ it "Visa response code should indicate refer card issuer" do
84
+ expect {
85
+ Hps::TestHelper.charge_valid_visa(10.34)
86
+ }.to raise_error(Hps::CardException) { |error|
87
+ expect(error.code).to eql("card_declined")
88
+ expect(error.response_code).to eql("02")
89
+ expect(error.response_text).to eql("CALL")
90
+ }
91
+ end
92
+
93
+ it "Visa response code should indicate invalid merchant" do
94
+ expect {
95
+ Hps::TestHelper.charge_valid_visa(10.22)
96
+ }.to raise_error(Hps::CardException) { |error|
97
+ expect(error.code).to eql("card_declined")
98
+ expect(error.response_code).to eql("03")
99
+ expect(error.response_text).to eql("TERM ID ERROR")
100
+ }
101
+ end
102
+
103
+ it "Visa response code should indicate pickup card" do
104
+ expect {
105
+ Hps::TestHelper.charge_valid_visa(10.04)
106
+ }.to raise_error(Hps::CardException) { |error|
107
+ expect(error.code).to eql("card_declined")
108
+ expect(error.response_code).to eql("44")
109
+ expect(error.response_text).to eql("HOLD-CALL")
110
+ }
111
+ end
112
+
113
+ it "Visa response code should indicate do not honor" do
114
+ expect {
115
+ Hps::TestHelper.charge_valid_visa(10.25)
116
+ }.to raise_error(Hps::CardException) { |error|
117
+ expect(error.code).to eql("card_declined")
118
+ expect(error.response_code).to eql("05")
119
+ expect(error.response_text).to eql("DECLINE")
120
+ }
121
+ end
122
+
123
+ it "Visa response code should indicate invalid transaction" do
124
+ expect {
125
+ Hps::TestHelper.charge_valid_visa(10.26)
126
+ }.to raise_error(Hps::CardException) { |error|
127
+ expect(error.code).to eql("processing_error")
128
+ expect(error.response_code).to eql("12")
129
+ expect(error.response_text).to eql("INVALID TRANS")
130
+ }
131
+ end
132
+
133
+ it "Visa response code should indicate invalid amount" do
134
+ expect {
135
+ Hps::TestHelper.charge_valid_visa(10.27)
136
+ }.to raise_error(Hps::CardException) { |error|
137
+ expect(error.code).to eql("invalid_amount")
138
+ expect(error.response_code).to eql("13")
139
+ expect(error.response_text).to eql("AMOUNT ERROR")
140
+ }
141
+ end
142
+
143
+ it "Visa response code should indicate invalid card" do
144
+ expect {
145
+ Hps::TestHelper.charge_valid_visa(10.28)
146
+ }.to raise_error(Hps::CardException) { |error|
147
+ expect(error.code).to eql("incorrect_number")
148
+ expect(error.response_code).to eql("14")
149
+ expect(error.response_text).to eql("CARD NO. ERROR")
150
+ }
151
+ end
152
+
153
+ it "Visa response code should indicate invalid issuer" do
154
+ expect {
155
+ Hps::TestHelper.charge_valid_visa(10.18)
156
+ }.to raise_error(Hps::CardException) { |error|
157
+ expect(error.code).to eql("processing_error")
158
+ expect(error.response_code).to eql("15")
159
+ expect(error.response_text).to eql("NO SUCH ISSUER")
160
+ }
161
+ end
162
+
163
+ it "Visa response code should indicate system error re-enter" do
164
+ expect {
165
+ Hps::TestHelper.charge_valid_visa(10.29)
166
+ }.to raise_error(Hps::CardException) { |error|
167
+ expect(error.code).to eql("processing_error")
168
+ expect(error.response_code).to eql("19")
169
+ expect(error.response_text).to eql("RE ENTER")
170
+ }
171
+ end
172
+
173
+ it "Visa response code should indicate lost card" do
174
+ expect {
175
+ Hps::TestHelper.charge_valid_visa(10.31)
176
+ }.to raise_error(Hps::CardException) { |error|
177
+ expect(error.code).to eql("card_declined")
178
+ expect(error.response_code).to eql("41")
179
+ expect(error.response_text).to eql("HOLD-CALL")
180
+ }
181
+ end
182
+
183
+ it "Visa response code should indicate hot card pickup" do
184
+ expect {
185
+ Hps::TestHelper.charge_valid_visa(10.03)
186
+ }.to raise_error(Hps::CardException) { |error|
187
+ expect(error.code).to eql("card_declined")
188
+ expect(error.response_code).to eql("43")
189
+ expect(error.response_text).to eql("HOLD-CALL")
190
+ }
191
+ end
192
+
193
+ it "Visa response code should indicate insufficient fund" do
194
+ expect {
195
+ Hps::TestHelper.charge_valid_visa(10.08)
196
+ }.to raise_error(Hps::CardException) { |error|
197
+ expect(error.code).to eql("card_declined")
198
+ # TODO: Gateway changed
199
+ #expect(error.response_code).to eql("05")
200
+ expect(error.response_code).to eql("51")
201
+ expect(error.response_text).to eql("DECLINE")
202
+ }
203
+ end
204
+
205
+ it "Visa response code should indicate no checking account" do
206
+ expect {
207
+ Hps::TestHelper.charge_valid_visa(10.16)
208
+ }.to raise_error(Hps::CardException) { |error|
209
+ expect(error.code).to eql("processing_error")
210
+ expect(error.response_code).to eql("52")
211
+ expect(error.response_text).to eql("NO CHECK ACCOUNT")
212
+ }
213
+ end
214
+
215
+ it "Visa response code should indicate no savings account" do
216
+ expect {
217
+ Hps::TestHelper.charge_valid_visa(10.17)
218
+ }.to raise_error(Hps::CardException) { |error|
219
+ expect(error.code).to eql("processing_error")
220
+ expect(error.response_code).to eql("53")
221
+ expect(error.response_text).to eql("NO SAVE ACCOUNT")
222
+ }
223
+ end
224
+
225
+ it "Visa response code should indicate expired card" do
226
+ expect {
227
+ Hps::TestHelper.charge_valid_visa(10.32)
228
+ }.to raise_error(Hps::CardException) { |error|
229
+ expect(error.code).to eql("expired_card")
230
+ expect(error.response_code).to eql("54")
231
+ expect(error.response_text).to eql("EXPIRED CARD")
232
+ }
233
+ end
234
+
235
+ it "Visa response code should indicate txn not permitted on card card" do
236
+ expect {
237
+ Hps::TestHelper.charge_valid_visa(10.20)
238
+ }.to raise_error(Hps::CardException) { |error|
239
+ # TODO: Gateway changed
240
+ #expect(error.code).to eql("processing_error")
241
+ #expect(error.response_code).to eql("57")
242
+ #expect(error.response_text).to eql("SERV NOT ALLOWED")
243
+ expect(error.code).to eql("unknown_card_exception")
244
+ expect(error.response_code).to eql("R1")
245
+ expect(error.response_text).to eql("STOP RECURRING")
246
+ }
247
+ end
248
+
249
+ it "Visa response code should indicate invalid acquirer" do
250
+ expect {
251
+ Hps::TestHelper.charge_valid_visa(10.30)
252
+ }.to raise_error(Hps::CardException) { |error|
253
+ expect(error.code).to eql("processing_error")
254
+ expect(error.response_code).to eql("58")
255
+ expect(error.response_text).to eql("SERV NOT ALLOWED")
256
+ }
257
+ end
258
+
259
+ it "Visa response code should indicate exceeds limit" do
260
+ expect {
261
+ Hps::TestHelper.charge_valid_visa(10.09)
262
+ }.to raise_error(Hps::CardException) { |error|
263
+ expect(error.code).to eql("card_declined")
264
+ expect(error.response_code).to eql("61")
265
+ expect(error.response_text).to eql("DECLINE")
266
+ }
267
+ end
268
+
269
+ it "Visa response code should indicate restricted card" do
270
+ expect {
271
+ Hps::TestHelper.charge_valid_visa(10.10)
272
+ }.to raise_error(Hps::CardException) { |error|
273
+ expect(error.code).to eql("card_declined")
274
+ expect(error.response_code).to eql("62")
275
+ expect(error.response_text).to eql("DECLINE")
276
+ }
277
+ end
278
+
279
+ it "Visa response code should indicate security violation" do
280
+ expect {
281
+ Hps::TestHelper.charge_valid_visa(10.11)
282
+ }.to raise_error(Hps::CardException) { |error|
283
+ expect(error.code).to eql("card_declined")
284
+ expect(error.response_code).to eql("65")
285
+ expect(error.response_text).to eql("DECLINE")
286
+ }
287
+ end
288
+
289
+ it "Visa response code should indicate check digit error" do
290
+ expect {
291
+ Hps::TestHelper.charge_valid_visa(10.05)
292
+ }.to raise_error(Hps::CardException) { |error|
293
+ expect(error.code).to eql("incorrect_cvc")
294
+ expect(error.response_code).to eql("EB")
295
+ expect(error.response_text).to eql("CHECK DIGIT ERR")
296
+ }
297
+ end
298
+
299
+ it "Visa response code should indicate switch not available" do
300
+ expect {
301
+ Hps::TestHelper.charge_valid_visa(10.33)
302
+ }.to raise_error(Hps::HpsException) { |error|
303
+ #}.to raise_error(Hps::CardException) { |error|
304
+ #expect(error.code).to eql("processing_error")
305
+ #expect(error.response_code).to eql("14")
306
+ expect(error.code).to eql("issuer_timeout")
307
+ expect(error.response_code).to eql("91")
308
+ expect(error.response_text).to eql("NO REPLY")
309
+ }
310
+ end
311
+
312
+ it "Visa response code should indicate system error" do
313
+ expect {
314
+ Hps::TestHelper.charge_valid_visa(10.21)
315
+ }.to raise_error(Hps::CardException) { |error|
316
+ expect(error.code).to eql("processing_error")
317
+ expect(error.response_code).to eql("96")
318
+ expect(error.response_text).to eql("SYSTEM ERROR")
319
+ }
320
+ end
321
+
322
+ it "Visa response code should indicate CVV2 mismatch" do
323
+ expect {
324
+ Hps::TestHelper.charge_valid_visa(10.23)
325
+ }.to raise_error(Hps::CardException) { |error|
326
+ expect(error.code).to eql("incorrect_cvc")
327
+ expect(error.response_code).to eql("N7")
328
+ expect(error.response_text).to eql("CVV2 MISMATCH")
329
+ }
330
+ end
331
+
332
+ # verify, authorize, refund, and capture
333
+
334
+ it "Visa verify should return OK" do
335
+ service = Hps::HpsChargeService.new()
336
+ result = service.verify(Hps::TestData.valid_visa, Hps::TestData.valid_cardholder)
337
+ expect(result.response_code).to eql("85")
338
+ end
339
+
340
+ it "Visa verify should return Token" do
341
+ service = Hps::HpsChargeService.new()
342
+ result = service.verify(Hps::TestData.valid_visa, Hps::TestData.valid_cardholder,true)
343
+ expect(result.response_code).to eql("85")
344
+ expect(result.token_data.response_message).to eql("Success")
345
+ result.token_data.token_value.should_not eq(nil)
346
+
347
+ end
348
+
349
+ it "Visa authorize should return OK" do
350
+ service = Hps::HpsChargeService.new()
351
+ result = service.authorize(50.00, "usd", Hps::TestData.valid_visa, Hps::TestData.valid_cardholder)
352
+ expect(result.response_code).to eql("00")
353
+ end
354
+
355
+ it "Visa authorize and request token should return OK" do
356
+ service = Hps::HpsChargeService.new()
357
+ result = service.authorize(50.00, "usd", Hps::TestData.valid_visa, Hps::TestData.valid_cardholder, true)
358
+ expect(result.token_data.response_code).to eql("0")
359
+ expect(result.response_code).to eql("00")
360
+ end
361
+
362
+ it "Visa should refund OK" do
363
+ service = Hps::HpsChargeService.new()
364
+ charge = service.charge(25.00, "usd", Hps::TestData.valid_visa, Hps::TestData.valid_cardholder)
365
+ refund = service.refund_transaction(25.00, "usd", charge.transaction_id)
366
+ expect(refund.response_code).to eql("00")
367
+ end
368
+
369
+ it "Visa authorize and capture should return OK" do
370
+ service = Hps::HpsChargeService.new()
371
+ result = service.authorize(50.00, "usd", Hps::TestData.valid_visa, Hps::TestData.valid_cardholder)
372
+ expect(result.response_code).to eql("00")
373
+
374
+ capture_result = service.capture(result.transaction_id)
375
+ expect(capture_result.response_code).to eql("00")
376
+ end
377
+
378
+ end