braintree 3.4.0 → 4.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (46) hide show
  1. checksums.yaml +4 -4
  2. data/braintree.gemspec +2 -2
  3. data/lib/braintree.rb +4 -0
  4. data/lib/braintree/address.rb +1 -0
  5. data/lib/braintree/apple_pay_card.rb +9 -0
  6. data/lib/braintree/credit_card_gateway.rb +11 -1
  7. data/lib/braintree/customer.rb +4 -2
  8. data/lib/braintree/customer_gateway.rb +2 -0
  9. data/lib/braintree/dispute.rb +14 -0
  10. data/lib/braintree/dispute/paypal_message.rb +15 -0
  11. data/lib/braintree/dispute_search.rb +1 -0
  12. data/lib/braintree/error_codes.rb +4 -6
  13. data/lib/braintree/google_pay_card.rb +9 -0
  14. data/lib/braintree/payment_method_gateway.rb +7 -4
  15. data/lib/braintree/payment_method_nonce.rb +7 -4
  16. data/lib/braintree/payment_method_nonce_details.rb +37 -0
  17. data/lib/braintree/payment_method_nonce_details_payer_info.rb +32 -0
  18. data/lib/braintree/transaction/paypal_details.rb +2 -0
  19. data/lib/braintree/transaction_gateway.rb +3 -3
  20. data/lib/braintree/version.rb +2 -2
  21. data/lib/braintree/webhook_notification.rb +2 -1
  22. data/lib/braintree/webhook_testing_gateway.rb +20 -0
  23. data/lib/braintree/xml/libxml.rb +0 -1
  24. data/lib/braintree/xml/parser.rb +12 -2
  25. data/lib/braintree/xml/rexml.rb +70 -0
  26. data/spec/integration/braintree/address_spec.rb +4 -0
  27. data/spec/integration/braintree/credit_card_spec.rb +89 -0
  28. data/spec/integration/braintree/customer_spec.rb +144 -0
  29. data/spec/integration/braintree/dispute_search_spec.rb +25 -0
  30. data/spec/integration/braintree/merchant_account_spec.rb +3 -3
  31. data/spec/integration/braintree/payment_method_nonce_spec.rb +16 -23
  32. data/spec/integration/braintree/payment_method_spec.rb +131 -0
  33. data/spec/integration/braintree/transaction_spec.rb +82 -2
  34. data/spec/spec_helper.rb +2 -0
  35. data/spec/unit/braintree/credit_card_spec.rb +6 -6
  36. data/spec/unit/braintree/customer_spec.rb +17 -7
  37. data/spec/unit/braintree/dispute_search_spec.rb +1 -0
  38. data/spec/unit/braintree/dispute_spec.rb +26 -1
  39. data/spec/unit/braintree/payment_method_nonce_details_payer_info_spec.rb +31 -0
  40. data/spec/unit/braintree/payment_method_nonce_details_spec.rb +43 -0
  41. data/spec/unit/braintree/payment_method_nonce_spec.rb +40 -0
  42. data/spec/unit/braintree/transaction/paypal_details_spec.rb +4 -0
  43. data/spec/unit/braintree/transaction_spec.rb +3 -3
  44. data/spec/unit/braintree/webhook_notification_spec.rb +16 -0
  45. data/spec/unit/braintree/xml/rexml_spec.rb +51 -0
  46. metadata +15 -7
@@ -78,6 +78,31 @@ describe Braintree::Dispute, "search" do
78
78
  dispute = collection.disputes.first
79
79
  end
80
80
 
81
+ it "correctly returns chargeback protected disputes" do
82
+ collection = Braintree::Dispute.search do |search|
83
+ search.case_number.is "CASE-CHARGEBACK-PROTECTED"
84
+ end
85
+
86
+ expect(collection.disputes.count).to eq(1)
87
+ dispute = collection.disputes.first
88
+
89
+ expect(dispute.chargeback_protection_level).to eq(Braintree::Dispute::ChargebackProtectionLevel::Effortless)
90
+ expect(dispute.reason).to eq(Braintree::Dispute::Reason::Fraud)
91
+ end
92
+
93
+ it "correctly returns disputes by chargeback protection level flag" do
94
+ collection = Braintree::Dispute.search do |search|
95
+ search.chargeback_protection_level.in [
96
+ Braintree::Dispute::ChargebackProtectionLevel::Effortless
97
+ ]
98
+ end
99
+ expect(collection.disputes.count).to eq(1)
100
+ dispute = collection.disputes.first
101
+
102
+ expect(dispute.chargeback_protection_level).to eq(Braintree::Dispute::ChargebackProtectionLevel::Effortless)
103
+ expect(dispute.reason).to eq(Braintree::Dispute::Reason::Fraud)
104
+ end
105
+
81
106
  it "correctly returns disputes by effective_date range" do
82
107
  effective_date = transaction.disputes.first.status_history.first.effective_date
83
108
 
@@ -41,7 +41,7 @@ VALID_APPLICATION_PARAMS = {
41
41
  :business => {
42
42
  :legal_name => "Joe's Bloggs",
43
43
  :dba_name => "Joe's Junkyard",
44
- :tax_id => "123456789",
44
+ :tax_id => "423456789",
45
45
  :address => {
46
46
  :street_address => "456 Fake St",
47
47
  :postal_code => "48104",
@@ -371,7 +371,7 @@ describe Braintree::MerchantAccount do
371
371
  params[:individual][:address][:postal_code] = "60622"
372
372
  params[:business][:dba_name] = "James's Bloggs"
373
373
  params[:business][:legal_name] = "James's Bloggs Inc"
374
- params[:business][:tax_id] = "123456789"
374
+ params[:business][:tax_id] = "423456789"
375
375
  params[:business][:address][:street_address] = "999 Fake St"
376
376
  params[:business][:address][:locality] = "Miami"
377
377
  params[:business][:address][:region] = "FL"
@@ -397,7 +397,7 @@ describe Braintree::MerchantAccount do
397
397
  result.merchant_account.individual_details.address_details.postal_code.should == "60622"
398
398
  result.merchant_account.business_details.dba_name.should == "James's Bloggs"
399
399
  result.merchant_account.business_details.legal_name.should == "James's Bloggs Inc"
400
- result.merchant_account.business_details.tax_id.should == "123456789"
400
+ result.merchant_account.business_details.tax_id.should == "423456789"
401
401
  result.merchant_account.business_details.address_details.street_address.should == "999 Fake St"
402
402
  result.merchant_account.business_details.address_details.locality.should == "Miami"
403
403
  result.merchant_account.business_details.address_details.region.should == "FL"
@@ -32,6 +32,7 @@ describe Braintree::PaymentMethodNonce do
32
32
  result.payment_method_nonce.should_not be_nil
33
33
  result.payment_method_nonce.nonce.should_not be_nil
34
34
  result.payment_method_nonce.details.should_not be_nil
35
+ result.payment_method_nonce.default?.should be_truthy
35
36
  end
36
37
 
37
38
  it "correctly raises and exception for a non existent token" do
@@ -67,6 +68,7 @@ describe Braintree::PaymentMethodNonce do
67
68
  payment_method_nonce.should_not be_nil
68
69
  payment_method_nonce.nonce.should_not be_nil
69
70
  payment_method_nonce.details.should_not be_nil
71
+ payment_method_nonce.default?.should be_truthy
70
72
  end
71
73
  end
72
74
 
@@ -79,33 +81,24 @@ describe Braintree::PaymentMethodNonce do
79
81
  result.should be_success
80
82
  nonce.nonce.should == "fake-valid-nonce"
81
83
  nonce.type.should == "CreditCard"
82
- nonce.details.fetch(:last_two).should == "81"
83
- nonce.details.fetch(:card_type).should == "Visa"
84
+ nonce.details.bin.should == "401288"
85
+ nonce.details.card_type.should == "Visa"
86
+ nonce.details.expiration_month.should == "12"
87
+ nonce.details.expiration_year.should == "2022"
88
+ nonce.details.is_network_tokenized?.should be_nil
89
+ nonce.details.last_two.should == "81"
90
+ nonce.details.payer_info.should be_nil
84
91
  end
85
92
 
86
93
  it "return paypal details if details exist" do
87
94
  result = Braintree::PaymentMethodNonce.find("fake-paypal-one-time-nonce")
88
95
  nonce = result.payment_method_nonce
89
-
90
- nonce.details.fetch(:cobranded_card_label).should_not be_nil
91
- nonce.details.fetch(:shipping_option_id).should_not be_nil
92
- nonce.details.fetch(:billing_address).fetch(:recipient_name).should_not be_nil
93
- nonce.details.fetch(:shipping_address).fetch(:recipient_name).should_not be_nil
94
-
95
- nonce.details.fetch(:payer_info).fetch(:first_name).should_not be_nil
96
- nonce.details.fetch(:payer_info).fetch(:last_name).should_not be_nil
97
- nonce.details.fetch(:payer_info).fetch(:email).should_not be_nil
98
- nonce.details.fetch(:payer_info).fetch(:payer_id).should_not be_nil
99
- end
100
-
101
- it "return venmo details if details exist" do
102
- result = Braintree::PaymentMethodNonce.find("fake-venmo-account-nonce")
103
-
104
- nonce = result.payment_method_nonce
105
-
106
- nonce.details.fetch(:last_two).should == "99"
107
- nonce.details.fetch(:username).should == "venmojoe"
108
- nonce.details.fetch(:venmo_user_id).should == "Venmo-Joe-1"
96
+ nonce.details.payer_info.billing_agreement_id.should be_nil
97
+ nonce.details.payer_info.country_code.should be_nil
98
+ nonce.details.payer_info.email.should_not be_nil
99
+ nonce.details.payer_info.first_name.should_not be_nil
100
+ nonce.details.payer_info.last_name.should_not be_nil
101
+ nonce.details.payer_info.payer_id.should_not be_nil
109
102
  end
110
103
 
111
104
  it "returns null 3ds_info if there isn't any" do
@@ -131,7 +124,7 @@ describe Braintree::PaymentMethodNonce do
131
124
  nonce = result.payment_method_nonce
132
125
  result.should be_success
133
126
  nonce.details.should_not be_nil
134
- nonce.details[:bin].should == "401288"
127
+ nonce.details.bin.should == "401288"
135
128
  end
136
129
 
137
130
  it "returns bin_data with commercial set to Yes" do
@@ -99,6 +99,15 @@ describe Braintree::PaymentMethod do
99
99
  apple_pay_card.expiration_month.to_i.should > 0
100
100
  apple_pay_card.expiration_year.to_i.should > 0
101
101
  apple_pay_card.customer_id.should == customer.id
102
+ apple_pay_card.commercial.should_not be_nil
103
+ apple_pay_card.country_of_issuance.should_not be_nil
104
+ apple_pay_card.debit.should_not be_nil
105
+ apple_pay_card.durbin_regulated.should_not be_nil
106
+ apple_pay_card.healthcare.should_not be_nil
107
+ apple_pay_card.issuing_bank.should_not be_nil
108
+ apple_pay_card.payroll.should_not be_nil
109
+ apple_pay_card.prepaid.should_not be_nil
110
+ apple_pay_card.product_id.should_not be_nil
102
111
  end
103
112
 
104
113
  it "creates a payment method from a fake google pay proxy card nonce" do
@@ -127,6 +136,15 @@ describe Braintree::PaymentMethod do
127
136
  google_pay_card.google_transaction_id.should == "google_transaction_id"
128
137
  google_pay_card.source_description.should == "Discover 1111"
129
138
  google_pay_card.customer_id.should == customer.id
139
+ google_pay_card.commercial.should_not be_nil
140
+ google_pay_card.country_of_issuance.should_not be_nil
141
+ google_pay_card.debit.should_not be_nil
142
+ google_pay_card.durbin_regulated.should_not be_nil
143
+ google_pay_card.healthcare.should_not be_nil
144
+ google_pay_card.issuing_bank.should_not be_nil
145
+ google_pay_card.payroll.should_not be_nil
146
+ google_pay_card.prepaid.should_not be_nil
147
+ google_pay_card.product_id.should_not be_nil
130
148
  end
131
149
 
132
150
  it "creates a payment method from a google pay network token nonce" do
@@ -155,6 +173,15 @@ describe Braintree::PaymentMethod do
155
173
  google_pay_card.google_transaction_id.should == "google_transaction_id"
156
174
  google_pay_card.source_description.should == "MasterCard 4444"
157
175
  google_pay_card.customer_id.should == customer.id
176
+ google_pay_card.commercial.should_not be_nil
177
+ google_pay_card.country_of_issuance.should_not be_nil
178
+ google_pay_card.debit.should_not be_nil
179
+ google_pay_card.durbin_regulated.should_not be_nil
180
+ google_pay_card.healthcare.should_not be_nil
181
+ google_pay_card.issuing_bank.should_not be_nil
182
+ google_pay_card.payroll.should_not be_nil
183
+ google_pay_card.prepaid.should_not be_nil
184
+ google_pay_card.product_id.should_not be_nil
158
185
  end
159
186
 
160
187
  it "creates a payment method from venmo account nonce" do
@@ -527,6 +554,58 @@ describe Braintree::PaymentMethod do
527
554
  found_credit_card.billing_address.street_address.should == "456 Xyz Way"
528
555
  end
529
556
 
557
+ it "includes risk data when skip_advanced_fraud_checking is false" do
558
+ with_fraud_protection_enterprise_merchant do
559
+ customer = Braintree::Customer.create!
560
+
561
+ nonce = nonce_for_new_payment_method(
562
+ :credit_card => {
563
+ :cvv => "123",
564
+ :number => Braintree::Test::CreditCardNumbers::Visa,
565
+ :expiration_date => "05/2009",
566
+ },
567
+ )
568
+ result = Braintree::PaymentMethod.create(
569
+ :payment_method_nonce => nonce,
570
+ :customer_id => customer.id,
571
+ :options => {
572
+ :verify_card => true,
573
+ :skip_advanced_fraud_checking => false,
574
+ },
575
+ )
576
+
577
+ expect(result).to be_success
578
+ verification = result.payment_method.verification
579
+ expect(verification.risk_data).not_to be_nil
580
+ end
581
+ end
582
+
583
+ it "does not include risk data when skip_advanced_fraud_checking is true" do
584
+ with_fraud_protection_enterprise_merchant do
585
+ customer = Braintree::Customer.create!
586
+
587
+ nonce = nonce_for_new_payment_method(
588
+ :credit_card => {
589
+ :cvv => "123",
590
+ :number => Braintree::Test::CreditCardNumbers::Visa,
591
+ :expiration_date => "05/2009",
592
+ },
593
+ )
594
+ result = Braintree::PaymentMethod.create(
595
+ :payment_method_nonce => nonce,
596
+ :customer_id => customer.id,
597
+ :options => {
598
+ :verify_card => true,
599
+ :skip_advanced_fraud_checking => true,
600
+ },
601
+ )
602
+
603
+ expect(result).to be_success
604
+ verification = result.payment_method.verification
605
+ expect(verification.risk_data).to be_nil
606
+ end
607
+ end
608
+
530
609
  context "account_type" do
531
610
  it "verifies card with account_type debit" do
532
611
  nonce = nonce_for_new_payment_method(
@@ -1368,6 +1447,58 @@ describe Braintree::PaymentMethod do
1368
1447
  updated_credit_card.expiration_date.should == "06/2013"
1369
1448
  end
1370
1449
 
1450
+ it "includes risk data when skip_advanced_fraud_checking is false" do
1451
+ with_fraud_protection_enterprise_merchant do
1452
+ customer = Braintree::Customer.create!
1453
+ credit_card = Braintree::CreditCard.create!(
1454
+ :customer_id => customer.id,
1455
+ :cvv => "123",
1456
+ :number => Braintree::Test::CreditCardNumbers::Visa,
1457
+ :expiration_date => "05/2012",
1458
+ )
1459
+ update_result = Braintree::PaymentMethod.update(
1460
+ credit_card.token,
1461
+ :cvv => "456",
1462
+ :number => Braintree::Test::CreditCardNumbers::MasterCard,
1463
+ :expiration_date => "06/2013",
1464
+ :options => {
1465
+ :verify_card => true,
1466
+ :skip_advanced_fraud_checking => false
1467
+ },
1468
+ )
1469
+
1470
+ expect(update_result).to be_success
1471
+ verification = update_result.payment_method.verification
1472
+ expect(verification.risk_data).not_to be_nil
1473
+ end
1474
+ end
1475
+
1476
+ it "does not include risk data when skip_advanced_fraud_checking is true" do
1477
+ with_fraud_protection_enterprise_merchant do
1478
+ customer = Braintree::Customer.create!
1479
+ credit_card = Braintree::CreditCard.create!(
1480
+ :customer_id => customer.id,
1481
+ :cvv => "123",
1482
+ :number => Braintree::Test::CreditCardNumbers::Visa,
1483
+ :expiration_date => "05/2012",
1484
+ )
1485
+ update_result = Braintree::PaymentMethod.update(
1486
+ credit_card.token,
1487
+ :cvv => "456",
1488
+ :number => Braintree::Test::CreditCardNumbers::MasterCard,
1489
+ :expiration_date => "06/2013",
1490
+ :options => {
1491
+ :verify_card => true,
1492
+ :skip_advanced_fraud_checking => true
1493
+ },
1494
+ )
1495
+
1496
+ expect(update_result).to be_success
1497
+ verification = update_result.payment_method.verification
1498
+ expect(verification.risk_data).to be_nil
1499
+ end
1500
+ end
1501
+
1371
1502
  context "verification_currency_iso_code" do
1372
1503
  it "validates verification_currency_iso_code and updates the credit card " do
1373
1504
  customer = Braintree::Customer.create!
@@ -999,6 +999,34 @@ describe Braintree::Transaction do
999
999
  result.transaction.credit_card_details.expiration_date.should == "05/2011"
1000
1000
  end
1001
1001
 
1002
+ it "accepts exchange_rate_quote_id" do
1003
+ result = Braintree::Transaction.create(
1004
+ :type => "sale",
1005
+ :amount => Braintree::Test::TransactionAmounts::Authorize,
1006
+ :credit_card => {
1007
+ :number => Braintree::Test::CreditCardNumbers::Visa,
1008
+ :expiration_date => "05/2009"
1009
+ },
1010
+ :exchange_rate_quote_id => "dummyExchangeRateQuoteId-Brainree-Ruby",
1011
+ )
1012
+ result.success?.should == true
1013
+ result.transaction.credit_card_details.expiration_date.should == "05/2009"
1014
+ end
1015
+
1016
+ it "returns an error if provided invalid exchange_rate_quote_id" do
1017
+ result = Braintree::Transaction.create(
1018
+ :type => "sale",
1019
+ :amount => Braintree::Test::TransactionAmounts::Authorize,
1020
+ :credit_card => {
1021
+ :number => Braintree::Test::CreditCardNumbers::Visa,
1022
+ :expiration_date => "05/2009"
1023
+ },
1024
+ :exchange_rate_quote_id => "a" * 4010,
1025
+ )
1026
+ result.success?.should == false
1027
+ result.errors.for(:transaction).on(:exchange_rate_quote_id)[0].code.should == Braintree::ErrorCodes::Transaction::ExchangeRateQuoteIdTooLong
1028
+ end
1029
+
1002
1030
  it "returns some error if customer_id is invalid" do
1003
1031
  result = Braintree::Transaction.create(
1004
1032
  :type => "sale",
@@ -4386,7 +4414,7 @@ describe Braintree::Transaction do
4386
4414
  :amount => "10.00",
4387
4415
  )
4388
4416
  result.success?.should == true
4389
- result.transaction.network_transaction_id.should be_nil
4417
+ result.transaction.network_transaction_id.should_not be_nil
4390
4418
  end
4391
4419
 
4392
4420
  it "accepts blank previous_network_transaction_id" do
@@ -4403,7 +4431,7 @@ describe Braintree::Transaction do
4403
4431
  :amount => "10.00",
4404
4432
  )
4405
4433
  result.success?.should == true
4406
- result.transaction.network_transaction_id.should be_nil
4434
+ result.transaction.network_transaction_id.should_not be_nil
4407
4435
  end
4408
4436
  end
4409
4437
  end
@@ -5058,6 +5086,22 @@ describe Braintree::Transaction do
5058
5086
  result.errors.for(:transaction).on(:currency_iso_code)[0].code.should == Braintree::ErrorCodes::Transaction::CurrencyCodeNotSupportedByMerchantAccount
5059
5087
  end
5060
5088
 
5089
+ it "validates tax_amount for Aib domestic sweden transaction and returns error" do
5090
+ params = {
5091
+ :transaction => {
5092
+ :amount => Braintree::Test::TransactionAmounts::Authorize,
5093
+ :merchant_account_id => SpecHelper::AibSwedenMaMerchantAccountId,
5094
+ :credit_card => {
5095
+ :number => Braintree::Test::CreditCardNumbers::Visa,
5096
+ :expiration_date => "05/2030"
5097
+ }
5098
+ }
5099
+ }
5100
+ result = Braintree::Transaction.sale(params[:transaction])
5101
+ result.success?.should == false
5102
+ result.errors.for(:transaction).on(:tax_amount)[0].code.should == Braintree::ErrorCodes::Transaction::TaxAmountIsRequiredForAibSwedish
5103
+ end
5104
+
5061
5105
  it "skips advanced fraud checking if transaction[options][skip_advanced_fraud_checking] is set to true" do
5062
5106
  with_advanced_fraud_kount_integration_merchant do
5063
5107
  result = Braintree::Transaction.sale(
@@ -6984,6 +7028,42 @@ describe Braintree::Transaction do
6984
7028
  end
6985
7029
  end
6986
7030
 
7031
+ describe "Manual Key Entry" do
7032
+ context "with correct encrypted payment reader card details" do
7033
+ it "returns a success response" do
7034
+ result = Braintree::Transaction.sale(
7035
+ :amount => "10.00",
7036
+ :credit_card => {
7037
+ :payment_reader_card_details => {
7038
+ :encrypted_card_data => "8F34DFB312DC79C24FD5320622F3E11682D79E6B0C0FD881",
7039
+ :key_serial_number => "FFFFFF02000572A00005",
7040
+ },
7041
+ },
7042
+ )
7043
+
7044
+ expect(result).to be_success
7045
+ end
7046
+ end
7047
+
7048
+ context "with invalid encrypted payment reader card details" do
7049
+ it "returns a failure response" do
7050
+ result = Braintree::Transaction.sale(
7051
+ :amount => "10.00",
7052
+ :credit_card => {
7053
+ :payment_reader_card_details => {
7054
+ :encrypted_card_data => "invalid",
7055
+ :key_serial_number => "invalid",
7056
+ },
7057
+ },
7058
+ )
7059
+
7060
+ expect(result).not_to be_success
7061
+ expect(result.errors.for(:transaction).first.code)
7062
+ .to eq(Braintree::ErrorCodes::Transaction::PaymentInstrumentNotSupportedByMerchantAccount)
7063
+ end
7064
+ end
7065
+ end
7066
+
6987
7067
  describe "Adjust Authorization" do
6988
7068
  let(:first_data_master_transaction_params) do
6989
7069
  {
data/spec/spec_helper.rb CHANGED
@@ -3,6 +3,7 @@ unless defined?(SPEC_HELPER_LOADED)
3
3
  project_root = File.expand_path(File.dirname(__FILE__) + "/..")
4
4
  require "rubygems"
5
5
  require "bundler/setup"
6
+ require "libxml"
6
7
  require "rspec"
7
8
  require "pry"
8
9
 
@@ -41,6 +42,7 @@ unless defined?(SPEC_HELPER_LOADED)
41
42
  HiperBRLMerchantAccountId = "hiper_brl"
42
43
  CardProcessorBRLMerchantAccountId = "card_processor_brl"
43
44
  FakeFirstDataMerchantAccountId = "fake_first_data_merchant_account"
45
+ AibSwedenMaMerchantAccountId = "aib_swe_ma"
44
46
 
45
47
  TrialPlan = {
46
48
  :description => "Plan for integration tests -- with trial",
@@ -11,7 +11,7 @@ describe Braintree::CreditCard do
11
11
 
12
12
  describe "self.create_signature" do
13
13
  it "should be what we expect" do
14
- Braintree::CreditCardGateway._create_signature.should == [
14
+ expect(Braintree::CreditCardGateway._create_signature).to match([
15
15
  :billing_address_id,
16
16
  :cardholder_name,
17
17
  :cvv,
@@ -24,7 +24,7 @@ describe Braintree::CreditCard do
24
24
  :device_data,
25
25
  :payment_method_nonce,
26
26
  {:external_vault=>[:network_transaction_id]},
27
- {:options => [:make_default, :verification_merchant_account_id, :verify_card, :verification_amount, :venmo_sdk_session, :fail_on_duplicate_payment_method, :verification_account_type, :verification_currency_iso_code]},
27
+ {:options => match_array([:make_default, :skip_advanced_fraud_checking, :verification_merchant_account_id, :verify_card, :verification_amount, :venmo_sdk_session, :fail_on_duplicate_payment_method, :verification_account_type, :verification_currency_iso_code])},
28
28
  {:billing_address => [
29
29
  :company,
30
30
  :country_code_alpha2,
@@ -51,13 +51,13 @@ describe Braintree::CreditCard do
51
51
  :ds_transaction_id,
52
52
  ]},
53
53
  :customer_id,
54
- ]
54
+ ])
55
55
  end
56
56
  end
57
57
 
58
58
  describe "self.update_signature" do
59
59
  it "should be what we expect" do
60
- Braintree::CreditCardGateway._update_signature.should == [
60
+ expect(Braintree::CreditCardGateway._update_signature).to match([
61
61
  :billing_address_id,
62
62
  :cardholder_name,
63
63
  :cvv,
@@ -70,7 +70,7 @@ describe Braintree::CreditCard do
70
70
  :device_data,
71
71
  :payment_method_nonce,
72
72
  {:external_vault=>[:network_transaction_id]},
73
- {:options => [:make_default, :verification_merchant_account_id, :verify_card, :verification_amount, :venmo_sdk_session, :fail_on_duplicate_payment_method, :verification_account_type, :verification_currency_iso_code]},
73
+ {:options => match_array([:make_default, :skip_advanced_fraud_checking, :verification_merchant_account_id, :verify_card, :verification_amount, :venmo_sdk_session, :fail_on_duplicate_payment_method, :verification_account_type, :verification_currency_iso_code])},
74
74
  {:billing_address => [
75
75
  :company,
76
76
  :country_code_alpha2,
@@ -97,7 +97,7 @@ describe Braintree::CreditCard do
97
97
  :cavv_algorithm,
98
98
  :ds_transaction_id,
99
99
  ]},
100
- ]
100
+ ])
101
101
  end
102
102
  end
103
103