pagarme 2.0.2 → 2.1.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|