pagarme 2.0.2 → 2.1.0
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.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/.travis.yml +3 -2
- data/README.md +285 -4
- data/Rakefile +16 -19
- data/lib/pagarme.rb +17 -32
- data/lib/pagarme/core_ext.rb +9 -0
- data/lib/pagarme/errors.rb +39 -25
- data/lib/pagarme/model.rb +40 -45
- data/lib/pagarme/nested_model.rb +56 -0
- data/lib/pagarme/object.rb +133 -92
- data/lib/pagarme/request.rb +96 -46
- data/lib/pagarme/resources/address.rb +4 -0
- data/lib/pagarme/resources/antifraud_analysis.rb +4 -0
- data/lib/pagarme/resources/balance.rb +24 -0
- data/lib/pagarme/resources/balance_operation.rb +37 -0
- data/lib/pagarme/resources/bank_account.rb +4 -0
- data/lib/pagarme/resources/bulk_anticipation.rb +65 -0
- data/lib/pagarme/resources/card.rb +4 -0
- data/lib/pagarme/resources/company.rb +28 -0
- data/lib/pagarme/{customer.rb → resources/customer.rb} +0 -0
- data/lib/pagarme/resources/payable.rb +11 -0
- data/lib/pagarme/resources/phone.rb +4 -0
- data/lib/pagarme/{plan.rb → resources/plan.rb} +0 -2
- data/lib/pagarme/resources/postal_code.rb +15 -0
- data/lib/pagarme/resources/postback.rb +15 -0
- data/lib/pagarme/resources/recipient.rb +32 -0
- data/lib/pagarme/resources/split_rule.rb +4 -0
- data/lib/pagarme/resources/subscription.rb +43 -0
- data/lib/pagarme/resources/transaction.rb +41 -0
- data/lib/pagarme/{transfer.rb → resources/transfer.rb} +0 -3
- data/lib/pagarme/{phone.rb → resources/user.rb} +1 -1
- data/lib/pagarme/transaction_common.rb +39 -42
- data/lib/pagarme/version.rb +3 -0
- data/pagarme.gemspec +16 -13
- data/test/assertions.rb +195 -0
- data/test/fixtures.rb +222 -0
- data/test/pagarme/error_test.rb +13 -0
- data/test/pagarme/object_test.rb +19 -0
- data/test/pagarme/pagarme_test.rb +10 -0
- data/test/pagarme/resources/balance_test.rb +46 -0
- data/test/pagarme/resources/bank_account_test.rb +35 -0
- data/test/pagarme/resources/bulk_anticipation_test.rb +72 -0
- data/test/pagarme/resources/card_test.rb +22 -0
- data/test/pagarme/resources/payable_test.rb +30 -0
- data/test/pagarme/resources/plan_test.rb +57 -0
- data/test/pagarme/resources/postback_test.rb +18 -0
- data/test/pagarme/resources/recipient_test.rb +41 -0
- data/test/pagarme/resources/subscription_test.rb +100 -0
- data/test/pagarme/resources/transaction_test.rb +221 -0
- data/test/pagarme/resources/transfer_test.rb +23 -0
- data/test/pagarme/resources/zipcode_test.rb +15 -0
- data/test/test_helper.rb +52 -175
- metadata +102 -30
- data/lib/pagarme/address.rb +0 -4
- data/lib/pagarme/bank_account.rb +0 -9
- data/lib/pagarme/card.rb +0 -7
- data/lib/pagarme/subscription.rb +0 -43
- data/lib/pagarme/transaction.rb +0 -33
- data/lib/pagarme/util.rb +0 -78
- data/pagarme.rb +0 -12
- data/test/pagarme/bank_account.rb +0 -46
- data/test/pagarme/card.rb +0 -26
- data/test/pagarme/object.rb +0 -29
- data/test/pagarme/pagarme.rb +0 -10
- data/test/pagarme/plan.rb +0 -70
- data/test/pagarme/subscription.rb +0 -123
- data/test/pagarme/transaction.rb +0 -215
- data/test/pagarme/transfer.rb +0 -42
@@ -0,0 +1,221 @@
|
|
1
|
+
require_relative '../../test_helper'
|
2
|
+
|
3
|
+
module PagarMe
|
4
|
+
class TransactionTest < Test::Unit::TestCase
|
5
|
+
def setup
|
6
|
+
super
|
7
|
+
ensure_positive_balance
|
8
|
+
end
|
9
|
+
|
10
|
+
should 'be able to charge' do
|
11
|
+
transaction = PagarMe::Transaction.new transaction_with_customer_with_card_params
|
12
|
+
assert_equal transaction.status, 'local'
|
13
|
+
|
14
|
+
transaction.charge
|
15
|
+
assert_transaction_successfully_paid transaction
|
16
|
+
end
|
17
|
+
|
18
|
+
should 'be able to set postback url' do
|
19
|
+
transaction = PagarMe::Transaction.create transaction_with_customer_with_card_with_postback_params
|
20
|
+
assert_transaction_successfully_processing transaction
|
21
|
+
end
|
22
|
+
|
23
|
+
should 'not be able to charge when refused card' do
|
24
|
+
transaction = PagarMe::Transaction.new transaction_with_customer_with_refused_card_params
|
25
|
+
assert_equal transaction.status, 'local'
|
26
|
+
|
27
|
+
transaction.charge
|
28
|
+
assert_transaction_refused_by_acquirer transaction
|
29
|
+
end
|
30
|
+
|
31
|
+
should 'be able to charge with a saved card' do
|
32
|
+
card = PagarMe::Card.create card_params
|
33
|
+
transaction = PagarMe::Transaction.charge customer_params(card: card, amount: 1000)
|
34
|
+
assert_transaction_successfully_paid transaction
|
35
|
+
end
|
36
|
+
|
37
|
+
should 'be able to charge with an unsaved card' do
|
38
|
+
card = PagarMe::Card.new card_params
|
39
|
+
transaction = PagarMe::Transaction.charge customer_params(card: card, amount: 1000)
|
40
|
+
assert_transaction_successfully_paid transaction
|
41
|
+
end
|
42
|
+
|
43
|
+
should 'be able to refund' do
|
44
|
+
transaction = PagarMe::Transaction.charge transaction_with_customer_with_card_params
|
45
|
+
assert_transaction_successfully_paid transaction
|
46
|
+
|
47
|
+
transaction.refund
|
48
|
+
assert_equal transaction.status, 'refunded'
|
49
|
+
end
|
50
|
+
|
51
|
+
should 'be able to create transaciton with boleto' do
|
52
|
+
transaction = PagarMe::Transaction.charge transaction_with_boleto_params
|
53
|
+
assert_transaction_with_bolelo_on_waiting_payment transaction
|
54
|
+
end
|
55
|
+
|
56
|
+
should 'be able to send and retrieve metadata' do
|
57
|
+
metadata = {
|
58
|
+
'metadata' => {
|
59
|
+
'event' => {
|
60
|
+
'id' => 335,
|
61
|
+
'name' => 'Evento foda'
|
62
|
+
}
|
63
|
+
}
|
64
|
+
}
|
65
|
+
transaction = PagarMe::Transaction.charge transaction_with_customer_with_card_params(metadata)
|
66
|
+
assert_equal transaction.metadata.to_hash, metadata['metadata']
|
67
|
+
|
68
|
+
found_transaction = PagarMe::Transaction.find_by_id transaction.id
|
69
|
+
assert_equal found_transaction.metadata.to_hash, metadata['metadata']
|
70
|
+
end
|
71
|
+
|
72
|
+
should 'be able to find a transaction' do
|
73
|
+
transaction = PagarMe::Transaction.charge transaction_with_customer_with_card_params
|
74
|
+
assert_transaction_successfully_paid transaction
|
75
|
+
|
76
|
+
other_transaction = PagarMe::Transaction.find_by_id transaction.id
|
77
|
+
assert_equal transaction.id, other_transaction.id
|
78
|
+
assert_equal transaction, other_transaction
|
79
|
+
end
|
80
|
+
|
81
|
+
should 'raise an error when nil or empty string as ID' do
|
82
|
+
assert_raises RequestError do
|
83
|
+
PagarMe::Transaction.find_by_id nil
|
84
|
+
end
|
85
|
+
|
86
|
+
assert_raises RequestError do
|
87
|
+
PagarMe::Transaction.find_by_id ''
|
88
|
+
end
|
89
|
+
end
|
90
|
+
|
91
|
+
should 'require parameters on the refund with boleto' do
|
92
|
+
transaction = PagarMe::Transaction.create transaction_with_boleto_params
|
93
|
+
assert_equal transaction.status, 'waiting_payment'
|
94
|
+
|
95
|
+
assert_raises(PagarMe::ValidationError){ transaction.refund }
|
96
|
+
assert_raises(PagarMe::ValidationError){ transaction.refund refund_bank_account_params }
|
97
|
+
assert_equal transaction.status, 'waiting_payment'
|
98
|
+
|
99
|
+
transaction.status = 'paid'
|
100
|
+
transaction.save
|
101
|
+
assert_equal transaction.status, 'paid'
|
102
|
+
|
103
|
+
assert_raises(PagarMe::ValidationError){ transaction.refund }
|
104
|
+
assert_equal transaction.status, 'paid'
|
105
|
+
|
106
|
+
transaction.refund refund_bank_account_params
|
107
|
+
assert_equal transaction.status, 'pending_refund'
|
108
|
+
|
109
|
+
found_transaction = PagarMe::Transaction.find_by_id transaction.id
|
110
|
+
assert_equal found_transaction.status, 'pending_refund'
|
111
|
+
end
|
112
|
+
|
113
|
+
should 'be able to create transaction with customer' do
|
114
|
+
transaction = PagarMe::Transaction.charge transaction_with_card_with_customer_params
|
115
|
+
assert_transaction_with_customer_successfully_paid transaction
|
116
|
+
end
|
117
|
+
|
118
|
+
should 'be able to refund transaction with customer' do
|
119
|
+
transaction = PagarMe::Transaction.charge transaction_with_card_with_customer_params
|
120
|
+
assert_transaction_with_customer_successfully_paid transaction
|
121
|
+
|
122
|
+
transaction.refund
|
123
|
+
assert_equal transaction.status, 'refunded'
|
124
|
+
end
|
125
|
+
|
126
|
+
should 'be able to capture a transaction and pass an amount' do
|
127
|
+
transaction = PagarMe::Transaction.charge transaction_with_customer_with_card_params(capture: false, amount: 2000)
|
128
|
+
assert_equal transaction.status, 'authorized'
|
129
|
+
assert_equal transaction.amount, 2000
|
130
|
+
assert_equal transaction.paid_amount, 0
|
131
|
+
assert_equal transaction.refunded_amount, 0
|
132
|
+
|
133
|
+
transaction.capture amount: 1000
|
134
|
+
assert_equal transaction.status, 'paid'
|
135
|
+
assert_equal transaction.amount, 2000
|
136
|
+
assert_equal transaction.paid_amount, 1000
|
137
|
+
assert_equal transaction.refunded_amount, 0
|
138
|
+
end
|
139
|
+
|
140
|
+
should 'validate transaction with invalid card_number' do
|
141
|
+
exception = assert_raises PagarMe::ValidationError do
|
142
|
+
PagarMe::Transaction.charge transaction_with_card_params(card_number: '123456')
|
143
|
+
end
|
144
|
+
assert exception.errors.any?{ |error| error.parameter_name == 'card_number' }
|
145
|
+
end
|
146
|
+
|
147
|
+
should 'validate transaction missing card_holder_name' do
|
148
|
+
exception = assert_raises PagarMe::ValidationError do
|
149
|
+
params = {
|
150
|
+
card_number: '4111111111111111',
|
151
|
+
amount: '1000'
|
152
|
+
}
|
153
|
+
PagarMe::Transaction.charge params
|
154
|
+
end
|
155
|
+
assert exception.errors.any?{ |error| error.parameter_name == 'card_holder_name' }
|
156
|
+
end
|
157
|
+
|
158
|
+
should 'validate transaction with invalid expiracy month' do
|
159
|
+
exception = assert_raises PagarMe::ValidationError do
|
160
|
+
params = {
|
161
|
+
card_number: '4111111111111111',
|
162
|
+
card_holder_name: 'Jose da Silva',
|
163
|
+
amount: '1000',
|
164
|
+
card_expiracy_month: 15
|
165
|
+
}
|
166
|
+
PagarMe::Transaction.charge params
|
167
|
+
end
|
168
|
+
assert exception.errors.any?{ |error| error.parameter_name == 'card_expiration_date' }
|
169
|
+
end
|
170
|
+
|
171
|
+
should 'validate transaction invalid expiracy year' do
|
172
|
+
exception = assert_raises PagarMe::ValidationError do
|
173
|
+
params = {
|
174
|
+
card_number: '4111111111111111',
|
175
|
+
card_holder_name: 'Jose da Silva',
|
176
|
+
amount: '1000',
|
177
|
+
card_expiration_month: 12,
|
178
|
+
card_expiration_year: -1,
|
179
|
+
}
|
180
|
+
PagarMe::Transaction.charge params
|
181
|
+
end
|
182
|
+
assert exception.errors.any?{ |error| error.parameter_name == 'card_expiration_date' }
|
183
|
+
end
|
184
|
+
|
185
|
+
should 'validate transaction missing cvv' do
|
186
|
+
exception = assert_raises PagarMe::ValidationError do
|
187
|
+
params = {
|
188
|
+
card_number: '4111111111111111',
|
189
|
+
card_holder_name: 'Jose da Silva',
|
190
|
+
amount: '1000',
|
191
|
+
card_expiration_month: 12,
|
192
|
+
card_expiration_year: 16,
|
193
|
+
}
|
194
|
+
PagarMe::Transaction.charge params
|
195
|
+
end
|
196
|
+
assert exception.errors.any?{ |error| error.parameter_name == 'card_cvv' }
|
197
|
+
end
|
198
|
+
|
199
|
+
should 'be able to split transaction' do
|
200
|
+
transaction = PagarMe::Transaction.charge transaction_with_customer_with_card_with_split_rules_params
|
201
|
+
assert_split_rules transaction.split_rules
|
202
|
+
end
|
203
|
+
|
204
|
+
should 'raise error when there is an invalid split rule' do
|
205
|
+
assert_raises PagarMe::ValidationError do
|
206
|
+
PagarMe::Transaction.charge transaction_with_card_with_invalid_split_rules_params
|
207
|
+
end
|
208
|
+
end
|
209
|
+
|
210
|
+
should 'calculate installments' do
|
211
|
+
amount = 10000
|
212
|
+
result = PagarMe::Transaction.calculate_installments amount: amount, interest_rate: 0
|
213
|
+
|
214
|
+
assert_equal result['installments'].size, 12
|
215
|
+
(1..12).each do |i|
|
216
|
+
installment = (amount.to_f/i).round
|
217
|
+
assert_equal result['installments'][i.to_s]['installment_amount'], installment
|
218
|
+
end
|
219
|
+
end
|
220
|
+
end
|
221
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require_relative '../../test_helper'
|
2
|
+
|
3
|
+
module PagarMe
|
4
|
+
class TransferTest < Test::Unit::TestCase
|
5
|
+
def setup
|
6
|
+
super
|
7
|
+
ensure_positive_balance
|
8
|
+
end
|
9
|
+
|
10
|
+
should 'be able to create a transfer' do
|
11
|
+
transfer = PagarMe::Transfer.create transfer_params
|
12
|
+
assert_transfer transfer
|
13
|
+
end
|
14
|
+
|
15
|
+
should 'be able to find with id' do
|
16
|
+
transfer = PagarMe::Transfer.create transfer_params
|
17
|
+
assert_transfer transfer
|
18
|
+
|
19
|
+
found_transfer = PagarMe::Transfer.find_by_id transfer.id
|
20
|
+
assert_transfer found_transfer
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require_relative '../../test_helper'
|
2
|
+
|
3
|
+
module PagarMe
|
4
|
+
class ZipcodeTest < Test::Unit::TestCase
|
5
|
+
should 'be able find a zipcode' do
|
6
|
+
zipcode = PagarMe::Zipcode.find '12228-462'
|
7
|
+
|
8
|
+
assert_equal zipcode.city, 'São José dos Campos'
|
9
|
+
assert_equal zipcode.neighborhood, 'Campus do CTA'
|
10
|
+
assert_equal zipcode.state, 'SP'
|
11
|
+
assert_equal zipcode.street, 'Rua H8C'
|
12
|
+
assert_equal zipcode.zipcode, '12228462'
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
data/test/test_helper.rb
CHANGED
@@ -1,192 +1,69 @@
|
|
1
|
-
require_relative '../lib/pagarme'
|
2
1
|
require 'test/unit'
|
3
2
|
require 'shoulda'
|
3
|
+
require 'webmock'
|
4
|
+
require 'pry'
|
5
|
+
require 'vcr'
|
4
6
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
end
|
15
|
-
|
16
|
-
def test_transfer(params = {})
|
17
|
-
return PagarMe::Transfer.new({
|
18
|
-
amount: 1000,
|
19
|
-
}.merge(params))
|
20
|
-
end
|
21
|
-
|
22
|
-
def test_card(params = {})
|
23
|
-
return PagarMe::Card.new({
|
24
|
-
:card_number => '4111111111111111',
|
25
|
-
:card_holder_name => 'Jose da Silva',
|
26
|
-
:card_expiration_month => '10',
|
27
|
-
:card_expiration_year => '15',
|
28
|
-
:card_cvv => '314'
|
29
|
-
}.merge(params))
|
30
|
-
end
|
31
|
-
|
32
|
-
def test_subscription_without_plan(params = {})
|
33
|
-
return PagarMe::Subscription.new({
|
34
|
-
:payment_method => 'credit_card',
|
35
|
-
:card_number => "4901720080344448",
|
36
|
-
:card_holder_name => "Jose da Silva",
|
37
|
-
:card_expiration_month => "10",
|
38
|
-
:card_expiration_year => "15",
|
39
|
-
:card_cvv => "314",
|
40
|
-
:postback_url => "http://test.com/postback",
|
41
|
-
:customer => {
|
42
|
-
:email => 'customer@pagar.me'
|
43
|
-
}
|
44
|
-
}.merge(params))
|
45
|
-
end
|
46
|
-
|
47
|
-
def test_plan(params = {})
|
48
|
-
return PagarMe::Plan.new({
|
49
|
-
:name => "Plano gold",
|
50
|
-
:trial_days => 5,
|
51
|
-
:days => 30,
|
52
|
-
:amount => 3000,
|
53
|
-
}.merge(params))
|
54
|
-
end
|
55
|
-
|
56
|
-
def test_bank_account(params = {})
|
57
|
-
return PagarMe::BankAccount.new({
|
58
|
-
:bank_code => '237',
|
59
|
-
:agencia => '1935',
|
60
|
-
:agencia_dv => '9',
|
61
|
-
:conta => '23398',
|
62
|
-
:conta_dv => '9',
|
63
|
-
:legal_name => 'foo bar loem',
|
64
|
-
:document_number => '00000000000000'
|
65
|
-
}.merge(params))
|
7
|
+
require_relative '../lib/pagarme'
|
8
|
+
require_relative 'assertions'
|
9
|
+
require_relative 'fixtures'
|
10
|
+
|
11
|
+
VCR.configure do |config|
|
12
|
+
config.cassette_library_dir = 'test/vcr_cassettes'
|
13
|
+
config.default_cassette_options[:match_requests_on] = [:method, :uri, :host, :path, :query, :body, :headers]
|
14
|
+
config.default_cassette_options[:record] = :new_episodes
|
15
|
+
config.hook_into :webmock
|
66
16
|
end
|
67
17
|
|
68
|
-
|
69
|
-
|
70
|
-
:payment_method => 'credit_card',
|
71
|
-
:card_number => "4901720080344448",
|
72
|
-
:card_holder_name => "Jose da Silva",
|
73
|
-
:card_expiration_month => "10",
|
74
|
-
:card_expiration_year => "15",
|
75
|
-
:card_cvv => "314",
|
76
|
-
:postback_url => "http://test.com/postback",
|
77
|
-
:customer => {
|
78
|
-
email: 'customer@pagar.me'
|
79
|
-
}
|
80
|
-
}.merge(params))
|
81
|
-
end
|
18
|
+
class Test::Unit::TestCase
|
19
|
+
FIXED_API_KEY = 'ak_test_Q2D2qDYGJSyeR1KbI4sLzGACEr73MF'
|
82
20
|
|
83
|
-
|
84
|
-
|
85
|
-
:amount => 1000,
|
86
|
-
:card_number => '4901720080344448',
|
87
|
-
:card_holder_name => "Jose da Silva",
|
88
|
-
:card_expiration_month => "11",
|
89
|
-
:card_expiration_year => "19",
|
90
|
-
:card_cvv => "356",
|
91
|
-
:customer => {
|
92
|
-
:name => "Jose da Silva",
|
93
|
-
:document_number => "36433809847",
|
94
|
-
:email => "henrique+test@pagar.me",
|
95
|
-
:address => {
|
96
|
-
:street => 'Av. Brigadeiro Faria Lima',
|
97
|
-
:neighborhood => 'Itaim bibi',
|
98
|
-
:zipcode => '01452000',
|
99
|
-
:street_number => "2941",
|
100
|
-
},
|
101
|
-
:phone => {
|
102
|
-
:ddd => "12",
|
103
|
-
:number => '981433533',
|
104
|
-
},
|
105
|
-
:sex => 'M',
|
106
|
-
:born_at => '1970-10-11'
|
107
|
-
}
|
108
|
-
}.merge(params))
|
109
|
-
end
|
21
|
+
include Fixtures::Helpers
|
22
|
+
include Assertions
|
110
23
|
|
111
|
-
def
|
112
|
-
|
113
|
-
|
114
|
-
:card_number => '4901720080344448',
|
115
|
-
:card_holder_name => "Jose da silva",
|
116
|
-
:card_expiration_month => "11",
|
117
|
-
:card_expiration_year => "19",
|
118
|
-
:card_cvv => "356",
|
119
|
-
:customer => {
|
120
|
-
:name => "Jose da Silva",
|
121
|
-
:document_number => "36433809847",
|
122
|
-
:email => "henrique@pagar.me",
|
123
|
-
:address => {
|
124
|
-
:street => 'Av. Brigadeiro Faria Lima',
|
125
|
-
:neighborhood => 'Itaim bibi',
|
126
|
-
:zipcode => '01452000',
|
127
|
-
:street_number => "1000",
|
128
|
-
} ,
|
129
|
-
:phone => {
|
130
|
-
:ddd => "12",
|
131
|
-
:number => '981444444',
|
132
|
-
} ,
|
133
|
-
:sex => 'M',
|
134
|
-
:born_at => '1970-10-11'
|
135
|
-
}
|
136
|
-
}.merge(params))
|
137
|
-
end
|
24
|
+
def setup
|
25
|
+
PagarMe.api_key = temporary_api_key
|
26
|
+
end
|
138
27
|
|
28
|
+
def teardown
|
29
|
+
PagarMe.api_key = nil
|
30
|
+
end
|
139
31
|
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
end
|
32
|
+
protected
|
33
|
+
def ensure_positive_balance
|
34
|
+
VCR.use_cassette 'TestCase/ensure_positive_balance' do
|
35
|
+
transaction = PagarMe::Transaction.charge transaction_with_boleto_params(amount: 100_000_00)
|
36
|
+
transaction.status = :paid
|
37
|
+
transaction.save
|
38
|
+
end
|
39
|
+
end
|
147
40
|
|
148
|
-
def
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
assert transaction.date_created
|
154
|
-
assert transaction.amount == amount
|
155
|
-
assert transaction.installments.to_i == installments
|
156
|
-
# assert transaction.card_brand == 'visa'
|
157
|
-
assert transaction.payment_method == 'credit_card'
|
158
|
-
assert transaction.status == 'paid'
|
159
|
-
assert !transaction.boleto_url
|
160
|
-
assert !transaction.boleto_barcode
|
161
|
-
end
|
41
|
+
def ensure_waiting_funds
|
42
|
+
VCR.use_cassette 'TestCase/ensure_waiting_funds' do
|
43
|
+
PagarMe::Transaction.create transaction_with_customer_with_card_params(amount: 10_000_00, installments: 12)
|
44
|
+
end
|
45
|
+
end
|
162
46
|
|
163
|
-
def
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
assert transaction.amount == 1000
|
169
|
-
assert transaction.installments.to_i == 1
|
170
|
-
assert transaction.card_holder_name == 'Jose da Silva'
|
171
|
-
# assert transaction.card_brand == 'visa'
|
172
|
-
assert transaction.payment_method == 'credit_card'
|
173
|
-
assert transaction.status == 'paid'
|
174
|
-
end
|
47
|
+
def fixed_api_key
|
48
|
+
PagarMe.api_key = FIXED_API_KEY
|
49
|
+
yield
|
50
|
+
PagarMe.api_key = temporary_api_key
|
51
|
+
end
|
175
52
|
|
176
|
-
def
|
177
|
-
|
178
|
-
assert plan.name == 'Plano gold'
|
179
|
-
assert plan.trial_days == 5
|
180
|
-
assert plan.days == 30
|
181
|
-
assert plan.amount = 3000
|
182
|
-
end
|
53
|
+
def temporary_api_key
|
54
|
+
return FIXED_API_KEY
|
183
55
|
|
184
|
-
|
185
|
-
|
186
|
-
|
56
|
+
# TODO: Unfortunately, it's right now impossible to create
|
57
|
+
# temporary companies properly pre-configured to run all tests
|
58
|
+
VCR.use_cassette 'TestCase/tmp_company_api_key' do
|
59
|
+
PagarMe.api_key = FIXED_API_KEY
|
60
|
+
Company.temporary.api_key.test
|
61
|
+
end
|
187
62
|
end
|
188
63
|
|
189
|
-
|
190
|
-
|
64
|
+
# Monkey Patch that adds VCR everywhere
|
65
|
+
def self.should(description, &block)
|
66
|
+
cassette_name = "#{ self.name.split('::').last }/should_#{ description.gsub /\s+/, '_' }"
|
67
|
+
super(description){ VCR.use_cassette(cassette_name){ self.instance_exec &block } }
|
191
68
|
end
|
192
69
|
end
|