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,326 +1,326 @@
1
- require File.join( File.dirname(__FILE__), "test_helper" )
2
-
3
- describe "Mastercard Tests" do
4
-
5
- it "Mastercard when card is ok, should return valid result" do
6
- charge = Hps::TestHelper.charge_valid_mastercard(50)
7
- expect(charge.response_code).to eql("00")
8
- end
9
-
10
- # avs tests
11
-
12
- it "Mastercard avs result code should equal A" do
13
- charge = Hps::TestHelper.charge_valid_mastercard(90.01)
14
- expect(charge.avs_result_code).to eql("A")
15
- end
16
-
17
- it "Mastercard avs result code should equal N" do
18
- charge = Hps::TestHelper.charge_valid_mastercard(90.02)
19
- expect(charge.avs_result_code).to eql("N")
20
- end
21
-
22
- it "Mastercard avs result code should equal R" do
23
- charge = Hps::TestHelper.charge_valid_mastercard(90.03)
24
- expect(charge.avs_result_code).to eql("R")
25
- end
26
-
27
- it "Mastercard avs result code should equal S" do
28
- charge = Hps::TestHelper.charge_valid_mastercard(90.04)
29
- expect(charge.avs_result_code).to eql("S")
30
- end
31
-
32
- it "Mastercard avs result code should equal U" do
33
- charge = Hps::TestHelper.charge_valid_mastercard(90.05)
34
- expect(charge.avs_result_code).to eql("U")
35
- end
36
-
37
- it "Mastercard avs result code should equal W" do
38
- charge = Hps::TestHelper.charge_valid_mastercard(90.06)
39
- expect(charge.avs_result_code).to eql("W")
40
- end
41
-
42
- it "Mastercard avs result code should equal X" do
43
- charge = Hps::TestHelper.charge_valid_mastercard(90.07)
44
- expect(charge.avs_result_code).to eql("X")
45
- end
46
-
47
- it "Mastercard avs result code should equal Y" do
48
- charge = Hps::TestHelper.charge_valid_mastercard(90.08)
49
- expect(charge.avs_result_code).to eql("Y")
50
- end
51
-
52
- it "Mastercard avs result code should equal Z" do
53
- charge = Hps::TestHelper.charge_valid_mastercard(90.09)
54
- expect(charge.avs_result_code).to eql("Z")
55
- end
56
-
57
- # cvv tests
58
-
59
- it "Mastercard cvv result code should equal M" do
60
- charge = Hps::TestHelper.charge_valid_mastercard(95.01)
61
- expect(charge.cvv_result_code).to eql("M")
62
- end
63
-
64
- it "Mastercard cvv result code should equal N" do
65
- charge = Hps::TestHelper.charge_valid_mastercard(95.02)
66
- expect(charge.cvv_result_code).to eql("N")
67
- end
68
-
69
- it "Mastercard cvv result code should equal P" do
70
- charge = Hps::TestHelper.charge_valid_mastercard(95.03)
71
- expect(charge.cvv_result_code).to eql("P")
72
- end
73
-
74
- it "Mastercard cvv result code should equal U" do
75
- charge = Hps::TestHelper.charge_valid_mastercard(95.04)
76
- expect(charge.cvv_result_code).to eql("U")
77
- end
78
-
79
- # mastercard to 8583
80
-
81
- it "Mastercard response code should indicate refer card issuer" do
82
- expect {
83
- Hps::TestHelper.charge_valid_mastercard(10.34)
84
- }.to raise_error(Hps::CardException) { |error|
85
- expect(error.code).to eql("card_declined")
86
- expect(error.response_code).to eql("02")
87
- expect(error.response_text).to eql("CALL")
88
- }
89
- end
90
-
91
- it "Mastercard response code should indicate term id error" do
92
- expect {
93
- Hps::TestHelper.charge_valid_mastercard(10.22)
94
- }.to raise_error(Hps::CardException) { |error|
95
- expect(error.code).to eql("card_declined")
96
- expect(error.response_code).to eql("03")
97
- expect(error.response_text).to eql("TERM ID ERROR")
98
- }
99
- end
100
-
101
- # TODO: Gateway not throwing error
102
- # it "Mastercard response code should indicate invalid merchant" do
103
- # expect {
104
- # Hps::TestHelper.charge_valid_mastercard(10.01)
105
- # }.to raise_error(Hps::CardException) { |error|
106
- # expect(error.code).to eql("card_declined")
107
- # expect(error.response_code).to eql("04")
108
- # expect(error.response_text).to eql("HOLD-CALL")
109
- # }
110
- # end
111
-
112
- it "Mastercard response code should indicate do not honor" do
113
- expect {
114
- Hps::TestHelper.charge_valid_mastercard(10.25)
115
- }.to raise_error(Hps::CardException) { |error|
116
- expect(error.code).to eql("card_declined")
117
- expect(error.response_code).to eql("05")
118
- expect(error.response_text).to eql("DECLINE")
119
- }
120
- end
121
-
122
- # TODO: Gateway not throwing error
123
- # it "Mastercard response code should indicate invalid transaction" do
124
- # expect {
125
- # Hps::TestHelper.charge_valid_amex(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 "Mastercard response code should indicate invalid amount" do
134
- expect {
135
- Hps::TestHelper.charge_valid_mastercard(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 "Mastercard response code should indicate invalid card" do
144
- expect {
145
- Hps::TestHelper.charge_valid_mastercard(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 "Mastercard response code should indicate invalid issuer" do
154
- expect {
155
- Hps::TestHelper.charge_valid_mastercard(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 "Mastercard response code should indicate lost card" do
164
- expect {
165
- Hps::TestHelper.charge_valid_mastercard(10.31)
166
- }.to raise_error(Hps::CardException) { |error|
167
- expect(error.code).to eql("card_declined")
168
- expect(error.response_code).to eql("41")
169
- expect(error.response_text).to eql("HOLD-CALL")
170
- }
171
- end
172
-
173
- it "Mastercard response code should indicate hold call" do
174
- expect {
175
- Hps::TestHelper.charge_valid_mastercard(10.03)
176
- }.to raise_error(Hps::CardException) { |error|
177
- expect(error.code).to eql("card_declined")
178
- expect(error.response_code).to eql("43")
179
- expect(error.response_text).to eql("HOLD-CALL")
180
- }
181
- end
182
-
183
- it "Mastercard response code should indicate decline" do
184
- expect {
185
- Hps::TestHelper.charge_valid_mastercard(10.08)
186
- }.to raise_error(Hps::CardException) { |error|
187
- expect(error.code).to eql("card_declined")
188
- expect(error.response_code).to eql("51")
189
- expect(error.response_text).to eql("DECLINE")
190
- }
191
- end
192
-
193
- it "Mastercard response code should indicate expired card" do
194
- expect {
195
- Hps::TestHelper.charge_valid_mastercard(10.32)
196
- }.to raise_error(Hps::CardException) { |error|
197
- expect(error.code).to eql("expired_card")
198
- expect(error.response_code).to eql("54")
199
- expect(error.response_text).to eql("EXPIRED CARD")
200
- }
201
- end
202
-
203
- it "Mastercard response code should indicate exceeds limit" do
204
- expect {
205
- Hps::TestHelper.charge_valid_mastercard(10.09)
206
- }.to raise_error(Hps::CardException) { |error|
207
- expect(error.code).to eql("card_declined")
208
- expect(error.response_code).to eql("61")
209
- expect(error.response_text).to eql("DECLINE")
210
- }
211
- end
212
-
213
- it "Mastercard response code should indicate restricted card" do
214
- expect {
215
- Hps::TestHelper.charge_valid_mastercard(10.10)
216
- }.to raise_error(Hps::CardException) { |error|
217
- expect(error.code).to eql("card_declined")
218
- expect(error.response_code).to eql("62")
219
- expect(error.response_text).to eql("DECLINE")
220
- }
221
- end
222
-
223
- it "Mastercard response code should indicate security violation" do
224
- expect {
225
- Hps::TestHelper.charge_valid_mastercard(10.19)
226
- }.to raise_error(Hps::CardException) { |error|
227
- expect(error.code).to eql("card_declined")
228
- expect(error.response_code).to eql("63")
229
- expect(error.response_text).to eql("SEC VIOLATION")
230
- }
231
- end
232
-
233
- it "Mastercard response code should indicate exceeds freq limit" do
234
- expect {
235
- Hps::TestHelper.charge_valid_mastercard(10.11)
236
- }.to raise_error(Hps::CardException) { |error|
237
- expect(error.code).to eql("card_declined")
238
- expect(error.response_code).to eql("65")
239
- expect(error.response_text).to eql("DECLINE")
240
- }
241
- end
242
-
243
- it "Mastercard response code should indicate card no error" do
244
- expect {
245
- Hps::TestHelper.charge_valid_mastercard(10.14)
246
- }.to raise_error(Hps::CardException) { |error|
247
- expect(error.code).to eql("incorrect_number")
248
- expect(error.response_code).to eql("14")
249
- expect(error.response_text).to eql("CARD NO. ERROR")
250
- }
251
- end
252
-
253
- it "Mastercard response code should indicate invalid account" do
254
- expect {
255
- Hps::TestHelper.charge_valid_mastercard(10.06)
256
- }.to raise_error(Hps::CardException) { |error|
257
- expect(error.code).to eql("processing_error")
258
- # TODO: Gateway change
259
- #expect(error.response_code).to eql("79")
260
- expect(error.response_code).to eql("EC")
261
- expect(error.response_text).to eql("CID FORMAT ERROR")
262
- }
263
- end
264
-
265
- # TODO: Gateway change, used to throw exception but now it doesn't
266
- it "Mastercard response code should indicate switch not available" do
267
- expect {
268
- Hps::TestHelper.charge_valid_mastercard(10.33)
269
- }.to raise_error(Hps::HpsException) { |error|
270
- #}.to raise_error(Hps::CardException) { |error|
271
- #expect(error.code).to eql("processing_error")
272
- #expect(error.response_code).to eql("14")
273
- expect(error.code).to eql("issuer_timeout")
274
- expect(error.response_code).to eql("91")
275
- expect(error.response_text).to eql("NO REPLY")
276
- }
277
- end
278
-
279
- it "Mastercard response code should indicate system error" do
280
- expect {
281
- Hps::TestHelper.charge_valid_mastercard(10.21)
282
- }.to raise_error(Hps::CardException) { |error|
283
- expect(error.code).to eql("processing_error")
284
- expect(error.response_code).to eql("96")
285
- expect(error.response_text).to eql("SYSTEM ERROR")
286
- }
287
- end
288
-
289
- # verify, authorize, refund, and capture
290
-
291
- it "Mastercard verify should return OK" do
292
- service = Hps::HpsChargeService.new()
293
- result = service.verify(Hps::TestData.valid_mastercard, Hps::TestData.valid_cardholder)
294
- expect(result.response_code).to eql("85")
295
- end
296
-
297
- it "Mastercard authorize should return OK" do
298
- service = Hps::HpsChargeService.new()
299
- result = service.authorize(50.00, "usd", Hps::TestData.valid_mastercard, Hps::TestData.valid_cardholder)
300
- expect(result.response_code).to eql("00")
301
- end
302
-
303
- it "Mastercard authorize and request token should return OK" do
304
- service = Hps::HpsChargeService.new()
305
- result = service.authorize(50.00, "usd", Hps::TestData.valid_mastercard, Hps::TestData.valid_cardholder, true)
306
- expect(result.token_data.response_code).to eql("0")
307
- expect(result.response_code).to eql("00")
308
- end
309
-
310
- it "Mastercard should refund OK" do
311
- service = Hps::HpsChargeService.new()
312
- charge = service.charge(25.00, "usd", Hps::TestData.valid_mastercard, Hps::TestData.valid_cardholder)
313
- refund = service.refund_transaction(25.00, "usd", charge.transaction_id)
314
- expect(refund.response_code).to eql("00")
315
- end
316
-
317
- it "Mastercard authorize and capture should return OK" do
318
- service = Hps::HpsChargeService.new()
319
- result = service.authorize(50.00, "usd", Hps::TestData.valid_mastercard, Hps::TestData.valid_cardholder)
320
- expect(result.response_code).to eql("00")
321
-
322
- capture_result = service.capture(result.transaction_id)
323
- expect(capture_result.response_code).to eql("00")
324
- end
325
-
1
+ require File.join( File.dirname(__FILE__), "test_helper" )
2
+
3
+ describe "Mastercard Tests" do
4
+
5
+ it "Mastercard when card is ok, should return valid result" do
6
+ charge = Hps::TestHelper.charge_valid_mastercard(50)
7
+ expect(charge.response_code).to eql("00")
8
+ end
9
+
10
+ # avs tests
11
+
12
+ it "Mastercard avs result code should equal A" do
13
+ charge = Hps::TestHelper.charge_valid_mastercard(90.01)
14
+ expect(charge.avs_result_code).to eql("A")
15
+ end
16
+
17
+ it "Mastercard avs result code should equal N" do
18
+ charge = Hps::TestHelper.charge_valid_mastercard(90.02)
19
+ expect(charge.avs_result_code).to eql("N")
20
+ end
21
+
22
+ it "Mastercard avs result code should equal R" do
23
+ charge = Hps::TestHelper.charge_valid_mastercard(90.03)
24
+ expect(charge.avs_result_code).to eql("R")
25
+ end
26
+
27
+ it "Mastercard avs result code should equal S" do
28
+ charge = Hps::TestHelper.charge_valid_mastercard(90.04)
29
+ expect(charge.avs_result_code).to eql("S")
30
+ end
31
+
32
+ it "Mastercard avs result code should equal U" do
33
+ charge = Hps::TestHelper.charge_valid_mastercard(90.05)
34
+ expect(charge.avs_result_code).to eql("U")
35
+ end
36
+
37
+ it "Mastercard avs result code should equal W" do
38
+ charge = Hps::TestHelper.charge_valid_mastercard(90.06)
39
+ expect(charge.avs_result_code).to eql("W")
40
+ end
41
+
42
+ it "Mastercard avs result code should equal X" do
43
+ charge = Hps::TestHelper.charge_valid_mastercard(90.07)
44
+ expect(charge.avs_result_code).to eql("X")
45
+ end
46
+
47
+ it "Mastercard avs result code should equal Y" do
48
+ charge = Hps::TestHelper.charge_valid_mastercard(90.08)
49
+ expect(charge.avs_result_code).to eql("Y")
50
+ end
51
+
52
+ it "Mastercard avs result code should equal Z" do
53
+ charge = Hps::TestHelper.charge_valid_mastercard(90.09)
54
+ expect(charge.avs_result_code).to eql("Z")
55
+ end
56
+
57
+ # cvv tests
58
+
59
+ it "Mastercard cvv result code should equal M" do
60
+ charge = Hps::TestHelper.charge_valid_mastercard(95.01)
61
+ expect(charge.cvv_result_code).to eql("M")
62
+ end
63
+
64
+ it "Mastercard cvv result code should equal N" do
65
+ charge = Hps::TestHelper.charge_valid_mastercard(95.02)
66
+ expect(charge.cvv_result_code).to eql("N")
67
+ end
68
+
69
+ it "Mastercard cvv result code should equal P" do
70
+ charge = Hps::TestHelper.charge_valid_mastercard(95.03)
71
+ expect(charge.cvv_result_code).to eql("P")
72
+ end
73
+
74
+ it "Mastercard cvv result code should equal U" do
75
+ charge = Hps::TestHelper.charge_valid_mastercard(95.04)
76
+ expect(charge.cvv_result_code).to eql("U")
77
+ end
78
+
79
+ # mastercard to 8583
80
+
81
+ it "Mastercard response code should indicate refer card issuer" do
82
+ expect {
83
+ Hps::TestHelper.charge_valid_mastercard(10.34)
84
+ }.to raise_error(Hps::CardException) { |error|
85
+ expect(error.code).to eql("card_declined")
86
+ expect(error.response_code).to eql("02")
87
+ expect(error.response_text).to eql("CALL")
88
+ }
89
+ end
90
+
91
+ it "Mastercard response code should indicate term id error" do
92
+ expect {
93
+ Hps::TestHelper.charge_valid_mastercard(10.22)
94
+ }.to raise_error(Hps::CardException) { |error|
95
+ expect(error.code).to eql("card_declined")
96
+ expect(error.response_code).to eql("03")
97
+ expect(error.response_text).to eql("TERM ID ERROR")
98
+ }
99
+ end
100
+
101
+ # TODO: Gateway not throwing error
102
+ # it "Mastercard response code should indicate invalid merchant" do
103
+ # expect {
104
+ # Hps::TestHelper.charge_valid_mastercard(10.01)
105
+ # }.to raise_error(Hps::CardException) { |error|
106
+ # expect(error.code).to eql("card_declined")
107
+ # expect(error.response_code).to eql("04")
108
+ # expect(error.response_text).to eql("HOLD-CALL")
109
+ # }
110
+ # end
111
+
112
+ it "Mastercard response code should indicate do not honor" do
113
+ expect {
114
+ Hps::TestHelper.charge_valid_mastercard(10.25)
115
+ }.to raise_error(Hps::CardException) { |error|
116
+ expect(error.code).to eql("card_declined")
117
+ expect(error.response_code).to eql("05")
118
+ expect(error.response_text).to eql("DECLINE")
119
+ }
120
+ end
121
+
122
+ # TODO: Gateway not throwing error
123
+ # it "Mastercard response code should indicate invalid transaction" do
124
+ # expect {
125
+ # Hps::TestHelper.charge_valid_amex(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 "Mastercard response code should indicate invalid amount" do
134
+ expect {
135
+ Hps::TestHelper.charge_valid_mastercard(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 "Mastercard response code should indicate invalid card" do
144
+ expect {
145
+ Hps::TestHelper.charge_valid_mastercard(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 "Mastercard response code should indicate invalid issuer" do
154
+ expect {
155
+ Hps::TestHelper.charge_valid_mastercard(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 "Mastercard response code should indicate lost card" do
164
+ expect {
165
+ Hps::TestHelper.charge_valid_mastercard(10.31)
166
+ }.to raise_error(Hps::CardException) { |error|
167
+ expect(error.code).to eql("card_declined")
168
+ expect(error.response_code).to eql("41")
169
+ expect(error.response_text).to eql("HOLD-CALL")
170
+ }
171
+ end
172
+
173
+ it "Mastercard response code should indicate hold call" do
174
+ expect {
175
+ Hps::TestHelper.charge_valid_mastercard(10.03)
176
+ }.to raise_error(Hps::CardException) { |error|
177
+ expect(error.code).to eql("card_declined")
178
+ expect(error.response_code).to eql("43")
179
+ expect(error.response_text).to eql("HOLD-CALL")
180
+ }
181
+ end
182
+
183
+ it "Mastercard response code should indicate decline" do
184
+ expect {
185
+ Hps::TestHelper.charge_valid_mastercard(10.08)
186
+ }.to raise_error(Hps::CardException) { |error|
187
+ expect(error.code).to eql("card_declined")
188
+ expect(error.response_code).to eql("51")
189
+ expect(error.response_text).to eql("DECLINE")
190
+ }
191
+ end
192
+
193
+ it "Mastercard response code should indicate expired card" do
194
+ expect {
195
+ Hps::TestHelper.charge_valid_mastercard(10.32)
196
+ }.to raise_error(Hps::CardException) { |error|
197
+ expect(error.code).to eql("expired_card")
198
+ expect(error.response_code).to eql("54")
199
+ expect(error.response_text).to eql("EXPIRED CARD")
200
+ }
201
+ end
202
+
203
+ it "Mastercard response code should indicate exceeds limit" do
204
+ expect {
205
+ Hps::TestHelper.charge_valid_mastercard(10.09)
206
+ }.to raise_error(Hps::CardException) { |error|
207
+ expect(error.code).to eql("card_declined")
208
+ expect(error.response_code).to eql("61")
209
+ expect(error.response_text).to eql("DECLINE")
210
+ }
211
+ end
212
+
213
+ it "Mastercard response code should indicate restricted card" do
214
+ expect {
215
+ Hps::TestHelper.charge_valid_mastercard(10.10)
216
+ }.to raise_error(Hps::CardException) { |error|
217
+ expect(error.code).to eql("card_declined")
218
+ expect(error.response_code).to eql("62")
219
+ expect(error.response_text).to eql("DECLINE")
220
+ }
221
+ end
222
+
223
+ it "Mastercard response code should indicate security violation" do
224
+ expect {
225
+ Hps::TestHelper.charge_valid_mastercard(10.19)
226
+ }.to raise_error(Hps::CardException) { |error|
227
+ expect(error.code).to eql("card_declined")
228
+ expect(error.response_code).to eql("63")
229
+ expect(error.response_text).to eql("SEC VIOLATION")
230
+ }
231
+ end
232
+
233
+ it "Mastercard response code should indicate exceeds freq limit" do
234
+ expect {
235
+ Hps::TestHelper.charge_valid_mastercard(10.11)
236
+ }.to raise_error(Hps::CardException) { |error|
237
+ expect(error.code).to eql("card_declined")
238
+ expect(error.response_code).to eql("65")
239
+ expect(error.response_text).to eql("DECLINE")
240
+ }
241
+ end
242
+
243
+ it "Mastercard response code should indicate card no error" do
244
+ expect {
245
+ Hps::TestHelper.charge_valid_mastercard(10.14)
246
+ }.to raise_error(Hps::CardException) { |error|
247
+ expect(error.code).to eql("incorrect_number")
248
+ expect(error.response_code).to eql("14")
249
+ expect(error.response_text).to eql("CARD NO. ERROR")
250
+ }
251
+ end
252
+
253
+ it "Mastercard response code should indicate invalid account" do
254
+ expect {
255
+ Hps::TestHelper.charge_valid_mastercard(10.06)
256
+ }.to raise_error(Hps::CardException) { |error|
257
+ expect(error.code).to eql("processing_error")
258
+ # TODO: Gateway change
259
+ #expect(error.response_code).to eql("79")
260
+ expect(error.response_code).to eql("EC")
261
+ expect(error.response_text).to eql("CID FORMAT ERROR")
262
+ }
263
+ end
264
+
265
+ # TODO: Gateway change, used to throw exception but now it doesn't
266
+ it "Mastercard response code should indicate switch not available" do
267
+ expect {
268
+ Hps::TestHelper.charge_valid_mastercard(10.33)
269
+ }.to raise_error(Hps::HpsException) { |error|
270
+ #}.to raise_error(Hps::CardException) { |error|
271
+ #expect(error.code).to eql("processing_error")
272
+ #expect(error.response_code).to eql("14")
273
+ expect(error.code).to eql("issuer_timeout")
274
+ expect(error.response_code).to eql("91")
275
+ expect(error.response_text).to eql("NO REPLY")
276
+ }
277
+ end
278
+
279
+ it "Mastercard response code should indicate system error" do
280
+ expect {
281
+ Hps::TestHelper.charge_valid_mastercard(10.21)
282
+ }.to raise_error(Hps::CardException) { |error|
283
+ expect(error.code).to eql("processing_error")
284
+ expect(error.response_code).to eql("96")
285
+ expect(error.response_text).to eql("SYSTEM ERROR")
286
+ }
287
+ end
288
+
289
+ # verify, authorize, refund, and capture
290
+
291
+ it "Mastercard verify should return OK" do
292
+ service = Hps::HpsChargeService.new()
293
+ result = service.verify(Hps::TestData.valid_mastercard, Hps::TestData.valid_cardholder)
294
+ expect(result.response_code).to eql("85")
295
+ end
296
+
297
+ it "Mastercard authorize should return OK" do
298
+ service = Hps::HpsChargeService.new()
299
+ result = service.authorize(50.00, "usd", Hps::TestData.valid_mastercard, Hps::TestData.valid_cardholder)
300
+ expect(result.response_code).to eql("00")
301
+ end
302
+
303
+ it "Mastercard authorize and request token should return OK" do
304
+ service = Hps::HpsChargeService.new()
305
+ result = service.authorize(50.00, "usd", Hps::TestData.valid_mastercard, Hps::TestData.valid_cardholder, true)
306
+ expect(result.token_data.response_code).to eql("0")
307
+ expect(result.response_code).to eql("00")
308
+ end
309
+
310
+ it "Mastercard should refund OK" do
311
+ service = Hps::HpsChargeService.new()
312
+ charge = service.charge(25.00, "usd", Hps::TestData.valid_mastercard, Hps::TestData.valid_cardholder)
313
+ refund = service.refund_transaction(25.00, "usd", charge.transaction_id)
314
+ expect(refund.response_code).to eql("00")
315
+ end
316
+
317
+ it "Mastercard authorize and capture should return OK" do
318
+ service = Hps::HpsChargeService.new()
319
+ result = service.authorize(50.00, "usd", Hps::TestData.valid_mastercard, Hps::TestData.valid_cardholder)
320
+ expect(result.response_code).to eql("00")
321
+
322
+ capture_result = service.capture(result.transaction_id)
323
+ expect(capture_result.response_code).to eql("00")
324
+ end
325
+
326
326
  end