openpay 1.0.3 → 1.0.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (65) hide show
  1. checksums.yaml +13 -5
  2. data/.gitignore +1 -0
  3. data/.idea/.rakeTasks +2 -2
  4. data/.idea/OpenPay.iml +30 -20
  5. data/.idea/runConfigurations/Run_spec__bankaccounts_spec___OpenPay.xml +1 -0
  6. data/.idea/runConfigurations/Run_spec__cards_spec___OpenPay.xml +1 -0
  7. data/.idea/runConfigurations/Run_spec__charges_spec___OpenPay.xml +1 -0
  8. data/.idea/runConfigurations/Run_spec__customers_spec___OpenPay.xml +1 -0
  9. data/.idea/runConfigurations/Run_spec__exceptions_spec___OpenPay.xml +1 -0
  10. data/.idea/runConfigurations/Run_spec__fees_spec___OpenPay.xml +1 -0
  11. data/.idea/runConfigurations/Run_spec__payouts_spec___OpenPay.xml +1 -0
  12. data/.idea/runConfigurations/Run_spec__plans_spec___OpenPay.xml +1 -0
  13. data/.idea/runConfigurations/Run_spec__subscriptions_spec___OpenPay.xml +1 -0
  14. data/.idea/runConfigurations/Run_spec__transfers_spec___OpenPay.xml +1 -0
  15. data/.idea/runConfigurations/all_specs.xml +1 -0
  16. data/.idea/workspace.xml +484 -268
  17. data/Gemfile +0 -6
  18. data/README.md +111 -29
  19. data/lib/openpay.rb +7 -3
  20. data/lib/openpay/bankaccounts.rb +10 -11
  21. data/lib/openpay/cards.rb +12 -14
  22. data/lib/openpay/charges.rb +38 -14
  23. data/lib/openpay/customers.rb +73 -67
  24. data/lib/openpay/errors/openpay_exception_factory.rb +14 -26
  25. data/lib/openpay/fees.rb +1 -1
  26. data/lib/openpay/open_pay_resource.rb +77 -77
  27. data/lib/openpay/open_pay_resource_factory.rb +1 -1
  28. data/lib/openpay/openpay_api.rb +6 -16
  29. data/lib/openpay/payouts.rb +13 -17
  30. data/lib/openpay/plans.rb +1 -7
  31. data/lib/openpay/subscriptions.rb +21 -29
  32. data/lib/openpay/transfers.rb +14 -18
  33. data/lib/openpay/utils/search_params.rb +20 -0
  34. data/lib/version.rb +1 -2
  35. data/openpay.gemspec +0 -8
  36. data/test/Factories.rb +80 -126
  37. data/test/spec/bankaccounts_spec.rb +55 -61
  38. data/test/spec/cards_spec.rb +56 -76
  39. data/test/spec/charges_spec.rb +89 -84
  40. data/test/spec/customers_spec.rb +37 -47
  41. data/test/spec/exceptions_spec.rb +4 -21
  42. data/test/spec/fees_spec.rb +51 -7
  43. data/test/spec/payouts_spec.rb +102 -65
  44. data/test/spec/plans_spec.rb +27 -50
  45. data/test/spec/subscriptions_spec.rb +87 -24
  46. data/test/spec/transfers_spec.rb +42 -44
  47. data/test/spec/utils/search_params_spec.rb +36 -0
  48. data/test/spec_helper.rb +1 -5
  49. metadata +15 -55
  50. data/lib/OpenPay/Cards.rb +0 -75
  51. data/lib/OpenPay/Charges.rb +0 -77
  52. data/lib/OpenPay/Customers.rb +0 -194
  53. data/lib/OpenPay/Fees.rb +0 -5
  54. data/lib/OpenPay/Payouts.rb +0 -59
  55. data/lib/OpenPay/Plans.rb +0 -23
  56. data/lib/OpenPay/Subscriptions.rb +0 -58
  57. data/lib/OpenPay/Transfers.rb +0 -43
  58. data/lib/OpenPay/bankaccounts.rb +0 -59
  59. data/lib/OpenPay/errors/openpay_connection_exception.rb +0 -3
  60. data/lib/OpenPay/errors/openpay_exception.rb +0 -29
  61. data/lib/OpenPay/errors/openpay_exception_factory.rb +0 -60
  62. data/lib/OpenPay/errors/openpay_transaction_exception.rb +0 -5
  63. data/lib/OpenPay/open_pay_resource.rb +0 -242
  64. data/lib/OpenPay/open_pay_resource_factory.rb +0 -10
  65. data/lib/OpenPay/openpay_api.rb +0 -58
@@ -2,9 +2,6 @@ require_relative '../spec_helper'
2
2
 
3
3
  describe Charges do
4
4
 
5
-
6
-
7
-
8
5
  before(:all) do
9
6
 
10
7
  @merchant_id='mywvupjjs9xdnryxtplq'
@@ -17,28 +14,24 @@ describe Charges do
17
14
  @cards=@openpay.create(:cards)
18
15
  @bank_accounts=@openpay.create(:bankaccounts)
19
16
 
20
-
17
+ @cards.delete_all
21
18
 
22
19
  end
23
20
 
24
-
25
- after(:all) do
26
-
21
+ it 'has all required methods' do
22
+ %w(all each create get list delete).each do |meth|
23
+ expect(@charges).to respond_to(meth)
24
+ end
27
25
  end
28
26
 
29
-
30
-
31
27
  describe '.create' do
32
28
 
33
29
  it 'creates a new merchant charge using the card method using a pre-stored card' do
34
30
 
35
-
36
31
  #create card
37
32
  card_hash=FactoryGirl.build(:valid_card)
38
33
  card=@cards.create(card_hash)
39
34
 
40
-
41
-
42
35
  #create charge attached to prev created card
43
36
  charge_hash=FactoryGirl.build(:card_charge, source_id: card['id'], order_id: card['id'],amount: 101)
44
37
  charge=@charges.create(charge_hash)
@@ -47,13 +40,11 @@ describe Charges do
47
40
  stored_charge=@charges.get(charge['id'])
48
41
  expect(stored_charge['amount']).to be_within(0.1).of(101)
49
42
 
50
- #clean up
43
+ #clean up
51
44
  @cards.delete(card['id'])
52
45
 
53
-
54
46
  end
55
47
 
56
-
57
48
  it 'creates a new customer charge using the card method using a pre-stored card' do
58
49
 
59
50
  #create new customer
@@ -78,7 +69,6 @@ describe Charges do
78
69
 
79
70
  end
80
71
 
81
-
82
72
  it 'creates a new customer charge using the bank_account method' do
83
73
 
84
74
  #create new customer
@@ -90,7 +80,7 @@ describe Charges do
90
80
  account=@bank_accounts.create(account_hash,customer['id'])
91
81
 
92
82
  #create charge
93
- charge_hash=FactoryGirl.build(:bank_charge, source_id:account['id'],order_id: account['id'])
83
+ charge_hash=FactoryGirl.build(:bank_charge, order_id: account['id'])
94
84
  charge=@charges.create(charge_hash,customer['id'])
95
85
 
96
86
  #perform check
@@ -103,18 +93,12 @@ describe Charges do
103
93
 
104
94
  end
105
95
 
106
-
107
-
108
96
  end
109
97
 
110
-
111
-
112
98
  describe '.get' do
113
99
 
114
-
115
100
  it 'gets a merchant charge' do
116
101
 
117
-
118
102
  #create card
119
103
  card_hash=FactoryGirl.build(:valid_card)
120
104
  card=@cards.create(card_hash)
@@ -130,12 +114,9 @@ describe Charges do
130
114
  #clean up
131
115
  @cards.delete(card['id'])
132
116
 
133
-
134
-
135
117
  end
136
118
 
137
-
138
- it 'gets a customer charge' do
119
+ it 'gets a customer charge' do
139
120
 
140
121
  #create new customer
141
122
  customer_hash= FactoryGirl.build(:customer)
@@ -159,46 +140,30 @@ describe Charges do
159
140
 
160
141
  end
161
142
 
162
-
163
-
164
-
165
-
166
143
  end
167
144
 
168
-
169
-
170
-
171
145
  describe '.all' do
172
146
 
173
- it 'list all merchant charges' do
174
-
147
+ it 'all merchant charges' do
175
148
  #TODO test can be improved, but since charges cannot be deleted it make this difficult
176
149
  expect(@charges.all.size).to be_a Integer
177
-
178
150
  end
179
151
 
180
-
181
- it 'list all customer charges' do
152
+ it 'all customer charges' do
182
153
  #create new customer
183
154
  customer_hash= FactoryGirl.build(:customer)
184
155
  customer=@customers.create(customer_hash)
185
156
 
186
-
187
157
  expect(@charges.all(customer['id']).size).to be 0
188
158
  @customers.delete(customer['id'])
189
159
 
190
-
191
160
  end
192
161
 
193
162
  end
194
163
 
195
-
196
-
197
-
198
164
  describe '.capture' do
199
165
 
200
-
201
- it 'captures a merchant card charge' do
166
+ it 'captures a merchant card charge' do
202
167
 
203
168
  #create new customer
204
169
  customer_hash= FactoryGirl.build(:customer)
@@ -209,7 +174,7 @@ describe Charges do
209
174
  card=@cards.create(card_hash)
210
175
 
211
176
  #create merchant charge
212
- charge_hash=FactoryGirl.build(:card_charge, source_id:card['id'],order_id: card['id'],amount: 4000,capture:'false')
177
+ charge_hash=FactoryGirl.build(:card_charge, source_id:card['id'],order_id: card['id'],amount: 4000, capture:'false')
213
178
  charge=@charges.create(charge_hash)
214
179
 
215
180
  #capture merchant charge
@@ -221,7 +186,7 @@ describe Charges do
221
186
 
222
187
  end
223
188
 
224
- it 'captures an customer card charge' do
189
+ it 'captures a customer card charge' do
225
190
  #create new customer
226
191
  customer_hash= FactoryGirl.build(:customer)
227
192
  customer=@customers.create(customer_hash)
@@ -237,25 +202,73 @@ describe Charges do
237
202
  #capture customer charge
238
203
  @charges.capture(charge['id'],customer['id'])
239
204
 
205
+
240
206
  #clean up
241
207
  @cards.delete(card['id'],customer['id'])
242
208
  @customers.delete(customer['id'])
243
209
  end
244
210
 
211
+ end
245
212
 
213
+ describe '.confirm_capture' do
246
214
 
215
+ it 'confirms a capture on a merchant charge' do
247
216
 
248
- end
217
+ #create new customer
218
+ customer_hash= FactoryGirl.build(:customer)
219
+ customer=@customers.create(customer_hash)
249
220
 
221
+ #create merchant card
222
+ card_hash=FactoryGirl.build(:valid_card)
223
+ card=@cards.create(card_hash)
250
224
 
225
+ #create merchant charge
226
+ charge_hash=FactoryGirl.build(:card_charge, source_id:card['id'],order_id: card['id'],amount: 4000, capture:'false')
227
+ charge=@charges.create(charge_hash)
251
228
 
229
+ confirm_capture_options = { transaction_id: charge['id'], amount: 100 }
252
230
 
253
- describe '.refund' do
231
+ #confirm capture
232
+ res = @charges.confirm_capture(confirm_capture_options)
233
+ expect(res['amount']).to eq 100
254
234
 
235
+ #clean up
236
+ @cards.delete(card['id'])
237
+ @customers.delete(customer['id'])
238
+
239
+ end
255
240
 
241
+ it 'confirms a capture on a customer charge' do
242
+
243
+ customer_hash= FactoryGirl.build(:customer)
244
+ customer=@customers.create(customer_hash)
245
+
246
+ #create customer card
247
+ card_hash=FactoryGirl.build(:valid_card)
248
+ card=@cards.create(card_hash,customer['id'])
249
+
250
+ #create charge
251
+ charge_hash=FactoryGirl.build(:card_charge, source_id:card['id'],order_id: card['id'],amount: 4000,capture:'false')
252
+ charge=@charges.create(charge_hash,customer['id'])
253
+
254
+ confirm_capture_options = { customer_id: customer['id'], transaction_id: charge['id'], amount: 100 }
255
+
256
+ #confirm capture
257
+ res = @charges.confirm_capture(confirm_capture_options)
258
+ expect(res['amount']).to eq 100
259
+
260
+ #clean up
261
+ @cards.delete(card['id'],customer['id'])
262
+ @customers.delete(customer['id'])
263
+
264
+ end
265
+
266
+ end
267
+
268
+ describe '.refund' do
256
269
 
257
270
  #Refunds apply only for card charges
258
- it 'refunds an existing merchant charge' do
271
+ it 'refunds an existing merchant charge' do
259
272
  #create card
260
273
  card_hash=FactoryGirl.build(:valid_card)
261
274
  card=@cards.create(card_hash)
@@ -271,16 +284,12 @@ describe Charges do
271
284
  @charges.refund(charge['id'],refund_description)
272
285
  expect(@charges.get(charge['id'])['refund']['amount'] ).to be_within(0.1).of(505)
273
286
 
274
-
275
287
  #clean up
276
288
  @cards.delete(card['id'])
277
289
 
278
290
  end
279
291
 
280
-
281
-
282
-
283
- it 'refunds an existing customer charge' do
292
+ it 'refunds an existing customer charge' do
284
293
  #create new customer
285
294
  customer_hash= FactoryGirl.build(:customer)
286
295
  customer=@customers.create(customer_hash)
@@ -310,42 +319,47 @@ describe Charges do
310
319
 
311
320
  end
312
321
 
322
+ describe '.list' do
313
323
 
324
+ it 'list customer charges' do
314
325
 
326
+ #create new customer
327
+ customer_hash= FactoryGirl.build(:customer)
328
+ customer=@customers.create(customer_hash)
315
329
 
330
+ #create customer card
331
+ card_hash=FactoryGirl.build(:valid_card)
332
+ card=@cards.create(card_hash,customer['id'])
316
333
 
334
+ #create charge
335
+ charge_hash=FactoryGirl.build(:card_charge, source_id:card['id'],order_id: card['id'])
336
+ charge=@charges.create(charge_hash,customer['id'])
337
+ charge_hash=FactoryGirl.build(:card_charge, source_id:card['id'],order_id: card['id']+"1")
338
+ charge2=@charges.create(charge_hash,customer['id'])
317
339
 
340
+ #perform check
341
+ search_params = OpenpayUtils::SearchParams.new
342
+ search_params.limit = 1
343
+ expect(@charges.all(customer['id']).size).to eq 2
344
+ expect(@charges.list(search_params,customer['id']).size).to eq 1
318
345
 
346
+ #clean up
347
+ @cards.delete(card['id'],customer['id'])
348
+ @customers.delete(customer['id'])
319
349
 
320
-
321
- describe '.list' do
322
-
323
-
324
- it 'list merchant charges' do
325
- pending
326
- end
327
-
328
-
329
-
330
- it 'list customer charges' do
331
- pending
332
350
  end
333
351
 
334
-
335
352
  end
336
353
 
337
-
338
354
  describe '.each' do
339
355
 
340
356
  it 'iterates over merchant charges' do
341
- @charges.each do |charge|
357
+ @charges.each do |charge|
342
358
  #perform check.
343
359
  expect(charge['amount']).to be_a Float
344
360
  end
345
361
  end
346
362
 
347
-
348
-
349
363
  it 'iterate over customer charges' do
350
364
 
351
365
  #create new customer
@@ -363,13 +377,11 @@ describe Charges do
363
377
 
364
378
  @charges.create(charge2_hash,customer['id'])
365
379
 
366
-
367
380
  @charges.each(customer['id']) do |charge|
368
381
  expect(charge['operation_type']).to match 'in'
369
- expect(charge['amount']).to be_within(0.1).of(4)
382
+ expect(charge['amount']).to be_within(0.1).of(4)
370
383
  end
371
384
 
372
-
373
385
  #cleanup
374
386
  @cards.delete(card['id'],customer['id'])
375
387
  @customers.delete(customer['id'])
@@ -378,11 +390,4 @@ describe Charges do
378
390
 
379
391
  end
380
392
 
381
-
382
-
383
-
384
-
385
-
386
-
387
-
388
- end
393
+ end
@@ -1,9 +1,7 @@
1
1
  require_relative '../spec_helper'
2
2
 
3
-
4
3
  describe Customers do
5
4
 
6
-
7
5
  before(:all) do
8
6
 
9
7
  @merchant_id='mywvupjjs9xdnryxtplq'
@@ -12,14 +10,24 @@ describe Customers do
12
10
  @openpay=OpenpayApi.new(@merchant_id, @private_key)
13
11
  @customers=@openpay.create(:customers)
14
12
 
13
+ @customers.delete_all
14
+
15
+ end
16
+
17
+ after(:all) do
18
+ @customers.delete_all
15
19
  end
16
20
 
21
+ it 'has all required methods' do
22
+ %w(all each create get list delete).each do |meth|
23
+ expect(@customers).to respond_to(meth)
24
+ end
25
+ end
17
26
 
18
27
  describe '.create' do
19
28
 
20
29
  it 'creates a customer' do
21
30
 
22
-
23
31
  #creates a new customer
24
32
  name='Juan'
25
33
  last_name='Perez'
@@ -46,7 +54,6 @@ describe Customers do
46
54
 
47
55
  end
48
56
 
49
-
50
57
  it 'fails when passing invalid information' do
51
58
 
52
59
  #check no errors
@@ -62,8 +69,7 @@ describe Customers do
62
69
  @customers.create(customer_hash)
63
70
  rescue OpenpayTransactionException => e
64
71
  expect(e.http_code).to be 400
65
- expect(e.description).to match 'not a well-formed email address'
66
-
72
+ expect(e.description).to match /email no es una direcci.n de correo bien formada/
67
73
  end
68
74
 
69
75
  expect(@customers.errors?).to be_true
@@ -72,10 +78,8 @@ describe Customers do
72
78
 
73
79
  end
74
80
 
75
-
76
81
  describe '.delete' do
77
82
 
78
-
79
83
  it 'deletes an existing customer' do
80
84
  #creates customer
81
85
  customer_hash = FactoryGirl.build(:customer, name: :delete_me)
@@ -89,7 +93,6 @@ describe Customers do
89
93
 
90
94
  end
91
95
 
92
-
93
96
  describe '.get' do
94
97
 
95
98
  it 'get a customer' do
@@ -105,33 +108,16 @@ describe Customers do
105
108
  @customers.delete(id)
106
109
  end
107
110
 
108
-
109
111
  end
110
112
 
111
-
112
113
  describe '.each' do
113
114
  it 'list all customers' do
114
- #clean state just in case
115
- @customers.delete_all
116
-
117
- #create customers
118
- name='cust1'
119
- customer_hash = FactoryGirl.build(:customer, name: name)
120
- customer=@customers.create(customer_hash)
121
- id=customer['id']
122
- customer2=@customers.create(customer_hash)
123
- id2=customer2['id']
124
- #perform check
125
115
  @customers.each do |cust|
126
- expect(cust['name']).to match 'cust1'
116
+ expect(cust['id']).to match /.+/
127
117
  end
128
- #cleanup
129
- @customers.delete(id)
130
- @customers.delete(id2)
131
118
  end
132
119
  end
133
120
 
134
-
135
121
  describe '.update' do
136
122
 
137
123
  it 'updates an existing customer' do
@@ -157,15 +143,36 @@ describe Customers do
157
143
 
158
144
  end
159
145
 
146
+ describe '.list' do
147
+
148
+ it 'list customers given the filter' do
149
+ # creates customer
150
+ name='customer_update_test'
151
+ customer_hash = FactoryGirl.build(:customer, name: name)
152
+
153
+ customer=@customers.create(customer_hash)
154
+ id=customer['id']
155
+
156
+ search_params = OpenpayUtils::SearchParams.new
157
+ search_params.limit=1
158
+
159
+ #perform check
160
+ expect(@customers.list(search_params).size).to eq 1
160
161
 
162
+ #cleanup
163
+ @customers.delete(id)
161
164
 
165
+ end
166
+
167
+ end
162
168
 
163
169
  describe '.all' do
164
170
 
165
- it 'list all the customers' do
171
+ it 'all the customers' do
166
172
 
173
+ @customers.delete_all
167
174
  #initial state check
168
- expect(@customers.all.size).to be 0
175
+ initial_num = @customers.all.size
169
176
 
170
177
  # creates customer
171
178
  name='customer_update_test'
@@ -173,21 +180,15 @@ describe Customers do
173
180
  customer=@customers.create(customer_hash)
174
181
 
175
182
  #performs check
176
- expect(@customers.all.size).to be 1
183
+ expect(@customers.all.size).to eq (initial_num + 1)
177
184
 
178
185
  #cleanup
179
186
  @customers.delete(customer['id'])
180
187
 
181
- #performs check
182
- expect(@customers.all.size).to be 0
183
-
184
-
185
188
  end
186
189
 
187
-
188
190
  end
189
191
 
190
-
191
192
  describe '.delete_all' do
192
193
 
193
194
  it 'deletes all customer records' do
@@ -211,20 +212,9 @@ describe Customers do
211
212
  cust=@openpayprod.create(:customers)
212
213
  expect { cust.delete_all }.to raise_exception OpenpayException
213
214
 
214
-
215
215
  end
216
216
 
217
-
218
217
  end
219
218
 
220
-
221
219
  end
222
220
 
223
-
224
-
225
-
226
-
227
-
228
-
229
-
230
-