hps 1.0.1 → 1.0.2

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.
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