braintree 3.2.0 → 4.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (150) hide show
  1. checksums.yaml +4 -4
  2. data/braintree.gemspec +3 -3
  3. data/lib/braintree.rb +6 -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 +10 -6
  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 +10 -7
  43. data/lib/braintree/payment_method_nonce.rb +7 -4
  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/revoked_payment_method_metadata.rb +1 -1
  50. data/lib/braintree/risk_data.rb +3 -1
  51. data/lib/braintree/samsung_pay_card.rb +1 -1
  52. data/lib/braintree/settlement_batch_summary.rb +2 -2
  53. data/lib/braintree/subscription.rb +6 -6
  54. data/lib/braintree/three_d_secure_info.rb +22 -12
  55. data/lib/braintree/transaction.rb +32 -24
  56. data/lib/braintree/transaction_gateway.rb +24 -5
  57. data/lib/braintree/transaction_line_item.rb +1 -1
  58. data/lib/braintree/transaction_search.rb +3 -1
  59. data/lib/braintree/unknown_payment_method.rb +1 -1
  60. data/lib/braintree/us_bank_account.rb +3 -3
  61. data/lib/braintree/us_bank_account_verification.rb +1 -1
  62. data/lib/braintree/us_bank_account_verification_gateway.rb +1 -1
  63. data/lib/braintree/util.rb +4 -4
  64. data/lib/braintree/venmo_account.rb +1 -1
  65. data/lib/braintree/version.rb +1 -1
  66. data/lib/braintree/visa_checkout_card.rb +2 -2
  67. data/lib/braintree/webhook_notification.rb +30 -20
  68. data/lib/braintree/webhook_notification_gateway.rb +5 -5
  69. data/lib/braintree/webhook_testing_gateway.rb +30 -0
  70. data/lib/braintree/xml/generator.rb +5 -4
  71. data/lib/braintree/xml/libxml.rb +0 -1
  72. data/lib/braintree/xml/parser.rb +22 -12
  73. data/lib/braintree/xml/rexml.rb +70 -0
  74. data/spec/integration/braintree/add_on_spec.rb +1 -1
  75. data/spec/integration/braintree/address_spec.rb +28 -24
  76. data/spec/integration/braintree/advanced_search_spec.rb +45 -45
  77. data/spec/integration/braintree/apple_pay_spec.rb +3 -3
  78. data/spec/integration/braintree/braintree_gateway_spec.rb +2 -1
  79. data/spec/integration/braintree/client_api/client_token_spec.rb +14 -14
  80. data/spec/integration/braintree/client_api/spec_helper.rb +5 -5
  81. data/spec/integration/braintree/credit_card_spec.rb +213 -122
  82. data/spec/integration/braintree/credit_card_verification_search_spec.rb +2 -2
  83. data/spec/integration/braintree/credit_card_verification_spec.rb +1 -1
  84. data/spec/integration/braintree/customer_search_spec.rb +8 -8
  85. data/spec/integration/braintree/customer_spec.rb +282 -165
  86. data/spec/integration/braintree/dispute_search_spec.rb +28 -3
  87. data/spec/integration/braintree/dispute_spec.rb +6 -6
  88. data/spec/integration/braintree/error_codes_spec.rb +1 -1
  89. data/spec/integration/braintree/http_spec.rb +2 -2
  90. data/spec/integration/braintree/merchant_account_spec.rb +25 -26
  91. data/spec/integration/braintree/merchant_spec.rb +14 -14
  92. data/spec/integration/braintree/oauth_spec.rb +11 -11
  93. data/spec/integration/braintree/payment_method_nonce_spec.rb +28 -35
  94. data/spec/integration/braintree/payment_method_spec.rb +269 -165
  95. data/spec/integration/braintree/payment_method_us_bank_account_spec.rb +9 -9
  96. data/spec/integration/braintree/paypal_account_spec.rb +28 -28
  97. data/spec/integration/braintree/samsung_pay_card_spec.rb +9 -9
  98. data/spec/integration/braintree/settlement_batch_summary_spec.rb +8 -8
  99. data/spec/integration/braintree/subscription_spec.rb +133 -133
  100. data/spec/integration/braintree/test/transaction_amounts_spec.rb +2 -2
  101. data/spec/integration/braintree/test_transaction_spec.rb +10 -10
  102. data/spec/integration/braintree/transaction_search_spec.rb +93 -67
  103. data/spec/integration/braintree/transaction_spec.rb +574 -360
  104. data/spec/integration/braintree/transaction_us_bank_account_spec.rb +20 -20
  105. data/spec/integration/braintree/us_bank_account_spec.rb +6 -6
  106. data/spec/integration/braintree/us_bank_account_verification_search_spec.rb +7 -7
  107. data/spec/integration/braintree/us_bank_account_verification_spec.rb +8 -8
  108. data/spec/integration/braintree/visa_checkout_card_spec.rb +5 -5
  109. data/spec/integration/spec_helper.rb +9 -3
  110. data/spec/oauth_test_helper.rb +1 -1
  111. data/spec/script/httpsd.rb +6 -6
  112. data/spec/spec_helper.rb +6 -3
  113. data/spec/unit/braintree/address_spec.rb +1 -1
  114. data/spec/unit/braintree/apple_pay_card_spec.rb +1 -1
  115. data/spec/unit/braintree/client_token_spec.rb +2 -2
  116. data/spec/unit/braintree/configuration_spec.rb +42 -42
  117. data/spec/unit/braintree/credit_card_spec.rb +13 -13
  118. data/spec/unit/braintree/credit_card_verification_search_spec.rb +1 -1
  119. data/spec/unit/braintree/credit_card_verification_spec.rb +8 -4
  120. data/spec/unit/braintree/customer_spec.rb +20 -10
  121. data/spec/unit/braintree/disbursement_spec.rb +7 -7
  122. data/spec/unit/braintree/dispute_search_spec.rb +1 -0
  123. data/spec/unit/braintree/dispute_spec.rb +34 -9
  124. data/spec/unit/braintree/error_result_spec.rb +5 -5
  125. data/spec/unit/braintree/errors_spec.rb +8 -8
  126. data/spec/unit/braintree/http_spec.rb +5 -5
  127. data/spec/unit/braintree/merchant_account_spec.rb +1 -1
  128. data/spec/unit/braintree/payment_method_nonce_details_payer_info_spec.rb +31 -0
  129. data/spec/unit/braintree/payment_method_nonce_details_spec.rb +43 -0
  130. data/spec/unit/braintree/payment_method_nonce_spec.rb +40 -0
  131. data/spec/unit/braintree/payment_method_spec.rb +1 -1
  132. data/spec/unit/braintree/paypal_account_spec.rb +2 -2
  133. data/spec/unit/braintree/resource_collection_spec.rb +9 -9
  134. data/spec/unit/braintree/risk_data_spec.rb +9 -5
  135. data/spec/unit/braintree/subscription_search_spec.rb +1 -1
  136. data/spec/unit/braintree/successful_result_spec.rb +1 -1
  137. data/spec/unit/braintree/three_d_secure_info_spec.rb +32 -14
  138. data/spec/unit/braintree/transaction/credit_card_details_spec.rb +3 -3
  139. data/spec/unit/braintree/transaction/customer_details_spec.rb +1 -1
  140. data/spec/unit/braintree/transaction/deposit_details_spec.rb +2 -2
  141. data/spec/unit/braintree/transaction/paypal_details_spec.rb +1 -1
  142. data/spec/unit/braintree/transaction_search_spec.rb +12 -12
  143. data/spec/unit/braintree/transaction_spec.rb +25 -17
  144. data/spec/unit/braintree/util_spec.rb +18 -18
  145. data/spec/unit/braintree/validation_error_collection_spec.rb +36 -36
  146. data/spec/unit/braintree/webhook_notification_spec.rb +88 -56
  147. data/spec/unit/braintree/xml/rexml_spec.rb +51 -0
  148. data/spec/unit/braintree/xml_spec.rb +31 -31
  149. metadata +16 -8
  150. 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