braintree 3.1.0 → 4.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.
Files changed (154) hide show
  1. checksums.yaml +4 -4
  2. data/braintree.gemspec +3 -3
  3. data/lib/braintree.rb +8 -1
  4. data/lib/braintree/account_updater_daily_report.rb +1 -1
  5. data/lib/braintree/address.rb +2 -1
  6. data/lib/braintree/apple_pay.rb +1 -1
  7. data/lib/braintree/apple_pay_card.rb +1 -1
  8. data/lib/braintree/apple_pay_options.rb +1 -1
  9. data/lib/braintree/authorization_adjustment.rb +1 -1
  10. data/lib/braintree/client_token.rb +1 -1
  11. data/lib/braintree/configuration.rb +11 -11
  12. data/lib/braintree/connected_merchant_paypal_status_changed.rb +1 -1
  13. data/lib/braintree/connected_merchant_status_transitioned.rb +1 -1
  14. data/lib/braintree/credit_card.rb +2 -2
  15. data/lib/braintree/credit_card_gateway.rb +14 -4
  16. data/lib/braintree/credit_card_verification.rb +5 -5
  17. data/lib/braintree/credit_card_verification_search.rb +1 -1
  18. data/lib/braintree/customer.rb +6 -4
  19. data/lib/braintree/customer_gateway.rb +2 -0
  20. data/lib/braintree/customer_search.rb +1 -1
  21. data/lib/braintree/disbursement.rb +1 -1
  22. data/lib/braintree/dispute.rb +15 -1
  23. data/lib/braintree/dispute/paypal_message.rb +15 -0
  24. data/lib/braintree/dispute_gateway.rb +2 -2
  25. data/lib/braintree/dispute_search.rb +3 -2
  26. data/lib/braintree/document_upload.rb +1 -1
  27. data/lib/braintree/error_codes.rb +12 -4
  28. data/lib/braintree/google_pay_card.rb +1 -1
  29. data/lib/braintree/granted_payment_instrument_update.rb +1 -1
  30. data/lib/braintree/graphql_client.rb +7 -7
  31. data/lib/braintree/http.rb +3 -3
  32. data/lib/braintree/local_payment_completed.rb +1 -1
  33. data/lib/braintree/local_payment_reversed.rb +19 -0
  34. data/lib/braintree/merchant.rb +1 -1
  35. data/lib/braintree/merchant_account.rb +1 -1
  36. data/lib/braintree/merchant_account_gateway.rb +1 -1
  37. data/lib/braintree/merchant_gateway.rb +1 -1
  38. data/lib/braintree/modification.rb +1 -1
  39. data/lib/braintree/oauth_credentials.rb +1 -1
  40. data/lib/braintree/oauth_gateway.rb +5 -5
  41. data/lib/braintree/payment_instrument_type.rb +10 -10
  42. data/lib/braintree/payment_method_gateway.rb +11 -8
  43. data/lib/braintree/payment_method_nonce.rb +1 -1
  44. data/lib/braintree/payment_method_nonce_details.rb +37 -0
  45. data/lib/braintree/payment_method_nonce_details_payer_info.rb +32 -0
  46. data/lib/braintree/payment_method_nonce_gateway.rb +1 -1
  47. data/lib/braintree/plan.rb +1 -1
  48. data/lib/braintree/processor_response_types.rb +3 -3
  49. data/lib/braintree/resource_collection.rb +8 -3
  50. data/lib/braintree/revoked_payment_method_metadata.rb +1 -1
  51. data/lib/braintree/risk_data.rb +3 -1
  52. data/lib/braintree/samsung_pay_card.rb +1 -1
  53. data/lib/braintree/settlement_batch_summary.rb +2 -2
  54. data/lib/braintree/subscription.rb +6 -6
  55. data/lib/braintree/test/credit_card.rb +1 -0
  56. data/lib/braintree/three_d_secure_info.rb +22 -12
  57. data/lib/braintree/transaction.rb +40 -24
  58. data/lib/braintree/transaction/installment.rb +28 -0
  59. data/lib/braintree/transaction/installment/adjustment.rb +33 -0
  60. data/lib/braintree/transaction_gateway.rb +27 -6
  61. data/lib/braintree/transaction_line_item.rb +1 -1
  62. data/lib/braintree/transaction_search.rb +3 -1
  63. data/lib/braintree/unknown_payment_method.rb +1 -1
  64. data/lib/braintree/us_bank_account.rb +3 -3
  65. data/lib/braintree/us_bank_account_verification.rb +1 -1
  66. data/lib/braintree/us_bank_account_verification_gateway.rb +1 -1
  67. data/lib/braintree/util.rb +4 -4
  68. data/lib/braintree/venmo_account.rb +1 -1
  69. data/lib/braintree/version.rb +1 -1
  70. data/lib/braintree/visa_checkout_card.rb +2 -2
  71. data/lib/braintree/webhook_notification.rb +30 -20
  72. data/lib/braintree/webhook_notification_gateway.rb +5 -5
  73. data/lib/braintree/webhook_testing_gateway.rb +30 -0
  74. data/lib/braintree/xml/generator.rb +5 -4
  75. data/lib/braintree/xml/libxml.rb +0 -1
  76. data/lib/braintree/xml/parser.rb +22 -12
  77. data/lib/braintree/xml/rexml.rb +70 -0
  78. data/spec/integration/braintree/add_on_spec.rb +1 -1
  79. data/spec/integration/braintree/address_spec.rb +28 -24
  80. data/spec/integration/braintree/advanced_search_spec.rb +45 -45
  81. data/spec/integration/braintree/apple_pay_spec.rb +3 -3
  82. data/spec/integration/braintree/braintree_gateway_spec.rb +2 -1
  83. data/spec/integration/braintree/client_api/client_token_spec.rb +14 -14
  84. data/spec/integration/braintree/client_api/spec_helper.rb +5 -5
  85. data/spec/integration/braintree/credit_card_spec.rb +213 -122
  86. data/spec/integration/braintree/credit_card_verification_search_spec.rb +2 -2
  87. data/spec/integration/braintree/credit_card_verification_spec.rb +1 -1
  88. data/spec/integration/braintree/customer_search_spec.rb +8 -8
  89. data/spec/integration/braintree/customer_spec.rb +433 -149
  90. data/spec/integration/braintree/dispute_search_spec.rb +28 -3
  91. data/spec/integration/braintree/dispute_spec.rb +6 -6
  92. data/spec/integration/braintree/error_codes_spec.rb +1 -1
  93. data/spec/integration/braintree/http_spec.rb +2 -2
  94. data/spec/integration/braintree/merchant_account_spec.rb +25 -26
  95. data/spec/integration/braintree/merchant_spec.rb +14 -14
  96. data/spec/integration/braintree/oauth_spec.rb +11 -11
  97. data/spec/integration/braintree/payment_method_nonce_spec.rb +26 -35
  98. data/spec/integration/braintree/payment_method_spec.rb +430 -149
  99. data/spec/integration/braintree/payment_method_us_bank_account_spec.rb +17 -13
  100. data/spec/integration/braintree/paypal_account_spec.rb +28 -28
  101. data/spec/integration/braintree/samsung_pay_card_spec.rb +9 -9
  102. data/spec/integration/braintree/settlement_batch_summary_spec.rb +8 -8
  103. data/spec/integration/braintree/subscription_spec.rb +133 -133
  104. data/spec/integration/braintree/test/transaction_amounts_spec.rb +2 -2
  105. data/spec/integration/braintree/test_transaction_spec.rb +10 -10
  106. data/spec/integration/braintree/transaction_search_spec.rb +93 -67
  107. data/spec/integration/braintree/transaction_spec.rb +752 -383
  108. data/spec/integration/braintree/transaction_us_bank_account_spec.rb +32 -26
  109. data/spec/integration/braintree/us_bank_account_spec.rb +6 -6
  110. data/spec/integration/braintree/us_bank_account_verification_search_spec.rb +7 -7
  111. data/spec/integration/braintree/us_bank_account_verification_spec.rb +8 -8
  112. data/spec/integration/braintree/visa_checkout_card_spec.rb +5 -5
  113. data/spec/integration/spec_helper.rb +9 -3
  114. data/spec/oauth_test_helper.rb +1 -1
  115. data/spec/script/httpsd.rb +6 -6
  116. data/spec/spec_helper.rb +6 -3
  117. data/spec/unit/braintree/address_spec.rb +1 -1
  118. data/spec/unit/braintree/apple_pay_card_spec.rb +1 -1
  119. data/spec/unit/braintree/client_token_spec.rb +2 -2
  120. data/spec/unit/braintree/configuration_spec.rb +42 -42
  121. data/spec/unit/braintree/credit_card_spec.rb +13 -13
  122. data/spec/unit/braintree/credit_card_verification_search_spec.rb +1 -1
  123. data/spec/unit/braintree/credit_card_verification_spec.rb +8 -4
  124. data/spec/unit/braintree/customer_spec.rb +21 -10
  125. data/spec/unit/braintree/disbursement_spec.rb +7 -7
  126. data/spec/unit/braintree/dispute_search_spec.rb +1 -0
  127. data/spec/unit/braintree/dispute_spec.rb +34 -9
  128. data/spec/unit/braintree/error_result_spec.rb +5 -5
  129. data/spec/unit/braintree/errors_spec.rb +8 -8
  130. data/spec/unit/braintree/http_spec.rb +5 -5
  131. data/spec/unit/braintree/merchant_account_spec.rb +1 -1
  132. data/spec/unit/braintree/payment_method_nonce_details_payer_info_spec.rb +31 -0
  133. data/spec/unit/braintree/payment_method_nonce_details_spec.rb +43 -0
  134. data/spec/unit/braintree/payment_method_spec.rb +1 -1
  135. data/spec/unit/braintree/paypal_account_spec.rb +2 -2
  136. data/spec/unit/braintree/resource_collection_spec.rb +30 -1
  137. data/spec/unit/braintree/risk_data_spec.rb +9 -5
  138. data/spec/unit/braintree/subscription_search_spec.rb +1 -1
  139. data/spec/unit/braintree/successful_result_spec.rb +1 -1
  140. data/spec/unit/braintree/three_d_secure_info_spec.rb +32 -14
  141. data/spec/unit/braintree/transaction/credit_card_details_spec.rb +3 -3
  142. data/spec/unit/braintree/transaction/customer_details_spec.rb +1 -1
  143. data/spec/unit/braintree/transaction/deposit_details_spec.rb +2 -2
  144. data/spec/unit/braintree/transaction/installment_spec.rb +25 -0
  145. data/spec/unit/braintree/transaction/paypal_details_spec.rb +1 -1
  146. data/spec/unit/braintree/transaction_search_spec.rb +12 -12
  147. data/spec/unit/braintree/transaction_spec.rb +25 -17
  148. data/spec/unit/braintree/util_spec.rb +18 -18
  149. data/spec/unit/braintree/validation_error_collection_spec.rb +36 -36
  150. data/spec/unit/braintree/webhook_notification_spec.rb +88 -56
  151. data/spec/unit/braintree/xml/rexml_spec.rb +51 -0
  152. data/spec/unit/braintree/xml_spec.rb +31 -31
  153. metadata +18 -8
  154. data/lib/braintree/settlement_batch.rb +0 -0
@@ -5,18 +5,18 @@ describe Braintree::ApplePayGateway do
5
5
  gateway = Braintree::Gateway.new(
6
6
  :client_id => "client_id$#{Braintree::Configuration.environment}$integration_client_id",
7
7
  :client_secret => "client_secret$#{Braintree::Configuration.environment}$integration_client_secret",
8
- :logger => Logger.new("/dev/null")
8
+ :logger => Logger.new("/dev/null"),
9
9
  )
10
10
 
11
11
  result = gateway.merchant.create(
12
12
  :email => "name@email.com",
13
13
  :country_code_alpha3 => "USA",
14
- :payment_methods => ["credit_card", "paypal"]
14
+ :payment_methods => ["credit_card", "paypal"],
15
15
  )
16
16
 
17
17
  @gateway = Braintree::Gateway.new(
18
18
  :access_token => result.credentials.access_token,
19
- :logger => Logger.new("/dev/null")
19
+ :logger => Logger.new("/dev/null"),
20
20
  )
21
21
  end
22
22
 
@@ -12,7 +12,8 @@ describe Braintree::Gateway do
12
12
  end
13
13
 
14
14
  describe "query" do
15
- it "makes valid GraphQL queries when given a definition" do
15
+ # we are temporarily skipping this test until we have a more stable CI env
16
+ xit "makes valid GraphQL queries when given a definition" do
16
17
  definition = <<-GRAPHQL
17
18
  mutation ExampleServerSideSingleUseToken($input: TokenizeCreditCardInput!) {
18
19
  tokenizeCreditCard(input: $input) {
@@ -12,7 +12,7 @@ describe Braintree::ClientToken do
12
12
  config,
13
13
  :authorization_fingerprint => client_token["authorizationFingerprint"],
14
14
  :shared_customer_identifier => "fake_identifier",
15
- :shared_customer_identifier_type => "testing"
15
+ :shared_customer_identifier_type => "testing",
16
16
  )
17
17
 
18
18
  response = http.get_payment_methods
@@ -49,7 +49,7 @@ describe Braintree::ClientToken do
49
49
  :customer_id => result.customer.id,
50
50
  :options => {
51
51
  :verify_card => true
52
- }
52
+ },
53
53
  )
54
54
  client_token = decode_client_token(raw_client_token)
55
55
 
@@ -57,7 +57,7 @@ describe Braintree::ClientToken do
57
57
  config,
58
58
  :authorization_fingerprint => client_token["authorizationFingerprint"],
59
59
  :shared_customer_identifier => "fake_identifier",
60
- :shared_customer_identifier_type => "testing"
60
+ :shared_customer_identifier_type => "testing",
61
61
  )
62
62
 
63
63
  response = http.add_payment_method(
@@ -65,7 +65,7 @@ describe Braintree::ClientToken do
65
65
  :number => "4000111111111115",
66
66
  :expiration_month => "11",
67
67
  :expiration_year => "2099"
68
- }
68
+ },
69
69
  )
70
70
 
71
71
  response.code.should == "422"
@@ -79,7 +79,7 @@ describe Braintree::ClientToken do
79
79
  :customer_id => customer_id,
80
80
  :options => {
81
81
  :make_default => true
82
- }
82
+ },
83
83
  )
84
84
  client_token = decode_client_token(raw_client_token)
85
85
 
@@ -87,7 +87,7 @@ describe Braintree::ClientToken do
87
87
  config,
88
88
  :authorization_fingerprint => client_token["authorizationFingerprint"],
89
89
  :shared_customer_identifier => "fake_identifier",
90
- :shared_customer_identifier_type => "testing"
90
+ :shared_customer_identifier_type => "testing",
91
91
  )
92
92
 
93
93
  response = http.add_payment_method(
@@ -95,7 +95,7 @@ describe Braintree::ClientToken do
95
95
  :number => "4111111111111111",
96
96
  :expiration_month => "11",
97
97
  :expiration_year => "2099"
98
- }
98
+ },
99
99
  )
100
100
 
101
101
  response.code.should == "201"
@@ -105,7 +105,7 @@ describe Braintree::ClientToken do
105
105
  :number => "4005519200000004",
106
106
  :expiration_month => "11",
107
107
  :expiration_year => "2099"
108
- }
108
+ },
109
109
  )
110
110
 
111
111
  response.code.should == "201"
@@ -119,7 +119,7 @@ describe Braintree::ClientToken do
119
119
  result = Braintree::Customer.create
120
120
  customer_id = result.customer.id
121
121
  raw_client_token = Braintree::ClientToken.generate(
122
- :customer_id => customer_id
122
+ :customer_id => customer_id,
123
123
  )
124
124
  client_token = decode_client_token(raw_client_token)
125
125
 
@@ -127,7 +127,7 @@ describe Braintree::ClientToken do
127
127
  config,
128
128
  :authorization_fingerprint => client_token["authorizationFingerprint"],
129
129
  :shared_customer_identifier => "fake_identifier",
130
- :shared_customer_identifier_type => "testing"
130
+ :shared_customer_identifier_type => "testing",
131
131
  )
132
132
 
133
133
  response = http.add_payment_method(
@@ -135,7 +135,7 @@ describe Braintree::ClientToken do
135
135
  :number => "4111111111111111",
136
136
  :expiration_month => "11",
137
137
  :expiration_year => "2099"
138
- }
138
+ },
139
139
  )
140
140
 
141
141
  response.code.should == "201"
@@ -144,7 +144,7 @@ describe Braintree::ClientToken do
144
144
  :customer_id => customer_id,
145
145
  :options => {
146
146
  :fail_on_duplicate_payment_method => true
147
- }
147
+ },
148
148
  )
149
149
  second_client_token = decode_client_token(second_raw_client_token)
150
150
 
@@ -155,7 +155,7 @@ describe Braintree::ClientToken do
155
155
  :number => "4111111111111111",
156
156
  :expiration_month => "11",
157
157
  :expiration_year => "2099"
158
- }
158
+ },
159
159
  )
160
160
 
161
161
  response.code.should == "422"
@@ -165,7 +165,7 @@ describe Braintree::ClientToken do
165
165
  merchant_account_id = SpecHelper::NonDefaultMerchantAccountId
166
166
 
167
167
  raw_client_token = Braintree::ClientToken.generate(
168
- :merchant_account_id => merchant_account_id
168
+ :merchant_account_id => merchant_account_id,
169
169
  )
170
170
  client_token = decode_client_token(raw_client_token)
171
171
 
@@ -1,4 +1,4 @@
1
- require 'json'
1
+ require "json"
2
2
 
3
3
  def decode_client_token(raw_client_token)
4
4
  decoded_client_token_string = Base64.decode64(raw_client_token)
@@ -20,7 +20,7 @@ def _initialize_client(options)
20
20
  ClientApiHttp.new(Braintree::Configuration.instantiate,
21
21
  :authorization_fingerprint => client_token["authorizationFingerprint"],
22
22
  :shared_customer_identifier => "fake_identifier",
23
- :shared_customer_identifier_type => "testing"
23
+ :shared_customer_identifier_type => "testing",
24
24
  )
25
25
  end
26
26
 
@@ -42,7 +42,7 @@ def nonce_for_paypal_account(paypal_account_details)
42
42
  raw_client_token = Braintree::ClientToken.generate
43
43
  client_token = decode_client_token(raw_client_token)
44
44
  client = ClientApiHttp.new(Braintree::Configuration.instantiate,
45
- :authorization_fingerprint => client_token["authorizationFingerprint"]
45
+ :authorization_fingerprint => client_token["authorizationFingerprint"],
46
46
  )
47
47
 
48
48
  response = client.create_paypal_account(paypal_account_details)
@@ -283,7 +283,7 @@ class ClientApiHttp
283
283
  params.merge!(
284
284
  :authorization_fingerprint => @options[:authorization_fingerprint],
285
285
  :shared_customer_identifier => "fake_identifier",
286
- :shared_customer_identifier_type => "testing"
286
+ :shared_customer_identifier_type => "testing",
287
287
  )
288
288
 
289
289
  post("/merchants/#{config.merchant_id}/client_api/v1/payment_methods/credit_cards", params)
@@ -292,7 +292,7 @@ class ClientApiHttp
292
292
  def create_paypal_account(params)
293
293
  params = {:paypal_account => params}
294
294
  params.merge!(
295
- :authorization_fingerprint => @options[:authorization_fingerprint]
295
+ :authorization_fingerprint => @options[:authorization_fingerprint],
296
296
  )
297
297
 
298
298
  post("/merchants/#{config.merchant_id}/client_api/v1/payment_methods/paypal_accounts", params)
@@ -46,7 +46,7 @@ describe Braintree::CreditCard do
46
46
  :customer_id => customer.id,
47
47
  :number => Braintree::Test::CreditCardNumbers::Visa,
48
48
  :expiration_month => "05",
49
- :expiration_year => "2012"
49
+ :expiration_year => "2012",
50
50
  )
51
51
  result.success?.should == true
52
52
  credit_card = result.credit_card
@@ -63,7 +63,7 @@ describe Braintree::CreditCard do
63
63
  :number => Braintree::Test::CreditCardNumbers::Visa,
64
64
  :expiration_date => "05/2009",
65
65
  :cvv => "100",
66
- :token => token
66
+ :token => token,
67
67
  )
68
68
  result.success?.should == true
69
69
  credit_card = result.credit_card
@@ -81,7 +81,7 @@ describe Braintree::CreditCard do
81
81
  :customer_id => customer.id,
82
82
  :number => Braintree::Test::CreditCardNumbers::FailsSandboxVerification::Visa,
83
83
  :expiration_date => "05/2009",
84
- :billing_address_id => address.id
84
+ :billing_address_id => address.id,
85
85
  ).credit_card
86
86
 
87
87
  credit_card.billing_address.id.should == address.id
@@ -95,7 +95,7 @@ describe Braintree::CreditCard do
95
95
  :customer_id => customer.id,
96
96
  :number => Braintree::Test::CreditCardNumbers::FailsSandboxVerification::Visa,
97
97
  :expiration_date => "05/2009",
98
- :options => {}
98
+ :options => {},
99
99
  )
100
100
  result.success?.should == true
101
101
  end
@@ -106,7 +106,7 @@ describe Braintree::CreditCard do
106
106
  :customer_id => customer.id,
107
107
  :number => Braintree::Test::CreditCardNumbers::FailsSandboxVerification::Visa,
108
108
  :expiration_date => "05/2009",
109
- :options => {:verify_card => true}
109
+ :options => {:verify_card => true},
110
110
  )
111
111
  result.success?.should == false
112
112
  result.credit_card_verification.status.should == Braintree::CreditCardVerification::Status::ProcessorDeclined
@@ -124,7 +124,7 @@ describe Braintree::CreditCard do
124
124
  :customer_id => customer.id,
125
125
  :number => Braintree::Test::CreditCardNumbers::FailsSandboxVerification::Visa,
126
126
  :expiration_date => "05/2009",
127
- :options => {:verify_card => true, :verification_amount => "100.00"}
127
+ :options => {:verify_card => true, :verification_amount => "100.00"},
128
128
  )
129
129
  result.success?.should == false
130
130
  result.credit_card_verification.status.should == Braintree::CreditCardVerification::Status::ProcessorDeclined
@@ -137,7 +137,7 @@ describe Braintree::CreditCard do
137
137
  end
138
138
 
139
139
  it "returns risk data on verification on credit_card create" do
140
- with_advanced_fraud_integration_merchant do
140
+ with_fraud_protection_enterprise_merchant do
141
141
  customer = Braintree::Customer.create!
142
142
  credit_card = Braintree::CreditCard.create!(
143
143
  :cardholder_name => "Original Holder",
@@ -145,13 +145,57 @@ describe Braintree::CreditCard do
145
145
  :cvv => "123",
146
146
  :number => Braintree::Test::CreditCardNumbers::Visa,
147
147
  :expiration_date => "05/2020",
148
- :options => {:verify_card => true}
148
+ :options => {:verify_card => true},
149
149
  )
150
150
  verification = credit_card.verification
151
- verification.risk_data.should respond_to(:id)
152
- verification.risk_data.should respond_to(:decision)
153
- verification.risk_data.should respond_to(:device_data_captured)
154
- verification.risk_data.should respond_to(:fraud_service_provider)
151
+ verification.risk_data.id.should_not be_nil
152
+ verification.risk_data.decision.should_not be_nil
153
+ verification.risk_data.decision_reasons.should_not be_nil
154
+ expect(verification.risk_data).to respond_to(:device_data_captured)
155
+ expect(verification.risk_data).to respond_to(:fraud_service_provider)
156
+ expect(verification.risk_data).to respond_to(:transaction_risk_score)
157
+ end
158
+ end
159
+
160
+ it "includes risk data when skip_advanced_fraud_checking is false" do
161
+ with_fraud_protection_enterprise_merchant do
162
+ customer = Braintree::Customer.create!
163
+ result = Braintree::CreditCard.create(
164
+ :cardholder_name => "Original Holder",
165
+ :customer_id => customer.id,
166
+ :cvv => "123",
167
+ :number => Braintree::Test::CreditCardNumbers::Visa,
168
+ :expiration_date => "05/2020",
169
+ :options => {
170
+ :skip_advanced_fraud_checking => false,
171
+ :verify_card => true,
172
+ },
173
+ )
174
+
175
+ expect(result).to be_success
176
+ verification = result.credit_card.verification
177
+ expect(verification.risk_data).not_to be_nil
178
+ end
179
+ end
180
+
181
+ it "does not include risk data when skip_advanced_fraud_checking is true" do
182
+ with_fraud_protection_enterprise_merchant do
183
+ customer = Braintree::Customer.create!
184
+ result = Braintree::CreditCard.create(
185
+ :cardholder_name => "Original Holder",
186
+ :customer_id => customer.id,
187
+ :cvv => "123",
188
+ :number => Braintree::Test::CreditCardNumbers::Visa,
189
+ :expiration_date => "05/2020",
190
+ :options => {
191
+ :skip_advanced_fraud_checking => true,
192
+ :verify_card => true,
193
+ },
194
+ )
195
+
196
+ expect(result).to be_success
197
+ verification = result.credit_card.verification
198
+ expect(verification.risk_data).to be_nil
155
199
  end
156
200
  end
157
201
 
@@ -171,7 +215,7 @@ describe Braintree::CreditCard do
171
215
  :number => Braintree::Test::CreditCardNumbers::Visa,
172
216
  :expiration_date => "05/2009",
173
217
  :cvv => "200",
174
- :options => {:verify_card => true}
218
+ :options => {:verify_card => true},
175
219
  )
176
220
  result.success?.should == false
177
221
  result.credit_card_verification.gateway_rejection_reason.should == Braintree::CreditCardVerification::GatewayRejectionReason::CVV
@@ -188,7 +232,7 @@ describe Braintree::CreditCard do
188
232
  :customer_id => customer.id,
189
233
  :number => Braintree::Test::CreditCardNumbers::FailsSandboxVerification::Visa,
190
234
  :expiration_date => "05/2009",
191
- :options => {:verify_card => true, :verification_amount => "1.01"}
235
+ :options => {:verify_card => true, :verification_amount => "1.01"},
192
236
  )
193
237
  result.success?.should == false
194
238
  result.credit_card_verification.status.should == Braintree::CreditCardVerification::Status::ProcessorDeclined
@@ -209,7 +253,7 @@ describe Braintree::CreditCard do
209
253
  :options => {
210
254
  :verify_card => true,
211
255
  :verification_merchant_account_id => SpecHelper::NonDefaultMerchantAccountId
212
- }
256
+ },
213
257
  )
214
258
  result.success?.should == false
215
259
  result.credit_card_verification.merchant_account_id.should == SpecHelper::NonDefaultMerchantAccountId
@@ -221,7 +265,7 @@ describe Braintree::CreditCard do
221
265
  :customer_id => customer.id,
222
266
  :number => Braintree::Test::CreditCardNumbers::FailsSandboxVerification::Visa,
223
267
  :expiration_date => "05/2009",
224
- :options => {:verify_card => false}
268
+ :options => {:verify_card => false},
225
269
  )
226
270
  result.success?.should == true
227
271
  end
@@ -232,15 +276,15 @@ describe Braintree::CreditCard do
232
276
  :customer_id => customer.id,
233
277
  :payment_method_nonce => Braintree::Test::Nonce::Transactable,
234
278
  :three_d_secure_pass_thru => {
235
- :eci_flag => '02',
236
- :cavv => 'some_cavv',
237
- :xid => 'some_xid',
238
- :authentication_response => 'Y',
239
- :directory_response => 'Y',
240
- :cavv_algorithm => '2',
241
- :ds_transaction_id => 'some_ds_transaction_id',
279
+ :eci_flag => "02",
280
+ :cavv => "some_cavv",
281
+ :xid => "some_xid",
282
+ :authentication_response => "Y",
283
+ :directory_response => "Y",
284
+ :cavv_algorithm => "2",
285
+ :ds_transaction_id => "some_ds_transaction_id",
242
286
  },
243
- :options => {:verify_card => true}
287
+ :options => {:verify_card => true},
244
288
  )
245
289
  expect(result).not_to be_success
246
290
  error = result.errors.for(:verification).first
@@ -254,16 +298,16 @@ describe Braintree::CreditCard do
254
298
  :customer_id => customer.id,
255
299
  :payment_method_nonce => Braintree::Test::Nonce::Transactable,
256
300
  :three_d_secure_pass_thru => {
257
- :eci_flag => '02',
258
- :cavv => 'some_cavv',
259
- :xid => 'some_xid',
260
- :three_d_secure_version => '1.0.2',
261
- :authentication_response => 'Y',
262
- :directory_response => 'Y',
263
- :cavv_algorithm => '2',
264
- :ds_transaction_id => 'some_ds_transaction_id',
301
+ :eci_flag => "02",
302
+ :cavv => "some_cavv",
303
+ :xid => "some_xid",
304
+ :three_d_secure_version => "1.0.2",
305
+ :authentication_response => "Y",
306
+ :directory_response => "Y",
307
+ :cavv_algorithm => "2",
308
+ :ds_transaction_id => "some_ds_transaction_id",
265
309
  },
266
- :options => {:verify_card => true}
310
+ :options => {:verify_card => true},
267
311
  )
268
312
  result.success?.should == true
269
313
 
@@ -274,7 +318,7 @@ describe Braintree::CreditCard do
274
318
  result = Braintree::CreditCard.create(
275
319
  :customer_id => customer.id,
276
320
  :payment_method_nonce => Braintree::Test::Nonce::ThreeDSecureVisaFullAuthentication,
277
- :options => {:verify_card => true}
321
+ :options => {:verify_card => true},
278
322
  )
279
323
  result.success?.should == true
280
324
 
@@ -302,7 +346,7 @@ describe Braintree::CreditCard do
302
346
  :locality => "Chicago",
303
347
  :region => "Illinois",
304
348
  :postal_code => "60622"
305
- }
349
+ },
306
350
  )
307
351
  result.success?.should == true
308
352
  credit_card = result.credit_card
@@ -321,7 +365,7 @@ describe Braintree::CreditCard do
321
365
  :country_code_alpha2 => "US",
322
366
  :country_code_alpha3 => "USA",
323
367
  :country_code_numeric => "840"
324
- }
368
+ },
325
369
  )
326
370
  result.success?.should == true
327
371
  credit_card = result.credit_card
@@ -340,7 +384,7 @@ describe Braintree::CreditCard do
340
384
  :billing_address => {
341
385
  :country_name => "Mexico",
342
386
  :country_code_alpha2 => "US"
343
- }
387
+ },
344
388
  )
345
389
  result.success?.should == false
346
390
  result.errors.for(:credit_card).for(:billing_address).on(:base).map { |e| e.code }.should include(Braintree::ErrorCodes::Address::InconsistentCountry)
@@ -351,7 +395,7 @@ describe Braintree::CreditCard do
351
395
  result = Braintree::CreditCard.create(
352
396
  :customer_id => customer.id,
353
397
  :number => Braintree::Test::CreditCardNumbers::Visa,
354
- :expiration_date => "invalid_date"
398
+ :expiration_date => "invalid_date",
355
399
  )
356
400
  result.success?.should == false
357
401
  result.errors.for(:credit_card).on(:expiration_date)[0].message.should == "Expiration date is invalid."
@@ -362,7 +406,7 @@ describe Braintree::CreditCard do
362
406
  card1 = Braintree::CreditCard.create(
363
407
  :customer_id => customer.id,
364
408
  :number => Braintree::Test::CreditCardNumbers::Visa,
365
- :expiration_date => "05/2009"
409
+ :expiration_date => "05/2009",
366
410
  ).credit_card
367
411
  card1.should be_default
368
412
 
@@ -372,7 +416,7 @@ describe Braintree::CreditCard do
372
416
  :expiration_date => "05/2009",
373
417
  :options => {
374
418
  :make_default => true
375
- }
419
+ },
376
420
  ).credit_card
377
421
  card2.should be_default
378
422
 
@@ -401,7 +445,7 @@ describe Braintree::CreditCard do
401
445
  :customer_id => customer.id,
402
446
  :number => Braintree::Test::CreditCardNumbers::CardTypeIndicators::Prepaid,
403
447
  :expiration_date => "05/2014",
404
- :options => {:verify_card => true}
448
+ :options => {:verify_card => true},
405
449
  )
406
450
  credit_card = result.credit_card
407
451
  credit_card.prepaid.should == Braintree::CreditCard::Prepaid::Yes
@@ -413,7 +457,7 @@ describe Braintree::CreditCard do
413
457
  :customer_id => customer.id,
414
458
  :number => Braintree::Test::CreditCardNumbers::CardTypeIndicators::Healthcare,
415
459
  :expiration_date => "05/2014",
416
- :options => {:verify_card => true}
460
+ :options => {:verify_card => true},
417
461
  )
418
462
  credit_card = result.credit_card
419
463
  credit_card.healthcare.should == Braintree::CreditCard::Healthcare::Yes
@@ -426,7 +470,7 @@ describe Braintree::CreditCard do
426
470
  :customer_id => customer.id,
427
471
  :number => Braintree::Test::CreditCardNumbers::CardTypeIndicators::DurbinRegulated,
428
472
  :expiration_date => "05/2014",
429
- :options => {:verify_card => true}
473
+ :options => {:verify_card => true},
430
474
  )
431
475
  credit_card = result.credit_card
432
476
  credit_card.durbin_regulated.should == Braintree::CreditCard::DurbinRegulated::Yes
@@ -438,7 +482,7 @@ describe Braintree::CreditCard do
438
482
  :customer_id => customer.id,
439
483
  :number => Braintree::Test::CreditCardNumbers::CardTypeIndicators::CountryOfIssuance,
440
484
  :expiration_date => "05/2014",
441
- :options => {:verify_card => true}
485
+ :options => {:verify_card => true},
442
486
  )
443
487
  credit_card = result.credit_card
444
488
  credit_card.country_of_issuance.should == Braintree::Test::CreditCardDefaults::CountryOfIssuance
@@ -450,7 +494,7 @@ describe Braintree::CreditCard do
450
494
  :customer_id => customer.id,
451
495
  :number => Braintree::Test::CreditCardNumbers::CardTypeIndicators::IssuingBank,
452
496
  :expiration_date => "05/2014",
453
- :options => {:verify_card => true}
497
+ :options => {:verify_card => true},
454
498
  )
455
499
  credit_card = result.credit_card
456
500
  credit_card.issuing_bank.should == Braintree::Test::CreditCardDefaults::IssuingBank
@@ -462,7 +506,7 @@ describe Braintree::CreditCard do
462
506
  :customer_id => customer.id,
463
507
  :number => Braintree::Test::CreditCardNumbers::CardTypeIndicators::Payroll,
464
508
  :expiration_date => "05/2014",
465
- :options => {:verify_card => true}
509
+ :options => {:verify_card => true},
466
510
  )
467
511
  credit_card = result.credit_card
468
512
  credit_card.payroll.should == Braintree::CreditCard::Payroll::Yes
@@ -475,7 +519,7 @@ describe Braintree::CreditCard do
475
519
  :customer_id => customer.id,
476
520
  :number => Braintree::Test::CreditCardNumbers::CardTypeIndicators::Debit,
477
521
  :expiration_date => "05/2014",
478
- :options => {:verify_card => true}
522
+ :options => {:verify_card => true},
479
523
  )
480
524
  credit_card = result.credit_card
481
525
  credit_card.debit.should == Braintree::CreditCard::Debit::Yes
@@ -487,7 +531,7 @@ describe Braintree::CreditCard do
487
531
  :customer_id => customer.id,
488
532
  :number => Braintree::Test::CreditCardNumbers::CardTypeIndicators::Commercial,
489
533
  :expiration_date => "05/2014",
490
- :options => {:verify_card => true}
534
+ :options => {:verify_card => true},
491
535
  )
492
536
  credit_card = result.credit_card
493
537
  credit_card.commercial.should == Braintree::CreditCard::Commercial::Yes
@@ -499,7 +543,7 @@ describe Braintree::CreditCard do
499
543
  :customer_id => customer.id,
500
544
  :number => Braintree::Test::CreditCardNumbers::CardTypeIndicators::No,
501
545
  :expiration_date => "05/2014",
502
- :options => {:verify_card => true}
546
+ :options => {:verify_card => true},
503
547
  )
504
548
  credit_card = result.credit_card
505
549
  credit_card.prepaid.should == Braintree::CreditCard::Prepaid::No
@@ -517,7 +561,7 @@ describe Braintree::CreditCard do
517
561
  :customer_id => customer.id,
518
562
  :number => Braintree::Test::CreditCardNumbers::CardTypeIndicators::Unknown,
519
563
  :expiration_date => "05/2014",
520
- :options => {:verify_card => true}
564
+ :options => {:verify_card => true},
521
565
  )
522
566
  credit_card = result.credit_card
523
567
  credit_card.prepaid.should == Braintree::CreditCard::Prepaid::Unknown
@@ -538,7 +582,7 @@ describe Braintree::CreditCard do
538
582
  customer = Braintree::Customer.create!
539
583
  result = Braintree::CreditCard.create(
540
584
  :customer_id => customer.id,
541
- :venmo_sdk_payment_method_code => Braintree::Test::VenmoSDK::VisaPaymentMethodCode
585
+ :venmo_sdk_payment_method_code => Braintree::Test::VenmoSDK::VisaPaymentMethodCode,
542
586
  )
543
587
  result.success?.should == true
544
588
  result.credit_card.venmo_sdk?.should == false
@@ -550,7 +594,7 @@ describe Braintree::CreditCard do
550
594
  customer = Braintree::Customer.create!
551
595
  result = Braintree::CreditCard.create(
552
596
  :customer_id => customer.id,
553
- :venmo_sdk_payment_method_code => Braintree::Test::VenmoSDK::InvalidPaymentMethodCode
597
+ :venmo_sdk_payment_method_code => Braintree::Test::VenmoSDK::InvalidPaymentMethodCode,
554
598
  )
555
599
 
556
600
  result.success?.should == false
@@ -569,7 +613,7 @@ describe Braintree::CreditCard do
569
613
  :cvv => "100",
570
614
  :options => {
571
615
  :venmo_sdk_session => Braintree::Test::VenmoSDK::Session
572
- }
616
+ },
573
617
  )
574
618
  result.success?.should == true
575
619
  result.credit_card.venmo_sdk?.should == false
@@ -584,7 +628,7 @@ describe Braintree::CreditCard do
584
628
  :cvv => "100",
585
629
  :options => {
586
630
  :venmo_sdk_session => Braintree::Test::VenmoSDK::InvalidSession
587
- }
631
+ },
588
632
  )
589
633
  result.success?.should == true
590
634
  result.credit_card.venmo_sdk?.should == false
@@ -600,12 +644,12 @@ describe Braintree::CreditCard do
600
644
  :expiration_month => "11",
601
645
  :expiration_year => "2099",
602
646
  },
603
- :share => true
647
+ :share => true,
604
648
  )
605
649
  customer = Braintree::Customer.create!
606
650
  result = Braintree::CreditCard.create(
607
651
  :customer_id => customer.id,
608
- :payment_method_nonce => nonce
652
+ :payment_method_nonce => nonce,
609
653
  )
610
654
 
611
655
  result.success?.should == true
@@ -642,7 +686,7 @@ describe Braintree::CreditCard do
642
686
  :verify_card => true,
643
687
  :verification_merchant_account_id => SpecHelper::HiperBRLMerchantAccountId,
644
688
  :verification_account_type => "debit",
645
- }
689
+ },
646
690
  )
647
691
 
648
692
  expect(result).to be_success
@@ -659,7 +703,7 @@ describe Braintree::CreditCard do
659
703
  :verify_card => true,
660
704
  :verification_merchant_account_id => SpecHelper::HiperBRLMerchantAccountId,
661
705
  :verification_account_type => "credit",
662
- }
706
+ },
663
707
  )
664
708
 
665
709
  expect(result).to be_success
@@ -675,7 +719,7 @@ describe Braintree::CreditCard do
675
719
  :verify_card => true,
676
720
  :verification_merchant_account_id => SpecHelper::HiperBRLMerchantAccountId,
677
721
  :verification_account_type => "ach",
678
- }
722
+ },
679
723
  )
680
724
 
681
725
  expect(result).to_not be_success
@@ -691,7 +735,7 @@ describe Braintree::CreditCard do
691
735
  :options => {
692
736
  :verify_card => true,
693
737
  :verification_account_type => "credit",
694
- }
738
+ },
695
739
  )
696
740
 
697
741
  expect(result).to_not be_success
@@ -707,7 +751,7 @@ describe Braintree::CreditCard do
707
751
  :customer_id => customer.id,
708
752
  :cardholder_name => "Adam Davis",
709
753
  :number => Braintree::Test::CreditCardNumbers::Visa,
710
- :expiration_date => "05/2009"
754
+ :expiration_date => "05/2009",
711
755
  )
712
756
  credit_card.bin.should == Braintree::Test::CreditCardNumbers::Visa[0, 6]
713
757
  credit_card.cardholder_name.should == "Adam Davis"
@@ -721,7 +765,7 @@ describe Braintree::CreditCard do
721
765
  Braintree::CreditCard.create!(
722
766
  :customer_id => customer.id,
723
767
  :number => Braintree::Test::CreditCardNumbers::Visa,
724
- :expiration_date => "invalid_date"
768
+ :expiration_date => "invalid_date",
725
769
  )
726
770
  end.to raise_error(Braintree::ValidationsFailed)
727
771
  end
@@ -733,11 +777,11 @@ describe Braintree::CreditCard do
733
777
  :credit_card => {
734
778
  :number => Braintree::Test::CreditCardNumbers::Visa,
735
779
  :expiration_date => "05/2010"
736
- }
780
+ },
737
781
  )
738
782
  result = Braintree::CreditCard.credit(
739
783
  customer.credit_cards[0].token,
740
- :amount => "100.00"
784
+ :amount => "100.00",
741
785
  )
742
786
  result.success?.should == true
743
787
  result.transaction.amount.should == BigDecimal("100.00")
@@ -756,11 +800,11 @@ describe Braintree::CreditCard do
756
800
  :credit_card => {
757
801
  :number => Braintree::Test::CreditCardNumbers::Visa,
758
802
  :expiration_date => "05/2010"
759
- }
803
+ },
760
804
  )
761
805
  transaction = Braintree::CreditCard.credit!(
762
806
  customer.credit_cards[0].token,
763
- :amount => "100.00"
807
+ :amount => "100.00",
764
808
  )
765
809
  transaction.amount.should == BigDecimal("100.00")
766
810
  transaction.type.should == "credit"
@@ -780,13 +824,13 @@ describe Braintree::CreditCard do
780
824
  :customer_id => customer.id,
781
825
  :cvv => "123",
782
826
  :number => Braintree::Test::CreditCardNumbers::Visa,
783
- :expiration_date => "05/2012"
827
+ :expiration_date => "05/2012",
784
828
  )
785
829
  update_result = Braintree::CreditCard.update(credit_card.token,
786
830
  :cardholder_name => "New Holder",
787
831
  :cvv => "456",
788
832
  :number => Braintree::Test::CreditCardNumbers::MasterCard,
789
- :expiration_date => "06/2013"
833
+ :expiration_date => "06/2013",
790
834
  )
791
835
  update_result.success?.should == true
792
836
  update_result.credit_card.should == credit_card
@@ -804,20 +848,20 @@ describe Braintree::CreditCard do
804
848
  :customer_id => customer.id,
805
849
  :cvv => "123",
806
850
  :number => Braintree::Test::CreditCardNumbers::Visa,
807
- :expiration_date => "05/2012"
851
+ :expiration_date => "05/2012",
808
852
  )
809
853
  result = Braintree::CreditCard.update(credit_card.token,
810
854
  :payment_method_nonce => Braintree::Test::Nonce::Transactable,
811
855
  :three_d_secure_pass_thru => {
812
- :eci_flag => '02',
813
- :cavv => 'some_cavv',
814
- :xid => 'some_xid',
815
- :authentication_response => 'Y',
816
- :directory_response => 'Y',
817
- :cavv_algorithm => '2',
818
- :ds_transaction_id => 'some_ds_transaction_id',
856
+ :eci_flag => "02",
857
+ :cavv => "some_cavv",
858
+ :xid => "some_xid",
859
+ :authentication_response => "Y",
860
+ :directory_response => "Y",
861
+ :cavv_algorithm => "2",
862
+ :ds_transaction_id => "some_ds_transaction_id",
819
863
  },
820
- :options => {:verify_card => true}
864
+ :options => {:verify_card => true},
821
865
  )
822
866
  expect(result).not_to be_success
823
867
  error = result.errors.for(:verification).first
@@ -832,25 +876,72 @@ describe Braintree::CreditCard do
832
876
  :customer_id => customer.id,
833
877
  :cvv => "123",
834
878
  :number => Braintree::Test::CreditCardNumbers::Visa,
835
- :expiration_date => "05/2012"
879
+ :expiration_date => "05/2012",
836
880
  )
837
881
  result = Braintree::CreditCard.update(credit_card.token,
838
882
  :payment_method_nonce => Braintree::Test::Nonce::Transactable,
839
883
  :three_d_secure_pass_thru => {
840
- :eci_flag => '02',
841
- :cavv => 'some_cavv',
884
+ :eci_flag => "02",
885
+ :cavv => "some_cavv",
842
886
  :three_d_secure_version=> "2.1.0",
843
- :xid => 'some_xid',
844
- :authentication_response => 'Y',
845
- :directory_response => 'Y',
846
- :cavv_algorithm => '2',
847
- :ds_transaction_id => 'some_ds_transaction_id',
887
+ :xid => "some_xid",
888
+ :authentication_response => "Y",
889
+ :directory_response => "Y",
890
+ :cavv_algorithm => "2",
891
+ :ds_transaction_id => "some_ds_transaction_id",
848
892
  },
849
- :options => {:verify_card => true}
893
+ :options => {:verify_card => true},
850
894
  )
851
895
 
852
896
  result.success?.should == true
897
+ end
853
898
 
899
+ it "includes risk data when skip_advanced_fraud_checking is false" do
900
+ with_fraud_protection_enterprise_merchant do
901
+ customer = Braintree::Customer.create!
902
+ credit_card = Braintree::CreditCard.create!(
903
+ :cardholder_name => "Original Holder",
904
+ :customer_id => customer.id,
905
+ :cvv => "123",
906
+ :number => Braintree::Test::CreditCardNumbers::Visa,
907
+ :expiration_date => "05/2020",
908
+ )
909
+ updated_result = Braintree::CreditCard.update(credit_card.token,
910
+ :expiration_date => "05/2021",
911
+ :options => {
912
+ :verify_card => true,
913
+ :skip_advanced_fraud_checking => false,
914
+ },
915
+ )
916
+
917
+ expect(updated_result).to be_success
918
+ verification = updated_result.credit_card.verification
919
+ expect(verification.risk_data).not_to be_nil
920
+ end
921
+ end
922
+
923
+ it "does not include risk data when skip_advanced_fraud_checking is true" do
924
+ with_fraud_protection_enterprise_merchant do
925
+ customer = Braintree::Customer.create!
926
+ credit_card = Braintree::CreditCard.create!(
927
+ :cardholder_name => "Original Holder",
928
+ :customer_id => customer.id,
929
+ :cvv => "123",
930
+ :number => Braintree::Test::CreditCardNumbers::Visa,
931
+ :expiration_date => "05/2020",
932
+ )
933
+ updated_result = Braintree::CreditCard.update(credit_card.token,
934
+ :expiration_date => "05/2021",
935
+ :options => {
936
+ :verify_card => true,
937
+ :skip_advanced_fraud_checking => true,
938
+ },
939
+ )
940
+
941
+ expect(updated_result).to be_success
942
+ verification = updated_result.credit_card.verification
943
+ expect(verification.risk_data).to be_nil
944
+ end
854
945
  end
855
946
 
856
947
  context "billing address" do
@@ -862,12 +953,12 @@ describe Braintree::CreditCard do
862
953
  :expiration_date => "05/2012",
863
954
  :billing_address => {
864
955
  :street_address => "123 Nigeria Ave"
865
- }
956
+ },
866
957
  )
867
958
  update_result = Braintree::CreditCard.update(credit_card.token,
868
959
  :billing_address => {
869
960
  :region => "IL"
870
- }
961
+ },
871
962
  )
872
963
  update_result.success?.should == true
873
964
  updated_credit_card = update_result.credit_card
@@ -884,13 +975,13 @@ describe Braintree::CreditCard do
884
975
  :expiration_date => "05/2012",
885
976
  :billing_address => {
886
977
  :street_address => "123 Nigeria Ave"
887
- }
978
+ },
888
979
  )
889
980
  update_result = Braintree::CreditCard.update(credit_card.token,
890
981
  :billing_address => {
891
982
  :region => "IL",
892
983
  :options => {:update_existing => true}
893
- }
984
+ },
894
985
  )
895
986
  update_result.success?.should == true
896
987
  updated_credit_card = update_result.credit_card
@@ -907,7 +998,7 @@ describe Braintree::CreditCard do
907
998
  :expiration_date => "05/2012",
908
999
  :billing_address => {
909
1000
  :street_address => "123 Nigeria Ave"
910
- }
1001
+ },
911
1002
  )
912
1003
  update_result = Braintree::CreditCard.update(credit_card.token,
913
1004
  :billing_address => {
@@ -916,7 +1007,7 @@ describe Braintree::CreditCard do
916
1007
  :country_code_alpha3 => "ASM",
917
1008
  :country_code_numeric => "016",
918
1009
  :options => {:update_existing => true}
919
- }
1010
+ },
920
1011
  )
921
1012
  update_result.success?.should == true
922
1013
  updated_credit_card = update_result.credit_card
@@ -932,12 +1023,12 @@ describe Braintree::CreditCard do
932
1023
  credit_card = Braintree::CreditCard.create!(
933
1024
  :customer_id => customer.id,
934
1025
  :number => Braintree::Test::CreditCardNumbers::Visa,
935
- :expiration_date => "05/2012"
1026
+ :expiration_date => "05/2012",
936
1027
  )
937
1028
  update_result = Braintree::CreditCard.update(credit_card.token,
938
1029
  :number => Braintree::Test::CreditCardNumbers::MasterCard,
939
1030
  :expiration_month => "07",
940
- :expiration_year => "2011"
1031
+ :expiration_year => "2011",
941
1032
  )
942
1033
  update_result.success?.should == true
943
1034
  update_result.credit_card.should == credit_card
@@ -953,14 +1044,14 @@ describe Braintree::CreditCard do
953
1044
  :customer_id => customer.id,
954
1045
  :cvv => "123",
955
1046
  :number => Braintree::Test::CreditCardNumbers::Visa,
956
- :expiration_date => "05/2012"
1047
+ :expiration_date => "05/2012",
957
1048
  )
958
1049
  update_result = Braintree::CreditCard.update(credit_card.token,
959
1050
  :cardholder_name => "New Holder",
960
1051
  :cvv => "456",
961
1052
  :number => Braintree::Test::CreditCardNumbers::FailsSandboxVerification::MasterCard,
962
1053
  :expiration_date => "06/2013",
963
- :options => {:verify_card => true}
1054
+ :options => {:verify_card => true},
964
1055
  )
965
1056
  update_result.success?.should == false
966
1057
  update_result.credit_card_verification.status.should == Braintree::CreditCardVerification::Status::ProcessorDeclined
@@ -985,7 +1076,7 @@ describe Braintree::CreditCard do
985
1076
  :region => "Old State",
986
1077
  :postal_code => "12345",
987
1078
  :country_name => "Canada"
988
- }
1079
+ },
989
1080
  )
990
1081
  result = Braintree::CreditCard.update(credit_card.token,
991
1082
  :options => {:verify_card => false},
@@ -999,7 +1090,7 @@ describe Braintree::CreditCard do
999
1090
  :region => "New State",
1000
1091
  :postal_code => "56789",
1001
1092
  :country_name => "United States of America"
1002
- }
1093
+ },
1003
1094
  )
1004
1095
  result.success?.should == true
1005
1096
  address = result.credit_card.billing_address
@@ -1020,12 +1111,12 @@ describe Braintree::CreditCard do
1020
1111
  :cardholder_name => "Original Holder",
1021
1112
  :customer_id => customer.id,
1022
1113
  :number => Braintree::Test::CreditCardNumbers::Visa,
1023
- :expiration_date => "05/2012"
1114
+ :expiration_date => "05/2012",
1024
1115
  )
1025
1116
  update_result = Braintree::CreditCard.update(credit_card.token,
1026
1117
  :cardholder_name => "New Holder",
1027
1118
  :number => "invalid",
1028
- :expiration_date => "05/2014"
1119
+ :expiration_date => "05/2014",
1029
1120
  )
1030
1121
  update_result.success?.should == false
1031
1122
  update_result.errors.for(:credit_card).on(:number)[0].message.should == "Credit card number must be 12-19 digits."
@@ -1036,12 +1127,12 @@ describe Braintree::CreditCard do
1036
1127
  card1 = Braintree::CreditCard.create(
1037
1128
  :customer_id => customer.id,
1038
1129
  :number => Braintree::Test::CreditCardNumbers::Visa,
1039
- :expiration_date => "05/2009"
1130
+ :expiration_date => "05/2009",
1040
1131
  ).credit_card
1041
1132
  card2 = Braintree::CreditCard.create(
1042
1133
  :customer_id => customer.id,
1043
1134
  :number => Braintree::Test::CreditCardNumbers::Visa,
1044
- :expiration_date => "05/2009"
1135
+ :expiration_date => "05/2009",
1045
1136
  ).credit_card
1046
1137
 
1047
1138
  card1.should be_default
@@ -1099,12 +1190,12 @@ describe Braintree::CreditCard do
1099
1190
  :cardholder_name => "Original Holder",
1100
1191
  :customer_id => customer.id,
1101
1192
  :number => Braintree::Test::CreditCardNumbers::Visa,
1102
- :expiration_date => "05/2012"
1193
+ :expiration_date => "05/2012",
1103
1194
  )
1104
1195
  updated_credit_card = Braintree::CreditCard.update!(credit_card.token,
1105
1196
  :cardholder_name => "New Holder",
1106
1197
  :number => Braintree::Test::CreditCardNumbers::MasterCard,
1107
- :expiration_date => "06/2013"
1198
+ :expiration_date => "06/2013",
1108
1199
  )
1109
1200
  updated_credit_card.token.should == credit_card.token
1110
1201
  updated_credit_card.bin.should == Braintree::Test::CreditCardNumbers::MasterCard[0, 6]
@@ -1120,13 +1211,13 @@ describe Braintree::CreditCard do
1120
1211
  :cardholder_name => "Original Holder",
1121
1212
  :customer_id => customer.id,
1122
1213
  :number => Braintree::Test::CreditCardNumbers::Visa,
1123
- :expiration_date => "05/2012"
1214
+ :expiration_date => "05/2012",
1124
1215
  )
1125
1216
  expect do
1126
1217
  Braintree::CreditCard.update!(credit_card.token,
1127
1218
  :cardholder_name => "New Holder",
1128
1219
  :number => Braintree::Test::CreditCardNumbers::MasterCard,
1129
- :expiration_date => "invalid/date"
1220
+ :expiration_date => "invalid/date",
1130
1221
  )
1131
1222
  end.to raise_error(Braintree::ValidationsFailed)
1132
1223
  end
@@ -1138,7 +1229,7 @@ describe Braintree::CreditCard do
1138
1229
  result = Braintree::CreditCard.create(
1139
1230
  :customer_id => customer.id,
1140
1231
  :number => Braintree::Test::CreditCardNumbers::Visa,
1141
- :expiration_date => "05/2012"
1232
+ :expiration_date => "05/2012",
1142
1233
  )
1143
1234
 
1144
1235
  result.success?.should == true
@@ -1158,7 +1249,7 @@ describe Braintree::CreditCard do
1158
1249
  Braintree::CreditCard.create!(
1159
1250
  :customer_id => customer.id,
1160
1251
  :number => Braintree::Test::CreditCardNumbers::Visa,
1161
- :expiration_date => "01/#{Time.now.year - 3}"
1252
+ :expiration_date => "01/#{Time.now.year - 3}",
1162
1253
  )
1163
1254
  end
1164
1255
 
@@ -1189,14 +1280,14 @@ describe Braintree::CreditCard do
1189
1280
  Braintree::CreditCard.create!(
1190
1281
  :customer_id => customer.id,
1191
1282
  :number => Braintree::Test::CreditCardNumbers::Visa,
1192
- :expiration_date => "01/2010"
1283
+ :expiration_date => "01/2010",
1193
1284
  )
1194
1285
  end
1195
1286
 
1196
1287
  collection = Braintree::CreditCard.expiring_between(Time.mktime(2010, 1, 1), Time.mktime(2010,3, 1))
1197
1288
  collection.maximum_size.should > 100
1198
1289
 
1199
- credit_card_ids = collection.map {|c| c.token }.uniq.compact
1290
+ credit_card_ids = collection.map { |c| c.token }.uniq.compact
1200
1291
  credit_card_ids.size.should == collection.maximum_size
1201
1292
  end
1202
1293
  end
@@ -1207,7 +1298,7 @@ describe Braintree::CreditCard do
1207
1298
  result = Braintree::CreditCard.create(
1208
1299
  :customer_id => customer.id,
1209
1300
  :number => Braintree::Test::CreditCardNumbers::Visa,
1210
- :expiration_date => "05/2012"
1301
+ :expiration_date => "05/2012",
1211
1302
  )
1212
1303
  result.success?.should == true
1213
1304
  credit_card = Braintree::CreditCard.find(result.credit_card.token)
@@ -1222,13 +1313,13 @@ describe Braintree::CreditCard do
1222
1313
  credit_card = Braintree::CreditCard.create(
1223
1314
  :customer_id => customer.id,
1224
1315
  :number => Braintree::Test::CreditCardNumbers::Visa,
1225
- :expiration_date => "05/2012"
1316
+ :expiration_date => "05/2012",
1226
1317
  ).credit_card
1227
1318
 
1228
1319
  subscription = Braintree::Subscription.create(
1229
1320
  :payment_method_token => credit_card.token,
1230
1321
  :plan_id => "integration_trialless_plan",
1231
- :price => "1.00"
1322
+ :price => "1.00",
1232
1323
  ).subscription
1233
1324
 
1234
1325
  found_card = Braintree::CreditCard.find(credit_card.token)
@@ -1272,7 +1363,7 @@ describe Braintree::CreditCard do
1272
1363
  :expiration_month => "11",
1273
1364
  :expiration_year => "2099",
1274
1365
  },
1275
- :client_token_options => {:customer_id => customer.id}
1366
+ :client_token_options => {:customer_id => customer.id},
1276
1367
  )
1277
1368
 
1278
1369
  credit_card = Braintree::CreditCard.from_nonce(nonce)
@@ -1286,7 +1377,7 @@ describe Braintree::CreditCard do
1286
1377
  :number => "4111111111111111",
1287
1378
  :expiration_month => "11",
1288
1379
  :expiration_year => "2099",
1289
- }
1380
+ },
1290
1381
  )
1291
1382
  expect do
1292
1383
  Braintree::CreditCard.from_nonce(nonce)
@@ -1301,7 +1392,7 @@ describe Braintree::CreditCard do
1301
1392
  :expiration_month => "11",
1302
1393
  :expiration_year => "2099",
1303
1394
  },
1304
- :client_token_options => {:customer_id => customer.id}
1395
+ :client_token_options => {:customer_id => customer.id},
1305
1396
  )
1306
1397
 
1307
1398
  Braintree::CreditCard.from_nonce(nonce)
@@ -1317,7 +1408,7 @@ describe Braintree::CreditCard do
1317
1408
  :credit_card => {
1318
1409
  :number => Braintree::Test::CreditCardNumbers::Visa,
1319
1410
  :expiration_date => "05/2010"
1320
- }
1411
+ },
1321
1412
  )
1322
1413
  result = Braintree::CreditCard.sale(customer.credit_cards[0].token, :amount => "100.00")
1323
1414
 
@@ -1336,13 +1427,13 @@ describe Braintree::CreditCard do
1336
1427
  :credit_card => {
1337
1428
  :number => Braintree::Test::CreditCardNumbers::Visa,
1338
1429
  :expiration_date => "05/2010"
1339
- }
1430
+ },
1340
1431
  )
1341
1432
  result = Braintree::CreditCard.sale(customer.credit_cards[0].token,
1342
1433
  :amount => "100.00",
1343
1434
  :credit_card => {
1344
1435
  :cvv => "301"
1345
- }
1436
+ },
1346
1437
  )
1347
1438
 
1348
1439
  result.success?.should == true
@@ -1360,7 +1451,7 @@ describe Braintree::CreditCard do
1360
1451
  :credit_card => {
1361
1452
  :number => Braintree::Test::CreditCardNumbers::Visa,
1362
1453
  :expiration_date => "05/2010"
1363
- }
1454
+ },
1364
1455
  )
1365
1456
  transaction = Braintree::CreditCard.sale!(customer.credit_cards[0].token, :amount => "100.00")
1366
1457
  transaction.amount.should == BigDecimal("100.00")
@@ -1380,7 +1471,7 @@ describe Braintree::CreditCard do
1380
1471
  :cardholder_name => "Original Holder",
1381
1472
  :customer_id => customer.id,
1382
1473
  :number => Braintree::Test::CreditCardNumbers::Visa,
1383
- :expiration_date => "05/2012"
1474
+ :expiration_date => "05/2012",
1384
1475
  )
1385
1476
 
1386
1477
  credit_card.nonce.should_not be_nil
@@ -1398,7 +1489,7 @@ describe Braintree::CreditCard do
1398
1489
  credit_card = Braintree::CreditCard.create(
1399
1490
  :customer_id => customer.id,
1400
1491
  :number => Braintree::Test::CreditCardNumbers::Visa,
1401
- :expiration_date => "05/2009"
1492
+ :expiration_date => "05/2009",
1402
1493
  ).credit_card
1403
1494
  credit_card_vaulted = Braintree::CreditCard.find(credit_card.token)
1404
1495
  credit_card_vaulted.is_network_tokenized?.should == false