heartland_portico 3.2.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,136 @@
1
+ require 'test_helper'
2
+ require 'active_merchant/billing/gateways/heartland_portico'
3
+
4
+ class HeartlandPorticoTest < Test::Unit::TestCase
5
+ def setup
6
+ @gateway = HeartlandPorticoGateway.new(
7
+ :user_name => 'login',
8
+ :password => 'password',
9
+ :developer_i_d => '',
10
+ :device_id => '',
11
+ :license_id => '',
12
+ :site_id => '',
13
+ :version_nbr => ''
14
+ )
15
+
16
+ @credit_card = credit_card
17
+ @amount = 100
18
+
19
+ @options = {
20
+ :order_id => '1',
21
+ :billing_address => address,
22
+ :description => 'Store Purchase'
23
+ }
24
+ end
25
+
26
+ def savon_mock(response)
27
+ Savon::Operation.any_instance.expects(:call_with_logging).returns(HTTPI::Response.new(200,{},response))
28
+ end
29
+
30
+ def test_successful_purchase
31
+ savon_mock(successful_purchase_response)
32
+
33
+ assert response = @gateway.purchase(@amount, @credit_card, @options)
34
+ #assert_instance_of Response, response
35
+ assert_success response
36
+
37
+ # Replace with authorization number from the successful response
38
+ assert_equal '9414170', response.authorization
39
+ assert response.test?
40
+ end
41
+
42
+ def test_unsuccessful_request
43
+ savon_mock(failed_purchase_response)
44
+
45
+ assert response = @gateway.purchase(@amount, @credit_card, @options)
46
+ assert_failure response
47
+ assert response.test?
48
+ end
49
+
50
+ def test_cardholder_data
51
+ post = {}
52
+ options = {
53
+ :billing_address => {
54
+ :zip => 'K1C2N6',
55
+ :phone => "2505551234"
56
+ }
57
+ }
58
+
59
+ @gateway.send(:add_address, post, @credit_card, options)
60
+
61
+ assert_equal "K1C2N6", post[:card_holder_data][:card_holder_zip]
62
+ assert_equal "2505551234", post[:card_holder_data][:card_holder_phone]
63
+ assert_equal "", post[:card_holder_data][:card_holder_addr]
64
+ end
65
+
66
+ private
67
+
68
+ # Place raw successful response from gateway here
69
+ def successful_purchase_response
70
+ <<-XML
71
+ <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
72
+ <soap:Body>
73
+ <PosResponse xmlns="http://Hps.Exchange.PosGateway" rootUrl="https://cert.api2.heartlandportico.com/Hps.Exchange.PosGateway">
74
+ <Ver1.0>
75
+ <Header>
76
+ <LicenseId>21198</LicenseId>
77
+ <SiteId>21201</SiteId>
78
+ <DeviceId>1525731</DeviceId>
79
+ <GatewayTxnId>9414170</GatewayTxnId>
80
+ <GatewayRspCode>0</GatewayRspCode>
81
+ <GatewayRspMsg>Success</GatewayRspMsg>
82
+ <RspDT>2014-01-03T17:53:27.9004696</RspDT>
83
+ </Header>
84
+ <Transaction>
85
+ <CreditSale>
86
+ <RspCode>00</RspCode>
87
+ <RspText>APPROVAL</RspText>
88
+ <AuthCode>27090A</AuthCode>
89
+ <AVSRsltCode>0</AVSRsltCode>
90
+ <RefNbr>400313728279</RefNbr>
91
+ <CardType>Visa</CardType>
92
+ <AVSRsltText>AVS Not Requested.</AVSRsltText>
93
+ </CreditSale>
94
+ </Transaction>
95
+ </Ver1.0>
96
+ </PosResponse>
97
+ </soap:Body>
98
+ </soap:Envelope>
99
+ XML
100
+ end
101
+
102
+ # Place raw failed response from gateway here
103
+ def failed_purchase_response
104
+ <<-XML
105
+ <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
106
+ <soap:Body>
107
+ <PosResponse xmlns="http://Hps.Exchange.PosGateway" rootUrl="https://cert.api2.heartlandportico.com/Hps.Exchange.PosGateway">
108
+ <Ver1.0>
109
+ <Header>
110
+ <LicenseId>21198</LicenseId>
111
+ <SiteId>21201</SiteId>
112
+ <DeviceId>1525731</DeviceId>
113
+ <GatewayTxnId>9416864</GatewayTxnId>
114
+ <GatewayRspCode>0</GatewayRspCode>
115
+ <GatewayRspMsg>Success</GatewayRspMsg>
116
+ <RspDT>2014-01-03T17:53:29.1328775</RspDT>
117
+ </Header>
118
+ <Transaction>
119
+ <CreditSale>
120
+ <RspCode>05</RspCode>
121
+ <RspText>DECLINE</RspText>
122
+ <AuthCode> </AuthCode>
123
+ <AVSRsltCode>0</AVSRsltCode>
124
+ <RefNbr>400313728664</RefNbr>
125
+ <CardType>Visa</CardType>
126
+ <AVSRsltText>AVS Not Requested.</AVSRsltText>
127
+ </CreditSale>
128
+ </Transaction>
129
+ </Ver1.0>
130
+ </PosResponse>
131
+ </soap:Body>
132
+ </soap:Envelope>
133
+ XML
134
+ end
135
+
136
+ end
metadata ADDED
@@ -0,0 +1,357 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: heartland_portico
3
+ version: !ruby/object:Gem::Version
4
+ version: 3.2.5
5
+ platform: ruby
6
+ authors:
7
+ - VersaPay Corp
8
+ - Jamie Macey
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2018-03-09 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: savon
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - "~>"
19
+ - !ruby/object:Gem::Version
20
+ version: '2.0'
21
+ type: :runtime
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - "~>"
26
+ - !ruby/object:Gem::Version
27
+ version: '2.0'
28
+ - !ruby/object:Gem::Dependency
29
+ name: rubyntlm
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - ">="
33
+ - !ruby/object:Gem::Version
34
+ version: '0'
35
+ type: :runtime
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - ">="
40
+ - !ruby/object:Gem::Version
41
+ version: '0'
42
+ - !ruby/object:Gem::Dependency
43
+ name: nokogiri
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - ">="
47
+ - !ruby/object:Gem::Version
48
+ version: '0'
49
+ type: :runtime
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - ">="
54
+ - !ruby/object:Gem::Version
55
+ version: '0'
56
+ - !ruby/object:Gem::Dependency
57
+ name: activemerchant
58
+ requirement: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - ">="
61
+ - !ruby/object:Gem::Version
62
+ version: '0'
63
+ type: :runtime
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - ">="
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ - !ruby/object:Gem::Dependency
71
+ name: actionpack
72
+ requirement: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - ">="
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
77
+ type: :runtime
78
+ prerelease: false
79
+ version_requirements: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - ">="
82
+ - !ruby/object:Gem::Version
83
+ version: '0'
84
+ - !ruby/object:Gem::Dependency
85
+ name: activesupport
86
+ requirement: !ruby/object:Gem::Requirement
87
+ requirements:
88
+ - - ">="
89
+ - !ruby/object:Gem::Version
90
+ version: '0'
91
+ type: :runtime
92
+ prerelease: false
93
+ version_requirements: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - ">="
96
+ - !ruby/object:Gem::Version
97
+ version: '0'
98
+ - !ruby/object:Gem::Dependency
99
+ name: builder
100
+ requirement: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - ">="
103
+ - !ruby/object:Gem::Version
104
+ version: '0'
105
+ type: :runtime
106
+ prerelease: false
107
+ version_requirements: !ruby/object:Gem::Requirement
108
+ requirements:
109
+ - - ">="
110
+ - !ruby/object:Gem::Version
111
+ version: '0'
112
+ - !ruby/object:Gem::Dependency
113
+ name: money
114
+ requirement: !ruby/object:Gem::Requirement
115
+ requirements:
116
+ - - ">="
117
+ - !ruby/object:Gem::Version
118
+ version: '0'
119
+ type: :runtime
120
+ prerelease: false
121
+ version_requirements: !ruby/object:Gem::Requirement
122
+ requirements:
123
+ - - ">="
124
+ - !ruby/object:Gem::Version
125
+ version: '0'
126
+ - !ruby/object:Gem::Dependency
127
+ name: rspec
128
+ requirement: !ruby/object:Gem::Requirement
129
+ requirements:
130
+ - - ">="
131
+ - !ruby/object:Gem::Version
132
+ version: '0'
133
+ type: :development
134
+ prerelease: false
135
+ version_requirements: !ruby/object:Gem::Requirement
136
+ requirements:
137
+ - - ">="
138
+ - !ruby/object:Gem::Version
139
+ version: '0'
140
+ - !ruby/object:Gem::Dependency
141
+ name: test-unit
142
+ requirement: !ruby/object:Gem::Requirement
143
+ requirements:
144
+ - - ">="
145
+ - !ruby/object:Gem::Version
146
+ version: '0'
147
+ type: :development
148
+ prerelease: false
149
+ version_requirements: !ruby/object:Gem::Requirement
150
+ requirements:
151
+ - - ">="
152
+ - !ruby/object:Gem::Version
153
+ version: '0'
154
+ - !ruby/object:Gem::Dependency
155
+ name: minitest
156
+ requirement: !ruby/object:Gem::Requirement
157
+ requirements:
158
+ - - ">="
159
+ - !ruby/object:Gem::Version
160
+ version: '0'
161
+ type: :development
162
+ prerelease: false
163
+ version_requirements: !ruby/object:Gem::Requirement
164
+ requirements:
165
+ - - ">="
166
+ - !ruby/object:Gem::Version
167
+ version: '0'
168
+ - !ruby/object:Gem::Dependency
169
+ name: rdoc
170
+ requirement: !ruby/object:Gem::Requirement
171
+ requirements:
172
+ - - ">="
173
+ - !ruby/object:Gem::Version
174
+ version: '0'
175
+ type: :development
176
+ prerelease: false
177
+ version_requirements: !ruby/object:Gem::Requirement
178
+ requirements:
179
+ - - ">="
180
+ - !ruby/object:Gem::Version
181
+ version: '0'
182
+ - !ruby/object:Gem::Dependency
183
+ name: bundler
184
+ requirement: !ruby/object:Gem::Requirement
185
+ requirements:
186
+ - - ">="
187
+ - !ruby/object:Gem::Version
188
+ version: '0'
189
+ type: :development
190
+ prerelease: false
191
+ version_requirements: !ruby/object:Gem::Requirement
192
+ requirements:
193
+ - - ">="
194
+ - !ruby/object:Gem::Version
195
+ version: '0'
196
+ - !ruby/object:Gem::Dependency
197
+ name: jeweler
198
+ requirement: !ruby/object:Gem::Requirement
199
+ requirements:
200
+ - - ">="
201
+ - !ruby/object:Gem::Version
202
+ version: '0'
203
+ type: :development
204
+ prerelease: false
205
+ version_requirements: !ruby/object:Gem::Requirement
206
+ requirements:
207
+ - - ">="
208
+ - !ruby/object:Gem::Version
209
+ version: '0'
210
+ - !ruby/object:Gem::Dependency
211
+ name: simplecov
212
+ requirement: !ruby/object:Gem::Requirement
213
+ requirements:
214
+ - - ">="
215
+ - !ruby/object:Gem::Version
216
+ version: '0'
217
+ type: :development
218
+ prerelease: false
219
+ version_requirements: !ruby/object:Gem::Requirement
220
+ requirements:
221
+ - - ">="
222
+ - !ruby/object:Gem::Version
223
+ version: '0'
224
+ - !ruby/object:Gem::Dependency
225
+ name: mocha
226
+ requirement: !ruby/object:Gem::Requirement
227
+ requirements:
228
+ - - ">="
229
+ - !ruby/object:Gem::Version
230
+ version: '0'
231
+ type: :development
232
+ prerelease: false
233
+ version_requirements: !ruby/object:Gem::Requirement
234
+ requirements:
235
+ - - ">="
236
+ - !ruby/object:Gem::Version
237
+ version: '0'
238
+ - !ruby/object:Gem::Dependency
239
+ name: mechanize
240
+ requirement: !ruby/object:Gem::Requirement
241
+ requirements:
242
+ - - ">="
243
+ - !ruby/object:Gem::Version
244
+ version: '0'
245
+ type: :development
246
+ prerelease: false
247
+ version_requirements: !ruby/object:Gem::Requirement
248
+ requirements:
249
+ - - ">="
250
+ - !ruby/object:Gem::Version
251
+ version: '0'
252
+ - !ruby/object:Gem::Dependency
253
+ name: launchy
254
+ requirement: !ruby/object:Gem::Requirement
255
+ requirements:
256
+ - - ">="
257
+ - !ruby/object:Gem::Version
258
+ version: '0'
259
+ type: :development
260
+ prerelease: false
261
+ version_requirements: !ruby/object:Gem::Requirement
262
+ requirements:
263
+ - - ">="
264
+ - !ruby/object:Gem::Version
265
+ version: '0'
266
+ - !ruby/object:Gem::Dependency
267
+ name: mongrel
268
+ requirement: !ruby/object:Gem::Requirement
269
+ requirements:
270
+ - - '='
271
+ - !ruby/object:Gem::Version
272
+ version: 1.2.0.pre2
273
+ type: :development
274
+ prerelease: false
275
+ version_requirements: !ruby/object:Gem::Requirement
276
+ requirements:
277
+ - - '='
278
+ - !ruby/object:Gem::Version
279
+ version: 1.2.0.pre2
280
+ - !ruby/object:Gem::Dependency
281
+ name: bundler-audit
282
+ requirement: !ruby/object:Gem::Requirement
283
+ requirements:
284
+ - - ">="
285
+ - !ruby/object:Gem::Version
286
+ version: '0'
287
+ type: :development
288
+ prerelease: false
289
+ version_requirements: !ruby/object:Gem::Requirement
290
+ requirements:
291
+ - - ">="
292
+ - !ruby/object:Gem::Version
293
+ version: '0'
294
+ description: SOAP Wrapper for Heartland Portico payment gateway
295
+ email: developers@versapay.com
296
+ executables: []
297
+ extensions: []
298
+ extra_rdoc_files:
299
+ - LICENSE.txt
300
+ files:
301
+ - ".document"
302
+ - ".rspec"
303
+ - ".ruby-version"
304
+ - Gemfile
305
+ - Gemfile.lock
306
+ - LICENSE.txt
307
+ - Rakefile
308
+ - VERSION
309
+ - config/solano.yml
310
+ - config/spec.yml
311
+ - data/PosGateway.xsd
312
+ - lib/active_merchant/billing/gateways/heartland_portico.rb
313
+ - lib/heartland_portico.rb
314
+ - lib/heartland_portico/ach.rb
315
+ - lib/wsdl.xml
316
+ - spec/fixtures/check_sale_request_stub.xml
317
+ - spec/fixtures/check_sale_response_success.xml
318
+ - spec/fixtures/credit_account_verify_request_stub.xml
319
+ - spec/fixtures/credit_account_verify_response_success.xml
320
+ - spec/fixtures/credit_auth_request_stub.xml
321
+ - spec/fixtures/credit_auth_response_approval.xml
322
+ - spec/fixtures/credit_auth_response_decline.xml
323
+ - spec/fixtures/response_authentication_error.xml
324
+ - spec/heartland_portico/ach_spec.rb
325
+ - spec/heartland_portico_spec.rb
326
+ - spec/spec_helper.rb
327
+ - test/comm_stub.rb
328
+ - test/fixtures.yml
329
+ - test/remote/gateways/certification_test.rb
330
+ - test/remote/gateways/remote_heartland_portico_test.rb
331
+ - test/test_helper.rb
332
+ - test/unit/gateways/heartland_portico_test.rb
333
+ homepage: http://github.com/versapay/heartland_portico
334
+ licenses:
335
+ - MIT
336
+ metadata: {}
337
+ post_install_message:
338
+ rdoc_options: []
339
+ require_paths:
340
+ - lib
341
+ required_ruby_version: !ruby/object:Gem::Requirement
342
+ requirements:
343
+ - - ">="
344
+ - !ruby/object:Gem::Version
345
+ version: '0'
346
+ required_rubygems_version: !ruby/object:Gem::Requirement
347
+ requirements:
348
+ - - ">="
349
+ - !ruby/object:Gem::Version
350
+ version: '0'
351
+ requirements: []
352
+ rubyforge_project:
353
+ rubygems_version: 2.7.6
354
+ signing_key:
355
+ specification_version: 4
356
+ summary: SOAP Wrapper for Heartland Portico payment gateway
357
+ test_files: []