killbill-paypal-express 5.0.0 → 5.0.1

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.
@@ -0,0 +1,79 @@
1
+ require 'spec_helper'
2
+ require 'nokogiri'
3
+
4
+ describe Killbill::PaypalExpress::PaypalExpressResponse do
5
+
6
+ def load_paypal_response(action, suffix)
7
+ @spec_root ||= File.expand_path(File.join(File.dirname(__FILE__), ".."))
8
+ xml = IO.read(File.join(@spec_root, "fixtures", action + "-" + suffix + ".xml"))
9
+ ActiveMerchant::Billing::PaypalGateway.any_instance.stub(:build_request).and_return(nil)
10
+ ActiveMerchant::Billing::PaypalGateway.any_instance.stub(:ssl_post).and_return(xml)
11
+ api = ActiveMerchant::Billing::PaypalGateway.new(:login => "dummy", :password => "password", :signature => "dummy")
12
+ api.send(:commit, action, nil)
13
+ end
14
+
15
+ it 'should read a successful GetExpressCheckoutDetails response correctly' do
16
+ action = "GetExpressCheckoutDetails"
17
+ response = ::Killbill::PaypalExpress::PaypalExpressResponse.from_response(
18
+ action, # api_call
19
+ "account1", # kb_account_id
20
+ "payment1", # kb_payment_id
21
+ nil, # kb_payment_transaction_id
22
+ nil, # transaction_type
23
+ "account2", # payment_processor_account_id
24
+ "tenant1", # kb_tenant_id
25
+ load_paypal_response(action, "success")
26
+ )
27
+ expect(response.api_call).to eq(action)
28
+ expect(response.kb_account_id).to eq("account1")
29
+ expect(response.kb_payment_id).to eq("payment1")
30
+ expect(response.kb_payment_transaction_id).to be_nil
31
+ expect(response.transaction_type).to be_nil
32
+ expect(response.payment_processor_account_id).to eq("account2")
33
+ expect(response.kb_tenant_id).to eq("tenant1")
34
+ # data from the fixture as parsed by PaypalCommonAPI and PaypalExpressResponse
35
+ expect(response.message).to eq("Success")
36
+ expect(response.authorization).to be_nil
37
+ expect(response.fraud_review).to eq(false)
38
+ expect(response.success).to eq(true)
39
+
40
+ expect(response.token).to eq("EC-MY_TOKEN")
41
+ expect(response.payer_id).to eq("MY_PAYER_ID")
42
+ expect(response.payment_info_reasoncode).to be_nil
43
+
44
+ expect(response.gateway_error_code).to be_nil
45
+ end
46
+
47
+ it 'should read a DoExpressCheckoutPayment response with an error code correctly' do
48
+ action = "DoExpressCheckoutPayment"
49
+ response = ::Killbill::PaypalExpress::PaypalExpressResponse.from_response(
50
+ action, # api_call
51
+ "account1", # kb_account_id
52
+ "payment1", # kb_payment_id
53
+ "transaction1", # kb_payment_transaction_id
54
+ :purchase, # transaction_type
55
+ "account2", # payment_processor_account_id
56
+ "tenant1", # kb_tenant_id
57
+ load_paypal_response(action, "duplicate")
58
+ )
59
+ expect(response.api_call).to eq(action)
60
+ expect(response.kb_account_id).to eq("account1")
61
+ expect(response.kb_payment_id).to eq("payment1")
62
+ expect(response.kb_payment_transaction_id).to eq("transaction1")
63
+ expect(response.transaction_type).to eq(:purchase)
64
+ expect(response.payment_processor_account_id).to eq("account2")
65
+ expect(response.kb_tenant_id).to eq("tenant1")
66
+ # data from the fixture as parsed by PaypalCommonAPI and PaypalExpressResponse
67
+ expect(response.message).to eq("A successful transaction has already been completed for this token.")
68
+ expect(response.authorization).to eq("3K289148GS508731G")
69
+ expect(response.fraud_review).to eq(false)
70
+ expect(response.success).to eq(false)
71
+
72
+ expect(response.token).to eq("EC-MY_TOKEN")
73
+ expect(response.payer_id).to be_nil
74
+ expect(response.payment_info_reasoncode).to eq("11607")
75
+
76
+ expect(response.gateway_error_code).to eq("11607")
77
+ end
78
+
79
+ end
metadata CHANGED
@@ -1,309 +1,309 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: killbill-paypal-express
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.0.0
4
+ version: 5.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kill Bill core team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-11-16 00:00:00.000000000 Z
11
+ date: 2017-01-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: killbill
15
- version_requirements: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - ~>
18
- - !ruby/object:Gem::Version
19
- version: '8.0'
20
14
  requirement: !ruby/object:Gem::Requirement
21
15
  requirements:
22
- - - ~>
16
+ - - "~>"
23
17
  - !ruby/object:Gem::Version
24
18
  version: '8.0'
19
+ name: killbill
25
20
  prerelease: false
26
21
  type: :runtime
27
- - !ruby/object:Gem::Dependency
28
- name: sinatra
29
22
  version_requirements: !ruby/object:Gem::Requirement
30
23
  requirements:
31
- - - ~>
24
+ - - "~>"
32
25
  - !ruby/object:Gem::Version
33
- version: 1.3.4
26
+ version: '8.0'
27
+ - !ruby/object:Gem::Dependency
34
28
  requirement: !ruby/object:Gem::Requirement
35
29
  requirements:
36
- - - ~>
30
+ - - "~>"
37
31
  - !ruby/object:Gem::Version
38
32
  version: 1.3.4
33
+ name: sinatra
39
34
  prerelease: false
40
35
  type: :runtime
41
- - !ruby/object:Gem::Dependency
42
- name: thread_safe
43
36
  version_requirements: !ruby/object:Gem::Requirement
44
37
  requirements:
45
- - - ~>
38
+ - - "~>"
46
39
  - !ruby/object:Gem::Version
47
- version: 0.3.4
40
+ version: 1.3.4
41
+ - !ruby/object:Gem::Dependency
48
42
  requirement: !ruby/object:Gem::Requirement
49
43
  requirements:
50
- - - ~>
44
+ - - "~>"
51
45
  - !ruby/object:Gem::Version
52
46
  version: 0.3.4
47
+ name: thread_safe
53
48
  prerelease: false
54
49
  type: :runtime
55
- - !ruby/object:Gem::Dependency
56
- name: activerecord
57
50
  version_requirements: !ruby/object:Gem::Requirement
58
51
  requirements:
59
- - - ~>
52
+ - - "~>"
60
53
  - !ruby/object:Gem::Version
61
- version: 4.1.0
54
+ version: 0.3.4
55
+ - !ruby/object:Gem::Dependency
62
56
  requirement: !ruby/object:Gem::Requirement
63
57
  requirements:
64
- - - ~>
58
+ - - "~>"
65
59
  - !ruby/object:Gem::Version
66
60
  version: 4.1.0
61
+ name: activerecord
67
62
  prerelease: false
68
63
  type: :runtime
69
- - !ruby/object:Gem::Dependency
70
- name: activerecord-bogacs
71
64
  version_requirements: !ruby/object:Gem::Requirement
72
65
  requirements:
73
- - - ~>
66
+ - - "~>"
74
67
  - !ruby/object:Gem::Version
75
- version: '0.3'
68
+ version: 4.1.0
69
+ - !ruby/object:Gem::Dependency
76
70
  requirement: !ruby/object:Gem::Requirement
77
71
  requirements:
78
- - - ~>
72
+ - - "~>"
79
73
  - !ruby/object:Gem::Version
80
74
  version: '0.3'
75
+ name: activerecord-bogacs
81
76
  prerelease: false
82
77
  type: :runtime
83
- - !ruby/object:Gem::Dependency
84
- name: activerecord-jdbc-adapter
85
78
  version_requirements: !ruby/object:Gem::Requirement
86
79
  requirements:
87
- - - ~>
80
+ - - "~>"
88
81
  - !ruby/object:Gem::Version
89
- version: '1.3'
90
- - - <
91
- - !ruby/object:Gem::Version
92
- version: '1.5'
82
+ version: '0.3'
83
+ - !ruby/object:Gem::Dependency
93
84
  requirement: !ruby/object:Gem::Requirement
94
85
  requirements:
95
- - - ~>
86
+ - - "~>"
96
87
  - !ruby/object:Gem::Version
97
88
  version: '1.3'
98
- - - <
89
+ - - "<"
99
90
  - !ruby/object:Gem::Version
100
91
  version: '1.5'
92
+ name: activerecord-jdbc-adapter
101
93
  prerelease: false
102
94
  type: :runtime
103
- - !ruby/object:Gem::Dependency
104
- name: jruby-openssl
105
95
  version_requirements: !ruby/object:Gem::Requirement
106
96
  requirements:
107
- - - ~>
97
+ - - "~>"
108
98
  - !ruby/object:Gem::Version
109
- version: 0.9.11
99
+ version: '1.3'
100
+ - - "<"
101
+ - !ruby/object:Gem::Version
102
+ version: '1.5'
103
+ - !ruby/object:Gem::Dependency
110
104
  requirement: !ruby/object:Gem::Requirement
111
105
  requirements:
112
- - - ~>
106
+ - - "~>"
113
107
  - !ruby/object:Gem::Version
114
108
  version: 0.9.11
109
+ name: jruby-openssl
115
110
  prerelease: false
116
111
  type: :runtime
117
- - !ruby/object:Gem::Dependency
118
- name: actionpack
119
112
  version_requirements: !ruby/object:Gem::Requirement
120
113
  requirements:
121
- - - ~>
114
+ - - "~>"
122
115
  - !ruby/object:Gem::Version
123
- version: 4.1.0
116
+ version: 0.9.11
117
+ - !ruby/object:Gem::Dependency
124
118
  requirement: !ruby/object:Gem::Requirement
125
119
  requirements:
126
- - - ~>
120
+ - - "~>"
127
121
  - !ruby/object:Gem::Version
128
122
  version: 4.1.0
123
+ name: actionpack
129
124
  prerelease: false
130
125
  type: :runtime
131
- - !ruby/object:Gem::Dependency
132
- name: actionview
133
126
  version_requirements: !ruby/object:Gem::Requirement
134
127
  requirements:
135
- - - ~>
128
+ - - "~>"
136
129
  - !ruby/object:Gem::Version
137
130
  version: 4.1.0
131
+ - !ruby/object:Gem::Dependency
138
132
  requirement: !ruby/object:Gem::Requirement
139
133
  requirements:
140
- - - ~>
134
+ - - "~>"
141
135
  - !ruby/object:Gem::Version
142
136
  version: 4.1.0
137
+ name: actionview
143
138
  prerelease: false
144
139
  type: :runtime
145
- - !ruby/object:Gem::Dependency
146
- name: activemerchant
147
140
  version_requirements: !ruby/object:Gem::Requirement
148
141
  requirements:
149
- - - ~>
142
+ - - "~>"
150
143
  - !ruby/object:Gem::Version
151
- version: 1.53.0
144
+ version: 4.1.0
145
+ - !ruby/object:Gem::Dependency
152
146
  requirement: !ruby/object:Gem::Requirement
153
147
  requirements:
154
- - - ~>
148
+ - - "~>"
155
149
  - !ruby/object:Gem::Version
156
150
  version: 1.53.0
151
+ name: activemerchant
157
152
  prerelease: false
158
153
  type: :runtime
159
- - !ruby/object:Gem::Dependency
160
- name: offsite_payments
161
154
  version_requirements: !ruby/object:Gem::Requirement
162
155
  requirements:
163
- - - ~>
156
+ - - "~>"
164
157
  - !ruby/object:Gem::Version
165
- version: 2.1.0
158
+ version: 1.53.0
159
+ - !ruby/object:Gem::Dependency
166
160
  requirement: !ruby/object:Gem::Requirement
167
161
  requirements:
168
- - - ~>
162
+ - - "~>"
169
163
  - !ruby/object:Gem::Version
170
164
  version: 2.1.0
165
+ name: offsite_payments
171
166
  prerelease: false
172
167
  type: :runtime
173
- - !ruby/object:Gem::Dependency
174
- name: monetize
175
168
  version_requirements: !ruby/object:Gem::Requirement
176
169
  requirements:
177
- - - ~>
170
+ - - "~>"
178
171
  - !ruby/object:Gem::Version
179
- version: 1.1.0
172
+ version: 2.1.0
173
+ - !ruby/object:Gem::Dependency
180
174
  requirement: !ruby/object:Gem::Requirement
181
175
  requirements:
182
- - - ~>
176
+ - - "~>"
183
177
  - !ruby/object:Gem::Version
184
178
  version: 1.1.0
179
+ name: monetize
185
180
  prerelease: false
186
181
  type: :runtime
187
- - !ruby/object:Gem::Dependency
188
- name: money
189
182
  version_requirements: !ruby/object:Gem::Requirement
190
183
  requirements:
191
- - - ~>
184
+ - - "~>"
192
185
  - !ruby/object:Gem::Version
193
- version: 6.5.1
186
+ version: 1.1.0
187
+ - !ruby/object:Gem::Dependency
194
188
  requirement: !ruby/object:Gem::Requirement
195
189
  requirements:
196
- - - ~>
190
+ - - "~>"
197
191
  - !ruby/object:Gem::Version
198
192
  version: 6.5.1
193
+ name: money
199
194
  prerelease: false
200
195
  type: :runtime
201
- - !ruby/object:Gem::Dependency
202
- name: jbundler
203
196
  version_requirements: !ruby/object:Gem::Requirement
204
197
  requirements:
205
- - - ~>
198
+ - - "~>"
206
199
  - !ruby/object:Gem::Version
207
- version: 0.9.2
200
+ version: 6.5.1
201
+ - !ruby/object:Gem::Dependency
208
202
  requirement: !ruby/object:Gem::Requirement
209
203
  requirements:
210
- - - ~>
204
+ - - "~>"
211
205
  - !ruby/object:Gem::Version
212
206
  version: 0.9.2
207
+ name: jbundler
213
208
  prerelease: false
214
209
  type: :development
215
- - !ruby/object:Gem::Dependency
216
- name: rake
217
210
  version_requirements: !ruby/object:Gem::Requirement
218
211
  requirements:
219
- - - '>='
212
+ - - "~>"
220
213
  - !ruby/object:Gem::Version
221
- version: 10.0.0
214
+ version: 0.9.2
215
+ - !ruby/object:Gem::Dependency
222
216
  requirement: !ruby/object:Gem::Requirement
223
217
  requirements:
224
- - - '>='
218
+ - - ">="
225
219
  - !ruby/object:Gem::Version
226
220
  version: 10.0.0
221
+ name: rake
227
222
  prerelease: false
228
223
  type: :development
229
- - !ruby/object:Gem::Dependency
230
- name: rspec
231
224
  version_requirements: !ruby/object:Gem::Requirement
232
225
  requirements:
233
- - - ~>
226
+ - - ">="
234
227
  - !ruby/object:Gem::Version
235
- version: 2.12.0
228
+ version: 10.0.0
229
+ - !ruby/object:Gem::Dependency
236
230
  requirement: !ruby/object:Gem::Requirement
237
231
  requirements:
238
- - - ~>
232
+ - - "~>"
239
233
  - !ruby/object:Gem::Version
240
234
  version: 2.12.0
235
+ name: rspec
241
236
  prerelease: false
242
237
  type: :development
243
- - !ruby/object:Gem::Dependency
244
- name: selenium-webdriver
245
238
  version_requirements: !ruby/object:Gem::Requirement
246
239
  requirements:
247
- - - ~>
240
+ - - "~>"
248
241
  - !ruby/object:Gem::Version
249
- version: 2.53.0
242
+ version: 2.12.0
243
+ - !ruby/object:Gem::Dependency
250
244
  requirement: !ruby/object:Gem::Requirement
251
245
  requirements:
252
- - - ~>
246
+ - - "~>"
253
247
  - !ruby/object:Gem::Version
254
248
  version: 2.53.0
249
+ name: selenium-webdriver
255
250
  prerelease: false
256
251
  type: :development
257
- - !ruby/object:Gem::Dependency
258
- name: jdbc-sqlite3
259
252
  version_requirements: !ruby/object:Gem::Requirement
260
253
  requirements:
261
- - - ~>
254
+ - - "~>"
262
255
  - !ruby/object:Gem::Version
263
- version: '3.7'
256
+ version: 2.53.0
257
+ - !ruby/object:Gem::Dependency
264
258
  requirement: !ruby/object:Gem::Requirement
265
259
  requirements:
266
- - - ~>
260
+ - - "~>"
267
261
  - !ruby/object:Gem::Version
268
262
  version: '3.7'
263
+ name: jdbc-sqlite3
269
264
  prerelease: false
270
265
  type: :development
271
- - !ruby/object:Gem::Dependency
272
- name: jdbc-mariadb
273
266
  version_requirements: !ruby/object:Gem::Requirement
274
267
  requirements:
275
- - - ~>
268
+ - - "~>"
276
269
  - !ruby/object:Gem::Version
277
- version: '1.1'
270
+ version: '3.7'
271
+ - !ruby/object:Gem::Dependency
278
272
  requirement: !ruby/object:Gem::Requirement
279
273
  requirements:
280
- - - ~>
274
+ - - "~>"
281
275
  - !ruby/object:Gem::Version
282
276
  version: '1.1'
277
+ name: jdbc-mariadb
283
278
  prerelease: false
284
279
  type: :development
285
- - !ruby/object:Gem::Dependency
286
- name: jdbc-postgres
287
280
  version_requirements: !ruby/object:Gem::Requirement
288
281
  requirements:
289
- - - ~>
282
+ - - "~>"
290
283
  - !ruby/object:Gem::Version
291
- version: '9.4'
284
+ version: '1.1'
285
+ - !ruby/object:Gem::Dependency
292
286
  requirement: !ruby/object:Gem::Requirement
293
287
  requirements:
294
- - - ~>
288
+ - - "~>"
295
289
  - !ruby/object:Gem::Version
296
290
  version: '9.4'
291
+ name: jdbc-postgres
297
292
  prerelease: false
298
293
  type: :development
294
+ version_requirements: !ruby/object:Gem::Requirement
295
+ requirements:
296
+ - - "~>"
297
+ - !ruby/object:Gem::Version
298
+ version: '9.4'
299
299
  description: Kill Bill payment plugin for Paypal Express Checkout.
300
300
  email: killbilling-users@googlegroups.com
301
301
  executables: []
302
302
  extensions: []
303
303
  extra_rdoc_files: []
304
304
  files:
305
- - .gitignore
306
- - .travis.yml
305
+ - ".gitignore"
306
+ - ".travis.yml"
307
307
  - Gemfile
308
308
  - Gemfile.head
309
309
  - Gemfile.lock
@@ -318,6 +318,7 @@ files:
318
318
  - db/ddl.sql
319
319
  - db/migrate/20160326090325_add_indexes.rb
320
320
  - db/migrate/20160828090851_enlarge_message.rb
321
+ - db/migrate/20161209090000_add_indexes.rb
321
322
  - db/schema.rb
322
323
  - killbill-paypal-express.gemspec
323
324
  - killbill.properties
@@ -333,6 +334,8 @@ files:
333
334
  - paypal_express.yml
334
335
  - pom.xml
335
336
  - release.sh
337
+ - spec/fixtures/DoExpressCheckoutPayment-duplicate.xml
338
+ - spec/fixtures/GetExpressCheckoutDetails-success.xml
336
339
  - spec/paypal_express/base_plugin_spec.rb
337
340
  - spec/paypal_express/remote/baid_spec.rb
338
341
  - spec/paypal_express/remote/baid_spec_helpers.rb
@@ -340,6 +343,7 @@ files:
340
343
  - spec/paypal_express/remote/build_plugin_helpers.rb
341
344
  - spec/paypal_express/remote/hpp_spec.rb
342
345
  - spec/paypal_express/remote/hpp_spec_helpers.rb
346
+ - spec/paypal_express/response_spec.rb
343
347
  - spec/spec_helper.rb
344
348
  homepage: http://killbill.io
345
349
  licenses:
@@ -347,23 +351,23 @@ licenses:
347
351
  metadata: {}
348
352
  post_install_message:
349
353
  rdoc_options:
350
- - --exclude
351
- - .
354
+ - "--exclude"
355
+ - "."
352
356
  require_paths:
353
357
  - lib
354
358
  required_ruby_version: !ruby/object:Gem::Requirement
355
359
  requirements:
356
- - - '>='
360
+ - - ">="
357
361
  - !ruby/object:Gem::Version
358
362
  version: 1.9.3
359
363
  required_rubygems_version: !ruby/object:Gem::Requirement
360
364
  requirements:
361
- - - '>='
365
+ - - ">="
362
366
  - !ruby/object:Gem::Version
363
367
  version: '0'
364
368
  requirements: []
365
369
  rubyforge_project:
366
- rubygems_version: 2.4.6
370
+ rubygems_version: 2.4.8
367
371
  signing_key:
368
372
  specification_version: 4
369
373
  summary: Plugin to use Paypal Express Checkout as a gateway.