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
@@ -1,325 +1,325 @@
1
- require File.join( File.dirname(__FILE__), "test_helper" )
2
-
3
- describe "Discover Tests" do
4
-
5
- it "Discover when card is ok should return valid result" do
6
- charge = Hps::TestHelper.charge_valid_discover(50)
7
- expect(charge.response_code).to eql("00")
8
- end
9
-
10
- it "Discover avs result code should equal A" do
11
- charge = Hps::TestHelper.charge_valid_discover(91.01)
12
- expect(charge.avs_result_code).to eql("A")
13
- end
14
-
15
- it "Discover avs result code should equal N" do
16
- charge = Hps::TestHelper.charge_valid_discover(91.02)
17
- expect(charge.avs_result_code).to eql("N")
18
- end
19
-
20
- it "Discover avs result code should equal U" do
21
- charge = Hps::TestHelper.charge_valid_discover(91.05)
22
- expect(charge.avs_result_code).to eql("U")
23
- end
24
-
25
- it "Discover avs result code should equal Y" do
26
- charge = Hps::TestHelper.charge_valid_discover(91.06)
27
- expect(charge.avs_result_code).to eql("Y")
28
- end
29
-
30
- it "Discover avs result code should equal Z" do
31
- charge = Hps::TestHelper.charge_valid_discover(91.07)
32
- expect(charge.avs_result_code).to eql("Z")
33
- end
34
-
35
- # discover to 2nd visa
36
-
37
- it "Discover response code should indicate refer card issuer" do
38
- expect {
39
- Hps::TestHelper.charge_valid_discover(10.34)
40
- }.to raise_error(Hps::CardException) { |error|
41
- expect(error.code).to eql("card_declined")
42
- expect(error.response_code).to eql("02")
43
- expect(error.response_text).to eql("CALL")
44
- }
45
- end
46
-
47
- it "Discover response code should indicate invalid merchant" do
48
- expect {
49
- Hps::TestHelper.charge_valid_discover(10.22)
50
- }.to raise_error(Hps::CardException) { |error|
51
- expect(error.code).to eql("card_declined")
52
- expect(error.response_code).to eql("03")
53
- expect(error.response_text).to eql("TERM ID ERROR")
54
- }
55
- end
56
-
57
- it "Discover response code should indicate pickup card" do
58
- expect {
59
- Hps::TestHelper.charge_valid_discover(10.04)
60
- }.to raise_error(Hps::CardException) { |error|
61
- expect(error.code).to eql("card_declined")
62
- expect(error.response_code).to eql("44")
63
- expect(error.response_text).to eql("HOLD-CALL")
64
- }
65
- end
66
-
67
- it "Discover response code should indicate do not honor" do
68
- expect {
69
- Hps::TestHelper.charge_valid_discover(10.25)
70
- }.to raise_error(Hps::CardException) { |error|
71
- expect(error.code).to eql("card_declined")
72
- expect(error.response_code).to eql("05")
73
- expect(error.response_text).to eql("DECLINE")
74
- }
75
- end
76
-
77
- it "Discover response code should indicate invalid transaction" do
78
- expect {
79
- Hps::TestHelper.charge_valid_discover(10.26)
80
- }.to raise_error(Hps::CardException) { |error|
81
- expect(error.code).to eql("processing_error")
82
- expect(error.response_code).to eql("12")
83
- expect(error.response_text).to eql("INVALID TRANS")
84
- }
85
- end
86
-
87
- it "Discover response code should indicate invalid amount" do
88
- expect {
89
- Hps::TestHelper.charge_valid_discover(10.27)
90
- }.to raise_error(Hps::CardException) { |error|
91
- expect(error.code).to eql("invalid_amount")
92
- expect(error.response_code).to eql("13")
93
- expect(error.response_text).to eql("AMOUNT ERROR")
94
- }
95
- end
96
-
97
- it "Discover response code should indicate invalid card" do
98
- expect {
99
- Hps::TestHelper.charge_valid_discover(10.28)
100
- }.to raise_error(Hps::CardException) { |error|
101
- expect(error.code).to eql("incorrect_number")
102
- expect(error.response_code).to eql("14")
103
- expect(error.response_text).to eql("CARD NO. ERROR")
104
- }
105
- end
106
-
107
- # TODO: Gateway change, used to raise exception but doesn't now
108
- # it "Discover response code should indicate invalid issuer" do
109
- # expect {
110
- # Hps::TestHelper.charge_valid_discover(10.18)
111
- # }.to raise_error(Hps::CardException) { |error|
112
- # expect(error.code).to eql("processing_error")
113
- # expect(error.response_code).to eql("15")
114
- # expect(error.response_text).to eql("NO SUCH ISSUER")
115
- # }
116
- # end
117
-
118
- it "Discover response code should indicate system error re-enter" do
119
- expect {
120
- Hps::TestHelper.charge_valid_discover(10.29)
121
- }.to raise_error(Hps::CardException) { |error|
122
- expect(error.code).to eql("processing_error")
123
- expect(error.response_code).to eql("19")
124
- expect(error.response_text).to eql("RE ENTER")
125
- }
126
- end
127
-
128
- it "Discover response code should indicate message format error" do
129
- expect {
130
- Hps::TestHelper.charge_valid_discover(10.06)
131
- }.to raise_error(Hps::CardException) { |error|
132
- expect(error.code).to eql("processing_error")
133
- expect(error.response_code).to eql("EC")
134
- expect(error.response_text).to eql("CID FORMAT ERROR")
135
- }
136
- end
137
-
138
- it "Discover response code should indicate lost card" do
139
- expect {
140
- Hps::TestHelper.charge_valid_discover(10.31)
141
- }.to raise_error(Hps::CardException) { |error|
142
- expect(error.code).to eql("card_declined")
143
- expect(error.response_code).to eql("41")
144
- expect(error.response_text).to eql("HOLD-CALL")
145
- }
146
- end
147
-
148
- it "Discover response code should indicate insufficient funds" do
149
- expect {
150
- Hps::TestHelper.charge_valid_discover(10.08)
151
- }.to raise_error(Hps::CardException) { |error|
152
- expect(error.code).to eql("card_declined")
153
- expect(error.response_code).to eql("05")
154
- expect(error.response_text).to eql("DECLINE")
155
- }
156
- end
157
-
158
- it "Discover response code should indicate no saving account" do
159
- expect {
160
- Hps::TestHelper.charge_valid_discover(10.17)
161
- }.to raise_error(Hps::CardException) { |error|
162
- expect(error.code).to eql("processing_error")
163
- expect(error.response_code).to eql("53")
164
- expect(error.response_text).to eql("NO SAVE ACCOUNT")
165
- }
166
- end
167
-
168
- it "Discover response code should indicate expired card" do
169
- expect {
170
- Hps::TestHelper.charge_valid_discover(10.32)
171
- }.to raise_error(Hps::CardException) { |error|
172
- expect(error.code).to eql("expired_card")
173
- expect(error.response_code).to eql("54")
174
- expect(error.response_text).to eql("EXPIRED CARD")
175
- }
176
- end
177
-
178
- it "Discover response code should indicate no card record" do
179
- expect {
180
- Hps::TestHelper.charge_valid_discover(10.24)
181
- }.to raise_error(Hps::CardException) { |error|
182
- expect(error.code).to eql("card_declined")
183
- expect(error.response_code).to eql("56")
184
- expect(error.response_text).to eql("INVALID TRANS")
185
- }
186
- end
187
-
188
- it "Discover response code should indicate txn not permitted on card" do
189
- expect {
190
- Hps::TestHelper.charge_valid_discover(10.20)
191
- }.to raise_error(Hps::CardException) { |error|
192
- expect(error.code).to eql("processing_error")
193
- expect(error.response_code).to eql("57")
194
- expect(error.response_text).to eql("SERV NOT ALLOWED")
195
- }
196
- end
197
-
198
- it "Discover response code should indicate invalid aquirer" do
199
- expect {
200
- Hps::TestHelper.charge_valid_discover(10.30)
201
- }.to raise_error(Hps::CardException) { |error|
202
- expect(error.code).to eql("processing_error")
203
- expect(error.response_code).to eql("58")
204
- expect(error.response_text).to eql("SERV NOT ALLOWED")
205
- }
206
- end
207
-
208
- it "Discover response code should indicate exceeds limit" do
209
- expect {
210
- Hps::TestHelper.charge_valid_discover(10.09)
211
- }.to raise_error(Hps::CardException) { |error|
212
- expect(error.code).to eql("card_declined")
213
- expect(error.response_code).to eql("61")
214
- expect(error.response_text).to eql("DECLINE")
215
- }
216
- end
217
-
218
- it "Discover response code should indicate restricted card" do
219
- expect {
220
- Hps::TestHelper.charge_valid_discover(10.10)
221
- }.to raise_error(Hps::CardException) { |error|
222
- expect(error.code).to eql("card_declined")
223
- expect(error.response_code).to eql("62")
224
- expect(error.response_text).to eql("DECLINE")
225
- }
226
- end
227
-
228
- it "Discover response code should indicate security violation" do
229
- expect {
230
- Hps::TestHelper.charge_valid_discover(10.19)
231
- }.to raise_error(Hps::CardException) { |error|
232
- expect(error.code).to eql("card_declined")
233
- expect(error.response_code).to eql("63")
234
- expect(error.response_text).to eql("SEC VIOLATION")
235
- }
236
- end
237
-
238
- it "Discover response code should indicate exceeds freq limit" do
239
- expect {
240
- Hps::TestHelper.charge_valid_discover(10.11)
241
- }.to raise_error(Hps::CardException) { |error|
242
- expect(error.code).to eql("card_declined")
243
- expect(error.response_code).to eql("65")
244
- expect(error.response_text).to eql("DECLINE")
245
- }
246
- end
247
-
248
- it "Discover response code should indicate no account" do
249
- expect {
250
- Hps::TestHelper.charge_valid_discover(10.13)
251
- }.to raise_error(Hps::CardException) { |error|
252
- expect(error.code).to eql("card_declined")
253
- expect(error.response_code).to eql("78")
254
- expect(error.response_text).to eql("NO ACCOUNT")
255
- }
256
- end
257
-
258
- it "Discover response code should indicate invalid account" do
259
- expect {
260
- Hps::TestHelper.charge_valid_discover(10.14)
261
- }.to raise_error(Hps::CardException) { |error|
262
- expect(error.code).to eql("incorrect_number")
263
- expect(error.response_code).to eql("14")
264
- expect(error.response_text).to eql("CARD NO. ERROR")
265
- }
266
- end
267
-
268
- # TODO: Gateway change, used to throw exception but now it doesn't
269
- # it "Discover response code should indicate switch not available" do
270
- # expect {
271
- # Hps::TestHelper.charge_valid_discover(10.33)
272
- # }.to raise_error(Hps::HpsException) { |error|
273
- # #}.to raise_error(Hps::CardException) { |error|
274
- # #expect(error.code).to eql("processing_error")
275
- # #expect(error.response_code).to eql("14")
276
- # expect(error.code).to eql("issuer_timeout")
277
- # expect(error.response_code).to eql("91")
278
- # expect(error.response_text).to eql("NO REPLY")
279
- # }
280
- # end
281
-
282
- it "Discover response code should indicate system error" do
283
- expect {
284
- Hps::TestHelper.charge_valid_discover(10.26)
285
- }.to raise_error(Hps::CardException) { |error|
286
- expect(error.code).to eql("processing_error")
287
- # TODO: Gateway change
288
- #expect(error.response_code).to eql("96")
289
- #expect(error.response_text).to eql("SYSTEM ERROR")
290
- expect(error.response_code).to eql("12")
291
- expect(error.response_text).to eql("INVALID TRANS")
292
- }
293
- end
294
-
295
- # Verify, Authorize, and Capture
296
-
297
- it "Discover verify should return OK" do
298
- service = Hps::HpsChargeService.new()
299
- result = service.verify(Hps::TestData.valid_discover, Hps::TestData.valid_cardholder)
300
- expect(result.response_code).to eql("85")
301
- end
302
-
303
- it "Discover authorize should return OK" do
304
- service = Hps::HpsChargeService.new()
305
- result = service.authorize(50.00, "usd", Hps::TestData.valid_discover, Hps::TestData.valid_cardholder)
306
- expect(result.response_code).to eql("00")
307
- end
308
-
309
- it "Discover authorize and request token should return OK" do
310
- service = Hps::HpsChargeService.new()
311
- result = service.authorize(50.00, "usd", Hps::TestData.valid_discover, Hps::TestData.valid_cardholder, true)
312
- expect(result.token_data.response_code).to eql("0")
313
- expect(result.response_code).to eql("00")
314
- end
315
-
316
- it "Discover authorize and capture should return OK" do
317
- service = Hps::HpsChargeService.new()
318
- result = service.authorize(50.00, "usd", Hps::TestData.valid_discover, Hps::TestData.valid_cardholder)
319
- expect(result.response_code).to eql("00")
320
-
321
- capture_result = service.capture(result.transaction_id)
322
- expect(capture_result.response_code).to eql("00")
323
- end
324
-
1
+ require File.join( File.dirname(__FILE__), "test_helper" )
2
+
3
+ describe "Discover Tests" do
4
+
5
+ it "Discover when card is ok should return valid result" do
6
+ charge = Hps::TestHelper.charge_valid_discover(50)
7
+ expect(charge.response_code).to eql("00")
8
+ end
9
+
10
+ it "Discover avs result code should equal A" do
11
+ charge = Hps::TestHelper.charge_valid_discover(91.01)
12
+ expect(charge.avs_result_code).to eql("A")
13
+ end
14
+
15
+ it "Discover avs result code should equal N" do
16
+ charge = Hps::TestHelper.charge_valid_discover(91.02)
17
+ expect(charge.avs_result_code).to eql("N")
18
+ end
19
+
20
+ it "Discover avs result code should equal U" do
21
+ charge = Hps::TestHelper.charge_valid_discover(91.05)
22
+ expect(charge.avs_result_code).to eql("U")
23
+ end
24
+
25
+ it "Discover avs result code should equal Y" do
26
+ charge = Hps::TestHelper.charge_valid_discover(91.06)
27
+ expect(charge.avs_result_code).to eql("Y")
28
+ end
29
+
30
+ it "Discover avs result code should equal Z" do
31
+ charge = Hps::TestHelper.charge_valid_discover(91.07)
32
+ expect(charge.avs_result_code).to eql("Z")
33
+ end
34
+
35
+ # discover to 2nd visa
36
+
37
+ it "Discover response code should indicate refer card issuer" do
38
+ expect {
39
+ Hps::TestHelper.charge_valid_discover(10.34)
40
+ }.to raise_error(Hps::CardException) { |error|
41
+ expect(error.code).to eql("card_declined")
42
+ expect(error.response_code).to eql("02")
43
+ expect(error.response_text).to eql("CALL")
44
+ }
45
+ end
46
+
47
+ it "Discover response code should indicate invalid merchant" do
48
+ expect {
49
+ Hps::TestHelper.charge_valid_discover(10.22)
50
+ }.to raise_error(Hps::CardException) { |error|
51
+ expect(error.code).to eql("card_declined")
52
+ expect(error.response_code).to eql("03")
53
+ expect(error.response_text).to eql("TERM ID ERROR")
54
+ }
55
+ end
56
+
57
+ it "Discover response code should indicate pickup card" do
58
+ expect {
59
+ Hps::TestHelper.charge_valid_discover(10.04)
60
+ }.to raise_error(Hps::CardException) { |error|
61
+ expect(error.code).to eql("card_declined")
62
+ expect(error.response_code).to eql("44")
63
+ expect(error.response_text).to eql("HOLD-CALL")
64
+ }
65
+ end
66
+
67
+ it "Discover response code should indicate do not honor" do
68
+ expect {
69
+ Hps::TestHelper.charge_valid_discover(10.25)
70
+ }.to raise_error(Hps::CardException) { |error|
71
+ expect(error.code).to eql("card_declined")
72
+ expect(error.response_code).to eql("05")
73
+ expect(error.response_text).to eql("DECLINE")
74
+ }
75
+ end
76
+
77
+ it "Discover response code should indicate invalid transaction" do
78
+ expect {
79
+ Hps::TestHelper.charge_valid_discover(10.26)
80
+ }.to raise_error(Hps::CardException) { |error|
81
+ expect(error.code).to eql("processing_error")
82
+ expect(error.response_code).to eql("12")
83
+ expect(error.response_text).to eql("INVALID TRANS")
84
+ }
85
+ end
86
+
87
+ it "Discover response code should indicate invalid amount" do
88
+ expect {
89
+ Hps::TestHelper.charge_valid_discover(10.27)
90
+ }.to raise_error(Hps::CardException) { |error|
91
+ expect(error.code).to eql("invalid_amount")
92
+ expect(error.response_code).to eql("13")
93
+ expect(error.response_text).to eql("AMOUNT ERROR")
94
+ }
95
+ end
96
+
97
+ it "Discover response code should indicate invalid card" do
98
+ expect {
99
+ Hps::TestHelper.charge_valid_discover(10.28)
100
+ }.to raise_error(Hps::CardException) { |error|
101
+ expect(error.code).to eql("incorrect_number")
102
+ expect(error.response_code).to eql("14")
103
+ expect(error.response_text).to eql("CARD NO. ERROR")
104
+ }
105
+ end
106
+
107
+ # TODO: Gateway change, used to raise exception but doesn't now
108
+ # it "Discover response code should indicate invalid issuer" do
109
+ # expect {
110
+ # Hps::TestHelper.charge_valid_discover(10.18)
111
+ # }.to raise_error(Hps::CardException) { |error|
112
+ # expect(error.code).to eql("processing_error")
113
+ # expect(error.response_code).to eql("15")
114
+ # expect(error.response_text).to eql("NO SUCH ISSUER")
115
+ # }
116
+ # end
117
+
118
+ it "Discover response code should indicate system error re-enter" do
119
+ expect {
120
+ Hps::TestHelper.charge_valid_discover(10.29)
121
+ }.to raise_error(Hps::CardException) { |error|
122
+ expect(error.code).to eql("processing_error")
123
+ expect(error.response_code).to eql("19")
124
+ expect(error.response_text).to eql("RE ENTER")
125
+ }
126
+ end
127
+
128
+ it "Discover response code should indicate message format error" do
129
+ expect {
130
+ Hps::TestHelper.charge_valid_discover(10.06)
131
+ }.to raise_error(Hps::CardException) { |error|
132
+ expect(error.code).to eql("processing_error")
133
+ expect(error.response_code).to eql("EC")
134
+ expect(error.response_text).to eql("CID FORMAT ERROR")
135
+ }
136
+ end
137
+
138
+ it "Discover response code should indicate lost card" do
139
+ expect {
140
+ Hps::TestHelper.charge_valid_discover(10.31)
141
+ }.to raise_error(Hps::CardException) { |error|
142
+ expect(error.code).to eql("card_declined")
143
+ expect(error.response_code).to eql("41")
144
+ expect(error.response_text).to eql("HOLD-CALL")
145
+ }
146
+ end
147
+
148
+ it "Discover response code should indicate insufficient funds" do
149
+ expect {
150
+ Hps::TestHelper.charge_valid_discover(10.08)
151
+ }.to raise_error(Hps::CardException) { |error|
152
+ expect(error.code).to eql("card_declined")
153
+ expect(error.response_code).to eql("05")
154
+ expect(error.response_text).to eql("DECLINE")
155
+ }
156
+ end
157
+
158
+ it "Discover response code should indicate no saving account" do
159
+ expect {
160
+ Hps::TestHelper.charge_valid_discover(10.17)
161
+ }.to raise_error(Hps::CardException) { |error|
162
+ expect(error.code).to eql("processing_error")
163
+ expect(error.response_code).to eql("53")
164
+ expect(error.response_text).to eql("NO SAVE ACCOUNT")
165
+ }
166
+ end
167
+
168
+ it "Discover response code should indicate expired card" do
169
+ expect {
170
+ Hps::TestHelper.charge_valid_discover(10.32)
171
+ }.to raise_error(Hps::CardException) { |error|
172
+ expect(error.code).to eql("expired_card")
173
+ expect(error.response_code).to eql("54")
174
+ expect(error.response_text).to eql("EXPIRED CARD")
175
+ }
176
+ end
177
+
178
+ it "Discover response code should indicate no card record" do
179
+ expect {
180
+ Hps::TestHelper.charge_valid_discover(10.24)
181
+ }.to raise_error(Hps::CardException) { |error|
182
+ expect(error.code).to eql("card_declined")
183
+ expect(error.response_code).to eql("56")
184
+ expect(error.response_text).to eql("INVALID TRANS")
185
+ }
186
+ end
187
+
188
+ it "Discover response code should indicate txn not permitted on card" do
189
+ expect {
190
+ Hps::TestHelper.charge_valid_discover(10.20)
191
+ }.to raise_error(Hps::CardException) { |error|
192
+ expect(error.code).to eql("processing_error")
193
+ expect(error.response_code).to eql("57")
194
+ expect(error.response_text).to eql("SERV NOT ALLOWED")
195
+ }
196
+ end
197
+
198
+ it "Discover response code should indicate invalid aquirer" do
199
+ expect {
200
+ Hps::TestHelper.charge_valid_discover(10.30)
201
+ }.to raise_error(Hps::CardException) { |error|
202
+ expect(error.code).to eql("processing_error")
203
+ expect(error.response_code).to eql("58")
204
+ expect(error.response_text).to eql("SERV NOT ALLOWED")
205
+ }
206
+ end
207
+
208
+ it "Discover response code should indicate exceeds limit" do
209
+ expect {
210
+ Hps::TestHelper.charge_valid_discover(10.09)
211
+ }.to raise_error(Hps::CardException) { |error|
212
+ expect(error.code).to eql("card_declined")
213
+ expect(error.response_code).to eql("61")
214
+ expect(error.response_text).to eql("DECLINE")
215
+ }
216
+ end
217
+
218
+ it "Discover response code should indicate restricted card" do
219
+ expect {
220
+ Hps::TestHelper.charge_valid_discover(10.10)
221
+ }.to raise_error(Hps::CardException) { |error|
222
+ expect(error.code).to eql("card_declined")
223
+ expect(error.response_code).to eql("62")
224
+ expect(error.response_text).to eql("DECLINE")
225
+ }
226
+ end
227
+
228
+ it "Discover response code should indicate security violation" do
229
+ expect {
230
+ Hps::TestHelper.charge_valid_discover(10.19)
231
+ }.to raise_error(Hps::CardException) { |error|
232
+ expect(error.code).to eql("card_declined")
233
+ expect(error.response_code).to eql("63")
234
+ expect(error.response_text).to eql("SEC VIOLATION")
235
+ }
236
+ end
237
+
238
+ it "Discover response code should indicate exceeds freq limit" do
239
+ expect {
240
+ Hps::TestHelper.charge_valid_discover(10.11)
241
+ }.to raise_error(Hps::CardException) { |error|
242
+ expect(error.code).to eql("card_declined")
243
+ expect(error.response_code).to eql("65")
244
+ expect(error.response_text).to eql("DECLINE")
245
+ }
246
+ end
247
+
248
+ it "Discover response code should indicate no account" do
249
+ expect {
250
+ Hps::TestHelper.charge_valid_discover(10.13)
251
+ }.to raise_error(Hps::CardException) { |error|
252
+ expect(error.code).to eql("card_declined")
253
+ expect(error.response_code).to eql("78")
254
+ expect(error.response_text).to eql("NO ACCOUNT")
255
+ }
256
+ end
257
+
258
+ it "Discover response code should indicate invalid account" do
259
+ expect {
260
+ Hps::TestHelper.charge_valid_discover(10.14)
261
+ }.to raise_error(Hps::CardException) { |error|
262
+ expect(error.code).to eql("incorrect_number")
263
+ expect(error.response_code).to eql("14")
264
+ expect(error.response_text).to eql("CARD NO. ERROR")
265
+ }
266
+ end
267
+
268
+ # TODO: Gateway change, used to throw exception but now it doesn't
269
+ # it "Discover response code should indicate switch not available" do
270
+ # expect {
271
+ # Hps::TestHelper.charge_valid_discover(10.33)
272
+ # }.to raise_error(Hps::HpsException) { |error|
273
+ # #}.to raise_error(Hps::CardException) { |error|
274
+ # #expect(error.code).to eql("processing_error")
275
+ # #expect(error.response_code).to eql("14")
276
+ # expect(error.code).to eql("issuer_timeout")
277
+ # expect(error.response_code).to eql("91")
278
+ # expect(error.response_text).to eql("NO REPLY")
279
+ # }
280
+ # end
281
+
282
+ it "Discover response code should indicate system error" do
283
+ expect {
284
+ Hps::TestHelper.charge_valid_discover(10.26)
285
+ }.to raise_error(Hps::CardException) { |error|
286
+ expect(error.code).to eql("processing_error")
287
+ # TODO: Gateway change
288
+ #expect(error.response_code).to eql("96")
289
+ #expect(error.response_text).to eql("SYSTEM ERROR")
290
+ expect(error.response_code).to eql("12")
291
+ expect(error.response_text).to eql("INVALID TRANS")
292
+ }
293
+ end
294
+
295
+ # Verify, Authorize, and Capture
296
+
297
+ it "Discover verify should return OK" do
298
+ service = Hps::HpsChargeService.new()
299
+ result = service.verify(Hps::TestData.valid_discover, Hps::TestData.valid_cardholder)
300
+ expect(result.response_code).to eql("85")
301
+ end
302
+
303
+ it "Discover authorize should return OK" do
304
+ service = Hps::HpsChargeService.new()
305
+ result = service.authorize(50.00, "usd", Hps::TestData.valid_discover, Hps::TestData.valid_cardholder)
306
+ expect(result.response_code).to eql("00")
307
+ end
308
+
309
+ it "Discover authorize and request token should return OK" do
310
+ service = Hps::HpsChargeService.new()
311
+ result = service.authorize(50.00, "usd", Hps::TestData.valid_discover, Hps::TestData.valid_cardholder, true)
312
+ expect(result.token_data.response_code).to eql("0")
313
+ expect(result.response_code).to eql("00")
314
+ end
315
+
316
+ it "Discover authorize and capture should return OK" do
317
+ service = Hps::HpsChargeService.new()
318
+ result = service.authorize(50.00, "usd", Hps::TestData.valid_discover, Hps::TestData.valid_cardholder)
319
+ expect(result.response_code).to eql("00")
320
+
321
+ capture_result = service.capture(result.transaction_id)
322
+ expect(capture_result.response_code).to eql("00")
323
+ end
324
+
325
325
  end