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