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