braintree 2.93.0 → 2.94.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/lib/braintree.rb +2 -0
- data/lib/braintree/error_codes.rb +1 -0
- data/lib/braintree/payment_method_gateway.rb +32 -43
- data/lib/braintree/payment_method_parser.rb +32 -0
- data/lib/braintree/revoked_payment_method_metadata.rb +22 -0
- data/lib/braintree/util.rb +1 -1
- data/lib/braintree/version.rb +1 -1
- data/lib/braintree/webhook_notification.rb +3 -0
- data/spec/fixtures/files/too_long.pdf +0 -0
- data/spec/integration/braintree/add_on_spec.rb +1 -1
- data/spec/integration/braintree/credit_card_spec.rb +10 -10
- data/spec/integration/braintree/customer_spec.rb +9 -9
- data/spec/integration/braintree/discount_spec.rb +1 -1
- data/spec/integration/braintree/document_upload_spec.rb +7 -0
- data/spec/integration/braintree/ideal_payment_spec.rb +2 -2
- data/spec/integration/braintree/payment_method_nonce_spec.rb +19 -0
- data/spec/integration/braintree/payment_method_spec.rb +2 -2
- data/spec/integration/braintree/paypal_account_spec.rb +2 -2
- data/spec/integration/braintree/subscription_spec.rb +39 -39
- data/spec/integration/braintree/transaction_line_item_spec.rb +3 -3
- data/spec/integration/braintree/transaction_search_spec.rb +2 -2
- data/spec/integration/braintree/transaction_spec.rb +60 -60
- data/spec/integration/braintree/transaction_us_bank_account_spec.rb +7 -7
- data/spec/integration/braintree/transparent_redirect_spec.rb +2 -2
- data/spec/integration/braintree/us_bank_account_spec.rb +2 -2
- data/spec/spec_helper.rb +4 -4
- data/spec/unit/braintree/credit_card_verification_spec.rb +2 -2
- data/spec/unit/braintree/modification_spec.rb +1 -1
- data/spec/unit/braintree/subscription_spec.rb +2 -2
- data/spec/unit/braintree/transaction_spec.rb +2 -2
- data/spec/unit/braintree/util_spec.rb +2 -2
- data/spec/unit/braintree/webhook_notification_spec.rb +133 -0
- data/spec/unit/braintree/xml_spec.rb +3 -3
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dce496fbd494eb6d7c00260e5f7ac5ce0082e588874e5ff85f8b1130009164c6
|
4
|
+
data.tar.gz: 827b5db86f4b2144bbbe795f2bbd2abd06b7f4c85d577e99842c544705b234d1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2d879cf0a13d3d799ecf92f8f447e91a75897ecc77a75ee9ed1a39a5d96f81b7e82b4f6edfa57147e689230ea5941ecb5f92e1e4fb3e0f8524cb2d8a66542bf8
|
7
|
+
data.tar.gz: e402c7a9f7d351a89ad7c205012b26e66f9ca82ac15c73fc5ff432c2e00296dc78422ef8c2e80ad45d12f2e9901a8f343b9164736cecd3c578546316e0a26e0d
|
data/lib/braintree.rb
CHANGED
@@ -91,6 +91,7 @@ require "braintree/payment_method"
|
|
91
91
|
require "braintree/payment_method_gateway"
|
92
92
|
require "braintree/payment_method_nonce"
|
93
93
|
require "braintree/payment_method_nonce_gateway"
|
94
|
+
require "braintree/payment_method_parser"
|
94
95
|
require "braintree/paypal_account"
|
95
96
|
require "braintree/paypal_account_gateway"
|
96
97
|
require "braintree/plan"
|
@@ -103,6 +104,7 @@ require "braintree/three_d_secure_info"
|
|
103
104
|
require "braintree/settlement_batch_summary"
|
104
105
|
require "braintree/settlement_batch_summary_gateway"
|
105
106
|
require "braintree/resource_collection"
|
107
|
+
require "braintree/revoked_payment_method_metadata"
|
106
108
|
require "braintree/paginated_collection"
|
107
109
|
require "braintree/paginated_result"
|
108
110
|
require "braintree/europe_bank_account"
|
@@ -19,36 +19,11 @@ module Braintree
|
|
19
19
|
|
20
20
|
def _do_create(path, params=nil) # :nodoc:
|
21
21
|
response = @config.http.post("#{@config.base_merchant_path}#{path}", params)
|
22
|
-
|
23
|
-
|
24
|
-
elsif response[:paypal_account]
|
25
|
-
SuccessfulResult.new(:payment_method => PayPalAccount._new(@gateway, response[:paypal_account]))
|
26
|
-
elsif response[:coinbase_account]
|
27
|
-
SuccessfulResult.new(:payment_method => CoinbaseAccount._new(@gateway, response[:coinbase_account]))
|
28
|
-
elsif response[:us_bank_account]
|
29
|
-
SuccessfulResult.new(:payment_method => UsBankAccount._new(@gateway, response[:us_bank_account]))
|
30
|
-
elsif response[:apple_pay_card]
|
31
|
-
SuccessfulResult.new(:payment_method => ApplePayCard._new(@gateway, response[:apple_pay_card]))
|
32
|
-
elsif response[:android_pay_card]
|
33
|
-
SuccessfulResult.new(:payment_method => AndroidPayCard._new(@gateway, response[:android_pay_card]))
|
34
|
-
elsif response[:amex_express_checkout_card]
|
35
|
-
SuccessfulResult.new(:payment_method => AmexExpressCheckoutCard._new(@gateway, response[:amex_express_checkout_card]))
|
36
|
-
elsif response[:venmo_account]
|
37
|
-
SuccessfulResult.new(:payment_method => VenmoAccount._new(@gateway, response[:venmo_account]))
|
38
|
-
elsif response[:visa_checkout_card]
|
39
|
-
SuccessfulResult.new(:payment_method => VisaCheckoutCard._new(@gateway, response[:visa_checkout_card]))
|
40
|
-
elsif response[:masterpass_card]
|
41
|
-
SuccessfulResult.new(:payment_method => MasterpassCard._new(@gateway, response[:masterpass_card]))
|
42
|
-
elsif response[:samsung_pay_card]
|
43
|
-
SuccessfulResult.new(:payment_method => SamsungPayCard._new(@gateway, response[:samsung_pay_card]))
|
44
|
-
elsif response[:payment_method_nonce]
|
45
|
-
SuccessfulResult.new(:payment_method_nonce => PaymentMethodNonce._new(@gateway, response[:payment_method_nonce]))
|
46
|
-
elsif response[:success]
|
47
|
-
SuccessfulResult.new
|
48
|
-
elsif response[:api_error_response]
|
22
|
+
|
23
|
+
if response[:api_error_response]
|
49
24
|
ErrorResult.new(@gateway, response[:api_error_response])
|
50
25
|
elsif response
|
51
|
-
SuccessfulResult.new(:payment_method =>
|
26
|
+
SuccessfulResult.new(:payment_method => PaymentMethodParser.parse_payment_method(@gateway, response))
|
52
27
|
else
|
53
28
|
raise UnexpectedError, "expected :payment_method or :api_error_response"
|
54
29
|
end
|
@@ -96,6 +71,17 @@ module Braintree
|
|
96
71
|
return_object_or_raise(:payment_method) { update(*args) }
|
97
72
|
end
|
98
73
|
|
74
|
+
def _do_update(http_verb, path, params) # :nodoc:
|
75
|
+
response = @config.http.send(http_verb, "#{@config.base_merchant_path}#{path}", params)
|
76
|
+
if response[:api_error_response]
|
77
|
+
ErrorResult.new(@gateway, response[:api_error_response])
|
78
|
+
elsif response
|
79
|
+
SuccessfulResult.new(:payment_method => PaymentMethodParser.parse_payment_method(@gateway, response))
|
80
|
+
else
|
81
|
+
raise UnexpectedError, "expected :payment_method or :api_error_response"
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
99
85
|
def grant(token, options = {})
|
100
86
|
raise ArgumentError if token.nil? || token.to_s.strip == ""
|
101
87
|
if options.class == Hash
|
@@ -106,7 +92,7 @@ module Braintree
|
|
106
92
|
raise ArgumentError
|
107
93
|
end
|
108
94
|
|
109
|
-
|
95
|
+
_do_grant(
|
110
96
|
"/payment_methods/grant",
|
111
97
|
:payment_method => {
|
112
98
|
:shared_payment_method_token => token,
|
@@ -116,10 +102,21 @@ module Braintree
|
|
116
102
|
raise NotFoundError, "payment method with token #{token.inspect} not found"
|
117
103
|
end
|
118
104
|
|
105
|
+
def _do_grant(path, params=nil)
|
106
|
+
response = @config.http.post("#{@config.base_merchant_path}#{path}", params)
|
107
|
+
if response[:payment_method_nonce]
|
108
|
+
SuccessfulResult.new(:payment_method_nonce => PaymentMethodNonce._new(@gateway, response[:payment_method_nonce]))
|
109
|
+
elsif response[:api_error_response]
|
110
|
+
ErrorResult.new(@gateway, response[:api_error_response])
|
111
|
+
else
|
112
|
+
raise UnexpectedError, "expected :payment_method_nonce or :api_error_response"
|
113
|
+
end
|
114
|
+
end
|
115
|
+
|
119
116
|
def revoke(token)
|
120
117
|
raise ArgumentError if token.nil? || token.to_s.strip == ""
|
121
118
|
|
122
|
-
|
119
|
+
_do_revoke(
|
123
120
|
"/payment_methods/revoke",
|
124
121
|
:payment_method => {
|
125
122
|
:shared_payment_method_token => token
|
@@ -129,22 +126,14 @@ module Braintree
|
|
129
126
|
raise NotFoundError, "payment method with token #{token.inspect} not found"
|
130
127
|
end
|
131
128
|
|
132
|
-
def
|
133
|
-
response = @config.http.
|
134
|
-
if response[:
|
135
|
-
SuccessfulResult.new
|
136
|
-
elsif response[:paypal_account]
|
137
|
-
SuccessfulResult.new(:payment_method => PayPalAccount._new(@gateway, response[:paypal_account]))
|
138
|
-
elsif response[:coinbase_account]
|
139
|
-
SuccessfulResult.new(:payment_method => CoinbaseAccount._new(@gateway, response[:coinbase_account]))
|
129
|
+
def _do_revoke(path, params=nil)
|
130
|
+
response = @config.http.post("#{@config.base_merchant_path}#{path}", params)
|
131
|
+
if response[:success]
|
132
|
+
SuccessfulResult.new
|
140
133
|
elsif response[:api_error_response]
|
141
134
|
ErrorResult.new(@gateway, response[:api_error_response])
|
142
|
-
elsif response[:us_bank_account]
|
143
|
-
SuccessfulResult.new(:payment_method => UsBankAccount._new(@gateway, response[:us_bank_account]))
|
144
|
-
elsif response
|
145
|
-
SuccessfulResult.new(:payment_method => UnknownPaymentMethod._new(@gateway, response))
|
146
135
|
else
|
147
|
-
raise UnexpectedError, "expected :
|
136
|
+
raise UnexpectedError, "expected :success or :api_error_response"
|
148
137
|
end
|
149
138
|
end
|
150
139
|
|
@@ -0,0 +1,32 @@
|
|
1
|
+
module Braintree
|
2
|
+
module PaymentMethodParser
|
3
|
+
|
4
|
+
def self.parse_payment_method(gateway, attributes)
|
5
|
+
if attributes[:credit_card]
|
6
|
+
CreditCard._new(gateway, attributes[:credit_card])
|
7
|
+
elsif attributes[:paypal_account]
|
8
|
+
PayPalAccount._new(gateway, attributes[:paypal_account])
|
9
|
+
elsif attributes[:coinbase_account]
|
10
|
+
CoinbaseAccount._new(gateway, attributes[:coinbase_account])
|
11
|
+
elsif attributes[:us_bank_account]
|
12
|
+
UsBankAccount._new(gateway, attributes[:us_bank_account])
|
13
|
+
elsif attributes[:apple_pay_card]
|
14
|
+
ApplePayCard._new(gateway, attributes[:apple_pay_card])
|
15
|
+
elsif attributes[:android_pay_card]
|
16
|
+
AndroidPayCard._new(gateway, attributes[:android_pay_card])
|
17
|
+
elsif attributes[:amex_express_checkout_card]
|
18
|
+
AmexExpressCheckoutCard._new(gateway, attributes[:amex_express_checkout_card])
|
19
|
+
elsif attributes[:venmo_account]
|
20
|
+
VenmoAccount._new(gateway, attributes[:venmo_account])
|
21
|
+
elsif attributes[:visa_checkout_card]
|
22
|
+
VisaCheckoutCard._new(gateway, attributes[:visa_checkout_card])
|
23
|
+
elsif attributes[:masterpass_card]
|
24
|
+
MasterpassCard._new(gateway, attributes[:masterpass_card])
|
25
|
+
elsif attributes[:samsung_pay_card]
|
26
|
+
SamsungPayCard._new(gateway, attributes[:samsung_pay_card])
|
27
|
+
else
|
28
|
+
UnknownPaymentMethod._new(gateway, attributes)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module Braintree
|
2
|
+
class RevokedPaymentMethodMetadata
|
3
|
+
include BaseModule
|
4
|
+
|
5
|
+
attr_reader :customer_id
|
6
|
+
attr_reader :token
|
7
|
+
attr_reader :revoked_payment_method
|
8
|
+
|
9
|
+
def initialize(gateway, attributes)
|
10
|
+
@revoked_payment_method = PaymentMethodParser.parse_payment_method(gateway, attributes)
|
11
|
+
@customer_id = @revoked_payment_method.customer_id
|
12
|
+
@token = @revoked_payment_method.token
|
13
|
+
end
|
14
|
+
|
15
|
+
class << self
|
16
|
+
protected :new
|
17
|
+
def _new(*args) # :nodoc:
|
18
|
+
self.new *args
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
data/lib/braintree/util.rb
CHANGED
data/lib/braintree/version.rb
CHANGED
@@ -41,6 +41,7 @@ module Braintree
|
|
41
41
|
ConnectedMerchantPayPalStatusChanged = "connected_merchant_paypal_status_changed"
|
42
42
|
|
43
43
|
GrantedPaymentInstrumentUpdate = "granted_payment_instrument_update"
|
44
|
+
GrantedPaymentInstrumentRevoked = "granted_payment_instrument_revoked"
|
44
45
|
|
45
46
|
LocalPaymentCompleted = "local_payment_completed"
|
46
47
|
end
|
@@ -51,6 +52,7 @@ module Braintree
|
|
51
52
|
attr_reader :disbursement
|
52
53
|
attr_reader :dispute
|
53
54
|
attr_reader :granted_payment_instrument_update
|
55
|
+
attr_reader :revoked_payment_method_metadata
|
54
56
|
attr_reader :ideal_payment
|
55
57
|
attr_reader :kind
|
56
58
|
attr_reader :local_payment_completed
|
@@ -85,6 +87,7 @@ module Braintree
|
|
85
87
|
@connected_merchant_status_transitioned = ConnectedMerchantStatusTransitioned._new(@subject[:connected_merchant_status_transitioned]) if @subject.has_key?(:connected_merchant_status_transitioned)
|
86
88
|
@connected_merchant_paypal_status_changed = ConnectedMerchantPayPalStatusChanged._new(@subject[:connected_merchant_paypal_status_changed]) if @subject.has_key?(:connected_merchant_paypal_status_changed)
|
87
89
|
@granted_payment_instrument_update = GrantedPaymentInstrumentUpdate._new(@subject[:granted_payment_instrument_update]) if @subject.has_key?(:granted_payment_instrument_update)
|
90
|
+
@revoked_payment_method_metadata = RevokedPaymentMethodMetadata._new(gateway, @subject) if @kind == Kind::GrantedPaymentInstrumentRevoked
|
88
91
|
@local_payment_completed = LocalPaymentCompleted._new(@subject[:local_payment]) if @subject.has_key?(:local_payment)
|
89
92
|
end
|
90
93
|
|
Binary file
|
@@ -21,7 +21,7 @@ describe Braintree::AddOn do
|
|
21
21
|
add_on = add_ons.select { |add_on| add_on.id == id }.first
|
22
22
|
|
23
23
|
add_on.should_not be_nil
|
24
|
-
add_on.amount.should == BigDecimal
|
24
|
+
add_on.amount.should == BigDecimal(expected[:amount])
|
25
25
|
add_on.created_at.should_not be_nil
|
26
26
|
add_on.description.should == expected[:description]
|
27
27
|
add_on.kind.should == expected[:kind]
|
@@ -592,7 +592,7 @@ describe Braintree::CreditCard do
|
|
592
592
|
:amount => "100.00"
|
593
593
|
)
|
594
594
|
result.success?.should == true
|
595
|
-
result.transaction.amount.should == BigDecimal
|
595
|
+
result.transaction.amount.should == BigDecimal("100.00")
|
596
596
|
result.transaction.type.should == "credit"
|
597
597
|
result.transaction.customer_details.id.should == customer.id
|
598
598
|
result.transaction.credit_card_details.token.should == customer.credit_cards[0].token
|
@@ -614,7 +614,7 @@ describe Braintree::CreditCard do
|
|
614
614
|
customer.credit_cards[0].token,
|
615
615
|
:amount => "100.00"
|
616
616
|
)
|
617
|
-
transaction.amount.should == BigDecimal
|
617
|
+
transaction.amount.should == BigDecimal("100.00")
|
618
618
|
transaction.type.should == "credit"
|
619
619
|
transaction.customer_details.id.should == customer.id
|
620
620
|
transaction.credit_card_details.token.should == customer.credit_cards[0].token
|
@@ -1064,7 +1064,7 @@ describe Braintree::CreditCard do
|
|
1064
1064
|
:amount => "100.00"
|
1065
1065
|
)
|
1066
1066
|
result.success?.should == true
|
1067
|
-
result.transaction.amount.should == BigDecimal
|
1067
|
+
result.transaction.amount.should == BigDecimal("100.00")
|
1068
1068
|
result.transaction.type.should == "credit"
|
1069
1069
|
result.transaction.customer_details.id.should == customer.id
|
1070
1070
|
result.transaction.credit_card_details.token.should == customer.credit_cards[0].token
|
@@ -1083,7 +1083,7 @@ describe Braintree::CreditCard do
|
|
1083
1083
|
}
|
1084
1084
|
)
|
1085
1085
|
transaction = customer.credit_cards[0].credit!(:amount => "100.00")
|
1086
|
-
transaction.amount.should == BigDecimal
|
1086
|
+
transaction.amount.should == BigDecimal("100.00")
|
1087
1087
|
transaction.type.should == "credit"
|
1088
1088
|
transaction.customer_details.id.should == customer.id
|
1089
1089
|
transaction.credit_card_details.token.should == customer.credit_cards[0].token
|
@@ -1208,7 +1208,7 @@ describe Braintree::CreditCard do
|
|
1208
1208
|
found_card.subscriptions.first.id.should == subscription.id
|
1209
1209
|
found_card.subscriptions.first.plan_id.should == "integration_trialless_plan"
|
1210
1210
|
found_card.subscriptions.first.payment_method_token.should == credit_card.token
|
1211
|
-
found_card.subscriptions.first.price.should == BigDecimal
|
1211
|
+
found_card.subscriptions.first.price.should == BigDecimal("1.00")
|
1212
1212
|
end
|
1213
1213
|
|
1214
1214
|
it "raises a NotFoundError exception if payment method cannot be found" do
|
@@ -1295,7 +1295,7 @@ describe Braintree::CreditCard do
|
|
1295
1295
|
result = Braintree::CreditCard.sale(customer.credit_cards[0].token, :amount => "100.00")
|
1296
1296
|
|
1297
1297
|
result.success?.should == true
|
1298
|
-
result.transaction.amount.should == BigDecimal
|
1298
|
+
result.transaction.amount.should == BigDecimal("100.00")
|
1299
1299
|
result.transaction.type.should == "sale"
|
1300
1300
|
result.transaction.customer_details.id.should == customer.id
|
1301
1301
|
result.transaction.credit_card_details.token.should == customer.credit_cards[0].token
|
@@ -1319,7 +1319,7 @@ describe Braintree::CreditCard do
|
|
1319
1319
|
)
|
1320
1320
|
|
1321
1321
|
result.success?.should == true
|
1322
|
-
result.transaction.amount.should == BigDecimal
|
1322
|
+
result.transaction.amount.should == BigDecimal("100.00")
|
1323
1323
|
result.transaction.type.should == "sale"
|
1324
1324
|
result.transaction.customer_details.id.should == customer.id
|
1325
1325
|
result.transaction.credit_card_details.token.should == customer.credit_cards[0].token
|
@@ -1336,7 +1336,7 @@ describe Braintree::CreditCard do
|
|
1336
1336
|
}
|
1337
1337
|
)
|
1338
1338
|
transaction = Braintree::CreditCard.sale!(customer.credit_cards[0].token, :amount => "100.00")
|
1339
|
-
transaction.amount.should == BigDecimal
|
1339
|
+
transaction.amount.should == BigDecimal("100.00")
|
1340
1340
|
transaction.type.should == "sale"
|
1341
1341
|
transaction.customer_details.id.should == customer.id
|
1342
1342
|
transaction.credit_card_details.token.should == customer.credit_cards[0].token
|
@@ -1358,7 +1358,7 @@ describe Braintree::CreditCard do
|
|
1358
1358
|
:amount => "100.00"
|
1359
1359
|
)
|
1360
1360
|
result.success?.should == true
|
1361
|
-
result.transaction.amount.should == BigDecimal
|
1361
|
+
result.transaction.amount.should == BigDecimal("100.00")
|
1362
1362
|
result.transaction.type.should == "sale"
|
1363
1363
|
result.transaction.customer_details.id.should == customer.id
|
1364
1364
|
result.transaction.credit_card_details.token.should == customer.credit_cards[0].token
|
@@ -1377,7 +1377,7 @@ describe Braintree::CreditCard do
|
|
1377
1377
|
}
|
1378
1378
|
)
|
1379
1379
|
transaction = customer.credit_cards[0].sale!(:amount => "100.00")
|
1380
|
-
transaction.amount.should == BigDecimal
|
1380
|
+
transaction.amount.should == BigDecimal("100.00")
|
1381
1381
|
transaction.type.should == "sale"
|
1382
1382
|
transaction.customer_details.id.should == customer.id
|
1383
1383
|
transaction.credit_card_details.token.should == customer.credit_cards[0].token
|
@@ -531,7 +531,7 @@ describe Braintree::Customer do
|
|
531
531
|
)
|
532
532
|
result = Braintree::Customer.credit(customer.id, :amount => "100.00")
|
533
533
|
result.success?.should == true
|
534
|
-
result.transaction.amount.should == BigDecimal
|
534
|
+
result.transaction.amount.should == BigDecimal("100.00")
|
535
535
|
result.transaction.type.should == "credit"
|
536
536
|
result.transaction.customer_details.id.should == customer.id
|
537
537
|
result.transaction.credit_card_details.token.should == customer.credit_cards[0].token
|
@@ -550,7 +550,7 @@ describe Braintree::Customer do
|
|
550
550
|
}
|
551
551
|
)
|
552
552
|
transaction = Braintree::Customer.credit!(customer.id, :amount => "100.00")
|
553
|
-
transaction.amount.should == BigDecimal
|
553
|
+
transaction.amount.should == BigDecimal("100.00")
|
554
554
|
transaction.type.should == "credit"
|
555
555
|
transaction.customer_details.id.should == customer.id
|
556
556
|
transaction.credit_card_details.token.should == customer.credit_cards[0].token
|
@@ -570,7 +570,7 @@ describe Braintree::Customer do
|
|
570
570
|
)
|
571
571
|
result = Braintree::Customer.sale(customer.id, :amount => "100.00")
|
572
572
|
result.success?.should == true
|
573
|
-
result.transaction.amount.should == BigDecimal
|
573
|
+
result.transaction.amount.should == BigDecimal("100.00")
|
574
574
|
result.transaction.type.should == "sale"
|
575
575
|
result.transaction.customer_details.id.should == customer.id
|
576
576
|
result.transaction.credit_card_details.token.should == customer.credit_cards[0].token
|
@@ -589,7 +589,7 @@ describe Braintree::Customer do
|
|
589
589
|
}
|
590
590
|
)
|
591
591
|
transaction = Braintree::Customer.sale!(customer.id, :amount => "100.00")
|
592
|
-
transaction.amount.should == BigDecimal
|
592
|
+
transaction.amount.should == BigDecimal("100.00")
|
593
593
|
transaction.type.should == "sale"
|
594
594
|
transaction.customer_details.id.should == customer.id
|
595
595
|
transaction.credit_card_details.token.should == customer.credit_cards[0].token
|
@@ -626,7 +626,7 @@ describe Braintree::Customer do
|
|
626
626
|
:amount => "100.00"
|
627
627
|
)
|
628
628
|
result.success?.should == true
|
629
|
-
result.transaction.amount.should == BigDecimal
|
629
|
+
result.transaction.amount.should == BigDecimal("100.00")
|
630
630
|
result.transaction.type.should == "sale"
|
631
631
|
result.transaction.customer_details.id.should == customer.id
|
632
632
|
result.transaction.credit_card_details.token.should == customer.credit_cards[0].token
|
@@ -645,7 +645,7 @@ describe Braintree::Customer do
|
|
645
645
|
}
|
646
646
|
)
|
647
647
|
transaction = customer.sale!(:amount => "100.00")
|
648
|
-
transaction.amount.should == BigDecimal
|
648
|
+
transaction.amount.should == BigDecimal("100.00")
|
649
649
|
transaction.type.should == "sale"
|
650
650
|
transaction.customer_details.id.should == customer.id
|
651
651
|
transaction.credit_card_details.token.should == customer.credit_cards[0].token
|
@@ -681,7 +681,7 @@ describe Braintree::Customer do
|
|
681
681
|
:amount => "100.00"
|
682
682
|
)
|
683
683
|
result.success?.should == true
|
684
|
-
result.transaction.amount.should == BigDecimal
|
684
|
+
result.transaction.amount.should == BigDecimal("100.00")
|
685
685
|
result.transaction.type.should == "credit"
|
686
686
|
result.transaction.customer_details.id.should == customer.id
|
687
687
|
result.transaction.credit_card_details.token.should == customer.credit_cards[0].token
|
@@ -700,7 +700,7 @@ describe Braintree::Customer do
|
|
700
700
|
}
|
701
701
|
)
|
702
702
|
transaction = customer.credit!(:amount => "100.00")
|
703
|
-
transaction.amount.should == BigDecimal
|
703
|
+
transaction.amount.should == BigDecimal("100.00")
|
704
704
|
transaction.type.should == "credit"
|
705
705
|
transaction.customer_details.id.should == customer.id
|
706
706
|
transaction.credit_card_details.token.should == customer.credit_cards[0].token
|
@@ -820,7 +820,7 @@ describe Braintree::Customer do
|
|
820
820
|
found_customer.credit_cards.first.subscriptions.first.id.should == subscription.id
|
821
821
|
found_customer.credit_cards.first.subscriptions.first.plan_id.should == "integration_trialless_plan"
|
822
822
|
found_customer.credit_cards.first.subscriptions.first.payment_method_token.should == credit_card.token
|
823
|
-
found_customer.credit_cards.first.subscriptions.first.price.should == BigDecimal
|
823
|
+
found_customer.credit_cards.first.subscriptions.first.price.should == BigDecimal("1.00")
|
824
824
|
end
|
825
825
|
|
826
826
|
context "when given an association filter id" do
|
@@ -21,7 +21,7 @@ describe Braintree::Discount do
|
|
21
21
|
discount = discounts.select { |discount| discount.id == id }.first
|
22
22
|
|
23
23
|
discount.should_not be_nil
|
24
|
-
discount.amount.should == BigDecimal
|
24
|
+
discount.amount.should == BigDecimal(expected[:amount])
|
25
25
|
discount.created_at.should_not be_nil
|
26
26
|
discount.description.should == expected[:description]
|
27
27
|
discount.kind.should == expected[:kind]
|
@@ -46,6 +46,13 @@ describe Braintree::DocumentUploadGateway do
|
|
46
46
|
end
|
47
47
|
end
|
48
48
|
|
49
|
+
it "returns file too long error with file over 50 pages" do
|
50
|
+
filename = "#{File.dirname(__FILE__)}/../../fixtures/files/too_long.pdf"
|
51
|
+
file = File.new(filename, "r")
|
52
|
+
response = Braintree::DocumentUpload.create({:kind => Braintree::DocumentUpload::Kind::EvidenceDocument, :file => file})
|
53
|
+
response.errors.for(:document_upload).first.code.should == Braintree::ErrorCodes::DocumentUpload::FileIsTooLong
|
54
|
+
end
|
55
|
+
|
49
56
|
it "returns invalid keys error if signature is invalid" do
|
50
57
|
expect do
|
51
58
|
response = Braintree::DocumentUpload.create({:invalid_key => "do not add", :kind => Braintree::DocumentUpload::Kind::EvidenceDocument})
|