braintree 2.87.0 → 2.88.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/error_codes.rb +9 -0
- data/lib/braintree/successful_result.rb +1 -0
- data/lib/braintree/transaction/android_pay_details.rb +2 -0
- data/lib/braintree/transaction/apple_pay_details.rb +2 -0
- data/lib/braintree/us_bank_account_verification.rb +8 -2
- data/lib/braintree/us_bank_account_verification_gateway.rb +19 -0
- data/lib/braintree/version.rb +1 -1
- data/spec/integration/braintree/client_api/spec_helper.rb +2 -2
- data/spec/integration/braintree/transaction_spec.rb +50 -0
- data/spec/integration/braintree/us_bank_account_verification_spec.rb +162 -1
- data/spec/unit/braintree/us_bank_account_verification_spec.rb +26 -0
- metadata +3 -4
- data/spec/httpsd.pid +0 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: c971a0bacc5df30ce7c762b37047e83bb86b6036
|
|
4
|
+
data.tar.gz: 8adfabbcb3d4855170eb3c2e66d6ecd5b8e48a7d
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 78286324c7e94afc9281390b7ae4f465a34e823d97e7bdb268ebd899becd492db89ba0695ccf99f07bdf3c3fb854dffb26a1e85ba8a314e1808ec3f1096ac378
|
|
7
|
+
data.tar.gz: ca5421117f2d7e2d324cf65651071ff1fb3e26eecfeb175a2d8a6efc08a8cb95188cfcdd3b6270a023bc76f76bd0588df2033ffa6051ba3264c48c36387f78d9
|
|
@@ -668,5 +668,14 @@ module Braintree
|
|
|
668
668
|
MerchantAccountCannotBeSubMerchantAccount = "94208"
|
|
669
669
|
end
|
|
670
670
|
end
|
|
671
|
+
|
|
672
|
+
module UsBankAccountVerification
|
|
673
|
+
NotConfirmable = "96101"
|
|
674
|
+
MustBeMicroTransfersVerification = "96102"
|
|
675
|
+
AmountsDoNotMatch = "96103"
|
|
676
|
+
TooManyConfirmationAttempts = "96104"
|
|
677
|
+
UnableToConfirmDepositAmounts = "96105"
|
|
678
|
+
InvalidDepositAmounts = "96106"
|
|
679
|
+
end
|
|
671
680
|
end
|
|
672
681
|
end
|
|
@@ -7,10 +7,12 @@ module Braintree
|
|
|
7
7
|
attr_reader :expiration_month
|
|
8
8
|
attr_reader :expiration_year
|
|
9
9
|
attr_reader :google_transaction_id
|
|
10
|
+
attr_reader :image_url
|
|
10
11
|
attr_reader :last_4
|
|
11
12
|
attr_reader :source_card_last_4
|
|
12
13
|
attr_reader :source_card_type
|
|
13
14
|
attr_reader :source_description
|
|
15
|
+
attr_reader :token
|
|
14
16
|
attr_reader :virtual_card_last_4
|
|
15
17
|
attr_reader :virtual_card_type
|
|
16
18
|
|
|
@@ -7,9 +7,11 @@ module Braintree
|
|
|
7
7
|
attr_reader :cardholder_name
|
|
8
8
|
attr_reader :expiration_month
|
|
9
9
|
attr_reader :expiration_year
|
|
10
|
+
attr_reader :image_url
|
|
10
11
|
attr_reader :last_4
|
|
11
12
|
attr_reader :payment_instrument_name
|
|
12
13
|
attr_reader :source_description
|
|
14
|
+
attr_reader :token
|
|
13
15
|
|
|
14
16
|
def initialize(attributes)
|
|
15
17
|
set_instance_variables_from_hash attributes unless attributes.nil?
|
|
@@ -8,16 +8,18 @@ module Braintree
|
|
|
8
8
|
GatewayRejected = "gateway_rejected"
|
|
9
9
|
ProcessorDeclined = "processor_declined"
|
|
10
10
|
Verified = "verified"
|
|
11
|
+
Pending = "pending"
|
|
11
12
|
|
|
12
|
-
All = [Failed, GatewayRejected, ProcessorDeclined, Verified]
|
|
13
|
+
All = [Failed, GatewayRejected, ProcessorDeclined, Verified, Pending]
|
|
13
14
|
end
|
|
14
15
|
|
|
15
16
|
module VerificationMethod
|
|
16
17
|
IndependentCheck = "independent_check"
|
|
17
18
|
NetworkCheck = "network_check"
|
|
18
19
|
TokenizedCheck = "tokenized_check"
|
|
20
|
+
MicroTransfers = "micro_transfers"
|
|
19
21
|
|
|
20
|
-
All = [IndependentCheck, NetworkCheck, TokenizedCheck]
|
|
22
|
+
All = [IndependentCheck, NetworkCheck, TokenizedCheck, MicroTransfers]
|
|
21
23
|
end
|
|
22
24
|
|
|
23
25
|
attr_reader :id
|
|
@@ -64,6 +66,10 @@ module Braintree
|
|
|
64
66
|
self.new *args
|
|
65
67
|
end
|
|
66
68
|
|
|
69
|
+
def self.confirm_micro_transfer_amounts(*args)
|
|
70
|
+
Configuration.gateway.us_bank_account_verification.confirm_micro_transfer_amounts(*args)
|
|
71
|
+
end
|
|
72
|
+
|
|
67
73
|
def self.find(*args)
|
|
68
74
|
Configuration.gateway.us_bank_account_verification.find(*args)
|
|
69
75
|
end
|
|
@@ -6,6 +6,25 @@ module Braintree
|
|
|
6
6
|
@config.assert_has_access_token_or_keys
|
|
7
7
|
end
|
|
8
8
|
|
|
9
|
+
def confirm_micro_transfer_amounts(id, deposit_amounts)
|
|
10
|
+
raise ArgumentError if id.nil? || id.to_s.strip == "" || !deposit_amounts.kind_of?(Array)
|
|
11
|
+
response = @config.http.put(
|
|
12
|
+
"#{@config.base_merchant_path}/us_bank_account_verifications/#{id}/confirm_micro_transfer_amounts",
|
|
13
|
+
:us_bank_account_verification => {
|
|
14
|
+
:deposit_amounts => deposit_amounts,
|
|
15
|
+
},
|
|
16
|
+
)
|
|
17
|
+
if response[:api_error_response]
|
|
18
|
+
ErrorResult.new(@gateway, response[:api_error_response])
|
|
19
|
+
else
|
|
20
|
+
SuccessfulResult.new(
|
|
21
|
+
:us_bank_account_verification => UsBankAccountVerification._new(response[:us_bank_account_verification])
|
|
22
|
+
)
|
|
23
|
+
end
|
|
24
|
+
rescue NotFoundError
|
|
25
|
+
raise NotFoundError, "verification with id #{id.inspect} not found"
|
|
26
|
+
end
|
|
27
|
+
|
|
9
28
|
def find(id)
|
|
10
29
|
raise ArgumentError if id.nil? || id.to_s.strip == ""
|
|
11
30
|
response = @config.http.get("#{@config.base_merchant_path}/us_bank_account_verifications/#{id}")
|
data/lib/braintree/version.rb
CHANGED
|
@@ -55,7 +55,7 @@ def nonce_for_paypal_account(paypal_account_details)
|
|
|
55
55
|
body["paypalAccounts"][0]["nonce"]
|
|
56
56
|
end
|
|
57
57
|
|
|
58
|
-
def generate_non_plaid_us_bank_account_nonce
|
|
58
|
+
def generate_non_plaid_us_bank_account_nonce(account_number="1000000000")
|
|
59
59
|
raw_client_token = Braintree::ClientToken.generate
|
|
60
60
|
client_token = decode_client_token(raw_client_token)
|
|
61
61
|
|
|
@@ -71,7 +71,7 @@ def generate_non_plaid_us_bank_account_nonce
|
|
|
71
71
|
},
|
|
72
72
|
:account_type => "checking",
|
|
73
73
|
:routing_number => "021000021",
|
|
74
|
-
:account_number =>
|
|
74
|
+
:account_number => account_number,
|
|
75
75
|
:first_name => "John",
|
|
76
76
|
:last_name => "Doe",
|
|
77
77
|
:ownership_type => "personal",
|
|
@@ -1385,6 +1385,30 @@ describe Braintree::Transaction do
|
|
|
1385
1385
|
apple_pay_details.expiration_month.to_i.should > 0
|
|
1386
1386
|
apple_pay_details.expiration_year.to_i.should > 0
|
|
1387
1387
|
apple_pay_details.cardholder_name.should_not be_nil
|
|
1388
|
+
apple_pay_details.image_url.should_not be_nil
|
|
1389
|
+
apple_pay_details.token.should be_nil
|
|
1390
|
+
end
|
|
1391
|
+
|
|
1392
|
+
it "can create a vaulted transaction with a fake apple pay nonce" do
|
|
1393
|
+
customer = Braintree::Customer.create!
|
|
1394
|
+
result = Braintree::Transaction.create(
|
|
1395
|
+
:type => "sale",
|
|
1396
|
+
:amount => Braintree::Test::TransactionAmounts::Authorize,
|
|
1397
|
+
:payment_method_nonce => Braintree::Test::Nonce::ApplePayVisa,
|
|
1398
|
+
:options => { :store_in_vault_on_success => true }
|
|
1399
|
+
)
|
|
1400
|
+
result.success?.should == true
|
|
1401
|
+
result.transaction.should_not be_nil
|
|
1402
|
+
apple_pay_details = result.transaction.apple_pay_details
|
|
1403
|
+
apple_pay_details.should_not be_nil
|
|
1404
|
+
apple_pay_details.card_type.should == Braintree::ApplePayCard::CardType::Visa
|
|
1405
|
+
apple_pay_details.payment_instrument_name.should == "Visa 8886"
|
|
1406
|
+
apple_pay_details.source_description.should == "Visa 8886"
|
|
1407
|
+
apple_pay_details.expiration_month.to_i.should > 0
|
|
1408
|
+
apple_pay_details.expiration_year.to_i.should > 0
|
|
1409
|
+
apple_pay_details.cardholder_name.should_not be_nil
|
|
1410
|
+
apple_pay_details.image_url.should_not be_nil
|
|
1411
|
+
apple_pay_details.token.should_not be_nil
|
|
1388
1412
|
end
|
|
1389
1413
|
|
|
1390
1414
|
it "can create a transaction with a fake android pay proxy card nonce" do
|
|
@@ -1406,6 +1430,32 @@ describe Braintree::Transaction do
|
|
|
1406
1430
|
android_pay_details.expiration_month.to_i.should > 0
|
|
1407
1431
|
android_pay_details.expiration_year.to_i.should > 0
|
|
1408
1432
|
android_pay_details.google_transaction_id.should == "google_transaction_id"
|
|
1433
|
+
android_pay_details.image_url.should_not be_nil
|
|
1434
|
+
android_pay_details.token.should be_nil
|
|
1435
|
+
end
|
|
1436
|
+
|
|
1437
|
+
it "can create a vaulted transaction with a fake android pay proxy card nonce" do
|
|
1438
|
+
customer = Braintree::Customer.create!
|
|
1439
|
+
result = Braintree::Transaction.create(
|
|
1440
|
+
:type => "sale",
|
|
1441
|
+
:amount => Braintree::Test::TransactionAmounts::Authorize,
|
|
1442
|
+
:payment_method_nonce => Braintree::Test::Nonce::AndroidPayDiscover,
|
|
1443
|
+
:options => { :store_in_vault_on_success => true }
|
|
1444
|
+
)
|
|
1445
|
+
result.success?.should == true
|
|
1446
|
+
result.transaction.should_not be_nil
|
|
1447
|
+
android_pay_details = result.transaction.android_pay_details
|
|
1448
|
+
android_pay_details.should_not be_nil
|
|
1449
|
+
android_pay_details.card_type.should == Braintree::CreditCard::CardType::Discover
|
|
1450
|
+
android_pay_details.virtual_card_type.should == Braintree::CreditCard::CardType::Discover
|
|
1451
|
+
android_pay_details.last_4.should == "1117"
|
|
1452
|
+
android_pay_details.virtual_card_last_4.should == "1117"
|
|
1453
|
+
android_pay_details.source_description.should == "Discover 1111"
|
|
1454
|
+
android_pay_details.expiration_month.to_i.should > 0
|
|
1455
|
+
android_pay_details.expiration_year.to_i.should > 0
|
|
1456
|
+
android_pay_details.google_transaction_id.should == "google_transaction_id"
|
|
1457
|
+
android_pay_details.image_url.should_not be_nil
|
|
1458
|
+
android_pay_details.token.should_not be_nil
|
|
1409
1459
|
end
|
|
1410
1460
|
|
|
1411
1461
|
it "can create a transaction with a fake android pay network token nonce" do
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
require File.expand_path(File.dirname(__FILE__) + "/../spec_helper")
|
|
2
2
|
require File.expand_path(File.dirname(__FILE__) + "/client_api/spec_helper")
|
|
3
3
|
|
|
4
|
-
describe Braintree::UsBankAccountVerification
|
|
4
|
+
describe Braintree::UsBankAccountVerification do
|
|
5
5
|
let(:nonce) { generate_non_plaid_us_bank_account_nonce }
|
|
6
6
|
let(:customer) do
|
|
7
7
|
params = {
|
|
@@ -13,6 +13,167 @@ describe Braintree::UsBankAccountVerification, "search" do
|
|
|
13
13
|
Braintree::Customer.create(params).customer
|
|
14
14
|
end
|
|
15
15
|
|
|
16
|
+
describe "self.confirm_micro_transfer_amounts" do
|
|
17
|
+
before do
|
|
18
|
+
Braintree::Configuration.merchant_id = "integration2_merchant_id"
|
|
19
|
+
Braintree::Configuration.public_key = "integration2_public_key"
|
|
20
|
+
Braintree::Configuration.private_key = "integration2_private_key"
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
after(:all) do
|
|
24
|
+
Braintree::Configuration.merchant_id = "integration_merchant_id"
|
|
25
|
+
Braintree::Configuration.public_key = "integration_public_key"
|
|
26
|
+
Braintree::Configuration.private_key = "integration_private_key"
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
context "with a micro transfer verification" do
|
|
30
|
+
it "successfully confirms settled amounts" do
|
|
31
|
+
nonce = generate_non_plaid_us_bank_account_nonce("1000000000")
|
|
32
|
+
|
|
33
|
+
result = Braintree::PaymentMethod.create(
|
|
34
|
+
:payment_method_nonce => nonce,
|
|
35
|
+
:customer_id => customer.id,
|
|
36
|
+
:options => {
|
|
37
|
+
:verification_merchant_account_id => SpecHelper::AnotherUsBankMerchantAccountId,
|
|
38
|
+
:us_bank_account_verification_method => Braintree::UsBankAccountVerification::VerificationMethod::MicroTransfers,
|
|
39
|
+
}
|
|
40
|
+
)
|
|
41
|
+
|
|
42
|
+
result.should be_success
|
|
43
|
+
|
|
44
|
+
verification = result.payment_method.verifications.first
|
|
45
|
+
verification.verification_method.should == Braintree::UsBankAccountVerification::VerificationMethod::MicroTransfers
|
|
46
|
+
verification.status.should == Braintree::UsBankAccountVerification::Status::Pending
|
|
47
|
+
|
|
48
|
+
response = Braintree::UsBankAccountVerification.confirm_micro_transfer_amounts(verification.id, [17, 29])
|
|
49
|
+
|
|
50
|
+
response.should be_success
|
|
51
|
+
response.us_bank_account_verification.status.should == Braintree::UsBankAccountVerification::Status::Verified
|
|
52
|
+
|
|
53
|
+
us_bank_account = Braintree::UsBankAccount.find(response.us_bank_account_verification.us_bank_account[:token])
|
|
54
|
+
|
|
55
|
+
us_bank_account.verified.should be_truthy
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
it "successfully confirms not-yet-settled amounts" do
|
|
59
|
+
nonce = generate_non_plaid_us_bank_account_nonce("1000000001")
|
|
60
|
+
|
|
61
|
+
result = Braintree::PaymentMethod.create(
|
|
62
|
+
:payment_method_nonce => nonce,
|
|
63
|
+
:customer_id => customer.id,
|
|
64
|
+
:options => {
|
|
65
|
+
:verification_merchant_account_id => SpecHelper::AnotherUsBankMerchantAccountId,
|
|
66
|
+
:us_bank_account_verification_method => Braintree::UsBankAccountVerification::VerificationMethod::MicroTransfers,
|
|
67
|
+
}
|
|
68
|
+
)
|
|
69
|
+
|
|
70
|
+
result.should be_success
|
|
71
|
+
|
|
72
|
+
verification = result.payment_method.verifications.first
|
|
73
|
+
verification.verification_method.should == Braintree::UsBankAccountVerification::VerificationMethod::MicroTransfers
|
|
74
|
+
verification.status.should == Braintree::UsBankAccountVerification::Status::Pending
|
|
75
|
+
|
|
76
|
+
response = Braintree::UsBankAccountVerification.confirm_micro_transfer_amounts(verification.id, [17, 29])
|
|
77
|
+
|
|
78
|
+
response.should be_success
|
|
79
|
+
response.us_bank_account_verification.status.should == Braintree::UsBankAccountVerification::Status::Pending
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
it "attempts to confirm" do
|
|
83
|
+
result = Braintree::PaymentMethod.create(
|
|
84
|
+
:payment_method_nonce => nonce,
|
|
85
|
+
:customer_id => customer.id,
|
|
86
|
+
:options => {
|
|
87
|
+
:verification_merchant_account_id => SpecHelper::AnotherUsBankMerchantAccountId,
|
|
88
|
+
:us_bank_account_verification_method => Braintree::UsBankAccountVerification::VerificationMethod::MicroTransfers,
|
|
89
|
+
}
|
|
90
|
+
)
|
|
91
|
+
|
|
92
|
+
result.should be_success
|
|
93
|
+
|
|
94
|
+
verification = result.payment_method.verifications.first
|
|
95
|
+
verification.verification_method.should == Braintree::UsBankAccountVerification::VerificationMethod::MicroTransfers
|
|
96
|
+
verification.status.should == Braintree::UsBankAccountVerification::Status::Pending
|
|
97
|
+
|
|
98
|
+
response = Braintree::UsBankAccountVerification.confirm_micro_transfer_amounts(verification.id, [1, 1])
|
|
99
|
+
|
|
100
|
+
response.should_not be_success
|
|
101
|
+
response.errors.for(:us_bank_account_verification)[0].code.should == Braintree::ErrorCodes::UsBankAccountVerification::AmountsDoNotMatch
|
|
102
|
+
end
|
|
103
|
+
|
|
104
|
+
it "exceeds the confirmation attempt threshold" do
|
|
105
|
+
result = Braintree::PaymentMethod.create(
|
|
106
|
+
:payment_method_nonce => nonce,
|
|
107
|
+
:customer_id => customer.id,
|
|
108
|
+
:options => {
|
|
109
|
+
:verification_merchant_account_id => SpecHelper::AnotherUsBankMerchantAccountId,
|
|
110
|
+
:us_bank_account_verification_method => Braintree::UsBankAccountVerification::VerificationMethod::MicroTransfers,
|
|
111
|
+
}
|
|
112
|
+
)
|
|
113
|
+
|
|
114
|
+
result.should be_success
|
|
115
|
+
|
|
116
|
+
verification = result.payment_method.verifications.first
|
|
117
|
+
|
|
118
|
+
response = nil
|
|
119
|
+
4.times do
|
|
120
|
+
response = Braintree::UsBankAccountVerification.confirm_micro_transfer_amounts(verification.id, [1, 1])
|
|
121
|
+
|
|
122
|
+
response.should_not be_success
|
|
123
|
+
response.errors.for(:us_bank_account_verification)[0].code.should == Braintree::ErrorCodes::UsBankAccountVerification::AmountsDoNotMatch
|
|
124
|
+
end
|
|
125
|
+
|
|
126
|
+
response = Braintree::UsBankAccountVerification.confirm_micro_transfer_amounts(verification.id, [1, 1])
|
|
127
|
+
response.should_not be_success
|
|
128
|
+
response.errors.for(:us_bank_account_verification)[0].code.should == Braintree::ErrorCodes::UsBankAccountVerification::TooManyConfirmationAttempts
|
|
129
|
+
|
|
130
|
+
response = Braintree::UsBankAccountVerification.confirm_micro_transfer_amounts(verification.id, [1, 1])
|
|
131
|
+
response.should_not be_success
|
|
132
|
+
response.errors.for(:us_bank_account_verification)[0].code.should == Braintree::ErrorCodes::UsBankAccountVerification::TooManyConfirmationAttempts
|
|
133
|
+
end
|
|
134
|
+
|
|
135
|
+
it "returns an error for invalid deposit amounts" do
|
|
136
|
+
result = Braintree::PaymentMethod.create(
|
|
137
|
+
:payment_method_nonce => nonce,
|
|
138
|
+
:customer_id => customer.id,
|
|
139
|
+
:options => {
|
|
140
|
+
:verification_merchant_account_id => SpecHelper::AnotherUsBankMerchantAccountId,
|
|
141
|
+
:us_bank_account_verification_method => Braintree::UsBankAccountVerification::VerificationMethod::MicroTransfers,
|
|
142
|
+
}
|
|
143
|
+
)
|
|
144
|
+
|
|
145
|
+
result.should be_success
|
|
146
|
+
|
|
147
|
+
verification = result.payment_method.verifications.first
|
|
148
|
+
response = Braintree::UsBankAccountVerification.confirm_micro_transfer_amounts(verification.id, ["abc"])
|
|
149
|
+
|
|
150
|
+
response.should_not be_success
|
|
151
|
+
response.errors.for(:us_bank_account_verification)[0].code.should == Braintree::ErrorCodes::UsBankAccountVerification::InvalidDepositAmounts
|
|
152
|
+
end
|
|
153
|
+
end
|
|
154
|
+
|
|
155
|
+
context "non-micro transfer" do
|
|
156
|
+
it "rejects for incorrect verification type" do
|
|
157
|
+
result = Braintree::PaymentMethod.create(
|
|
158
|
+
:payment_method_nonce => nonce,
|
|
159
|
+
:customer_id => customer.id,
|
|
160
|
+
:options => {
|
|
161
|
+
:verification_merchant_account_id => SpecHelper::AnotherUsBankMerchantAccountId,
|
|
162
|
+
:us_bank_account_verification_method => Braintree::UsBankAccountVerification::VerificationMethod::NetworkCheck,
|
|
163
|
+
}
|
|
164
|
+
)
|
|
165
|
+
|
|
166
|
+
result.should be_success
|
|
167
|
+
|
|
168
|
+
verification = result.payment_method.verifications.first
|
|
169
|
+
response = Braintree::UsBankAccountVerification.confirm_micro_transfer_amounts(verification.id, [1, 1])
|
|
170
|
+
|
|
171
|
+
response.should_not be_success
|
|
172
|
+
response.errors.for(:us_bank_account_verification)[0].code.should == Braintree::ErrorCodes::UsBankAccountVerification::MustBeMicroTransfersVerification
|
|
173
|
+
end
|
|
174
|
+
end
|
|
175
|
+
end
|
|
176
|
+
|
|
16
177
|
describe "self.find" do
|
|
17
178
|
it "finds the verification with the given id" do
|
|
18
179
|
result = Braintree::PaymentMethod.create(
|
|
@@ -16,6 +16,32 @@ describe Braintree::UsBankAccountVerification do
|
|
|
16
16
|
end
|
|
17
17
|
end
|
|
18
18
|
|
|
19
|
+
describe "self.confirm_micro_transfer_amounts" do
|
|
20
|
+
it "raises error if passed empty string" do
|
|
21
|
+
expect do
|
|
22
|
+
Braintree::UsBankAccountVerification.confirm_micro_transfer_amounts("", [])
|
|
23
|
+
end.to raise_error(ArgumentError)
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
it "raises error if passed empty string wth space" do
|
|
27
|
+
expect do
|
|
28
|
+
Braintree::UsBankAccountVerification.confirm_micro_transfer_amounts(" ", [])
|
|
29
|
+
end.to raise_error(ArgumentError)
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
it "raises error if passed nil" do
|
|
33
|
+
expect do
|
|
34
|
+
Braintree::UsBankAccountVerification.confirm_micro_transfer_amounts(nil, [])
|
|
35
|
+
end.to raise_error(ArgumentError)
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
it "raises error if passed non-array" do
|
|
39
|
+
expect do
|
|
40
|
+
Braintree::UsBankAccountVerification.confirm_micro_transfer_amounts(999, 123)
|
|
41
|
+
end.to raise_error(ArgumentError)
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
|
|
19
45
|
describe "self.find" do
|
|
20
46
|
it "raises error if passed empty string" do
|
|
21
47
|
expect do
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: braintree
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.
|
|
4
|
+
version: 2.88.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Braintree
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2018-04-
|
|
11
|
+
date: 2018-04-20 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: builder
|
|
@@ -185,7 +185,6 @@ files:
|
|
|
185
185
|
- spec/fixtures/files/gif_extension_bt_logo.gif
|
|
186
186
|
- spec/fixtures/files/malformed_pdf.pdf
|
|
187
187
|
- spec/hacks/tcp_socket.rb
|
|
188
|
-
- spec/httpsd.pid
|
|
189
188
|
- spec/integration/braintree/add_on_spec.rb
|
|
190
189
|
- spec/integration/braintree/address_spec.rb
|
|
191
190
|
- spec/integration/braintree/advanced_search_spec.rb
|
|
@@ -306,7 +305,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
306
305
|
version: '0'
|
|
307
306
|
requirements: []
|
|
308
307
|
rubyforge_project: braintree
|
|
309
|
-
rubygems_version: 2.
|
|
308
|
+
rubygems_version: 2.6.14
|
|
310
309
|
signing_key:
|
|
311
310
|
specification_version: 4
|
|
312
311
|
summary: Braintree Gateway Ruby Client Library
|
data/spec/httpsd.pid
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
8020
|