nitro_pay 1.0.0 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7599ad547e37aee9ee05248a4c2b0d0a3f4a2fcc
4
- data.tar.gz: c37529e921e9491a13276368200b0e5edf39bfd0
3
+ metadata.gz: 77f963c8478e8be1c91f4120954b3602262a06da
4
+ data.tar.gz: b55a4fa43bac405b7088fac7ae9754e2fdb97cfd
5
5
  SHA512:
6
- metadata.gz: c0bde7dfa82a7fe059d23418390af5dc50eb16ad8c559910a8fcbea1038cd90b445d6bb19ab8b710f477eb5678df415fb493d8e8beeb5986402e7de8822efa58
7
- data.tar.gz: eb1e0b6cbe9bc95d25f5cc1afeeb5fcfa6db939ade3e29de7f4c88393fc8ff6c272efb182a9783b887051786d2b787886e348c1ee8b7e8cfd975286a0d5f6ffe
6
+ metadata.gz: a1eb5f5fa34e0fec7f107137f48ac8c784c8e794a7fe872f459a99ce6338ecf1ae67898e0ddb155b0d7410fa130c1b8776cfa22986545f286b813e65084cb1c6
7
+ data.tar.gz: 0f639803d3c1c941afd6a8046fe37bef400c127ebb6caa53406a4b8d3ad73ad6ab4d459dd8f91870be492a184442e43aeaf13aaa3fe68313ecd573d7005e7a6e
data/lib/nitro_pay.rb CHANGED
@@ -6,7 +6,7 @@ require 'rest_client'
6
6
  require 'bigdecimal'
7
7
  require 'bigdecimal/util'
8
8
 
9
- # Overrides
9
+ # Overwrites
10
10
  require 'nitro_pay/hash'
11
11
  require 'nitro_pay/array'
12
12
 
@@ -7,7 +7,7 @@ module NitroPay
7
7
  attr_accessor :protocol
8
8
  attr_accessor :end_point
9
9
  attr_accessor :api_version
10
- attr_accessor :recurrent_rid
10
+ attr_accessor :recurrent_tid
11
11
  attr_accessor :request_params
12
12
  attr_accessor :end_point_versioned
13
13
 
@@ -39,7 +39,7 @@ module NitroPay
39
39
  # Dynamic env
40
40
  setup_default_app if params[:test_env]
41
41
  setup_attrs(params)
42
- self.recurrent_rid = params[:rid] unless params[:rid].nil?
42
+ self.recurrent_tid = params[:tid] unless params[:tid].nil?
43
43
  end
44
44
 
45
45
  # Full URL for the last request
@@ -114,7 +114,7 @@ module NitroPay
114
114
  # Get the GlobalRecurrent & setup/config
115
115
  self.path = 'global_subscription'
116
116
  recurrence = get_json_request
117
- self.recurrent_rid = recurrence[:rid]
117
+ self.recurrent_tid = recurrence[:tid]
118
118
 
119
119
  return puts 'Please run: rails g nitro_pay:install' if NitroPay.app_id.nil? || NitroPay.secret_key.nil?
120
120
  self.auth = {app_id:NitroPay.app_id, secret_key:NitroPay.secret_key}
@@ -1,4 +1,4 @@
1
- # Override ruby Hash Obj
1
+ # Overwrite ruby Hash Obj
2
2
  class Hash
3
3
  # Attr to be external accessible
4
4
  attr_accessor :get_url_params
@@ -1,6 +1,7 @@
1
1
  module NitroPay
2
2
  # Transaction Obj, but can Abstract nested objs like Costumer
3
3
  class Transaction < NitroPay::Connection
4
+ attr_accessor :tid
4
5
  attr_accessor :resp
5
6
  attr_accessor :status # can be API Status: self.status = NitroPay::Status.new OR/AND Transaction Status
6
7
  attr_accessor :sold_items
@@ -12,24 +13,24 @@ module NitroPay
12
13
  self.redirect_link = "#{self.end_point_versioned}/transactions" if params[:test_env]
13
14
  end
14
15
 
15
- # Return it RID easily
16
- def rid
17
- self.resp[:rid]
18
- end
19
-
20
16
  # Return it Purchase URL, to pay on the OperatorPage
21
- def purchase_url
22
- self.resp[:purchase_url]
17
+ def checkout_page_url
18
+ hash_resp[:checkout_page]
23
19
  end
24
20
 
25
- # GET /api/transactions/:rid by it attr
21
+ # GET /api/transactions/:tid by it attr
26
22
  def verify
27
23
  auth_hash = {}
24
+ tid = self.resp[:tid]
28
25
  auth_hash[:auth] = self.request_params[:auth]
29
- if self.rid.nil? then return {error:'RID not received'} else self.path = "transactions/#{self.rid}/#{auth_hash.it_keys_to_get_param}" end
26
+ if tid.nil? then return {error:'TID not received'} else self.path = "transactions/#{tid}#{auth_hash.it_keys_to_get_param}" end
30
27
  return self.get_json_request
31
28
  end
32
29
 
30
+ def unformed_received_amount
31
+ NitroPay::Currency.to_operator_str self.hash_resp[:amount].to_s
32
+ end
33
+
33
34
  # POST /api/transactions/page return operator page URL, like the Cielo Page
34
35
  def charge_page(full_resp=false)
35
36
  custom_http_params
@@ -37,7 +38,7 @@ module NitroPay
37
38
  self.request_params[:transaction][:redirect_link] = "#{self.redirect_link}" if self.request_params[:transaction][:test_env]
38
39
 
39
40
  # dynamic path (it is written when a specific method use it)
40
- self.path = 'transactions/page'
41
+ self.path = 'checkouts'
41
42
 
42
43
  # using json_request because need only the answer (do not use something like it HTTP Code)
43
44
  self.resp = self.post_json_request unless full_resp
@@ -60,10 +61,10 @@ module NitroPay
60
61
  end
61
62
 
62
63
  # Update the recurrence amount
63
- def update_subscription(rid=nil, full_resp=false)
64
+ def update_subscription(tid=nil, full_resp=false)
64
65
  # SetUp
65
- self.recurrent_rid = rid if rid
66
- self.path = "transactions/#{self.recurrent_rid}/subscription"
66
+ self.recurrent_tid = tid if tid
67
+ self.path = "transactions/#{self.recurrent_tid}/subscription"
67
68
 
68
69
  # Perform the request
69
70
  full_resp ? self.resp = self.put_request : self.resp = self.put_json_request
@@ -72,11 +73,11 @@ module NitroPay
72
73
  self.resp
73
74
  end
74
75
 
75
- # Stop a recurrence based on it transaction rid
76
- def unsubscribe(rid=nil, full_resp=false)
76
+ # Stop a recurrence based on it transaction tid
77
+ def unsubscribe(tid=nil, full_resp=false)
77
78
  # SetUp
78
- self.recurrent_rid = rid if rid
79
- self.path = "transactions/#{self.recurrent_rid}/subscription/unsubscribe"
79
+ self.recurrent_tid = tid if tid
80
+ self.path = "transactions/#{self.recurrent_tid}/subscription/unsubscribe"
80
81
 
81
82
  # Perform the request
82
83
  full_resp ? self.resp = self.delete_request : self.resp = self.delete_json_request
@@ -86,10 +87,10 @@ module NitroPay
86
87
  end
87
88
 
88
89
  # Return the payments executed for the purchase passed
89
- def payment_history(rid=nil, full_resp=false)
90
+ def payment_history(tid=nil, full_resp=false)
90
91
  # SetUp
91
- self.recurrent_rid = rid if rid
92
- self.path = "transactions/#{self.recurrent_rid}/subscription/payment_history"
92
+ self.recurrent_tid = tid if tid
93
+ self.path = "transactions/#{self.recurrent_tid}/subscription/payment_history"
93
94
  self.path = "#{self.path}#{self.request_params.it_keys_to_get_param}"
94
95
 
95
96
  # Perform the request
@@ -100,12 +101,12 @@ module NitroPay
100
101
  end
101
102
 
102
103
  # Check if a subscription is up-to-date or have any pending
103
- def up_to_date(rid=nil, full_resp=false)
104
+ def up_to_date(tid=nil, full_resp=false)
104
105
  # SetUp
105
- self.recurrent_rid = rid if rid
106
+ self.recurrent_tid = tid if tid
106
107
 
107
108
  # Create/customize the path & add the auth as param
108
- self.path = "transactions/#{self.recurrent_rid}/subscription/up-to-date"
109
+ self.path = "transactions/#{self.recurrent_tid}/subscription/up-to-date"
109
110
  self.path = "#{self.path}#{self.request_params.it_keys_to_get_param}"
110
111
 
111
112
  # Perform the request
@@ -115,9 +116,14 @@ module NitroPay
115
116
  self.resp
116
117
  end
117
118
 
119
+ # return it hash resp when resp is a string
120
+ def hash_resp
121
+ self.resp.is_a?(String) ? JSON.parse(self.resp).it_keys_to_sym : self.resp
122
+ end
123
+
118
124
  # ================ STATIC methods ================
119
- # GET /api/transactions/:rid by the rid passed
120
- def self.find(rid)
125
+ # GET /api/transactions/:tid by the tid passed
126
+ def self.find(tid)
121
127
  end
122
128
  end
123
129
  end
@@ -1,6 +1,6 @@
1
1
  module NitroPay
2
2
  MAJOR = 1
3
3
  MINOR = 0
4
- PATCH = 0
4
+ PATCH = 1
5
5
  VERSION = "#{MAJOR}.#{MINOR}.#{PATCH}"
6
6
  end
data/spec/helpers.rb CHANGED
@@ -4,8 +4,8 @@ module Helpers
4
4
  200
5
5
  end
6
6
 
7
- def accessible? url
8
- RestClient.proxy = NitroPay.proxy
7
+ def accessible?(url)
8
+ RestClient.proxy = NitroPay.proxy if NitroPay.proxy.index('your_login').nil?
9
9
  resp = RestClient.get url
10
10
  RestClient.proxy = nil
11
11
  resp.code == 200 ? true : false
@@ -5,7 +5,8 @@ describe NitroPay::Transaction do
5
5
  @protocol = 'http://'
6
6
  @domain = 'pay.dev:4000'
7
7
  @base_url = "#{@protocol}#{@domain}"
8
- @global_subscription_rid = get_json("#{@base_url}/api/v1/global_subscription")[:rid]
8
+ @redirect_link = 'http://up.nitrostart.me/campaigns/2'
9
+ @global_subscription_tid = get_json("#{@base_url}/api/v1/global_subscription")[:tid]
9
10
  end
10
11
 
11
12
  context 'Proxy' do
@@ -36,8 +37,8 @@ describe NitroPay::Transaction do
36
37
  @amount = @amount.to_i
37
38
  @recurrence_period = NitroPay.enum[:recurrence_periods][:monthly]
38
39
 
39
- # Test passing no RID & passing specific RID
40
- transaction_params = {rid: 1, amount: @amount, recurrence_period: @recurrence_period}
40
+ # Test passing no TID & passing specific TID
41
+ transaction_params = {tid: 1, amount: @amount, recurrence_period: @recurrence_period}
41
42
  @transaction = NitroPay::Transaction.new transaction_params
42
43
 
43
44
  # Send subscription update
@@ -68,20 +69,20 @@ describe NitroPay::Transaction do
68
69
  NitroPay.app_id = 1
69
70
  NitroPay.secret_key = '12312321312$2a$10$NmV9EysKVLe8ItBdl9CHN.LF05bOuDdoOkmfptdbJs7cuaDWksuUu'
70
71
 
71
- # Test passing no RID & passing specific RID
72
- @transaction_with_rid = NitroPay::Transaction.new rid: 1
72
+ # Test passing no TID & passing specific TID
73
+ @transaction_with_tid = NitroPay::Transaction.new tid: 1
73
74
 
74
75
  # Send Unsubscribe
75
- @rid_transaction_resp = @transaction_with_rid.unsubscribe
76
- @transaction_full_resp = @transaction_with_rid.unsubscribe nil, true
76
+ @tid_transaction_resp = @transaction_with_tid.unsubscribe
77
+ @transaction_full_resp = @transaction_with_tid.unsubscribe nil, true
77
78
  end
78
79
 
79
80
  it 'should be Hash' do
80
- expect(@rid_transaction_resp).to be_a Hash
81
+ expect(@tid_transaction_resp).to be_a Hash
81
82
  end
82
83
 
83
84
  it 'should not have an error' do
84
- expect(@rid_transaction_resp).to include :error
85
+ expect(@tid_transaction_resp).to include :error
85
86
  end
86
87
 
87
88
  it 'should resp with SUCCESS (200)' do
@@ -143,19 +144,34 @@ describe NitroPay::Transaction do
143
144
  expect(status[:msg].index('Capturada').nil?).to_not be_truthy
144
145
  end
145
146
 
146
- it 'resp should have a full CardObj which is allowed to be stored {:rid, :truncated, :brand}' do
147
+ it 'resp should have a full CardObj which is allowed to be stored {:tid, :truncated, :brand}' do
147
148
  card = @resp[:card]
148
- expect(card[:rid]).to be_a Integer
149
- expect(card[:rid] == 0).to_not be_truthy
149
+ expect(card[:tid]).to be_a Integer
150
+ expect(card[:tid] == 0).to_not be_truthy
150
151
  expect(card[:brand]).to eq('visa')
151
152
  expect(card[:truncated].index('***')).to_not be_nil
152
153
  end
153
154
 
154
- it 'resp should have the remote reference (TransactionRID)' do
155
- rid = @resp[:rid]
156
- expect(rid).to_not be_nil
157
- expect(rid).to be_a Integer
158
- expect(rid != 0).to be_truthy
155
+ it 'resp should have the remote reference (TransactionTID)' do
156
+ tid = @resp[:tid]
157
+ expect(tid).to_not be_nil
158
+ expect(tid).to be_a Integer
159
+ expect(tid != 0).to be_truthy
160
+ end
161
+
162
+ context 'verifiable trasaction' do
163
+ before(:all) do
164
+ @verified = @store_transaction.verify
165
+ end
166
+
167
+ it 'resp must be a charged status' do
168
+ expect(@verified[:status][:code]).to eq(6)
169
+ expect(@verified[:status][:name]).to eq('charged')
170
+ end
171
+
172
+ it 'resp must have an array of sold_items' do
173
+ expect(@verified[:sold_items]).to be_a_kind_of Array
174
+ end
159
175
  end
160
176
  end
161
177
 
@@ -208,18 +224,18 @@ describe NitroPay::Transaction do
208
224
  expect(status[:msg].index('não').nil?).to_not be_truthy
209
225
  end
210
226
 
211
- it 'resp should have a full CardObj which is allowed to be stored {:rid, :truncated, :brand}' do
227
+ it 'resp should have a full CardObj which is allowed to be stored {:tid, :truncated, :brand}' do
212
228
  card = @resp[:card]
213
- expect(card[:rid]).to be_nil
229
+ expect(card[:tid]).to be_nil
214
230
  expect(card[:brand]).to eq('visa')
215
231
  expect(card[:truncated].index('***')).to_not be_nil
216
232
  end
217
233
 
218
- it 'resp should have the remote reference (TransactionRID)' do
219
- rid = @resp[:rid]
220
- expect(rid).to_not be_nil
221
- expect(rid).to be_a Integer
222
- expect(rid != 0).to be_truthy
234
+ it 'resp should have the remote reference (TransactionTID)' do
235
+ tid = @resp[:tid]
236
+ expect(tid).to_not be_nil
237
+ expect(tid).to be_a Integer
238
+ expect(tid != 0).to be_truthy
223
239
  end
224
240
  end
225
241
 
@@ -272,19 +288,19 @@ describe NitroPay::Transaction do
272
288
  expect(status[:msg].index('Capturada').nil?).to_not be_truthy
273
289
  end
274
290
 
275
- it 'resp should have a full CardObj which is allowed to be stored {:rid, :truncated, :brand}' do
291
+ it 'resp should have a full CardObj which is allowed to be stored {:tid, :truncated, :brand}' do
276
292
  card = @resp[:card]
277
- expect(card[:rid]).to be_a Integer
278
- expect(card[:rid] == 0).to_not be_truthy
293
+ expect(card[:tid]).to be_a Integer
294
+ expect(card[:tid] == 0).to_not be_truthy
279
295
  expect(card[:brand]).to eq('visa')
280
296
  expect(card[:truncated].index('***')).to_not be_nil
281
297
  end
282
298
 
283
- it 'resp should have the remote reference (TransactionRID)' do
284
- rid = @resp[:rid]
285
- expect(rid).to_not be_nil
286
- expect(rid).to be_a Integer
287
- expect(rid != 0).to be_truthy
299
+ it 'resp should have the remote reference (TransactionTID)' do
300
+ tid = @resp[:tid]
301
+ expect(tid).to_not be_nil
302
+ expect(tid).to be_a Integer
303
+ expect(tid != 0).to be_truthy
288
304
  end
289
305
  end
290
306
 
@@ -301,20 +317,20 @@ describe NitroPay::Transaction do
301
317
  @amount = @amount.to_i
302
318
  @recurrence_period = NitroPay.enum[:recurrence_periods][:monthly]
303
319
 
304
- # Test passing no RID & passing specific RID
320
+ # Test passing no TID & passing specific TID
305
321
  transaction_params = {amount: @amount, recurrence_period: @recurrence_period}
306
322
  @empty_transaction = NitroPay::Transaction.new transaction_params
307
- transaction_params[:rid] = @global_subscription_rid
308
- @transaction_with_rid = NitroPay::Transaction.new transaction_params
323
+ transaction_params[:tid] = @global_subscription_tid
324
+ @transaction_with_tid = NitroPay::Transaction.new transaction_params
309
325
 
310
326
  # Send subscription update
311
327
  @empty_transaction_resp = @empty_transaction.update_subscription
312
- @rid_transaction_resp = @transaction_with_rid.update_subscription
328
+ @tid_transaction_resp = @transaction_with_tid.update_subscription
313
329
  end
314
330
 
315
331
  it 'should be Hash' do
316
332
  expect(@empty_transaction_resp).to be_a Hash
317
- expect(@rid_transaction_resp).to be_a Hash
333
+ expect(@tid_transaction_resp).to be_a Hash
318
334
  end
319
335
 
320
336
  it 'should be performed the unsubscribe' do
@@ -328,9 +344,9 @@ describe NitroPay::Transaction do
328
344
  expect(resp_recurrence_period).to eq(@recurrence_period)
329
345
 
330
346
  # SetUpVars
331
- rid_subscription_resp = @rid_transaction_resp[:subscription]
332
- resp_amount = rid_subscription_resp[:amount]
333
- resp_recurrence_period = rid_subscription_resp[:recurrence_period]
347
+ tid_subscription_resp = @tid_transaction_resp[:subscription]
348
+ resp_amount = tid_subscription_resp[:amount]
349
+ resp_recurrence_period = tid_subscription_resp[:recurrence_period]
334
350
 
335
351
  # test those attrs
336
352
  expect(resp_amount).to eq(@amount)
@@ -339,7 +355,7 @@ describe NitroPay::Transaction do
339
355
 
340
356
  it 'should not have any error' do
341
357
  expect(@empty_transaction_resp).to_not include :error
342
- expect(@rid_transaction_resp).to_not include :error
358
+ expect(@tid_transaction_resp).to_not include :error
343
359
  end
344
360
  end
345
361
 
@@ -350,28 +366,28 @@ describe NitroPay::Transaction do
350
366
  NitroPay.debug=true
351
367
  NitroPay.test_env=true
352
368
 
353
- # Test passing no RID & passing specific RID
369
+ # Test passing no TID & passing specific TID
354
370
  @empty_transaction = NitroPay::Transaction.new
355
- @transaction_with_rid = NitroPay::Transaction.new rid: @global_subscription_rid
371
+ @transaction_with_tid = NitroPay::Transaction.new tid: @global_subscription_tid
356
372
 
357
373
  # Send Unsubscribe
358
374
  @empty_transaction_resp = @empty_transaction.unsubscribe
359
- @rid_transaction_resp = @transaction_with_rid.unsubscribe
375
+ @tid_transaction_resp = @transaction_with_tid.unsubscribe
360
376
  end
361
377
 
362
378
  it 'should be Hash' do
363
379
  expect(@empty_transaction_resp).to be_a Hash
364
- expect(@rid_transaction_resp).to be_a Hash
380
+ expect(@tid_transaction_resp).to be_a Hash
365
381
  end
366
382
 
367
383
  it 'should be performed the unsubscribe' do
368
384
  expect(@empty_transaction_resp[:did_unsubscribe]).to be_truthy
369
- expect(@rid_transaction_resp[:did_unsubscribe]).to be_truthy
385
+ expect(@tid_transaction_resp[:did_unsubscribe]).to be_truthy
370
386
  end
371
387
 
372
388
  it 'should not have any error' do
373
389
  expect(@empty_transaction_resp).to_not include :error
374
- expect(@rid_transaction_resp).to_not include :error
390
+ expect(@tid_transaction_resp).to_not include :error
375
391
  end
376
392
  end
377
393
 
@@ -382,7 +398,7 @@ describe NitroPay::Transaction do
382
398
  NitroPay.debug=true
383
399
  NitroPay.test_env=true
384
400
 
385
- # Test passing no RID & passing specific RID
401
+ # Test passing no TID & passing specific TID
386
402
  @transaction = NitroPay::Transaction.new
387
403
 
388
404
  # Send Unsubscribe
@@ -416,9 +432,9 @@ describe NitroPay::Transaction do
416
432
  NitroPay.debug=true
417
433
  NitroPay.test_env=true
418
434
 
419
- # Test passing no RID & passing specific RID
435
+ # Test passing no TID & passing specific TID
420
436
  global_sample_transaction = get_json("#{@base_url}/api/v1/global_sample_transaction")
421
- @transaction = NitroPay::Transaction.new rid: global_sample_transaction[:id]
437
+ @transaction = NitroPay::Transaction.new tid: global_sample_transaction[:id]
422
438
 
423
439
  # Send Unsubscribe
424
440
  @transaction_resp = @transaction.payment_history
@@ -455,7 +471,7 @@ describe NitroPay::Transaction do
455
471
  NitroPay.debug=true
456
472
  NitroPay.test_env=true
457
473
 
458
- # Test passing no RID & passing specific RID
474
+ # Test passing no TID & passing specific TID
459
475
 
460
476
  @transaction = NitroPay::Transaction.new
461
477
 
@@ -483,24 +499,24 @@ describe NitroPay::Transaction do
483
499
  NitroPay.debug=true
484
500
  NitroPay.test_env=true
485
501
 
486
- # Test pending subscription payment passing specific RID
502
+ # Test pending subscription payment passing specific TID
487
503
  @global_pending_subscription = get_json("#{@base_url}/api/v1/global_pending_subscription")
488
- @transaction_with_rid = NitroPay::Transaction.new rid: @global_pending_subscription[:id]
504
+ @transaction_with_tid = NitroPay::Transaction.new tid: @global_pending_subscription[:id]
489
505
 
490
506
  # Send Unsubscribe
491
- @rid_transaction_resp = @transaction_with_rid.up_to_date
507
+ @tid_transaction_resp = @transaction_with_tid.up_to_date
492
508
  end
493
509
 
494
510
  it 'should be Hash' do
495
- expect(@rid_transaction_resp).to be_a Hash
511
+ expect(@tid_transaction_resp).to be_a Hash
496
512
  end
497
513
 
498
514
  it 'should not have any error' do
499
- expect(@rid_transaction_resp).to_not include :error
515
+ expect(@tid_transaction_resp).to_not include :error
500
516
  end
501
517
 
502
518
  it 'should have the subscription' do
503
- expect(@rid_transaction_resp[:subscription]).to_not be_nil
519
+ expect(@tid_transaction_resp[:subscription]).to_not be_nil
504
520
  end
505
521
  end
506
522
  end
@@ -562,6 +578,125 @@ describe NitroPay::Transaction do
562
578
  end
563
579
  end
564
580
 
581
+ context 'BuyCheckoutPage' do
582
+ # correct Request/Params
583
+ context 'SUCCESS' do
584
+ # Create CheckoutPage
585
+ describe 'Create CheckoutPage' do
586
+ # ================ SetUp/Config ================
587
+ before(:all) do
588
+ NitroPay.debug=true
589
+ NitroPay.test_env=true
590
+
591
+ # To test it as CAPTURED it mustn't have cents or invalid credit card number!?
592
+ amount = Random.rand(99999).to_s
593
+ amount = "#{amount}00" if amount[amount.length-2, amount.length] != '00'
594
+
595
+ # Forcing formatted amount to check if the GEM is sending it with Operator format
596
+ amount.insert amount.length-2, ','
597
+
598
+ @checkout_page_params = {
599
+ title: 'Alfred Robots',
600
+ amount: Random.rand(99999).to_s,
601
+ redirect_link: @redirect_link,
602
+ brand: 'https://s3-sa-east-1.amazonaws.com/global-defaults/nitropay/alfred.png',
603
+ alert: 'Atenção. Você está comprando Créditos para serem usados quando este produto for lançado.',
604
+ description: 'Seu Robô Doméstico de baixo custo, alta eficiência e mais prático.'
605
+ }
606
+
607
+ # Perform it page_checkout request
608
+ @checkout_transaction = NitroPay::Transaction.new(@checkout_page_params)
609
+ @full_resp = @checkout_transaction.charge_page(full_resp=true)
610
+ @resp = JSON.parse(@full_resp).it_keys_to_sym
611
+ end
612
+
613
+ # ================ Tests/Expects/Should ================
614
+ it 'resp should not be null' do
615
+ expect(@resp).to_not be_nil
616
+ end
617
+
618
+ it 'resp should contain the RequestID' do
619
+ request_id = @resp[:request_id]
620
+ expect(request_id).to_not be_nil
621
+ expect(request_id).to be_a Integer
622
+ end
623
+
624
+ it 'resp must have a checkout_page url' do
625
+ checkout_page = @checkout_transaction.checkout_page_url
626
+ expect(checkout_page).to_not be_nil
627
+ expect(accessible?(checkout_page)).to be_truthy
628
+ end
629
+
630
+ it 'resp must contain the TID attr' do
631
+ tid = @checkout_transaction.tid
632
+ expect(@resp).to include(:tid)
633
+ expect(tid).to eq(@resp[:tid])
634
+ end
635
+
636
+ it 'resp amount must be equals the sent value' do
637
+ amount = @resp[:amount]
638
+ unformed_received_amount = @checkout_transaction.unformed_received_amount
639
+ expect(unformed_received_amount).to eq(@checkout_page_params[:amount])
640
+ end
641
+ end
642
+ end
643
+
644
+ # incorrect Request/Params
645
+ context 'BAD REQUEST' do
646
+ # NOT_OK on the authentication Store Page tests
647
+ describe 'Authentication failing' do
648
+ # SetUp/Config
649
+ before(:all) do
650
+ NitroPay.debug = true
651
+ NitroPay.test_env = false
652
+ NitroPay.app_id = 1
653
+ NitroPay.secret_key = '12312321312$2a$10$NmV9EysKVLe8ItBdl9CHN.LF05bOuDdoOkmfptdbJs7cuaDWksuUu'
654
+
655
+ amount = Random.rand(99999).to_s
656
+ amount = "#{amount}00" if amount[amount.length-2, amount.length] != '00'
657
+
658
+ @store_transaction = NitroPay::Transaction.new({
659
+ card:{
660
+ brand: 'visa',
661
+ cvv: '321',
662
+ expiration_month: '05',
663
+ expiration_year: '2018',
664
+ number: '9999999999999999',
665
+ holder: Faker::Name.name,
666
+ },
667
+
668
+ amount: amount
669
+ })
670
+
671
+ # Fake SoldItems added
672
+ @store_transaction.sold_items = fake_sold_items
673
+
674
+ # Send StoreCharge
675
+ @resp = @store_transaction.charge_store
676
+ end
677
+
678
+ # ================ Tests/Expects/Should ================
679
+ it 'resp should exist (do not be empty)' do
680
+ expect(@resp).to_not be_nil
681
+ end
682
+
683
+ it 'resp should contain the RequestID' do
684
+ request_id = @resp[:request_id]
685
+ expect(request_id).to_not be_nil
686
+ expect(request_id).to be_a Integer
687
+ end
688
+
689
+ it 'resp should contain auth error' do
690
+ error = @resp[:error].downcase
691
+ expect(error).to_not be_nil
692
+ expect(error.index('auth error').nil?).to_not be_truthy
693
+ expect(error.index('AppID'.downcase).nil?).to_not be_truthy
694
+ expect(error.index('SecretKey'.downcase).nil?).to_not be_truthy
695
+ end
696
+ end
697
+ end
698
+ end
699
+
565
700
  context 'Remote sample connection test' do
566
701
  before(:all) do
567
702
  NitroPay.debug=false
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nitro_pay
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ilton Garcia
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-03-05 00:00:00.000000000 Z
11
+ date: 2016-03-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler