braintree 3.2.0 → 4.2.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 (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
@@ -24,7 +24,7 @@ describe Braintree::Transaction do
24
24
  :country_code_alpha2 => "BT",
25
25
  :country_code_alpha3 => "BTN",
26
26
  :country_code_numeric => "064"
27
- }
27
+ },
28
28
  )
29
29
  result.success?.should == true
30
30
 
@@ -34,7 +34,7 @@ describe Braintree::Transaction do
34
34
  :channel => "MyShoppingCartProvider",
35
35
  :options => {
36
36
  :submit_for_settlement => false
37
- }
37
+ },
38
38
  )
39
39
  clone_result.success?.should == true
40
40
 
@@ -67,7 +67,7 @@ describe Braintree::Transaction do
67
67
  :credit_card => {
68
68
  :number => "5105105105105100",
69
69
  :expiration_date => "05/2012"
70
- }
70
+ },
71
71
  )
72
72
 
73
73
  result.success?.should be(true)
@@ -84,7 +84,7 @@ describe Braintree::Transaction do
84
84
  :credit_card => {
85
85
  :number => Braintree::Test::CreditCardNumbers::Visa,
86
86
  :expiration_date => "05/2009"
87
- }
87
+ },
88
88
  )
89
89
  result = Braintree::Transaction.clone_transaction(transaction.id, :amount => "112.44")
90
90
  result.success?.should be(false)
@@ -100,7 +100,7 @@ describe Braintree::Transaction do
100
100
  :credit_card => {
101
101
  :number => Braintree::Test::CreditCardNumbers::Visa,
102
102
  :expiration_date => "05/2009"
103
- }
103
+ },
104
104
  )
105
105
  clone_transaction = Braintree::Transaction.clone_transaction!(transaction.id, :amount => "112.44", :options => {:submit_for_settlement => false})
106
106
  clone_transaction.id.should_not == transaction.id
@@ -112,7 +112,7 @@ describe Braintree::Transaction do
112
112
  :credit_card => {
113
113
  :number => Braintree::Test::CreditCardNumbers::Visa,
114
114
  :expiration_date => "05/2009"
115
- }
115
+ },
116
116
  )
117
117
  expect do
118
118
  clone_transaction = Braintree::Transaction.clone_transaction!(transaction.id, :amount => "im not a number")
@@ -123,26 +123,28 @@ describe Braintree::Transaction do
123
123
 
124
124
  describe "self.create" do
125
125
  describe "risk data" do
126
- it "returns decision, device_data_captured and id" do
127
- with_advanced_fraud_integration_merchant do
126
+ it "returns decision, device_data_captured, id, transaction_risk_score, and decision_reasons" do
127
+ with_fraud_protection_enterprise_merchant do
128
128
  result = Braintree::Transaction.create(
129
129
  :type => "sale",
130
130
  :amount => 1_00,
131
131
  :credit_card => {
132
132
  :number => Braintree::Test::CreditCardNumbers::CardTypeIndicators::Prepaid,
133
133
  :expiration_date => "05/2009"
134
- }
134
+ },
135
135
  )
136
136
  result.transaction.risk_data.should be_a(Braintree::RiskData)
137
- result.transaction.risk_data.should respond_to(:id)
138
- result.transaction.risk_data.should respond_to(:decision)
139
- result.transaction.risk_data.should respond_to(:device_data_captured)
140
- result.transaction.risk_data.should respond_to(:fraud_service_provider)
137
+ result.transaction.risk_data.id.should_not be_nil
138
+ result.transaction.risk_data.decision.should_not be_nil
139
+ result.transaction.risk_data.decision_reasons.should_not be_nil
140
+ expect(result.transaction.risk_data).to respond_to(:device_data_captured)
141
+ expect(result.transaction.risk_data).to respond_to(:fraud_service_provider)
142
+ expect(result.transaction.risk_data).to respond_to(:transaction_risk_score)
141
143
  end
142
144
  end
143
145
 
144
146
  it "handles validation errors for invalid risk data attributes" do
145
- with_advanced_fraud_integration_merchant do
147
+ with_advanced_fraud_kount_integration_merchant do
146
148
  result = Braintree::Transaction.create(
147
149
  :type => "sale",
148
150
  :amount => Braintree::Test::TransactionAmounts::Authorize,
@@ -156,7 +158,7 @@ describe Braintree::Transaction do
156
158
  :customer_ip => "192.168.0.1",
157
159
  :customer_location_zip => "not-a-$#phone",
158
160
  :customer_tenure => "20#{"0" * 500}"
159
- }
161
+ },
160
162
  )
161
163
  result.success?.should == false
162
164
  result.errors.for(:transaction).for(:risk_data).on(:customer_device_id).map { |e| e.code }.should include Braintree::ErrorCodes::RiskData::CustomerDeviceIdIsTooLong
@@ -174,7 +176,7 @@ describe Braintree::Transaction do
174
176
  :credit_card => {
175
177
  :number => Braintree::Test::CreditCardNumbers::CardTypeIndicators::Prepaid,
176
178
  :expiration_date => "05/2009"
177
- }
179
+ },
178
180
  )
179
181
  result.transaction.credit_card_details.prepaid.should == Braintree::CreditCard::Prepaid::Yes
180
182
  result.transaction.payment_instrument_type.should == Braintree::PaymentInstrumentType::CreditCard
@@ -250,7 +252,7 @@ describe Braintree::Transaction do
250
252
  },
251
253
  ],
252
254
  }
253
- }
255
+ },
254
256
  )
255
257
  result.success?.should be(true)
256
258
  end
@@ -277,15 +279,15 @@ describe Braintree::Transaction do
277
279
  },
278
280
  ],
279
281
  }
280
- }
282
+ },
281
283
  )
282
284
  result.success?.should be(false)
283
285
  invalid_folio = Braintree::ErrorCodes::Transaction::Industry::Lodging::FolioNumberIsInvalid
284
286
  check_out_date_must_follow_check_in_date = Braintree::ErrorCodes::Transaction::Industry::Lodging::CheckOutDateMustFollowCheckInDate
285
287
  room_rate_format_is_invalid = Braintree::ErrorCodes::Transaction::Industry::Lodging::RoomRateFormatIsInvalid
286
288
  invalid_additional_charge_kind = Braintree::ErrorCodes::Transaction::Industry::AdditionalCharge::KindIsInvalid
287
- result.errors.for(:transaction).for(:industry).map { |e| e.code }.sort.should include *[invalid_folio, check_out_date_must_follow_check_in_date, room_rate_format_is_invalid]
288
- result.errors.for(:transaction).for(:industry).for(:additional_charges).for(:index_0).on(:kind).map { |e| e.code }.sort.should include *[invalid_additional_charge_kind]
289
+ result.errors.for(:transaction).for(:industry).map { |e| e.code }.sort.should include(*[invalid_folio, check_out_date_must_follow_check_in_date, room_rate_format_is_invalid])
290
+ result.errors.for(:transaction).for(:industry).for(:additional_charges).for(:index_0).on(:kind).map { |e| e.code }.sort.should include(*[invalid_additional_charge_kind])
289
291
  end
290
292
  end
291
293
 
@@ -307,7 +309,7 @@ describe Braintree::Transaction do
307
309
  :lodging_check_out_date => "2014-07-07",
308
310
  :lodging_name => "Royal Caribbean",
309
311
  }
310
- }
312
+ },
311
313
  )
312
314
  result.success?.should be(true)
313
315
  end
@@ -325,7 +327,7 @@ describe Braintree::Transaction do
325
327
  :data => {
326
328
  :lodging_name => "Royal Caribbean"
327
329
  }
328
- }
330
+ },
329
331
  )
330
332
  result.success?.should be(false)
331
333
  result.errors.for(:transaction).for(:industry).map { |e| e.code }.sort.should == [Braintree::ErrorCodes::Transaction::Industry::TravelCruise::TravelPackageIsInvalid]
@@ -399,7 +401,7 @@ describe Braintree::Transaction do
399
401
  }
400
402
  ]
401
403
  }
402
- }
404
+ },
403
405
  )
404
406
  result.success?.should be(true)
405
407
  end
@@ -423,7 +425,7 @@ describe Braintree::Transaction do
423
425
  }
424
426
  ]
425
427
  }
426
- }
428
+ },
427
429
  )
428
430
  result.success?.should be(false)
429
431
  result.errors.for(:transaction).for(:industry).map { |e| e.code }.sort.should == [Braintree::ErrorCodes::Transaction::Industry::TravelFlight::FareAmountCannotBeNegative]
@@ -442,7 +444,7 @@ describe Braintree::Transaction do
442
444
  :number => Braintree::Test::CreditCardNumbers::Elo,
443
445
  :cvv => "737",
444
446
  :expiration_date => "10/2020"
445
- }
447
+ },
446
448
  )
447
449
  result.success?.should == true
448
450
  result.transaction.id.should =~ /^\w{6,}$/
@@ -464,7 +466,7 @@ describe Braintree::Transaction do
464
466
  :credit_card => {
465
467
  :number => Braintree::Test::CreditCardNumbers::Visa,
466
468
  :expiration_date => "05/2009"
467
- }
469
+ },
468
470
  )
469
471
  result.success?.should == true
470
472
  result.transaction.id.should =~ /^\w{6,}$/
@@ -490,7 +492,7 @@ describe Braintree::Transaction do
490
492
  :credit_card => {
491
493
  :number => Braintree::Test::CreditCardNumbers::Visa,
492
494
  :expiration_date => "05/2009"
493
- }
495
+ },
494
496
  )
495
497
  expect(result.success?).to eq(true)
496
498
  expect(result.transaction.type).to eq("sale")
@@ -512,7 +514,7 @@ describe Braintree::Transaction do
512
514
  oauth_gateway = Braintree::Gateway.new(
513
515
  :client_id => "client_id$#{Braintree::Configuration.environment}$integration_client_id",
514
516
  :client_secret => "client_secret$#{Braintree::Configuration.environment}$integration_client_secret",
515
- :logger => Logger.new("/dev/null")
517
+ :logger => Logger.new("/dev/null"),
516
518
  )
517
519
  access_token = Braintree::OAuthTestHelper.create_token(oauth_gateway, {
518
520
  :merchant_public_id => "integration_merchant_id",
@@ -521,7 +523,7 @@ describe Braintree::Transaction do
521
523
 
522
524
  gateway = Braintree::Gateway.new(
523
525
  :access_token => access_token,
524
- :logger => Logger.new("/dev/null")
526
+ :logger => Logger.new("/dev/null"),
525
527
  )
526
528
 
527
529
  result = gateway.transaction.create(
@@ -530,7 +532,7 @@ describe Braintree::Transaction do
530
532
  :credit_card => {
531
533
  :number => Braintree::Test::CreditCardNumbers::Visa,
532
534
  :expiration_date => "05/2009"
533
- }
535
+ },
534
536
  )
535
537
 
536
538
  result.success?.should == true
@@ -573,7 +575,7 @@ describe Braintree::Transaction do
573
575
  :customer_ip => "192.168.0.1",
574
576
  :customer_location_zip => "91244",
575
577
  :customer_tenure => "20",
576
- }
578
+ },
577
579
  )
578
580
 
579
581
  result.success?.should == true
@@ -583,7 +585,7 @@ describe Braintree::Transaction do
583
585
  result = Braintree::Customer.create()
584
586
  address_result = Braintree::Address.create(
585
587
  :customer_id => result.customer.id,
586
- :country_code_alpha2 => "US"
588
+ :country_code_alpha2 => "US",
587
589
  )
588
590
 
589
591
  result = Braintree::Transaction.create(
@@ -594,7 +596,7 @@ describe Braintree::Transaction do
594
596
  :credit_card => {
595
597
  :number => Braintree::Test::CreditCardNumbers::Visa,
596
598
  :expiration_date => "05/2009"
597
- }
599
+ },
598
600
  )
599
601
 
600
602
  result.success?.should == true
@@ -607,7 +609,7 @@ describe Braintree::Transaction do
607
609
  :credit_card => {
608
610
  :number => Braintree::Test::CreditCardNumbers::Visa,
609
611
  :expiration_date => "05/2009"
610
- }
612
+ },
611
613
  )
612
614
  result.success?.should == false
613
615
  result.transaction.id.should =~ /^\w{6,}$/
@@ -626,7 +628,7 @@ describe Braintree::Transaction do
626
628
  :credit_card => {
627
629
  :number => Braintree::Test::CreditCardNumbers::Visa,
628
630
  :expiration_date => "05/2009"
629
- }
631
+ },
630
632
  )
631
633
  result.success?.should == false
632
634
  result.transaction.id.should =~ /^\w{6,}$/
@@ -663,7 +665,7 @@ describe Braintree::Transaction do
663
665
  :options => {
664
666
  :add_billing_address_to_payment_method => true,
665
667
  :store_in_vault => true
666
- }
668
+ },
667
669
  )
668
670
  result.success?.should == true
669
671
  transaction = result.transaction
@@ -693,7 +695,7 @@ describe Braintree::Transaction do
693
695
  :billing => {
694
696
  :country_name => "Botswana",
695
697
  :country_code_alpha2 => "US",
696
- }
698
+ },
697
699
  )
698
700
 
699
701
  result.success?.should == false
@@ -709,7 +711,7 @@ describe Braintree::Transaction do
709
711
  },
710
712
  :billing => {
711
713
  :country_code_alpha2 => "ZZ"
712
- }
714
+ },
713
715
  )
714
716
 
715
717
  result.success?.should == false
@@ -726,7 +728,7 @@ describe Braintree::Transaction do
726
728
  },
727
729
  :billing => {
728
730
  :country_code_alpha3 => "ZZZ"
729
- }
731
+ },
730
732
  )
731
733
 
732
734
  result.success?.should == false
@@ -743,7 +745,7 @@ describe Braintree::Transaction do
743
745
  },
744
746
  :billing => {
745
747
  :country_code_numeric => "FOO"
746
- }
748
+ },
747
749
  )
748
750
 
749
751
  result.success?.should == false
@@ -774,7 +776,7 @@ describe Braintree::Transaction do
774
776
  },
775
777
  :shipping => {
776
778
  :phone_number => "123-234-3456=098765"
777
- }
779
+ },
778
780
  )
779
781
 
780
782
  result.success?.should == false
@@ -790,7 +792,7 @@ describe Braintree::Transaction do
790
792
  },
791
793
  :shipping => {
792
794
  :shipping_method => "urgent"
793
- }
795
+ },
794
796
  )
795
797
 
796
798
  result.success?.should == false
@@ -806,7 +808,7 @@ describe Braintree::Transaction do
806
808
  },
807
809
  :billing => {
808
810
  :phone_number => "123-234-3456=098765"
809
- }
811
+ },
810
812
  )
811
813
 
812
814
  result.success?.should == false
@@ -830,7 +832,7 @@ describe Braintree::Transaction do
830
832
  :number => Braintree::Test::CreditCardNumbers::Visa,
831
833
  :expiration_date => "05/2009",
832
834
  :cvv => "200"
833
- }
835
+ },
834
836
  )
835
837
  result.success?.should == false
836
838
  result.transaction.gateway_rejection_reason.should == Braintree::Transaction::GatewayRejectionReason::CVV
@@ -845,17 +847,17 @@ describe Braintree::Transaction do
845
847
  gateway = Braintree::Gateway.new(
846
848
  :client_id => "client_id$#{Braintree::Configuration.environment}$integration_client_id",
847
849
  :client_secret => "client_secret$#{Braintree::Configuration.environment}$integration_client_secret",
848
- :logger => Logger.new("/dev/null")
850
+ :logger => Logger.new("/dev/null"),
849
851
  )
850
852
  result = gateway.merchant.create(
851
853
  :email => "name@email.com",
852
854
  :country_code_alpha3 => "USA",
853
- :payment_methods => ["credit_card", "paypal"]
855
+ :payment_methods => ["credit_card", "paypal"],
854
856
  )
855
857
 
856
858
  gateway = Braintree::Gateway.new(
857
859
  :access_token => result.credentials.access_token,
858
- :logger => Logger.new("/dev/null")
860
+ :logger => Logger.new("/dev/null"),
859
861
  )
860
862
 
861
863
  result = gateway.transaction.create(
@@ -864,7 +866,7 @@ describe Braintree::Transaction do
864
866
  :credit_card => {
865
867
  :number => Braintree::Test::CreditCardNumbers::Visa,
866
868
  :expiration_date => "05/2020"
867
- }
869
+ },
868
870
  )
869
871
  result.success?.should == false
870
872
  result.transaction.gateway_rejection_reason.should == Braintree::Transaction::GatewayRejectionReason::ApplicationIncomplete
@@ -888,7 +890,7 @@ describe Braintree::Transaction do
888
890
  :credit_card => {
889
891
  :number => Braintree::Test::CreditCardNumbers::Visa,
890
892
  :expiration_date => "05/2009"
891
- }
893
+ },
892
894
  )
893
895
  result.success?.should == false
894
896
  result.transaction.gateway_rejection_reason.should == Braintree::Transaction::GatewayRejectionReason::AVS
@@ -918,7 +920,7 @@ describe Braintree::Transaction do
918
920
  :number => Braintree::Test::CreditCardNumbers::Visa,
919
921
  :expiration_date => "05/2009",
920
922
  :cvv => "200"
921
- }
923
+ },
922
924
  )
923
925
  result.success?.should == false
924
926
  result.transaction.gateway_rejection_reason.should == Braintree::Transaction::GatewayRejectionReason::AVSAndCVV
@@ -930,14 +932,14 @@ describe Braintree::Transaction do
930
932
  end
931
933
 
932
934
  it "exposes the fraud gateway rejection reason" do
933
- with_advanced_fraud_integration_merchant do
935
+ with_advanced_fraud_kount_integration_merchant do
934
936
  result = Braintree::Transaction.sale(
935
937
  :amount => Braintree::Test::TransactionAmounts::Authorize,
936
938
  :credit_card => {
937
939
  :number => Braintree::Test::CreditCardNumbers::Fraud,
938
940
  :expiration_date => "05/2017",
939
941
  :cvv => "333"
940
- }
942
+ },
941
943
  )
942
944
  result.success?.should == false
943
945
  result.transaction.gateway_rejection_reason.should == Braintree::Transaction::GatewayRejectionReason::Fraud
@@ -945,14 +947,14 @@ describe Braintree::Transaction do
945
947
  end
946
948
 
947
949
  it "exposes the risk_threshold gateway rejection reason (via test cc num)" do
948
- with_advanced_fraud_integration_merchant do
950
+ with_advanced_fraud_kount_integration_merchant do
949
951
  result = Braintree::Transaction.sale(
950
952
  :amount => Braintree::Test::TransactionAmounts::Authorize,
951
953
  :credit_card => {
952
954
  :number => Braintree::Test::CreditCardNumbers::RiskThreshold,
953
955
  :expiration_date => "05/2017",
954
956
  :cvv => "333"
955
- }
957
+ },
956
958
  )
957
959
  result.success?.should == false
958
960
  result.transaction.gateway_rejection_reason.should == Braintree::Transaction::GatewayRejectionReason::RiskThreshold
@@ -960,7 +962,7 @@ describe Braintree::Transaction do
960
962
  end
961
963
 
962
964
  it "exposes the risk_threshold gateway rejection reason (via test test nonce)" do
963
- with_advanced_fraud_integration_merchant do
965
+ with_advanced_fraud_kount_integration_merchant do
964
966
  result = Braintree::Transaction.sale(
965
967
  :amount => Braintree::Test::TransactionAmounts::Authorize,
966
968
  :payment_method_nonce => Braintree::Test::Nonce::GatewayRejectedRiskThresholds,
@@ -989,7 +991,7 @@ describe Braintree::Transaction do
989
991
  :number => Braintree::Test::CreditCardNumbers::Visa,
990
992
  :expiration_month => "05",
991
993
  :expiration_year => "2011"
992
- }
994
+ },
993
995
  )
994
996
  result.success?.should == true
995
997
  result.transaction.credit_card_details.expiration_month.should == "05"
@@ -1001,7 +1003,7 @@ describe Braintree::Transaction do
1001
1003
  result = Braintree::Transaction.create(
1002
1004
  :type => "sale",
1003
1005
  :amount => Braintree::Test::TransactionAmounts::Decline,
1004
- :customer_id => 123456789
1006
+ :customer_id => 123456789,
1005
1007
  )
1006
1008
  result.success?.should == false
1007
1009
  result.errors.for(:transaction).on(:customer_id)[0].code.should == "91510"
@@ -1018,7 +1020,7 @@ describe Braintree::Transaction do
1018
1020
  },
1019
1021
  :custom_fields => {
1020
1022
  :store_me => "custom value"
1021
- }
1023
+ },
1022
1024
  )
1023
1025
  result.success?.should == true
1024
1026
  result.transaction.custom_fields.should == {:store_me => "custom value"}
@@ -1033,7 +1035,7 @@ describe Braintree::Transaction do
1033
1035
  },
1034
1036
  :custom_fields => {
1035
1037
  :store_me => ""
1036
- }
1038
+ },
1037
1039
  )
1038
1040
 
1039
1041
  result = Braintree::Transaction.find(create_result.transaction.id)
@@ -1051,7 +1053,7 @@ describe Braintree::Transaction do
1051
1053
  },
1052
1054
  :custom_fields => {
1053
1055
  :invalid_key => "custom value"
1054
- }
1056
+ },
1055
1057
  )
1056
1058
  result.success?.should == false
1057
1059
  result.errors.for(:transaction).on(:custom_fields)[0].message.should == "Custom field is invalid: invalid_key."
@@ -1070,7 +1072,7 @@ describe Braintree::Transaction do
1070
1072
  }
1071
1073
  result = Braintree::Transaction.create(params[:transaction])
1072
1074
  result.success?.should == false
1073
- result.params.should == {:transaction => {:type => 'sale', :amount => nil, :credit_card => {:expiration_date => "05/2009"}}}
1075
+ result.params.should == {:transaction => {:type => "sale", :amount => nil, :credit_card => {:expiration_date => "05/2009"}}}
1074
1076
  end
1075
1077
 
1076
1078
  it "returns errors if validations fail (tests many errors at once for spec speed)" do
@@ -1090,7 +1092,7 @@ describe Braintree::Transaction do
1090
1092
  }
1091
1093
  result = Braintree::Transaction.create(params[:transaction])
1092
1094
  result.success?.should == false
1093
- result.errors.for(:transaction).on(:base).map{|error| error.code}.should include(Braintree::ErrorCodes::Transaction::PaymentMethodDoesNotBelongToCustomer)
1095
+ result.errors.for(:transaction).on(:base).map { |error| error.code }.should include(Braintree::ErrorCodes::Transaction::PaymentMethodDoesNotBelongToCustomer)
1094
1096
  result.errors.for(:transaction).on(:customer_id)[0].code.should == Braintree::ErrorCodes::Transaction::CustomerIdIsInvalid
1095
1097
  result.errors.for(:transaction).on(:payment_method_token)[0].code.should == Braintree::ErrorCodes::Transaction::PaymentMethodTokenIsInvalid
1096
1098
  result.errors.for(:transaction).on(:type)[0].code.should == Braintree::ErrorCodes::Transaction::TypeIsInvalid
@@ -1121,7 +1123,7 @@ describe Braintree::Transaction do
1121
1123
  :credit_card => {
1122
1124
  :account_type => "credit",
1123
1125
  }
1124
- }
1126
+ },
1125
1127
  )
1126
1128
  result.success?.should == false
1127
1129
  result.errors.for(:transaction).on(:amount)[0].code.should == Braintree::ErrorCodes::Transaction::AmountNotSupportedByProcessor
@@ -1165,13 +1167,13 @@ describe Braintree::Transaction do
1165
1167
  :credit_card => {
1166
1168
  :number => Braintree::Test::CreditCardNumbers::Visa,
1167
1169
  :expiration_date => "05/2010"
1168
- }
1170
+ },
1169
1171
  )
1170
1172
  result = Braintree::Transaction.create(
1171
1173
  :type => "sale",
1172
1174
  :amount => Braintree::Test::TransactionAmounts::Authorize,
1173
1175
  :customer_id => customer.id,
1174
- :payment_method_token => customer.credit_cards[0].token + "x"
1176
+ :payment_method_token => customer.credit_cards[0].token + "x",
1175
1177
  )
1176
1178
  result.success?.should == false
1177
1179
  result.errors.for(:transaction).on(:base)[0].code.should == Braintree::ErrorCodes::Transaction::PaymentMethodDoesNotBelongToCustomer
@@ -1183,7 +1185,7 @@ describe Braintree::Transaction do
1183
1185
  :credit_card => {
1184
1186
  :number => Braintree::Test::CreditCardNumbers::Visa,
1185
1187
  :expiration_date => "05/2010"
1186
- }
1188
+ },
1187
1189
  )
1188
1190
  result = Braintree::Transaction.create(
1189
1191
  :type => "sale",
@@ -1192,7 +1194,7 @@ describe Braintree::Transaction do
1192
1194
  :credit_card => {
1193
1195
  :number => Braintree::Test::CreditCardNumbers::Visa,
1194
1196
  :expiration_date => "12/12"
1195
- }
1197
+ },
1196
1198
  )
1197
1199
  result.success?.should == true
1198
1200
  result.transaction.credit_card_details.masked_number.should == "401288******1881"
@@ -1204,7 +1206,7 @@ describe Braintree::Transaction do
1204
1206
  :credit_card => {
1205
1207
  :number => Braintree::Test::CreditCardNumbers::Visa,
1206
1208
  :expiration_date => "05/2010"
1207
- }
1209
+ },
1208
1210
  )
1209
1211
  result = Braintree::Transaction.create(
1210
1212
  :type => "sale",
@@ -1214,7 +1216,7 @@ describe Braintree::Transaction do
1214
1216
  :number => Braintree::Test::CreditCardNumbers::Visa,
1215
1217
  :expiration_date => "12/12",
1216
1218
  },
1217
- :options => { :store_in_vault => true }
1219
+ :options => {:store_in_vault => true},
1218
1220
  )
1219
1221
  result.success?.should == true
1220
1222
  result.transaction.credit_card_details.masked_number.should == "401288******1881"
@@ -1228,7 +1230,7 @@ describe Braintree::Transaction do
1228
1230
  :credit_card => {
1229
1231
  :number => Braintree::Test::CreditCardNumbers::Visa,
1230
1232
  :expiration_date => "05/2010"
1231
- }
1233
+ },
1232
1234
  )
1233
1235
 
1234
1236
  result = Braintree::Subscription.create(
@@ -1259,7 +1261,7 @@ describe Braintree::Transaction do
1259
1261
  :never_expires => true
1260
1262
  }
1261
1263
  ]
1262
- }
1264
+ },
1263
1265
  )
1264
1266
 
1265
1267
  result.success?.should be(true)
@@ -1300,15 +1302,15 @@ describe Braintree::Transaction do
1300
1302
  :expiration_date => "05/2009"
1301
1303
  },
1302
1304
  :descriptor => {
1303
- :name => '123*123456789012345678',
1304
- :phone => '3334445555',
1305
+ :name => "123*123456789012345678",
1306
+ :phone => "3334445555",
1305
1307
  :url => "ebay.com"
1306
- }
1308
+ },
1307
1309
  )
1308
1310
  result.success?.should == true
1309
- result.transaction.descriptor.name.should == '123*123456789012345678'
1310
- result.transaction.descriptor.phone.should == '3334445555'
1311
- result.transaction.descriptor.url.should == 'ebay.com'
1311
+ result.transaction.descriptor.name.should == "123*123456789012345678"
1312
+ result.transaction.descriptor.phone.should == "3334445555"
1313
+ result.transaction.descriptor.url.should == "ebay.com"
1312
1314
  end
1313
1315
 
1314
1316
  it "has validation errors if format is invalid" do
@@ -1319,10 +1321,10 @@ describe Braintree::Transaction do
1319
1321
  :expiration_date => "05/2009"
1320
1322
  },
1321
1323
  :descriptor => {
1322
- :name => 'badcompanyname12*badproduct12',
1323
- :phone => '%bad4445555',
1324
- :url => '12345678901234'
1325
- }
1324
+ :name => "badcompanyname12*badproduct12",
1325
+ :phone => "%bad4445555",
1326
+ :url => "12345678901234"
1327
+ },
1326
1328
  )
1327
1329
  result.success?.should == false
1328
1330
  result.errors.for(:transaction).for(:descriptor).on(:name)[0].code.should == Braintree::ErrorCodes::Descriptor::NameFormatIsInvalid
@@ -1339,14 +1341,14 @@ describe Braintree::Transaction do
1339
1341
  :number => Braintree::Test::CreditCardNumbers::Visa,
1340
1342
  :expiration_date => "05/2009"
1341
1343
  },
1342
- :tax_amount => '0.05',
1344
+ :tax_amount => "0.05",
1343
1345
  :tax_exempt => false,
1344
- :purchase_order_number => '12345678901234567'
1346
+ :purchase_order_number => "12345678901234567",
1345
1347
  )
1346
1348
  result.success?.should == true
1347
1349
  result.transaction.tax_amount.should == BigDecimal("0.05")
1348
1350
  result.transaction.tax_exempt.should == false
1349
- result.transaction.purchase_order_number.should == '12345678901234567'
1351
+ result.transaction.purchase_order_number.should == "12345678901234567"
1350
1352
  end
1351
1353
 
1352
1354
  it "accepts tax_amount as a BigDecimal" do
@@ -1356,8 +1358,8 @@ describe Braintree::Transaction do
1356
1358
  :number => Braintree::Test::CreditCardNumbers::Visa,
1357
1359
  :expiration_date => "05/2009"
1358
1360
  },
1359
- :tax_amount => BigDecimal('1.99'),
1360
- :tax_exempt => true
1361
+ :tax_amount => BigDecimal("1.99"),
1362
+ :tax_exempt => true,
1361
1363
  )
1362
1364
  result.success?.should == true
1363
1365
  result.transaction.tax_amount.should == BigDecimal("1.99")
@@ -1373,7 +1375,7 @@ describe Braintree::Transaction do
1373
1375
  :number => Braintree::Test::CreditCardNumbers::Visa,
1374
1376
  :expiration_date => "05/2009"
1375
1377
  },
1376
- :tax_amount => 'abcd'
1378
+ :tax_amount => "abcd",
1377
1379
  )
1378
1380
  result.success?.should == false
1379
1381
  result.errors.for(:transaction).on(:tax_amount)[0].code.should == Braintree::ErrorCodes::Transaction::TaxAmountFormatIsInvalid
@@ -1386,7 +1388,7 @@ describe Braintree::Transaction do
1386
1388
  :number => Braintree::Test::CreditCardNumbers::Visa,
1387
1389
  :expiration_date => "05/2009"
1388
1390
  },
1389
- :purchase_order_number => 'a' * 18
1391
+ :purchase_order_number => "a" * 18,
1390
1392
  )
1391
1393
  result.success?.should == false
1392
1394
  result.errors.for(:transaction).on(:purchase_order_number)[0].code.should == Braintree::ErrorCodes::Transaction::PurchaseOrderNumberIsTooLong
@@ -1399,7 +1401,7 @@ describe Braintree::Transaction do
1399
1401
  :number => Braintree::Test::CreditCardNumbers::Visa,
1400
1402
  :expiration_date => "05/2009"
1401
1403
  },
1402
- :purchase_order_number => "\303\237\303\245\342\210\202"
1404
+ :purchase_order_number => "\303\237\303\245\342\210\202",
1403
1405
  )
1404
1406
  result.success?.should == false
1405
1407
  result.errors.for(:transaction).on(:purchase_order_number)[0].code.should == Braintree::ErrorCodes::Transaction::PurchaseOrderNumberIsInvalid
@@ -1416,7 +1418,7 @@ describe Braintree::Transaction do
1416
1418
  :number => Braintree::Test::CreditCardNumbers::Visa,
1417
1419
  :expiration_date => "12/12",
1418
1420
  },
1419
- :transaction_source => "recurring_first"
1421
+ :transaction_source => "recurring_first",
1420
1422
  )
1421
1423
  result.success?.should == true
1422
1424
  result.transaction.recurring.should == true
@@ -1430,7 +1432,7 @@ describe Braintree::Transaction do
1430
1432
  :number => Braintree::Test::CreditCardNumbers::Visa,
1431
1433
  :expiration_date => "12/12",
1432
1434
  },
1433
- :transaction_source => "recurring"
1435
+ :transaction_source => "recurring",
1434
1436
  )
1435
1437
  result.success?.should == true
1436
1438
  result.transaction.recurring.should == true
@@ -1444,7 +1446,7 @@ describe Braintree::Transaction do
1444
1446
  :number => Braintree::Test::CreditCardNumbers::Visa,
1445
1447
  :expiration_date => "12/12",
1446
1448
  },
1447
- :transaction_source => "merchant"
1449
+ :transaction_source => "merchant",
1448
1450
  )
1449
1451
  result.success?.should == true
1450
1452
  result.transaction.recurring.should == false
@@ -1458,7 +1460,7 @@ describe Braintree::Transaction do
1458
1460
  :number => Braintree::Test::CreditCardNumbers::Visa,
1459
1461
  :expiration_date => "12/12",
1460
1462
  },
1461
- :transaction_source => "moto"
1463
+ :transaction_source => "moto",
1462
1464
  )
1463
1465
  result.success?.should == true
1464
1466
  result.transaction.recurring.should == false
@@ -1472,7 +1474,7 @@ describe Braintree::Transaction do
1472
1474
  :number => Braintree::Test::CreditCardNumbers::Visa,
1473
1475
  :expiration_date => "12/12",
1474
1476
  },
1475
- :transaction_source => "invalid_value"
1477
+ :transaction_source => "invalid_value",
1476
1478
  )
1477
1479
  result.success?.should == false
1478
1480
  result.errors.for(:transaction).on(:transaction_source)[0].code.should == Braintree::ErrorCodes::Transaction::TransactionSourceIsInvalid
@@ -1492,7 +1494,7 @@ describe Braintree::Transaction do
1492
1494
  :number => Braintree::Test::CreditCardNumbers::Visa,
1493
1495
  :expiration_date => "12/12",
1494
1496
  },
1495
- :options => { :store_in_vault_on_success => true }
1497
+ :options => {:store_in_vault_on_success => true},
1496
1498
  )
1497
1499
  result.success?.should == true
1498
1500
  result.transaction.vault_customer.last_name.should == "Doe"
@@ -1511,7 +1513,7 @@ describe Braintree::Transaction do
1511
1513
  :number => Braintree::Test::CreditCardNumbers::Visa,
1512
1514
  :expiration_date => "12/12",
1513
1515
  },
1514
- :options => { :store_in_vault_on_success => true }
1516
+ :options => {:store_in_vault_on_success => true},
1515
1517
  )
1516
1518
  result.success?.should == false
1517
1519
  result.transaction.vault_customer.should be_nil
@@ -1531,7 +1533,7 @@ describe Braintree::Transaction do
1531
1533
  :number => Braintree::Test::CreditCardNumbers::Visa,
1532
1534
  :expiration_date => "12/12",
1533
1535
  },
1534
- :options => { :store_in_vault_on_success => false }
1536
+ :options => {:store_in_vault_on_success => false},
1535
1537
  )
1536
1538
  result.success?.should == true
1537
1539
  result.transaction.vault_customer.should be_nil
@@ -1549,7 +1551,7 @@ describe Braintree::Transaction do
1549
1551
  :number => Braintree::Test::CreditCardNumbers::Visa,
1550
1552
  :expiration_date => "12/12",
1551
1553
  },
1552
- :options => { :store_in_vault_on_success => false }
1554
+ :options => {:store_in_vault_on_success => false},
1553
1555
  )
1554
1556
  result.success?.should == false
1555
1557
  result.transaction.vault_customer.should be_nil
@@ -1568,7 +1570,7 @@ describe Braintree::Transaction do
1568
1570
  :number => Braintree::Test::CreditCardNumbers::Visa,
1569
1571
  :expiration_date => "12/12",
1570
1572
  },
1571
- :service_fee_amount => "1.00"
1573
+ :service_fee_amount => "1.00",
1572
1574
  )
1573
1575
  result.success?.should == true
1574
1576
  result.transaction.service_fee_amount.should == BigDecimal("1.00")
@@ -1583,7 +1585,7 @@ describe Braintree::Transaction do
1583
1585
  :number => Braintree::Test::CreditCardNumbers::Visa,
1584
1586
  :expiration_date => "12/12",
1585
1587
  },
1586
- :service_fee_amount => "1.00"
1588
+ :service_fee_amount => "1.00",
1587
1589
  )
1588
1590
  result.success?.should == false
1589
1591
  expected_error_code = Braintree::ErrorCodes::Transaction::ServiceFeeAmountNotAllowedOnMasterMerchantAccount
@@ -1598,7 +1600,7 @@ describe Braintree::Transaction do
1598
1600
  :credit_card => {
1599
1601
  :number => Braintree::Test::CreditCardNumbers::Visa,
1600
1602
  :expiration_date => "12/12",
1601
- }
1603
+ },
1602
1604
  )
1603
1605
  result.success?.should == false
1604
1606
  expected_error_code = Braintree::ErrorCodes::Transaction::SubMerchantAccountRequiresServiceFeeAmount
@@ -1608,7 +1610,7 @@ describe Braintree::Transaction do
1608
1610
  it "raises an error if service fee amount is negative" do
1609
1611
  result = Braintree::Transaction.create(
1610
1612
  :merchant_account_id => SpecHelper::NonDefaultSubMerchantAccountId,
1611
- :service_fee_amount => "-1.00"
1613
+ :service_fee_amount => "-1.00",
1612
1614
  )
1613
1615
  result.success?.should == false
1614
1616
  result.errors.for(:transaction).on(:service_fee_amount)[0].code.should == Braintree::ErrorCodes::Transaction::ServiceFeeAmountCannotBeNegative
@@ -1617,7 +1619,7 @@ describe Braintree::Transaction do
1617
1619
  it "raises an error if service fee amount is invalid" do
1618
1620
  result = Braintree::Transaction.create(
1619
1621
  :merchant_account_id => SpecHelper::NonDefaultSubMerchantAccountId,
1620
- :service_fee_amount => "invalid amount"
1622
+ :service_fee_amount => "invalid amount",
1621
1623
  )
1622
1624
  result.success?.should == false
1623
1625
  result.errors.for(:transaction).on(:service_fee_amount)[0].code.should == Braintree::ErrorCodes::Transaction::ServiceFeeAmountFormatIsInvalid
@@ -1635,7 +1637,7 @@ describe Braintree::Transaction do
1635
1637
  :expiration_date => "12/12",
1636
1638
  },
1637
1639
  :service_fee_amount => "10.00",
1638
- :options => {:hold_in_escrow => true}
1640
+ :options => {:hold_in_escrow => true},
1639
1641
  )
1640
1642
 
1641
1643
  result.success?.should == true
@@ -1652,7 +1654,7 @@ describe Braintree::Transaction do
1652
1654
  :expiration_date => "12/12",
1653
1655
  },
1654
1656
  :service_fee_amount => "1.00",
1655
- :options => {:hold_in_escrow => true}
1657
+ :options => {:hold_in_escrow => true},
1656
1658
  )
1657
1659
  result.success?.should == false
1658
1660
  expected_error_code = Braintree::ErrorCodes::Transaction::CannotHoldInEscrow
@@ -1665,7 +1667,7 @@ describe Braintree::Transaction do
1665
1667
  result = Braintree::Transaction.create(
1666
1668
  :type => "sale",
1667
1669
  :amount => Braintree::Test::TransactionAmounts::Authorize,
1668
- :venmo_sdk_payment_method_code => Braintree::Test::VenmoSDK::VisaPaymentMethodCode
1670
+ :venmo_sdk_payment_method_code => Braintree::Test::VenmoSDK::VisaPaymentMethodCode,
1669
1671
  )
1670
1672
  result.success?.should == true
1671
1673
  result.transaction.credit_card_details.bin.should == "400934"
@@ -1682,7 +1684,7 @@ describe Braintree::Transaction do
1682
1684
  },
1683
1685
  :options => {
1684
1686
  :venmo_sdk_session => Braintree::Test::VenmoSDK::Session
1685
- }
1687
+ },
1686
1688
  )
1687
1689
  result.success?.should == true
1688
1690
  result.transaction.credit_card_details.venmo_sdk?.should == false
@@ -1697,14 +1699,14 @@ describe Braintree::Transaction do
1697
1699
  :expiration_month => "11",
1698
1700
  :expiration_year => "2099",
1699
1701
  },
1700
- :share => true
1702
+ :share => true,
1701
1703
  )
1702
1704
  nonce.should_not be_nil
1703
1705
 
1704
1706
  result = Braintree::Transaction.create(
1705
1707
  :type => "sale",
1706
1708
  :amount => Braintree::Test::TransactionAmounts::Authorize,
1707
- :payment_method_nonce => nonce
1709
+ :payment_method_nonce => nonce,
1708
1710
  )
1709
1711
  result.success?.should == true
1710
1712
  end
@@ -1719,14 +1721,14 @@ describe Braintree::Transaction do
1719
1721
  },
1720
1722
  :client_token_options => {
1721
1723
  :customer_id => customer.id,
1722
- }
1724
+ },
1723
1725
  )
1724
1726
  nonce.should_not be_nil
1725
1727
 
1726
1728
  result = Braintree::Transaction.create(
1727
1729
  :type => "sale",
1728
1730
  :amount => Braintree::Test::TransactionAmounts::Authorize,
1729
- :payment_method_nonce => nonce
1731
+ :payment_method_nonce => nonce,
1730
1732
  )
1731
1733
  result.success?.should == true
1732
1734
  end
@@ -1739,14 +1741,14 @@ describe Braintree::Transaction do
1739
1741
  },
1740
1742
  :client_token_options => {
1741
1743
  :customer_id => customer.id,
1742
- }
1744
+ },
1743
1745
  )
1744
1746
  nonce.should_not be_nil
1745
1747
 
1746
1748
  result = Braintree::Transaction.create(
1747
1749
  :type => "sale",
1748
1750
  :amount => Braintree::Test::TransactionAmounts::Authorize,
1749
- :payment_method_nonce => nonce
1751
+ :payment_method_nonce => nonce,
1750
1752
  )
1751
1753
  result.success?.should == true
1752
1754
  result.transaction.paypal_details.should_not be_nil
@@ -1758,14 +1760,14 @@ describe Braintree::Transaction do
1758
1760
  nonce = nonce_for_new_payment_method(
1759
1761
  :paypal_account => {
1760
1762
  :consent_code => "PAYPAL_CONSENT_CODE",
1761
- }
1763
+ },
1762
1764
  )
1763
1765
  nonce.should_not be_nil
1764
1766
 
1765
1767
  result = Braintree::Transaction.create(
1766
1768
  :type => "sale",
1767
1769
  :amount => Braintree::Test::TransactionAmounts::Authorize,
1768
- :payment_method_nonce => nonce
1770
+ :payment_method_nonce => nonce,
1769
1771
  )
1770
1772
  result.success?.should == true
1771
1773
  result.transaction.paypal_details.should_not be_nil
@@ -1777,7 +1779,7 @@ describe Braintree::Transaction do
1777
1779
  result = Braintree::Transaction.create(
1778
1780
  :type => "sale",
1779
1781
  :amount => Braintree::Test::TransactionAmounts::Authorize,
1780
- :payment_method_nonce => Braintree::Test::Nonce::ApplePayVisa
1782
+ :payment_method_nonce => Braintree::Test::Nonce::ApplePayVisa,
1781
1783
  )
1782
1784
  result.success?.should == true
1783
1785
  result.transaction.should_not be_nil
@@ -1807,7 +1809,7 @@ describe Braintree::Transaction do
1807
1809
  :type => "sale",
1808
1810
  :amount => Braintree::Test::TransactionAmounts::Authorize,
1809
1811
  :payment_method_nonce => Braintree::Test::Nonce::ApplePayVisa,
1810
- :options => { :store_in_vault_on_success => true }
1812
+ :options => {:store_in_vault_on_success => true},
1811
1813
  )
1812
1814
  result.success?.should == true
1813
1815
  result.transaction.should_not be_nil
@@ -1828,7 +1830,7 @@ describe Braintree::Transaction do
1828
1830
  result = Braintree::Transaction.create(
1829
1831
  :type => "sale",
1830
1832
  :amount => Braintree::Test::TransactionAmounts::Authorize,
1831
- :payment_method_nonce => Braintree::Test::Nonce::GooglePayDiscover
1833
+ :payment_method_nonce => Braintree::Test::Nonce::GooglePayDiscover,
1832
1834
  )
1833
1835
  result.success?.should == true
1834
1836
  result.transaction.should_not be_nil
@@ -1861,7 +1863,7 @@ describe Braintree::Transaction do
1861
1863
  :type => "sale",
1862
1864
  :amount => Braintree::Test::TransactionAmounts::Authorize,
1863
1865
  :payment_method_nonce => Braintree::Test::Nonce::GooglePayDiscover,
1864
- :options => { :store_in_vault_on_success => true }
1866
+ :options => {:store_in_vault_on_success => true},
1865
1867
  )
1866
1868
  result.success?.should == true
1867
1869
  result.transaction.should_not be_nil
@@ -1885,7 +1887,7 @@ describe Braintree::Transaction do
1885
1887
  result = Braintree::Transaction.create(
1886
1888
  :type => "sale",
1887
1889
  :amount => Braintree::Test::TransactionAmounts::Authorize,
1888
- :payment_method_nonce => Braintree::Test::Nonce::GooglePayMasterCard
1890
+ :payment_method_nonce => Braintree::Test::Nonce::GooglePayMasterCard,
1889
1891
  )
1890
1892
  result.success?.should == true
1891
1893
  result.transaction.should_not be_nil
@@ -1908,7 +1910,7 @@ describe Braintree::Transaction do
1908
1910
  :merchant_account_id => SpecHelper::FakeVenmoAccountMerchantAccountId,
1909
1911
  :amount => Braintree::Test::TransactionAmounts::Authorize,
1910
1912
  :payment_method_nonce => Braintree::Test::Nonce::VenmoAccount,
1911
- :options => {:store_in_vault => true}
1913
+ :options => {:store_in_vault => true},
1912
1914
  )
1913
1915
  result.should be_success
1914
1916
 
@@ -1928,7 +1930,7 @@ describe Braintree::Transaction do
1928
1930
  :merchant_account_id => SpecHelper::FakeVenmoAccountMerchantAccountId,
1929
1931
  :amount => Braintree::Test::TransactionAmounts::Authorize,
1930
1932
  :payment_method_nonce => Braintree::Test::Nonce::VenmoAccount,
1931
- :options => {:store_in_vault => true, :venmo => {:profile_id => "integration_venmo_merchant_public_id" }}
1933
+ :options => {:store_in_vault => true, :venmo => {:profile_id => "integration_venmo_merchant_public_id"}},
1932
1934
  )
1933
1935
  result.should be_success
1934
1936
  end
@@ -1938,7 +1940,7 @@ describe Braintree::Transaction do
1938
1940
  result = Braintree::Transaction.create(
1939
1941
  :type => "sale",
1940
1942
  :amount => Braintree::Test::TransactionAmounts::Authorize,
1941
- :payment_method_nonce => Braintree::Test::Nonce::AbstractTransactable
1943
+ :payment_method_nonce => Braintree::Test::Nonce::AbstractTransactable,
1942
1944
  )
1943
1945
  result.success?.should == true
1944
1946
  result.transaction.should_not be_nil
@@ -1953,7 +1955,7 @@ describe Braintree::Transaction do
1953
1955
  :paypal_account => {
1954
1956
  :payer_id => "PAYER-1234",
1955
1957
  :payment_id => "PAY-5678",
1956
- }
1958
+ },
1957
1959
  )
1958
1960
 
1959
1961
  result.success?.should == true
@@ -1967,7 +1969,7 @@ describe Braintree::Transaction do
1967
1969
  nonce = nonce_for_new_payment_method(
1968
1970
  :paypal_account => {
1969
1971
  :consent_code => "PAYPAL_CONSENT_CODE",
1970
- }
1972
+ },
1971
1973
  )
1972
1974
  nonce.should_not be_nil
1973
1975
 
@@ -1977,7 +1979,7 @@ describe Braintree::Transaction do
1977
1979
  :payment_method_nonce => nonce,
1978
1980
  :paypal_account => {
1979
1981
  :payee_id => "fake-payee-id"
1980
- }
1982
+ },
1981
1983
  )
1982
1984
 
1983
1985
  result.success?.should == true
@@ -1991,7 +1993,7 @@ describe Braintree::Transaction do
1991
1993
  nonce = nonce_for_new_payment_method(
1992
1994
  :paypal_account => {
1993
1995
  :consent_code => "PAYPAL_CONSENT_CODE",
1994
- }
1996
+ },
1995
1997
  )
1996
1998
  nonce.should_not be_nil
1997
1999
 
@@ -2002,7 +2004,7 @@ describe Braintree::Transaction do
2002
2004
  :paypal_account => {},
2003
2005
  :options => {
2004
2006
  :payee_id => "fake-payee-id"
2005
- }
2007
+ },
2006
2008
  )
2007
2009
 
2008
2010
  result.success?.should == true
@@ -2016,7 +2018,7 @@ describe Braintree::Transaction do
2016
2018
  nonce = nonce_for_new_payment_method(
2017
2019
  :paypal_account => {
2018
2020
  :consent_code => "PAYPAL_CONSENT_CODE",
2019
- }
2021
+ },
2020
2022
  )
2021
2023
  nonce.should_not be_nil
2022
2024
 
@@ -2028,7 +2030,7 @@ describe Braintree::Transaction do
2028
2030
  :paypal => {
2029
2031
  :payee_id => "fake-payee-id"
2030
2032
  }
2031
- }
2033
+ },
2032
2034
  )
2033
2035
 
2034
2036
  result.success?.should == true
@@ -2042,7 +2044,7 @@ describe Braintree::Transaction do
2042
2044
  nonce = nonce_for_new_payment_method(
2043
2045
  :paypal_account => {
2044
2046
  :consent_code => "PAYPAL_CONSENT_CODE",
2045
- }
2047
+ },
2046
2048
  )
2047
2049
  nonce.should_not be_nil
2048
2050
 
@@ -2052,7 +2054,7 @@ describe Braintree::Transaction do
2052
2054
  :payment_method_nonce => nonce,
2053
2055
  :paypal_account => {
2054
2056
  :payee_email => "bt_seller_us@paypal.com"
2055
- }
2057
+ },
2056
2058
  )
2057
2059
 
2058
2060
  result.success?.should == true
@@ -2066,7 +2068,7 @@ describe Braintree::Transaction do
2066
2068
  nonce = nonce_for_new_payment_method(
2067
2069
  :paypal_account => {
2068
2070
  :consent_code => "PAYPAL_CONSENT_CODE",
2069
- }
2071
+ },
2070
2072
  )
2071
2073
  nonce.should_not be_nil
2072
2074
 
@@ -2077,7 +2079,7 @@ describe Braintree::Transaction do
2077
2079
  :paypal_account => {},
2078
2080
  :options => {
2079
2081
  :payee_email => "bt_seller_us@paypal.com"
2080
- }
2082
+ },
2081
2083
  )
2082
2084
 
2083
2085
  result.success?.should == true
@@ -2091,7 +2093,7 @@ describe Braintree::Transaction do
2091
2093
  nonce = nonce_for_new_payment_method(
2092
2094
  :paypal_account => {
2093
2095
  :consent_code => "PAYPAL_CONSENT_CODE",
2094
- }
2096
+ },
2095
2097
  )
2096
2098
  nonce.should_not be_nil
2097
2099
 
@@ -2103,7 +2105,7 @@ describe Braintree::Transaction do
2103
2105
  :paypal => {
2104
2106
  :payee_email => "bt_seller_us@paypal.com"
2105
2107
  }
2106
- }
2108
+ },
2107
2109
  )
2108
2110
 
2109
2111
  result.success?.should == true
@@ -2117,7 +2119,7 @@ describe Braintree::Transaction do
2117
2119
  nonce = nonce_for_new_payment_method(
2118
2120
  :paypal_account => {
2119
2121
  :consent_code => "PAYPAL_CONSENT_CODE",
2120
- }
2122
+ },
2121
2123
  )
2122
2124
  nonce.should_not be_nil
2123
2125
 
@@ -2129,7 +2131,7 @@ describe Braintree::Transaction do
2129
2131
  :paypal => {
2130
2132
  :custom_field => "Additional info"
2131
2133
  }
2132
- }
2134
+ },
2133
2135
  )
2134
2136
 
2135
2137
  result.success?.should == true
@@ -2143,7 +2145,7 @@ describe Braintree::Transaction do
2143
2145
  nonce = nonce_for_new_payment_method(
2144
2146
  :paypal_account => {
2145
2147
  :consent_code => "PAYPAL_CONSENT_CODE",
2146
- }
2148
+ },
2147
2149
  )
2148
2150
  nonce.should_not be_nil
2149
2151
 
@@ -2155,7 +2157,7 @@ describe Braintree::Transaction do
2155
2157
  :paypal => {
2156
2158
  :description => "A great product"
2157
2159
  }
2158
- }
2160
+ },
2159
2161
  )
2160
2162
 
2161
2163
  result.success?.should == true
@@ -2169,7 +2171,7 @@ describe Braintree::Transaction do
2169
2171
  nonce = nonce_for_new_payment_method(
2170
2172
  :paypal_account => {
2171
2173
  :consent_code => "PAYPAL_CONSENT_CODE",
2172
- }
2174
+ },
2173
2175
  )
2174
2176
  nonce.should_not be_nil
2175
2177
 
@@ -2184,7 +2186,7 @@ describe Braintree::Transaction do
2184
2186
  :key2 => "value2",
2185
2187
  }
2186
2188
  }
2187
- }
2189
+ },
2188
2190
  )
2189
2191
 
2190
2192
  # note - supplementary data is not returned in response
@@ -2198,7 +2200,7 @@ describe Braintree::Transaction do
2198
2200
  SpecHelper::ThreeDSecureMerchantAccountId,
2199
2201
  :number => Braintree::Test::CreditCardNumbers::Visa,
2200
2202
  :expiration_month => "12",
2201
- :expiration_year => "2012"
2203
+ :expiration_year => "2012",
2202
2204
  )
2203
2205
 
2204
2206
  result = Braintree::Transaction.create(
@@ -2209,7 +2211,7 @@ describe Braintree::Transaction do
2209
2211
  :number => Braintree::Test::CreditCardNumbers::Visa,
2210
2212
  :expiration_date => "12/12",
2211
2213
  },
2212
- :three_d_secure_token => three_d_secure_token
2214
+ :three_d_secure_token => three_d_secure_token,
2213
2215
  )
2214
2216
 
2215
2217
  result.success?.should == true
@@ -2221,7 +2223,7 @@ describe Braintree::Transaction do
2221
2223
  :number => "4111111111111111",
2222
2224
  :expiration_month => "11",
2223
2225
  :expiration_year => "2099",
2224
- }
2226
+ },
2225
2227
  )
2226
2228
  nonce.should_not be_nil
2227
2229
  result = Braintree::Transaction.create(
@@ -2233,7 +2235,7 @@ describe Braintree::Transaction do
2233
2235
  :three_d_secure => {
2234
2236
  :required => true,
2235
2237
  }
2236
- }
2238
+ },
2237
2239
  )
2238
2240
 
2239
2241
  result.success?.should == false
@@ -2249,7 +2251,7 @@ describe Braintree::Transaction do
2249
2251
  :credit_card => {
2250
2252
  :number => Braintree::Test::CreditCardNumbers::Visa,
2251
2253
  :expiration_date => "12/12",
2252
- }
2254
+ },
2253
2255
  )
2254
2256
  result.success?.should == true
2255
2257
  end
@@ -2260,7 +2262,7 @@ describe Braintree::Transaction do
2260
2262
  SpecHelper::ThreeDSecureMerchantAccountId,
2261
2263
  :number => Braintree::Test::CreditCardNumbers::Visa,
2262
2264
  :expiration_month => "12",
2263
- :expiration_year => "2022"
2265
+ :expiration_year => "2022",
2264
2266
  )
2265
2267
 
2266
2268
  result = Braintree::Transaction.create(
@@ -2271,7 +2273,7 @@ describe Braintree::Transaction do
2271
2273
  :number => Braintree::Test::CreditCardNumbers::Visa,
2272
2274
  :expiration_date => "12/22",
2273
2275
  },
2274
- :three_d_secure_authentication_id => three_d_secure_authentication_id
2276
+ :three_d_secure_authentication_id => three_d_secure_authentication_id,
2275
2277
  )
2276
2278
 
2277
2279
  result.success?.should == true
@@ -2285,7 +2287,7 @@ describe Braintree::Transaction do
2285
2287
  :number => Braintree::Test::CreditCardNumbers::Visa,
2286
2288
  :expiration_date => "12/12",
2287
2289
  },
2288
- :three_d_secure_authentication_id => nil
2290
+ :three_d_secure_authentication_id => nil,
2289
2291
  )
2290
2292
  result.success?.should == false
2291
2293
  result.errors.for(:transaction).on(:three_d_secure_authentication_id)[0].code.should == Braintree::ErrorCodes::Transaction::ThreeDSecureAuthenticationIdIsInvalid
@@ -2295,7 +2297,7 @@ describe Braintree::Transaction do
2295
2297
  SpecHelper::ThreeDSecureMerchantAccountId,
2296
2298
  :number => Braintree::Test::CreditCardNumbers::Visa,
2297
2299
  :expiration_month => "12",
2298
- :expiration_year => "2012"
2300
+ :expiration_year => "2012",
2299
2301
  )
2300
2302
 
2301
2303
  result = Braintree::Transaction.create(
@@ -2305,7 +2307,7 @@ describe Braintree::Transaction do
2305
2307
  :number => Braintree::Test::CreditCardNumbers::MasterCard,
2306
2308
  :expiration_date => "12/12",
2307
2309
  },
2308
- :three_d_secure_authentication_id => three_d_secure_authentication_id
2310
+ :three_d_secure_authentication_id => three_d_secure_authentication_id,
2309
2311
  )
2310
2312
  result.success?.should == false
2311
2313
  result.errors.for(:transaction).on(:three_d_secure_authentication_id)[0].code.should == Braintree::ErrorCodes::Transaction::ThreeDSecureTransactionPaymentMethodDoesntMatchThreeDSecureAuthenticationPaymentMethod
@@ -2315,7 +2317,7 @@ describe Braintree::Transaction do
2315
2317
  SpecHelper::ThreeDSecureMerchantAccountId,
2316
2318
  :number => Braintree::Test::CreditCardNumbers::Visa,
2317
2319
  :expiration_month => "12",
2318
- :expiration_year => "2012"
2320
+ :expiration_year => "2012",
2319
2321
  )
2320
2322
 
2321
2323
  result = Braintree::Transaction.create(
@@ -2326,7 +2328,7 @@ describe Braintree::Transaction do
2326
2328
  :number => Braintree::Test::CreditCardNumbers::MasterCard,
2327
2329
  :expiration_date => "12/12",
2328
2330
  },
2329
- :three_d_secure_authentication_id => three_d_secure_authentication_id
2331
+ :three_d_secure_authentication_id => three_d_secure_authentication_id,
2330
2332
  )
2331
2333
  result.success?.should == false
2332
2334
  result.errors.for(:transaction).on(:three_d_secure_authentication_id)[0].code.should == Braintree::ErrorCodes::Transaction::ThreeDSecureTransactionPaymentMethodDoesntMatchThreeDSecureAuthenticationPaymentMethod
@@ -2336,7 +2338,7 @@ describe Braintree::Transaction do
2336
2338
  SpecHelper::ThreeDSecureMerchantAccountId,
2337
2339
  :number => Braintree::Test::CreditCardNumbers::Visa,
2338
2340
  :expiration_month => "12",
2339
- :expiration_year => "2012"
2341
+ :expiration_year => "2012",
2340
2342
  )
2341
2343
  result = Braintree::Transaction.create(
2342
2344
  :merchant_account_id => SpecHelper::ThreeDSecureMerchantAccountId,
@@ -2356,7 +2358,7 @@ describe Braintree::Transaction do
2356
2358
  :directory_response => "Y",
2357
2359
  :cavv_algorithm => "2",
2358
2360
  :ds_transaction_id => "some_ds_id",
2359
- }
2361
+ },
2360
2362
  )
2361
2363
  result.success?.should == false
2362
2364
  result.errors.for(:transaction).on(:three_d_secure_authentication_id)[0].code.should == Braintree::ErrorCodes::Transaction::ThreeDSecureAuthenticationIdWithThreeDSecurePassThruIsInvalid
@@ -2369,7 +2371,7 @@ describe Braintree::Transaction do
2369
2371
  SpecHelper::ThreeDSecureMerchantAccountId,
2370
2372
  :number => Braintree::Test::CreditCardNumbers::Visa,
2371
2373
  :expiration_month => "12",
2372
- :expiration_year => "2012"
2374
+ :expiration_year => "2012",
2373
2375
  )
2374
2376
 
2375
2377
  result = Braintree::Transaction.create(
@@ -2380,7 +2382,7 @@ describe Braintree::Transaction do
2380
2382
  :number => Braintree::Test::CreditCardNumbers::Visa,
2381
2383
  :expiration_date => "12/12",
2382
2384
  },
2383
- :three_d_secure_token => three_d_secure_token
2385
+ :three_d_secure_token => three_d_secure_token,
2384
2386
  )
2385
2387
 
2386
2388
  result.success?.should == true
@@ -2395,7 +2397,7 @@ describe Braintree::Transaction do
2395
2397
  :number => Braintree::Test::CreditCardNumbers::Visa,
2396
2398
  :expiration_date => "12/12",
2397
2399
  },
2398
- :three_d_secure_token => nil
2400
+ :three_d_secure_token => nil,
2399
2401
  )
2400
2402
  result.success?.should == false
2401
2403
  result.errors.for(:transaction).on(:three_d_secure_token)[0].code.should == Braintree::ErrorCodes::Transaction::ThreeDSecureTokenIsInvalid
@@ -2406,7 +2408,7 @@ describe Braintree::Transaction do
2406
2408
  SpecHelper::ThreeDSecureMerchantAccountId,
2407
2409
  :number => Braintree::Test::CreditCardNumbers::Visa,
2408
2410
  :expiration_month => "12",
2409
- :expiration_year => "2012"
2411
+ :expiration_year => "2012",
2410
2412
  )
2411
2413
 
2412
2414
  result = Braintree::Transaction.create(
@@ -2417,7 +2419,7 @@ describe Braintree::Transaction do
2417
2419
  :number => Braintree::Test::CreditCardNumbers::MasterCard,
2418
2420
  :expiration_date => "12/12",
2419
2421
  },
2420
- :three_d_secure_token => three_d_secure_token
2422
+ :three_d_secure_token => three_d_secure_token,
2421
2423
  )
2422
2424
  result.success?.should == false
2423
2425
  result.errors.for(:transaction).on(:three_d_secure_token)[0].code.should == Braintree::ErrorCodes::Transaction::ThreeDSecureTransactionDataDoesntMatchVerify
@@ -2441,7 +2443,7 @@ describe Braintree::Transaction do
2441
2443
  :directory_response => "Y",
2442
2444
  :cavv_algorithm => "2",
2443
2445
  :ds_transaction_id => "some_ds_id",
2444
- }
2446
+ },
2445
2447
  )
2446
2448
 
2447
2449
  result.success?.should == true
@@ -2466,7 +2468,7 @@ describe Braintree::Transaction do
2466
2468
  :directory_response => "Y",
2467
2469
  :cavv_algorithm => "2",
2468
2470
  :ds_transaction_id => "some_ds_id",
2469
- }
2471
+ },
2470
2472
  )
2471
2473
  result.success?.should == false
2472
2474
  result.errors.for(:transaction).on(:merchant_account_id)[0].code.should == Braintree::ErrorCodes::Transaction::ThreeDSecureMerchantAccountDoesNotSupportCardType
@@ -2484,7 +2486,7 @@ describe Braintree::Transaction do
2484
2486
  :eci_flag => "",
2485
2487
  :cavv => "some_cavv",
2486
2488
  :xid => "some_xid",
2487
- }
2489
+ },
2488
2490
  )
2489
2491
  result.success?.should == false
2490
2492
  result.errors.for(:transaction).for(:three_d_secure_pass_thru).on(:eci_flag)[0].code.should == Braintree::ErrorCodes::Transaction::ThreeDSecureEciFlagIsRequired
@@ -2507,7 +2509,7 @@ describe Braintree::Transaction do
2507
2509
  :directory_response => "Y",
2508
2510
  :cavv_algorithm => "2",
2509
2511
  :ds_transaction_id => "some_ds_id",
2510
- }
2512
+ },
2511
2513
  )
2512
2514
  result.success?.should == false
2513
2515
  result.errors.for(:transaction).for(:three_d_secure_pass_thru).on(:cavv)[0].code.should == Braintree::ErrorCodes::Transaction::ThreeDSecureCavvIsRequired
@@ -2530,7 +2532,7 @@ describe Braintree::Transaction do
2530
2532
  :directory_response => "Y",
2531
2533
  :cavv_algorithm => "2",
2532
2534
  :ds_transaction_id => "some_ds_id",
2533
- }
2535
+ },
2534
2536
  )
2535
2537
  result.success?.should == false
2536
2538
  result.errors.for(:transaction).for(:three_d_secure_pass_thru).on(:eci_flag)[0].code.should == Braintree::ErrorCodes::Transaction::ThreeDSecureEciFlagIsInvalid
@@ -2553,7 +2555,7 @@ describe Braintree::Transaction do
2553
2555
  :directory_response => "Y",
2554
2556
  :cavv_algorithm => "2",
2555
2557
  :ds_transaction_id => "some_ds_id",
2556
- }
2558
+ },
2557
2559
  )
2558
2560
  result.success?.should == false
2559
2561
  result.errors.for(:transaction).for(:three_d_secure_pass_thru).on(:three_d_secure_version)[0].code.should == Braintree::ErrorCodes::Transaction::ThreeDSecureThreeDSecureVersionIsInvalid
@@ -2577,7 +2579,7 @@ describe Braintree::Transaction do
2577
2579
  :directory_response => "Y",
2578
2580
  :cavv_algorithm => "2",
2579
2581
  :ds_transaction_id => "some_ds_id",
2580
- }
2582
+ },
2581
2583
  )
2582
2584
  result.success?.should == false
2583
2585
  result.errors.for(:transaction).for(:three_d_secure_pass_thru).on(:authentication_response)[0].code.should == Braintree::ErrorCodes::Transaction::ThreeDSecureAuthenticationResponseIsInvalid
@@ -2601,7 +2603,7 @@ describe Braintree::Transaction do
2601
2603
  :directory_response => "abc",
2602
2604
  :cavv_algorithm => "2",
2603
2605
  :ds_transaction_id => "some_ds_id",
2604
- }
2606
+ },
2605
2607
  )
2606
2608
  result.success?.should == false
2607
2609
  result.errors.for(:transaction).for(:three_d_secure_pass_thru).on(:directory_response)[0].code.should == Braintree::ErrorCodes::Transaction::ThreeDSecureDirectoryResponseIsInvalid
@@ -2625,7 +2627,7 @@ describe Braintree::Transaction do
2625
2627
  :directory_response => "Y",
2626
2628
  :cavv_algorithm => "bad_alg",
2627
2629
  :ds_transaction_id => "some_ds_id",
2628
- }
2630
+ },
2629
2631
  )
2630
2632
  result.success?.should == false
2631
2633
  result.errors.for(:transaction).for(:three_d_secure_pass_thru).on(:cavv_algorithm)[0].code.should == Braintree::ErrorCodes::Transaction::ThreeDSecureCavvAlgorithmIsInvalid
@@ -2637,12 +2639,12 @@ describe Braintree::Transaction do
2637
2639
  it "can create a transaction" do
2638
2640
  payment_method_result = Braintree::PaymentMethod.create(
2639
2641
  :customer_id => Braintree::Customer.create.customer.id,
2640
- :payment_method_nonce => Braintree::Test::Nonce::PayPalFuturePayment
2642
+ :payment_method_nonce => Braintree::Test::Nonce::PayPalFuturePayment,
2641
2643
  )
2642
2644
  result = Braintree::Transaction.create(
2643
2645
  :type => "sale",
2644
2646
  :amount => Braintree::Test::TransactionAmounts::Authorize,
2645
- :payment_method_token => payment_method_result.payment_method.token
2647
+ :payment_method_token => payment_method_result.payment_method.token,
2646
2648
  )
2647
2649
 
2648
2650
  result.should be_success
@@ -2657,13 +2659,13 @@ describe Braintree::Transaction do
2657
2659
  payment_method_token = rand(36**3).to_s(36)
2658
2660
  nonce = nonce_for_paypal_account(
2659
2661
  :consent_code => "PAYPAL_CONSENT_CODE",
2660
- :token => payment_method_token
2662
+ :token => payment_method_token,
2661
2663
  )
2662
2664
 
2663
2665
  result = Braintree::Transaction.create(
2664
2666
  :type => "sale",
2665
2667
  :amount => Braintree::Test::TransactionAmounts::Authorize,
2666
- :payment_method_nonce => nonce
2668
+ :payment_method_nonce => nonce,
2667
2669
  )
2668
2670
 
2669
2671
  result.should be_success
@@ -2679,14 +2681,14 @@ describe Braintree::Transaction do
2679
2681
  payment_method_token = rand(36**3).to_s(36)
2680
2682
  nonce = nonce_for_paypal_account(
2681
2683
  :consent_code => "PAYPAL_CONSENT_CODE",
2682
- :token => payment_method_token
2684
+ :token => payment_method_token,
2683
2685
  )
2684
2686
 
2685
2687
  result = Braintree::Transaction.create(
2686
2688
  :type => "sale",
2687
2689
  :amount => Braintree::Test::TransactionAmounts::Authorize,
2688
2690
  :payment_method_nonce => nonce,
2689
- :options => {:store_in_vault => true}
2691
+ :options => {:store_in_vault => true},
2690
2692
  )
2691
2693
 
2692
2694
  result.success?.should == true
@@ -2705,7 +2707,7 @@ describe Braintree::Transaction do
2705
2707
  :type => "sale",
2706
2708
  :amount => Braintree::Test::TransactionAmounts::Authorize,
2707
2709
  :payment_method_nonce => Braintree::Test::Nonce::PayPalBillingAgreement,
2708
- :options => {:store_in_vault => true}
2710
+ :options => {:store_in_vault => true},
2709
2711
  )
2710
2712
 
2711
2713
  result.should be_success
@@ -2720,7 +2722,7 @@ describe Braintree::Transaction do
2720
2722
  result = Braintree::Transaction.create(
2721
2723
  :type => "sale",
2722
2724
  :amount => Braintree::Test::TransactionAmounts::Authorize,
2723
- :payment_method_nonce => Braintree::Test::Nonce::LocalPayment
2725
+ :payment_method_nonce => Braintree::Test::Nonce::LocalPayment,
2724
2726
  )
2725
2727
 
2726
2728
  result.should be_success
@@ -2738,7 +2740,7 @@ describe Braintree::Transaction do
2738
2740
  result = Braintree::Transaction.create(
2739
2741
  :type => "sale",
2740
2742
  :amount => Braintree::Test::TransactionAmounts::Authorize,
2741
- :payment_method_nonce => Braintree::Test::Nonce::PayPalOneTimePayment
2743
+ :payment_method_nonce => Braintree::Test::Nonce::PayPalOneTimePayment,
2742
2744
  )
2743
2745
 
2744
2746
  result.should be_success
@@ -2750,14 +2752,14 @@ describe Braintree::Transaction do
2750
2752
  payment_method_token = rand(36**3).to_s(36)
2751
2753
  nonce = nonce_for_paypal_account(
2752
2754
  :access_token => "PAYPAL_ACCESS_TOKEN",
2753
- :token => payment_method_token
2755
+ :token => payment_method_token,
2754
2756
  )
2755
2757
 
2756
2758
  result = Braintree::Transaction.create(
2757
2759
  :type => "sale",
2758
2760
  :amount => Braintree::Test::TransactionAmounts::Authorize,
2759
2761
  :payment_method_nonce => nonce,
2760
- :options => {:store_in_vault => true}
2762
+ :options => {:store_in_vault => true},
2761
2763
  )
2762
2764
 
2763
2765
  result.success?.should == true
@@ -2777,7 +2779,7 @@ describe Braintree::Transaction do
2777
2779
  :payment_method_nonce => Braintree::Test::Nonce::PayPalOneTimePayment,
2778
2780
  :options => {
2779
2781
  :submit_for_settlement => true
2780
- }
2782
+ },
2781
2783
  )
2782
2784
  result.success?.should == true
2783
2785
  result.transaction.status.should == Braintree::Transaction::Status::Settling
@@ -2788,7 +2790,7 @@ describe Braintree::Transaction do
2788
2790
  it "successfully voids a paypal transaction that's been authorized" do
2789
2791
  sale_transaction = Braintree::Transaction.sale!(
2790
2792
  :amount => Braintree::Test::TransactionAmounts::Authorize,
2791
- :payment_method_nonce => Braintree::Test::Nonce::PayPalOneTimePayment
2793
+ :payment_method_nonce => Braintree::Test::Nonce::PayPalOneTimePayment,
2792
2794
  )
2793
2795
 
2794
2796
  void_transaction = Braintree::Transaction.void!(sale_transaction.id)
@@ -2799,7 +2801,7 @@ describe Braintree::Transaction do
2799
2801
  it "fails to void a paypal transaction that's been declined" do
2800
2802
  sale_transaction = Braintree::Transaction.sale(
2801
2803
  :amount => Braintree::Test::TransactionAmounts::Decline,
2802
- :payment_method_nonce => Braintree::Test::Nonce::PayPalOneTimePayment
2804
+ :payment_method_nonce => Braintree::Test::Nonce::PayPalOneTimePayment,
2803
2805
  ).transaction
2804
2806
 
2805
2807
  expect do
@@ -2869,6 +2871,19 @@ describe Braintree::Transaction do
2869
2871
  result.transaction.amount.should == transaction.amount/2
2870
2872
  end
2871
2873
 
2874
+ it "allows merchant_account_id to be passed for the refund" do
2875
+ transaction = create_transaction_to_refund
2876
+
2877
+ result = Braintree::Transaction.refund(
2878
+ transaction.id,
2879
+ :merchant_account_id => SpecHelper::NonDefaultMerchantAccountId,
2880
+ )
2881
+
2882
+ result.success?.should == true
2883
+ result.transaction.type.should == "credit"
2884
+ result.transaction.merchant_account_id.should == SpecHelper::NonDefaultMerchantAccountId
2885
+ end
2886
+
2872
2887
  it "does not allow arbitrary options to be passed" do
2873
2888
  transaction = create_paypal_transaction_for_refund
2874
2889
 
@@ -2887,7 +2902,7 @@ describe Braintree::Transaction do
2887
2902
  it "returns an error result if unsettled" do
2888
2903
  transaction = Braintree::Transaction.sale!(
2889
2904
  :amount => Braintree::Test::TransactionAmounts::Authorize,
2890
- :payment_method_nonce => Braintree::Test::Nonce::PayPalOneTimePayment
2905
+ :payment_method_nonce => Braintree::Test::Nonce::PayPalOneTimePayment,
2891
2906
  )
2892
2907
  result = Braintree::Transaction.refund(transaction.id)
2893
2908
  result.success?.should == false
@@ -2900,7 +2915,7 @@ describe Braintree::Transaction do
2900
2915
  :payment_method_nonce => Braintree::Test::Nonce::Transactable,
2901
2916
  :options => {
2902
2917
  :submit_for_settlement => true
2903
- }
2918
+ },
2904
2919
  )
2905
2920
  config = Braintree::Configuration.instantiate
2906
2921
  response = config.http.put("#{config.base_merchant_path}/transactions/#{transaction.id}/settle")
@@ -2921,7 +2936,7 @@ describe Braintree::Transaction do
2921
2936
  :payment_method_nonce => Braintree::Test::Nonce::Transactable,
2922
2937
  :options => {
2923
2938
  :submit_for_settlement => true
2924
- }
2939
+ },
2925
2940
  )
2926
2941
  config = Braintree::Configuration.instantiate
2927
2942
  response = config.http.put("#{config.base_merchant_path}/transactions/#{transaction.id}/settle")
@@ -2941,13 +2956,13 @@ describe Braintree::Transaction do
2941
2956
  it "handles bad unvalidated nonces" do
2942
2957
  nonce = nonce_for_paypal_account(
2943
2958
  :access_token => "PAYPAL_ACCESS_TOKEN",
2944
- :consent_code => "PAYPAL_CONSENT_CODE"
2959
+ :consent_code => "PAYPAL_CONSENT_CODE",
2945
2960
  )
2946
2961
 
2947
2962
  result = Braintree::Transaction.create(
2948
2963
  :type => "sale",
2949
2964
  :amount => Braintree::Test::TransactionAmounts::Authorize,
2950
- :payment_method_nonce => nonce
2965
+ :payment_method_nonce => nonce,
2951
2966
  )
2952
2967
 
2953
2968
  result.should_not be_success
@@ -2958,7 +2973,7 @@ describe Braintree::Transaction do
2958
2973
  result = Braintree::Transaction.create(
2959
2974
  :type => "sale",
2960
2975
  :amount => Braintree::Test::TransactionAmounts::Authorize,
2961
- :payment_method_nonce => "NON_EXISTENT_NONCE"
2976
+ :payment_method_nonce => "NON_EXISTENT_NONCE",
2962
2977
  )
2963
2978
 
2964
2979
  result.should_not be_success
@@ -4086,7 +4101,7 @@ describe Braintree::Transaction do
4086
4101
  :unit_of_measure => "gallon",
4087
4102
  :total_amount => "10.1",
4088
4103
  },
4089
- ['Name #2'],
4104
+ ["Name #2"],
4090
4105
  {
4091
4106
  :quantity => "2.02",
4092
4107
  :name => "Name #3",
@@ -4272,7 +4287,7 @@ describe Braintree::Transaction do
4272
4287
  customer = Braintree::Customer.create!
4273
4288
  result = Braintree::PaymentMethod.create(
4274
4289
  :payment_method_nonce => Braintree::Test::Nonce::PayPalFuturePayment,
4275
- :customer_id => customer.id
4290
+ :customer_id => customer.id,
4276
4291
  )
4277
4292
  payment_method_token = result.payment_method.token
4278
4293
 
@@ -4371,7 +4386,7 @@ describe Braintree::Transaction do
4371
4386
  :amount => "10.00",
4372
4387
  )
4373
4388
  result.success?.should == true
4374
- result.transaction.network_transaction_id.should be_nil
4389
+ result.transaction.network_transaction_id.should_not be_nil
4375
4390
  end
4376
4391
 
4377
4392
  it "accepts blank previous_network_transaction_id" do
@@ -4388,7 +4403,7 @@ describe Braintree::Transaction do
4388
4403
  :amount => "10.00",
4389
4404
  )
4390
4405
  result.success?.should == true
4391
- result.transaction.network_transaction_id.should be_nil
4406
+ result.transaction.network_transaction_id.should_not be_nil
4392
4407
  end
4393
4408
  end
4394
4409
  end
@@ -4407,7 +4422,7 @@ describe Braintree::Transaction do
4407
4422
  :credit_card => {
4408
4423
  :account_type => "credit",
4409
4424
  }
4410
- }
4425
+ },
4411
4426
  )
4412
4427
  result.success?.should == true
4413
4428
  result.transaction.credit_card_details.account_type.should == "credit"
@@ -4426,7 +4441,7 @@ describe Braintree::Transaction do
4426
4441
  :credit_card => {
4427
4442
  :account_type => "credit",
4428
4443
  }
4429
- }
4444
+ },
4430
4445
  )
4431
4446
  result.success?.should == true
4432
4447
  result.transaction.credit_card_details.account_type.should == "credit"
@@ -4446,7 +4461,7 @@ describe Braintree::Transaction do
4446
4461
  :account_type => "debit",
4447
4462
  },
4448
4463
  :submit_for_settlement => true,
4449
- }
4464
+ },
4450
4465
  )
4451
4466
  result.success?.should == true
4452
4467
  result.transaction.credit_card_details.account_type.should == "debit"
@@ -4465,7 +4480,7 @@ describe Braintree::Transaction do
4465
4480
  :credit_card => {
4466
4481
  :account_type => "debit",
4467
4482
  },
4468
- }
4483
+ },
4469
4484
  )
4470
4485
  result.success?.should == false
4471
4486
  result.errors.for(:transaction).for(:options).for(:credit_card).on(:account_type)[0].code.should == Braintree::ErrorCodes::Transaction::Options::CreditCard::AccountTypeDebitDoesNotSupportAuths
@@ -4484,7 +4499,7 @@ describe Braintree::Transaction do
4484
4499
  :credit_card => {
4485
4500
  :account_type => "ach",
4486
4501
  },
4487
- }
4502
+ },
4488
4503
  )
4489
4504
  result.success?.should == false
4490
4505
  result.errors.for(:transaction).for(:options).for(:credit_card).on(:account_type)[0].code.should == Braintree::ErrorCodes::Transaction::Options::CreditCard::AccountTypeIsInvalid
@@ -4502,7 +4517,7 @@ describe Braintree::Transaction do
4502
4517
  :credit_card => {
4503
4518
  :account_type => "credit",
4504
4519
  },
4505
- }
4520
+ },
4506
4521
  )
4507
4522
  result.success?.should == false
4508
4523
  result.errors.for(:transaction).for(:options).for(:credit_card).on(:account_type)[0].code.should == Braintree::ErrorCodes::Transaction::Options::CreditCard::AccountTypeNotSupported
@@ -4518,7 +4533,7 @@ describe Braintree::Transaction do
4518
4533
  :credit_card => {
4519
4534
  :number => Braintree::Test::CreditCardNumbers::Visa,
4520
4535
  :expiration_date => "05/2009"
4521
- }
4536
+ },
4522
4537
  )
4523
4538
  transaction.id.should =~ /^\w{6,}$/
4524
4539
  transaction.type.should == "sale"
@@ -4536,7 +4551,7 @@ describe Braintree::Transaction do
4536
4551
  :credit_card => {
4537
4552
  :number => Braintree::Test::CreditCardNumbers::Visa,
4538
4553
  :expiration_date => "05/2009"
4539
- }
4554
+ },
4540
4555
  )
4541
4556
  end.to raise_error(Braintree::ValidationsFailed)
4542
4557
  end
@@ -4592,7 +4607,7 @@ describe Braintree::Transaction do
4592
4607
  :credit_card => {
4593
4608
  :number => Braintree::Test::CreditCardNumbers::Visa,
4594
4609
  :expiration_date => "05/2009"
4595
- }
4610
+ },
4596
4611
  )
4597
4612
  result = Braintree::Transaction.refund(transaction.id)
4598
4613
  result.success?.should == false
@@ -4629,7 +4644,7 @@ describe Braintree::Transaction do
4629
4644
  :credit_card => {
4630
4645
  :number => Braintree::Test::CreditCardNumbers::Visa,
4631
4646
  :expiration_date => "05/2009"
4632
- }
4647
+ },
4633
4648
  )
4634
4649
  result.success?.should == true
4635
4650
  result.transaction.id.should =~ /^\w{6,}$/
@@ -4685,7 +4700,7 @@ describe Braintree::Transaction do
4685
4700
  :postal_code => "60103",
4686
4701
  :country_name => "United States of America",
4687
4702
  :shipping_method => Braintree::Transaction::AddressDetails::ShippingMethod::Electronic
4688
- }
4703
+ },
4689
4704
  )
4690
4705
  result.success?.should == true
4691
4706
  transaction = result.transaction
@@ -4749,7 +4764,7 @@ describe Braintree::Transaction do
4749
4764
  :credit_card => {
4750
4765
  :number => Braintree::Test::CreditCardNumbers::Visa,
4751
4766
  :expiration_date => "05/2009"
4752
- }
4767
+ },
4753
4768
  )
4754
4769
  result.success?.should == true
4755
4770
  result.transaction.merchant_account_id.should == SpecHelper::NonDefaultMerchantAccountId
@@ -4761,7 +4776,7 @@ describe Braintree::Transaction do
4761
4776
  :credit_card => {
4762
4777
  :number => Braintree::Test::CreditCardNumbers::Visa,
4763
4778
  :expiration_date => "05/2009"
4764
- }
4779
+ },
4765
4780
  )
4766
4781
  result.success?.should == true
4767
4782
  result.transaction.merchant_account_id.should == SpecHelper::DefaultMerchantAccountId
@@ -4780,7 +4795,7 @@ describe Braintree::Transaction do
4780
4795
  },
4781
4796
  :options => {
4782
4797
  :store_in_vault => true
4783
- }
4798
+ },
4784
4799
  )
4785
4800
  result.success?.should == true
4786
4801
  transaction = result.transaction
@@ -4815,7 +4830,7 @@ describe Braintree::Transaction do
4815
4830
  :options => {
4816
4831
  :store_in_vault => true,
4817
4832
  :add_billing_address_to_payment_method => true,
4818
- }
4833
+ },
4819
4834
  )
4820
4835
  result.success?.should == true
4821
4836
  transaction = result.transaction
@@ -4860,7 +4875,7 @@ describe Braintree::Transaction do
4860
4875
  :options => {
4861
4876
  :store_in_vault => true,
4862
4877
  :store_shipping_address_in_vault => true,
4863
- }
4878
+ },
4864
4879
  )
4865
4880
  result.success?.should == true
4866
4881
  transaction = result.transaction
@@ -4886,7 +4901,7 @@ describe Braintree::Transaction do
4886
4901
  :number => "5105105105105100",
4887
4902
  :expiration_date => "05/2012"
4888
4903
  },
4889
- :options => { :store_in_vault => true }
4904
+ :options => {:store_in_vault => true},
4890
4905
  )
4891
4906
 
4892
4907
  result.success?.should == true
@@ -4904,7 +4919,7 @@ describe Braintree::Transaction do
4904
4919
  },
4905
4920
  :options => {
4906
4921
  :submit_for_settlement => true
4907
- }
4922
+ },
4908
4923
  )
4909
4924
  result.success?.should == true
4910
4925
  result.transaction.status.should == Braintree::Transaction::Status::SubmittedForSettlement
@@ -4927,7 +4942,7 @@ describe Braintree::Transaction do
4927
4942
  },
4928
4943
  :options => {
4929
4944
  :store_in_vault => true
4930
- }
4945
+ },
4931
4946
  )
4932
4947
  result.success?.should == true
4933
4948
  transaction = result.transaction
@@ -4942,20 +4957,20 @@ describe Braintree::Transaction do
4942
4957
  :credit_card => {
4943
4958
  :number => Braintree::Test::CreditCardNumbers::Visa,
4944
4959
  :expiration_date => "05/2010"
4945
- }
4960
+ },
4946
4961
  )
4947
4962
  address = Braintree::Address.create!(
4948
4963
  :customer_id => customer.id,
4949
- :street_address => '123 Fake St.'
4964
+ :street_address => "123 Fake St.",
4950
4965
  )
4951
4966
  result = Braintree::Transaction.sale(
4952
4967
  :amount => "100",
4953
4968
  :customer_id => customer.id,
4954
- :shipping_address_id => address.id
4969
+ :shipping_address_id => address.id,
4955
4970
  )
4956
4971
  result.success?.should == true
4957
4972
  transaction = result.transaction
4958
- transaction.shipping_details.street_address.should == '123 Fake St.'
4973
+ transaction.shipping_details.street_address.should == "123 Fake St."
4959
4974
  transaction.customer_details.id.should == customer.id
4960
4975
  transaction.shipping_details.id.should == address.id
4961
4976
  end
@@ -4972,7 +4987,7 @@ describe Braintree::Transaction do
4972
4987
  }
4973
4988
  result = Braintree::Transaction.sale(params[:transaction])
4974
4989
  result.success?.should == false
4975
- result.params.should == {:transaction => {:type => 'sale', :amount => nil, :credit_card => {:expiration_date => "05/2009"}}}
4990
+ result.params.should == {:transaction => {:type => "sale", :amount => nil, :credit_card => {:expiration_date => "05/2009"}}}
4976
4991
  result.errors.for(:transaction).on(:amount)[0].code.should == Braintree::ErrorCodes::Transaction::AmountIsRequired
4977
4992
  end
4978
4993
 
@@ -5043,8 +5058,24 @@ describe Braintree::Transaction do
5043
5058
  result.errors.for(:transaction).on(:currency_iso_code)[0].code.should == Braintree::ErrorCodes::Transaction::CurrencyCodeNotSupportedByMerchantAccount
5044
5059
  end
5045
5060
 
5061
+ it "validates tax_amount for Aib domestic sweden transaction and returns error" do
5062
+ params = {
5063
+ :transaction => {
5064
+ :amount => Braintree::Test::TransactionAmounts::Authorize,
5065
+ :merchant_account_id => SpecHelper::AibSwedenMaMerchantAccountId,
5066
+ :credit_card => {
5067
+ :number => Braintree::Test::CreditCardNumbers::Visa,
5068
+ :expiration_date => "05/2030"
5069
+ }
5070
+ }
5071
+ }
5072
+ result = Braintree::Transaction.sale(params[:transaction])
5073
+ result.success?.should == false
5074
+ result.errors.for(:transaction).on(:tax_amount)[0].code.should == Braintree::ErrorCodes::Transaction::TaxAmountIsRequiredForAibSwedish
5075
+ end
5076
+
5046
5077
  it "skips advanced fraud checking if transaction[options][skip_advanced_fraud_checking] is set to true" do
5047
- with_advanced_fraud_integration_merchant do
5078
+ with_advanced_fraud_kount_integration_merchant do
5048
5079
  result = Braintree::Transaction.sale(
5049
5080
  :amount => Braintree::Test::TransactionAmounts::Authorize,
5050
5081
  :credit_card => {
@@ -5053,7 +5084,7 @@ describe Braintree::Transaction do
5053
5084
  },
5054
5085
  :options => {
5055
5086
  :skip_advanced_fraud_checking => true
5056
- }
5087
+ },
5057
5088
  )
5058
5089
  result.success?.should == true
5059
5090
  result.transaction.risk_data.should be_nil
@@ -5147,7 +5178,7 @@ describe Braintree::Transaction do
5147
5178
  :currency_amount => "10.00",
5148
5179
  :currency_iso_code => "USD"
5149
5180
  }
5150
- }
5181
+ },
5151
5182
  )
5152
5183
  result.success?.should == true
5153
5184
  result.transaction.status.should == Braintree::Transaction::Status::SubmittedForSettlement
@@ -5169,7 +5200,7 @@ describe Braintree::Transaction do
5169
5200
  :currency_amount => "10.00",
5170
5201
  :currency_iso_code => "USD"
5171
5202
  }
5172
- }
5203
+ },
5173
5204
  )
5174
5205
  result.success?.should == true
5175
5206
  result.transaction.status.should == Braintree::Transaction::Status::SubmittedForSettlement
@@ -5191,7 +5222,7 @@ describe Braintree::Transaction do
5191
5222
  :currency_amount => "10.00",
5192
5223
  :currency_iso_code => "USD"
5193
5224
  }
5194
- }
5225
+ },
5195
5226
  )
5196
5227
  result.success?.should == true
5197
5228
  result.transaction.status.should == Braintree::Transaction::Status::SubmittedForSettlement
@@ -5214,7 +5245,7 @@ describe Braintree::Transaction do
5214
5245
  :currency_amount => "10.00",
5215
5246
  :currency_iso_code => "USD"
5216
5247
  }
5217
- }
5248
+ },
5218
5249
  )
5219
5250
  result.success?.should == true
5220
5251
 
@@ -5238,7 +5269,7 @@ describe Braintree::Transaction do
5238
5269
  :currency_amount => "10.00",
5239
5270
  :currency_iso_code => "USD"
5240
5271
  }
5241
- }
5272
+ },
5242
5273
  )
5243
5274
  result.success?.should == true
5244
5275
  result.transaction.status.should == Braintree::Transaction::Status::Authorized
@@ -5263,7 +5294,7 @@ describe Braintree::Transaction do
5263
5294
  :currency_amount => "10.00",
5264
5295
  :currency_iso_code => "USD"
5265
5296
  }
5266
- }
5297
+ },
5267
5298
  )
5268
5299
  result.success?.should == true
5269
5300
  result.transaction.status.should == Braintree::Transaction::Status::Authorized
@@ -5283,7 +5314,7 @@ describe Braintree::Transaction do
5283
5314
  :credit_card => {
5284
5315
  :number => Braintree::Test::CreditCardNumbers::Visa,
5285
5316
  :expiration_date => "05/2009"
5286
- }
5317
+ },
5287
5318
  )
5288
5319
  transaction.id.should =~ /^\w{6,}$/
5289
5320
  transaction.type.should == "sale"
@@ -5300,7 +5331,7 @@ describe Braintree::Transaction do
5300
5331
  :credit_card => {
5301
5332
  :number => Braintree::Test::CreditCardNumbers::Visa,
5302
5333
  :expiration_date => "05/2009"
5303
- }
5334
+ },
5304
5335
  )
5305
5336
  end.to raise_error(Braintree::ValidationsFailed)
5306
5337
  end
@@ -5313,7 +5344,7 @@ describe Braintree::Transaction do
5313
5344
  :credit_card => {
5314
5345
  :number => Braintree::Test::CreditCardNumbers::Visa,
5315
5346
  :expiration_date => "06/2009"
5316
- }
5347
+ },
5317
5348
  )
5318
5349
  result = Braintree::Transaction.submit_for_settlement(transaction.id)
5319
5350
  result.success?.should == true
@@ -5325,7 +5356,7 @@ describe Braintree::Transaction do
5325
5356
  :credit_card => {
5326
5357
  :number => Braintree::Test::CreditCardNumbers::Visa,
5327
5358
  :expiration_date => "06/2009"
5328
- }
5359
+ },
5329
5360
  )
5330
5361
  transaction.amount.should == BigDecimal("1000.00")
5331
5362
  result = Braintree::Transaction.submit_for_settlement(transaction.id, "999.99")
@@ -5341,9 +5372,9 @@ describe Braintree::Transaction do
5341
5372
  :credit_card => {
5342
5373
  :number => Braintree::Test::CreditCardNumbers::Visa,
5343
5374
  :expiration_date => "06/2009"
5344
- }
5375
+ },
5345
5376
  )
5346
- options = { :order_id => "ABC123" }
5377
+ options = {:order_id => "ABC123"}
5347
5378
  result = Braintree::Transaction.submit_for_settlement(transaction.id, nil, options)
5348
5379
  result.success?.should == true
5349
5380
  result.transaction.order_id.should == "ABC123"
@@ -5356,13 +5387,13 @@ describe Braintree::Transaction do
5356
5387
  :credit_card => {
5357
5388
  :number => Braintree::Test::CreditCardNumbers::Visa,
5358
5389
  :expiration_date => "06/2009"
5359
- }
5390
+ },
5360
5391
  )
5361
5392
 
5362
5393
  options = {
5363
5394
  :descriptor => {
5364
- :name => '123*123456789012345678',
5365
- :phone => '3334445555',
5395
+ :name => "123*123456789012345678",
5396
+ :phone => "3334445555",
5366
5397
  :url => "ebay.com"
5367
5398
  }
5368
5399
  }
@@ -5370,9 +5401,9 @@ describe Braintree::Transaction do
5370
5401
  result = Braintree::Transaction.submit_for_settlement(transaction.id, nil, options)
5371
5402
  result.success?.should == true
5372
5403
  result.transaction.status.should == Braintree::Transaction::Status::SubmittedForSettlement
5373
- result.transaction.descriptor.name.should == '123*123456789012345678'
5374
- result.transaction.descriptor.phone.should == '3334445555'
5375
- result.transaction.descriptor.url.should == 'ebay.com'
5404
+ result.transaction.descriptor.name.should == "123*123456789012345678"
5405
+ result.transaction.descriptor.phone.should == "3334445555"
5406
+ result.transaction.descriptor.url.should == "ebay.com"
5376
5407
  end
5377
5408
 
5378
5409
  it "raises an error if an invalid option is passed in" do
@@ -5381,10 +5412,10 @@ describe Braintree::Transaction do
5381
5412
  :credit_card => {
5382
5413
  :number => Braintree::Test::CreditCardNumbers::Visa,
5383
5414
  :expiration_date => "06/2009"
5384
- }
5415
+ },
5385
5416
  )
5386
5417
 
5387
- options = { :order_id => "ABC123", :invalid_option => "i'm invalid" }
5418
+ options = {:order_id => "ABC123", :invalid_option => "i'm invalid"}
5388
5419
 
5389
5420
  expect do
5390
5421
  Braintree::Transaction.submit_for_settlement(transaction.id, nil, options)
@@ -5394,10 +5425,11 @@ describe Braintree::Transaction do
5394
5425
  it "returns an error result if settlement is too large" do
5395
5426
  transaction = Braintree::Transaction.sale!(
5396
5427
  :amount => Braintree::Test::TransactionAmounts::Authorize,
5428
+ :merchant_account_id => SpecHelper::CardProcessorBRLMerchantAccountId,
5397
5429
  :credit_card => {
5398
5430
  :number => Braintree::Test::CreditCardNumbers::Visa,
5399
5431
  :expiration_date => "06/2009"
5400
- }
5432
+ },
5401
5433
  )
5402
5434
  transaction.amount.should == BigDecimal("1000.00")
5403
5435
  result = Braintree::Transaction.submit_for_settlement(transaction.id, "1000.01")
@@ -5412,7 +5444,7 @@ describe Braintree::Transaction do
5412
5444
  :credit_card => {
5413
5445
  :number => Braintree::Test::CreditCardNumbers::Visa,
5414
5446
  :expiration_date => "06/2009"
5415
- }
5447
+ },
5416
5448
  ).transaction
5417
5449
  result = Braintree::Transaction.submit_for_settlement(transaction.id)
5418
5450
  result.success?.should == false
@@ -5429,7 +5461,7 @@ describe Braintree::Transaction do
5429
5461
  :number => Braintree::Test::CreditCardNumbers::Visa,
5430
5462
  :expiration_date => "06/2009"
5431
5463
  },
5432
- :service_fee_amount => "1.00"
5464
+ :service_fee_amount => "1.00",
5433
5465
  ).transaction
5434
5466
  result = Braintree::Transaction.submit_for_settlement(transaction.id, "0.01")
5435
5467
  result.success?.should == false
@@ -5452,7 +5484,7 @@ describe Braintree::Transaction do
5452
5484
  :currency_amount => "10.00",
5453
5485
  :currency_iso_code => "USD"
5454
5486
  }
5455
- }
5487
+ },
5456
5488
  )
5457
5489
  result.success?.should == true
5458
5490
 
@@ -5476,7 +5508,7 @@ describe Braintree::Transaction do
5476
5508
  :currency_amount => "10.00",
5477
5509
  :currency_iso_code => "USD"
5478
5510
  }
5479
- }
5511
+ },
5480
5512
  )
5481
5513
  result.success?.should == true
5482
5514
 
@@ -5496,7 +5528,7 @@ describe Braintree::Transaction do
5496
5528
  :discount_amount => "12.00",
5497
5529
  :tax_amount => "0",
5498
5530
  },
5499
- ]
5531
+ ],
5500
5532
  )
5501
5533
  result.success?.should == true
5502
5534
  result.transaction.status.should == Braintree::Transaction::Status::SubmittedForSettlement
@@ -5510,9 +5542,9 @@ describe Braintree::Transaction do
5510
5542
  :credit_card => {
5511
5543
  :number => Braintree::Test::CreditCardNumbers::Visa,
5512
5544
  :expiration_date => "06/2009"
5513
- }
5545
+ },
5514
5546
  )
5515
- options = { :order_id => "ABC123" }
5547
+ options = {:order_id => "ABC123"}
5516
5548
  transaction = Braintree::Transaction.submit_for_settlement!(original_transaction.id, "0.01", options)
5517
5549
  transaction.status.should == Braintree::Transaction::Status::SubmittedForSettlement
5518
5550
  transaction.id.should == original_transaction.id
@@ -5522,10 +5554,11 @@ describe Braintree::Transaction do
5522
5554
  it "raises a ValidationsFailed if unsuccessful" do
5523
5555
  transaction = Braintree::Transaction.sale!(
5524
5556
  :amount => Braintree::Test::TransactionAmounts::Authorize,
5557
+ :merchant_account_id => SpecHelper::CardProcessorBRLMerchantAccountId,
5525
5558
  :credit_card => {
5526
5559
  :number => Braintree::Test::CreditCardNumbers::Visa,
5527
5560
  :expiration_date => "06/2009"
5528
- }
5561
+ },
5529
5562
  )
5530
5563
  transaction.amount.should == BigDecimal("1000.00")
5531
5564
  expect do
@@ -5541,18 +5574,18 @@ describe Braintree::Transaction do
5541
5574
  :amount => Braintree::Test::TransactionAmounts::Authorize,
5542
5575
  :merchant_account_id => SpecHelper::DefaultMerchantAccountId,
5543
5576
  :descriptor => {
5544
- :name => '123*123456789012345678',
5545
- :phone => '3334445555',
5577
+ :name => "123*123456789012345678",
5578
+ :phone => "3334445555",
5546
5579
  :url => "ebay.com"
5547
5580
  },
5548
- :order_id => '123',
5581
+ :order_id => "123",
5549
5582
  :credit_card => {
5550
5583
  :number => Braintree::Test::CreditCardNumbers::Visa,
5551
5584
  :expiration_date => "06/2009"
5552
5585
  },
5553
5586
  :options => {
5554
5587
  :submit_for_settlement => true
5555
- }
5588
+ },
5556
5589
  )
5557
5590
  end
5558
5591
 
@@ -5560,16 +5593,16 @@ describe Braintree::Transaction do
5560
5593
  result = Braintree::Transaction.update_details(transaction.id, {
5561
5594
  :amount => Braintree::Test::TransactionAmounts::Authorize.to_f - 1,
5562
5595
  :descriptor => {
5563
- :name => '456*123456789012345678',
5564
- :phone => '3334445555',
5596
+ :name => "456*123456789012345678",
5597
+ :phone => "3334445555",
5565
5598
  :url => "ebay.com",
5566
5599
  },
5567
- :order_id => '456'
5600
+ :order_id => "456"
5568
5601
  })
5569
5602
  result.success?.should == true
5570
5603
  result.transaction.amount.should == BigDecimal(Braintree::Test::TransactionAmounts::Authorize) - 1
5571
- result.transaction.order_id.should == '456'
5572
- result.transaction.descriptor.name.should == '456*123456789012345678'
5604
+ result.transaction.order_id.should == "456"
5605
+ result.transaction.descriptor.name.should == "456*123456789012345678"
5573
5606
  end
5574
5607
 
5575
5608
  it "raises an error when a key is invalid" do
@@ -5577,11 +5610,11 @@ describe Braintree::Transaction do
5577
5610
  Braintree::Transaction.update_details(transaction.id, {
5578
5611
  :invalid_key => Braintree::Test::TransactionAmounts::Authorize.to_f - 1,
5579
5612
  :descriptor => {
5580
- :name => '456*123456789012345678',
5581
- :phone => '3334445555',
5613
+ :name => "456*123456789012345678",
5614
+ :phone => "3334445555",
5582
5615
  :url => "ebay.com",
5583
5616
  },
5584
- :order_id => '456'
5617
+ :order_id => "456"
5585
5618
  })
5586
5619
  end.to raise_error(ArgumentError)
5587
5620
  end
@@ -5591,11 +5624,11 @@ describe Braintree::Transaction do
5591
5624
  result = Braintree::Transaction.update_details(transaction.id, {
5592
5625
  :amount => "10000",
5593
5626
  :descriptor => {
5594
- :name => '456*123456789012345678',
5595
- :phone => '3334445555',
5627
+ :name => "456*123456789012345678",
5628
+ :phone => "3334445555",
5596
5629
  :url => "ebay.com",
5597
5630
  },
5598
- :order_id => '456'
5631
+ :order_id => "456"
5599
5632
  })
5600
5633
  result.success?.should == false
5601
5634
  result.errors.for(:transaction).on(:amount)[0].code.should == Braintree::ErrorCodes::Transaction::SettlementAmountIsTooLarge
@@ -5605,11 +5638,11 @@ describe Braintree::Transaction do
5605
5638
  result = Braintree::Transaction.update_details(transaction.id, {
5606
5639
  :amount => Braintree::Test::TransactionAmounts::Authorize.to_f - 1,
5607
5640
  :descriptor => {
5608
- :name => 'invalid descriptor name',
5609
- :phone => 'invalid phone',
5610
- :url => '12345678901234'
5641
+ :name => "invalid descriptor name",
5642
+ :phone => "invalid phone",
5643
+ :url => "12345678901234"
5611
5644
  },
5612
- :order_id => '456'
5645
+ :order_id => "456"
5613
5646
  })
5614
5647
  result.success?.should == false
5615
5648
  result.errors.for(:transaction).for(:descriptor).on(:name)[0].code.should == Braintree::ErrorCodes::Descriptor::NameFormatIsInvalid
@@ -5621,11 +5654,11 @@ describe Braintree::Transaction do
5621
5654
  result = Braintree::Transaction.update_details(transaction.id, {
5622
5655
  :amount => Braintree::Test::TransactionAmounts::Authorize.to_f - 1,
5623
5656
  :descriptor => {
5624
- :name => '456*123456789012345678',
5625
- :phone => '3334445555',
5657
+ :name => "456*123456789012345678",
5658
+ :phone => "3334445555",
5626
5659
  :url => "ebay.com",
5627
5660
  },
5628
- :order_id => 'x' * 256
5661
+ :order_id => "x" * 256
5629
5662
  })
5630
5663
  result.success?.should == false
5631
5664
  result.errors.for(:transaction).on(:order_id)[0].code.should == Braintree::ErrorCodes::Transaction::OrderIdIsTooLong
@@ -5636,27 +5669,27 @@ describe Braintree::Transaction do
5636
5669
  :amount => Braintree::Test::TransactionAmounts::Authorize,
5637
5670
  :merchant_account_id => SpecHelper::FakeAmexDirectMerchantAccountId,
5638
5671
  :descriptor => {
5639
- :name => '123*123456789012345678',
5640
- :phone => '3334445555',
5672
+ :name => "123*123456789012345678",
5673
+ :phone => "3334445555",
5641
5674
  :url => "ebay.com"
5642
5675
  },
5643
- :order_id => '123',
5676
+ :order_id => "123",
5644
5677
  :credit_card => {
5645
5678
  :number => Braintree::Test::CreditCardNumbers::AmexPayWithPoints::Success,
5646
5679
  :expiration_date => "05/2009"
5647
5680
  },
5648
5681
  :options => {
5649
5682
  :submit_for_settlement => true
5650
- }
5683
+ },
5651
5684
  )
5652
5685
  result = Braintree::Transaction.update_details(transaction.id, {
5653
5686
  :amount => Braintree::Test::TransactionAmounts::Authorize.to_f - 1,
5654
5687
  :descriptor => {
5655
- :name => '456*123456789012345678',
5656
- :phone => '3334445555',
5688
+ :name => "456*123456789012345678",
5689
+ :phone => "3334445555",
5657
5690
  :url => "ebay.com",
5658
5691
  },
5659
- :order_id => '456'
5692
+ :order_id => "456"
5660
5693
  })
5661
5694
  result.success?.should == false
5662
5695
  result.errors.for(:transaction).on(:base)[0].code.should == Braintree::ErrorCodes::Transaction::ProcessorDoesNotSupportUpdatingTransactionDetails
@@ -5670,24 +5703,24 @@ describe Braintree::Transaction do
5670
5703
  :amount => Braintree::Test::TransactionAmounts::Authorize,
5671
5704
  :merchant_account_id => SpecHelper::DefaultMerchantAccountId,
5672
5705
  :descriptor => {
5673
- :name => '123*123456789012345678',
5674
- :phone => '3334445555',
5706
+ :name => "123*123456789012345678",
5707
+ :phone => "3334445555",
5675
5708
  :url => "ebay.com"
5676
5709
  },
5677
- :order_id => '123',
5710
+ :order_id => "123",
5678
5711
  :credit_card => {
5679
5712
  :number => Braintree::Test::CreditCardNumbers::Visa,
5680
5713
  :expiration_date => "06/2009"
5681
- }
5714
+ },
5682
5715
  )
5683
5716
  result = Braintree::Transaction.update_details(transaction.id, {
5684
5717
  :amount => Braintree::Test::TransactionAmounts::Authorize.to_f - 1,
5685
5718
  :descriptor => {
5686
- :name => '456*123456789012345678',
5687
- :phone => '3334445555',
5719
+ :name => "456*123456789012345678",
5720
+ :phone => "3334445555",
5688
5721
  :url => "ebay.com",
5689
5722
  },
5690
- :order_id => '456'
5723
+ :order_id => "456"
5691
5724
  })
5692
5725
  result.success?.should == false
5693
5726
  result.errors.for(:transaction).on(:base)[0].code.should == Braintree::ErrorCodes::Transaction::CannotUpdateTransactionDetailsNotSubmittedForSettlement
@@ -5704,7 +5737,7 @@ describe Braintree::Transaction do
5704
5737
  :credit_card => {
5705
5738
  :number => Braintree::Test::CreditCardNumbers::Visa,
5706
5739
  :expiration_date => "06/2009"
5707
- }
5740
+ },
5708
5741
  )
5709
5742
 
5710
5743
  result = Braintree::Transaction.submit_for_partial_settlement(authorized_transaction.id, 100)
@@ -5739,7 +5772,7 @@ describe Braintree::Transaction do
5739
5772
  :credit_card => {
5740
5773
  :number => Braintree::Test::CreditCardNumbers::Visa,
5741
5774
  :expiration_date => "05/2009"
5742
- }
5775
+ },
5743
5776
  )
5744
5777
 
5745
5778
  result = Braintree::Transaction.submit_for_partial_settlement(authorized_transaction.id, 100, :order_id => 1234)
@@ -5755,7 +5788,7 @@ describe Braintree::Transaction do
5755
5788
  :credit_card => {
5756
5789
  :number => Braintree::Test::CreditCardNumbers::Visa,
5757
5790
  :expiration_date => "05/2009"
5758
- }
5791
+ },
5759
5792
  )
5760
5793
 
5761
5794
  result = Braintree::Transaction.submit_for_partial_settlement(authorized_transaction.id, 100, :order_id => "1"*256)
@@ -5770,13 +5803,13 @@ describe Braintree::Transaction do
5770
5803
  :credit_card => {
5771
5804
  :number => Braintree::Test::CreditCardNumbers::Visa,
5772
5805
  :expiration_date => "05/2009"
5773
- }
5806
+ },
5774
5807
  )
5775
5808
 
5776
5809
  result = Braintree::Transaction.submit_for_partial_settlement(
5777
5810
  authorized_transaction.id,
5778
5811
  100,
5779
- :descriptor => { :name => "123*123456789012345678", :phone => "5555551234", :url => "url.com" }
5812
+ :descriptor => {:name => "123*123456789012345678", :phone => "5555551234", :url => "url.com"},
5780
5813
  )
5781
5814
  result.success?.should == true
5782
5815
  partial_settlement_transaction = result.transaction
@@ -5792,7 +5825,7 @@ describe Braintree::Transaction do
5792
5825
  :credit_card => {
5793
5826
  :number => Braintree::Test::CreditCardNumbers::Visa,
5794
5827
  :expiration_date => "05/2009"
5795
- }
5828
+ },
5796
5829
  )
5797
5830
 
5798
5831
  result = Braintree::Transaction.submit_for_partial_settlement(
@@ -5800,9 +5833,9 @@ describe Braintree::Transaction do
5800
5833
  100,
5801
5834
  :descriptor => {
5802
5835
  :name => "invalid_format",
5803
- :phone => '%bad4445555',
5804
- :url => '12345678901234'
5805
- }
5836
+ :phone => "%bad4445555",
5837
+ :url => "12345678901234"
5838
+ },
5806
5839
  )
5807
5840
  result.success?.should == false
5808
5841
  result.errors.for(:transaction).for(:descriptor).on(:name)[0].code.should == Braintree::ErrorCodes::Descriptor::NameFormatIsInvalid
@@ -5817,7 +5850,7 @@ describe Braintree::Transaction do
5817
5850
  :credit_card => {
5818
5851
  :number => Braintree::Test::CreditCardNumbers::AmexPayWithPoints::Success,
5819
5852
  :expiration_date => "05/2009"
5820
- }
5853
+ },
5821
5854
  )
5822
5855
 
5823
5856
  result = Braintree::Transaction.submit_for_partial_settlement(authorized_transaction.id, 100)
@@ -5829,7 +5862,7 @@ describe Braintree::Transaction do
5829
5862
  authorized_transaction = Braintree::Transaction.sale!(
5830
5863
  :amount => Braintree::Test::TransactionAmounts::Authorize,
5831
5864
  :merchant_account_id => SpecHelper::FakeVenmoAccountMerchantAccountId,
5832
- :payment_method_nonce => Braintree::Test::Nonce::VenmoAccount
5865
+ :payment_method_nonce => Braintree::Test::Nonce::VenmoAccount,
5833
5866
  )
5834
5867
 
5835
5868
  result = Braintree::Transaction.submit_for_partial_settlement(authorized_transaction.id, 100)
@@ -5844,7 +5877,7 @@ describe Braintree::Transaction do
5844
5877
  :credit_card => {
5845
5878
  :number => Braintree::Test::CreditCardNumbers::Visa,
5846
5879
  :expiration_date => "06/2009"
5847
- }
5880
+ },
5848
5881
  )
5849
5882
 
5850
5883
  result = Braintree::Transaction.submit_for_partial_settlement(authorized_transaction.id, 100)
@@ -5862,7 +5895,7 @@ describe Braintree::Transaction do
5862
5895
  :credit_card => {
5863
5896
  :number => Braintree::Test::CreditCardNumbers::Visa,
5864
5897
  :expiration_date => "06/2009"
5865
- }
5898
+ },
5866
5899
  )
5867
5900
 
5868
5901
  result = Braintree::Transaction.void(authorized_transaction.id)
@@ -5881,9 +5914,9 @@ describe Braintree::Transaction do
5881
5914
  :credit_card => {
5882
5915
  :number => Braintree::Test::CreditCardNumbers::Visa,
5883
5916
  :expiration_date => "06/2009"
5884
- }
5917
+ },
5885
5918
  )
5886
- options = { :order_id => "ABC123" }
5919
+ options = {:order_id => "ABC123"}
5887
5920
  transaction = Braintree::Transaction.submit_for_partial_settlement!(original_transaction.id, "0.01", options)
5888
5921
  transaction.status.should == Braintree::Transaction::Status::SubmittedForSettlement
5889
5922
  transaction.order_id.should == options[:order_id]
@@ -5895,7 +5928,7 @@ describe Braintree::Transaction do
5895
5928
  :credit_card => {
5896
5929
  :number => Braintree::Test::CreditCardNumbers::Visa,
5897
5930
  :expiration_date => "06/2009"
5898
- }
5931
+ },
5899
5932
  )
5900
5933
  transaction.amount.should == BigDecimal("1000.00")
5901
5934
  expect do
@@ -5920,7 +5953,7 @@ describe Braintree::Transaction do
5920
5953
  :number => Braintree::Test::CreditCardNumbers::Visa,
5921
5954
  :expiration_date => "05/2009"
5922
5955
  },
5923
- :service_fee_amount => '1.00'
5956
+ :service_fee_amount => "1.00",
5924
5957
  )
5925
5958
 
5926
5959
  transaction.escrow_status.should be_nil
@@ -5946,7 +5979,7 @@ describe Braintree::Transaction do
5946
5979
  :number => Braintree::Test::CreditCardNumbers::Visa,
5947
5980
  :expiration_date => "05/2009"
5948
5981
  },
5949
- :service_fee_amount => '1.00'
5982
+ :service_fee_amount => "1.00",
5950
5983
  )
5951
5984
 
5952
5985
  transaction.escrow_status.should be_nil
@@ -6006,7 +6039,7 @@ describe Braintree::Transaction do
6006
6039
  :credit_card => {
6007
6040
  :number => Braintree::Test::CreditCardNumbers::Visa,
6008
6041
  :expiration_date => "05/2009"
6009
- }
6042
+ },
6010
6043
  )
6011
6044
  result.success?.should == true
6012
6045
  result.transaction.id.should =~ /^\w{6,}$/
@@ -6029,7 +6062,7 @@ describe Braintree::Transaction do
6029
6062
  }
6030
6063
  result = Braintree::Transaction.credit(params[:transaction])
6031
6064
  result.success?.should == false
6032
- result.params.should == {:transaction => {:type => 'credit', :amount => nil, :credit_card => {:expiration_date => "05/2009"}}}
6065
+ result.params.should == {:transaction => {:type => "credit", :amount => nil, :credit_card => {:expiration_date => "05/2009"}}}
6033
6066
  result.errors.for(:transaction).on(:amount)[0].code.should == Braintree::ErrorCodes::Transaction::AmountIsRequired
6034
6067
  end
6035
6068
 
@@ -6040,7 +6073,7 @@ describe Braintree::Transaction do
6040
6073
  :credit_card => {
6041
6074
  :number => Braintree::Test::CreditCardNumbers::Visa,
6042
6075
  :expiration_date => "05/2009"
6043
- }
6076
+ },
6044
6077
  )
6045
6078
  result.success?.should == true
6046
6079
  result.transaction.merchant_account_id.should == SpecHelper::NonDefaultMerchantAccountId
@@ -6052,7 +6085,7 @@ describe Braintree::Transaction do
6052
6085
  :credit_card => {
6053
6086
  :number => Braintree::Test::CreditCardNumbers::Visa,
6054
6087
  :expiration_date => "05/2009"
6055
- }
6088
+ },
6056
6089
  )
6057
6090
  result.success?.should == true
6058
6091
  result.transaction.merchant_account_id.should == SpecHelper::DefaultMerchantAccountId
@@ -6082,7 +6115,7 @@ describe Braintree::Transaction do
6082
6115
  :credit_card => {
6083
6116
  :number => Braintree::Test::CreditCardNumbers::Visa,
6084
6117
  :expiration_date => "05/2009"
6085
- }
6118
+ },
6086
6119
  )
6087
6120
  transaction.id.should =~ /^\w{6,}$/
6088
6121
  transaction.type.should == "credit"
@@ -6099,7 +6132,7 @@ describe Braintree::Transaction do
6099
6132
  :credit_card => {
6100
6133
  :number => Braintree::Test::CreditCardNumbers::Visa,
6101
6134
  :expiration_date => "05/2009"
6102
- }
6135
+ },
6103
6136
  )
6104
6137
  end.to raise_error(Braintree::ValidationsFailed)
6105
6138
  end
@@ -6113,7 +6146,7 @@ describe Braintree::Transaction do
6113
6146
  :credit_card => {
6114
6147
  :number => Braintree::Test::CreditCardNumbers::Visa,
6115
6148
  :expiration_date => "05/2009"
6116
- }
6149
+ },
6117
6150
  )
6118
6151
  result.success?.should == true
6119
6152
  created_transaction = result.transaction
@@ -6130,7 +6163,7 @@ describe Braintree::Transaction do
6130
6163
  :number => Braintree::Test::CreditCardNumbers::Visa,
6131
6164
  :expiration_date => "05/2009"
6132
6165
  },
6133
- :options => { :store_in_vault => true }
6166
+ :options => {:store_in_vault => true},
6134
6167
  )
6135
6168
  result.success?.should == true
6136
6169
  created_transaction = result.transaction
@@ -6175,7 +6208,7 @@ describe Braintree::Transaction do
6175
6208
  :credit_card => {
6176
6209
  :number => Braintree::Test::CreditCardNumbers::Visa,
6177
6210
  :expiration_date => "05/2009"
6178
- }
6211
+ },
6179
6212
  )
6180
6213
  result.success?.should == true
6181
6214
  created_transaction = result.transaction
@@ -6225,7 +6258,7 @@ describe Braintree::Transaction do
6225
6258
  :credit_card => {
6226
6259
  :number => Braintree::Test::CreditCardNumbers::Visa,
6227
6260
  :expiration_date => "05/2009"
6228
- }
6261
+ },
6229
6262
  )
6230
6263
  result.success?.should == true
6231
6264
  created_transaction = result.transaction
@@ -6238,15 +6271,21 @@ describe Braintree::Transaction do
6238
6271
  it "returns all the three_d_secure_info" do
6239
6272
  transaction = Braintree::Transaction.find("threedsecuredtransaction")
6240
6273
 
6274
+ expect(transaction.three_d_secure_info.authentication).to have_key(:trans_status)
6275
+ expect(transaction.three_d_secure_info.authentication).to have_key(:trans_status_reason)
6276
+ expect(transaction.three_d_secure_info.lookup).to have_key(:trans_status)
6277
+ expect(transaction.three_d_secure_info.lookup).to have_key(:trans_status_reason)
6278
+ transaction.three_d_secure_info.cavv.should == "somebase64value"
6279
+ transaction.three_d_secure_info.ds_transaction_id.should == "dstxnid"
6280
+ transaction.three_d_secure_info.eci_flag.should == "07"
6241
6281
  transaction.three_d_secure_info.enrolled.should == "Y"
6242
- transaction.three_d_secure_info.should be_liability_shifted
6282
+ transaction.three_d_secure_info.pares_status.should == "Y"
6243
6283
  transaction.three_d_secure_info.should be_liability_shift_possible
6284
+ transaction.three_d_secure_info.should be_liability_shifted
6244
6285
  transaction.three_d_secure_info.status.should == "authenticate_successful"
6245
- transaction.three_d_secure_info.cavv.should == "somebase64value"
6246
- transaction.three_d_secure_info.xid.should == "xidvalue"
6247
- transaction.three_d_secure_info.eci_flag.should == "07"
6286
+ expect(transaction.three_d_secure_info.three_d_secure_authentication_id).to be
6248
6287
  transaction.three_d_secure_info.three_d_secure_version.should == "1.0.2"
6249
- transaction.three_d_secure_info.ds_transaction_id.should == "dstxnid"
6288
+ transaction.three_d_secure_info.xid.should == "xidvalue"
6250
6289
  end
6251
6290
 
6252
6291
  it "is nil if the transaction wasn't 3d secured" do
@@ -6288,7 +6327,7 @@ describe Braintree::Transaction do
6288
6327
  :number => Braintree::Test::CreditCardNumbers::Visa,
6289
6328
  :expiration_date => "12/12",
6290
6329
  },
6291
- :service_fee_amount => "10.00"
6330
+ :service_fee_amount => "10.00",
6292
6331
  )
6293
6332
 
6294
6333
  result.transaction.escrow_status.should be_nil
@@ -6305,7 +6344,7 @@ describe Braintree::Transaction do
6305
6344
  :credit_card => {
6306
6345
  :number => Braintree::Test::CreditCardNumbers::Visa,
6307
6346
  :expiration_date => "05/2009"
6308
- }
6347
+ },
6309
6348
  )
6310
6349
 
6311
6350
  result = Braintree::Transaction.hold_in_escrow(transaction.id)
@@ -6323,7 +6362,7 @@ describe Braintree::Transaction do
6323
6362
  :number => Braintree::Test::CreditCardNumbers::Visa,
6324
6363
  :expiration_date => "12/12",
6325
6364
  },
6326
- :service_fee_amount => "10.00"
6365
+ :service_fee_amount => "10.00",
6327
6366
  )
6328
6367
 
6329
6368
  result.transaction.escrow_status.should be_nil
@@ -6339,7 +6378,7 @@ describe Braintree::Transaction do
6339
6378
  :credit_card => {
6340
6379
  :number => Braintree::Test::CreditCardNumbers::Visa,
6341
6380
  :expiration_date => "05/2009"
6342
- }
6381
+ },
6343
6382
  )
6344
6383
 
6345
6384
  expect do
@@ -6355,7 +6394,7 @@ describe Braintree::Transaction do
6355
6394
  :credit_card => {
6356
6395
  :number => Braintree::Test::CreditCardNumbers::Visa,
6357
6396
  :expiration_date => "05/2009"
6358
- }
6397
+ },
6359
6398
  )
6360
6399
  result = Braintree::Transaction.void(transaction.id)
6361
6400
  result.success?.should == true
@@ -6369,7 +6408,7 @@ describe Braintree::Transaction do
6369
6408
  :credit_card => {
6370
6409
  :number => Braintree::Test::CreditCardNumbers::Visa,
6371
6410
  :expiration_date => "05/2009"
6372
- }
6411
+ },
6373
6412
  ).transaction
6374
6413
  result = Braintree::Transaction.void(transaction.id)
6375
6414
  result.success?.should == false
@@ -6384,7 +6423,7 @@ describe Braintree::Transaction do
6384
6423
  :credit_card => {
6385
6424
  :number => Braintree::Test::CreditCardNumbers::Visa,
6386
6425
  :expiration_date => "05/2009"
6387
- }
6426
+ },
6388
6427
  )
6389
6428
  returned_transaction = Braintree::Transaction.void!(transaction.id)
6390
6429
  returned_transaction.should == transaction
@@ -6397,7 +6436,7 @@ describe Braintree::Transaction do
6397
6436
  :credit_card => {
6398
6437
  :number => Braintree::Test::CreditCardNumbers::Visa,
6399
6438
  :expiration_date => "05/2009"
6400
- }
6439
+ },
6401
6440
  ).transaction
6402
6441
  expect do
6403
6442
  Braintree::Transaction.void!(transaction.id)
@@ -6412,7 +6451,7 @@ describe Braintree::Transaction do
6412
6451
  :credit_card => {
6413
6452
  :number => Braintree::Test::CreditCardNumbers::Visa,
6414
6453
  :expiration_date => "05/2009"
6415
- }
6454
+ },
6416
6455
  )
6417
6456
  result = Braintree::Transaction.submit_for_settlement!(transaction.id)
6418
6457
  result.status_history.size.should == 2
@@ -6470,7 +6509,7 @@ describe Braintree::Transaction do
6470
6509
  :credit_card => {
6471
6510
  :number => Braintree::Test::CreditCardNumbers::Visa,
6472
6511
  :expiration_date => "05/2010"
6473
- }
6512
+ },
6474
6513
  )
6475
6514
  transaction = Braintree::CreditCard.sale(customer.credit_cards[0].token, {:amount => "100.00"}).transaction
6476
6515
  transaction.vault_credit_card.should == customer.credit_cards[0]
@@ -6483,7 +6522,7 @@ describe Braintree::Transaction do
6483
6522
  :credit_card => {
6484
6523
  :number => Braintree::Test::CreditCardNumbers::Visa,
6485
6524
  :expiration_date => "05/2010"
6486
- }
6525
+ },
6487
6526
  )
6488
6527
  transaction.vault_credit_card.should == nil
6489
6528
  end
@@ -6495,7 +6534,7 @@ describe Braintree::Transaction do
6495
6534
  :credit_card => {
6496
6535
  :number => Braintree::Test::CreditCardNumbers::Visa,
6497
6536
  :expiration_date => "05/2010"
6498
- }
6537
+ },
6499
6538
  )
6500
6539
  transaction = Braintree::CreditCard.sale(customer.credit_cards[0].token, :amount => "100.00").transaction
6501
6540
  transaction.vault_customer.should == customer
@@ -6508,7 +6547,7 @@ describe Braintree::Transaction do
6508
6547
  :credit_card => {
6509
6548
  :number => Braintree::Test::CreditCardNumbers::Visa,
6510
6549
  :expiration_date => "05/2010"
6511
- }
6550
+ },
6512
6551
  )
6513
6552
  transaction.vault_customer.should == nil
6514
6553
  end
@@ -6523,7 +6562,7 @@ describe Braintree::Transaction do
6523
6562
  },
6524
6563
  :options => {
6525
6564
  :submit_for_settlement => true
6526
- }
6565
+ },
6527
6566
  )
6528
6567
 
6529
6568
  config = Braintree::Configuration.instantiate
@@ -6537,7 +6576,7 @@ describe Braintree::Transaction do
6537
6576
  :payment_method_nonce => Braintree::Test::Nonce::PayPalOneTimePayment,
6538
6577
  :options => {
6539
6578
  :submit_for_settlement => true
6540
- }
6579
+ },
6541
6580
  )
6542
6581
 
6543
6582
  config = Braintree::Configuration.instantiate
@@ -6553,8 +6592,8 @@ describe Braintree::Transaction do
6553
6592
  :number => Braintree::Test::CreditCardNumbers::Visa,
6554
6593
  :expiration_date => "05/2009"
6555
6594
  },
6556
- :service_fee_amount => '1.00',
6557
- :options => { :hold_in_escrow => true }
6595
+ :service_fee_amount => "1.00",
6596
+ :options => {:hold_in_escrow => true},
6558
6597
  )
6559
6598
 
6560
6599
  config = Braintree::Configuration.instantiate
@@ -6568,7 +6607,7 @@ describe Braintree::Transaction do
6568
6607
  it "can create a transaction with venmo_sdk_payment_method_code" do
6569
6608
  result = Braintree::Transaction.sale(
6570
6609
  :amount => "10.00",
6571
- :venmo_sdk_payment_method_code => Braintree::Test::VenmoSDK.generate_test_payment_method_code(Braintree::Test::CreditCardNumbers::Visa)
6610
+ :venmo_sdk_payment_method_code => Braintree::Test::VenmoSDK.generate_test_payment_method_code(Braintree::Test::CreditCardNumbers::Visa),
6572
6611
  )
6573
6612
  result.success?.should == true
6574
6613
  result.transaction.credit_card_details.venmo_sdk?.should == false
@@ -6577,7 +6616,7 @@ describe Braintree::Transaction do
6577
6616
  it "errors when an invalid payment method code is passed" do
6578
6617
  result = Braintree::Transaction.sale(
6579
6618
  :amount => "10.00",
6580
- :venmo_sdk_payment_method_code => Braintree::Test::VenmoSDK::InvalidPaymentMethodCode
6619
+ :venmo_sdk_payment_method_code => Braintree::Test::VenmoSDK::InvalidPaymentMethodCode,
6581
6620
  )
6582
6621
  result.success?.should == false
6583
6622
  result.message.should include("Invalid VenmoSDK payment method code")
@@ -6595,7 +6634,7 @@ describe Braintree::Transaction do
6595
6634
  },
6596
6635
  :options => {
6597
6636
  :venmo_sdk_session => Braintree::Test::VenmoSDK::Session
6598
- }
6637
+ },
6599
6638
  )
6600
6639
  result.success?.should == true
6601
6640
  result.transaction.credit_card_details.venmo_sdk?.should == false
@@ -6610,7 +6649,7 @@ describe Braintree::Transaction do
6610
6649
  },
6611
6650
  :options => {
6612
6651
  :venmo_sdk_session => Braintree::Test::VenmoSDK::InvalidSession
6613
- }
6652
+ },
6614
6653
  )
6615
6654
  result.success?.should == true
6616
6655
  result.transaction.credit_card_details.venmo_sdk?.should == false
@@ -6622,7 +6661,7 @@ describe Braintree::Transaction do
6622
6661
  it "can create a transaction for a paypal account" do
6623
6662
  result = Braintree::Transaction.sale(
6624
6663
  :amount => "10.00",
6625
- :payment_method_nonce => Braintree::Test::Nonce::PayPalFuturePayment
6664
+ :payment_method_nonce => Braintree::Test::Nonce::PayPalFuturePayment,
6626
6665
  )
6627
6666
  result.success?.should == true
6628
6667
  result.transaction.paypal_details.payer_email.should == "payer@example.com"
@@ -6637,7 +6676,7 @@ describe Braintree::Transaction do
6637
6676
  :payment_method_nonce => Braintree::Test::Nonce::PayPalFuturePayment,
6638
6677
  :options => {
6639
6678
  :store_in_vault => true
6640
- }
6679
+ },
6641
6680
  )
6642
6681
  result.success?.should == true
6643
6682
  result.transaction.paypal_details.token.should_not be_nil
@@ -6650,7 +6689,7 @@ describe Braintree::Transaction do
6650
6689
  customer = Braintree::Customer.create!
6651
6690
  result = Braintree::PaymentMethod.create(
6652
6691
  :payment_method_nonce => Braintree::Test::Nonce::PayPalFuturePayment,
6653
- :customer_id => customer.id
6692
+ :customer_id => customer.id,
6654
6693
  )
6655
6694
 
6656
6695
  result.should be_success
@@ -6660,7 +6699,7 @@ describe Braintree::Transaction do
6660
6699
  result = Braintree::Transaction.sale(
6661
6700
  :amount => "100",
6662
6701
  :customer_id => customer.id,
6663
- :payment_method_token => payment_method_token
6702
+ :payment_method_token => payment_method_token,
6664
6703
  )
6665
6704
 
6666
6705
  result.should be_success
@@ -6675,7 +6714,7 @@ describe Braintree::Transaction do
6675
6714
  nonce = nonce_for_paypal_account(:token => "TOKEN")
6676
6715
  result = Braintree::Transaction.sale(
6677
6716
  :amount => "10.00",
6678
- :payment_method_nonce => nonce
6717
+ :payment_method_nonce => nonce,
6679
6718
  )
6680
6719
  result.should_not be_success
6681
6720
  result.errors.for(:transaction).for(:paypal_account).first.code.should == Braintree::ErrorCodes::PayPalAccount::IncompletePayPalAccount
@@ -6690,7 +6729,7 @@ describe Braintree::Transaction do
6690
6729
  :public_key => "oauth_app_partner_user_public_key",
6691
6730
  :private_key => "oauth_app_partner_user_private_key",
6692
6731
  :environment => Braintree::Configuration.environment,
6693
- :logger => Logger.new("/dev/null")
6732
+ :logger => Logger.new("/dev/null"),
6694
6733
  )
6695
6734
  @customer = @partner_merchant_gateway.customer.create(
6696
6735
  :first_name => "Joe",
@@ -6699,12 +6738,12 @@ describe Braintree::Transaction do
6699
6738
  :email => "joe@example.com",
6700
6739
  :phone => "312.555.1234",
6701
6740
  :fax => "614.555.5678",
6702
- :website => "www.example.com"
6741
+ :website => "www.example.com",
6703
6742
  ).customer
6704
6743
  @address = @partner_merchant_gateway.address.create(
6705
6744
  :customer_id => @customer.id,
6706
6745
  :first_name => "Testy",
6707
- :last_name => "McTesterson"
6746
+ :last_name => "McTesterson",
6708
6747
  ).address
6709
6748
  @credit_card = @partner_merchant_gateway.credit_card.create(
6710
6749
  :customer_id => @customer.id,
@@ -6715,13 +6754,13 @@ describe Braintree::Transaction do
6715
6754
  :first_name => "Adam",
6716
6755
  :last_name => "Davis",
6717
6756
  :postal_code => "95131"
6718
- }
6757
+ },
6719
6758
  ).credit_card
6720
6759
 
6721
6760
  oauth_gateway = Braintree::Gateway.new(
6722
6761
  :client_id => "client_id$#{Braintree::Configuration.environment}$integration_client_id",
6723
6762
  :client_secret => "client_secret$#{Braintree::Configuration.environment}$integration_client_secret",
6724
- :logger => Logger.new("/dev/null")
6763
+ :logger => Logger.new("/dev/null"),
6725
6764
  )
6726
6765
  access_token = Braintree::OAuthTestHelper.create_token(oauth_gateway, {
6727
6766
  :merchant_public_id => "integration_merchant_id",
@@ -6730,7 +6769,7 @@ describe Braintree::Transaction do
6730
6769
 
6731
6770
  @granting_gateway = Braintree::Gateway.new(
6732
6771
  :access_token => access_token,
6733
- :logger => Logger.new("/dev/null")
6772
+ :logger => Logger.new("/dev/null"),
6734
6773
  )
6735
6774
 
6736
6775
  end
@@ -6740,7 +6779,7 @@ describe Braintree::Transaction do
6740
6779
 
6741
6780
  result = Braintree::Transaction.sale(
6742
6781
  :payment_method_nonce => grant_result.payment_method_nonce.nonce,
6743
- :amount => Braintree::Test::TransactionAmounts::Authorize
6782
+ :amount => Braintree::Test::TransactionAmounts::Authorize,
6744
6783
  )
6745
6784
  result.transaction.facilitated_details.merchant_id.should == "integration_merchant_id"
6746
6785
  result.transaction.facilitated_details.merchant_name.should == "14ladders"
@@ -6756,7 +6795,7 @@ describe Braintree::Transaction do
6756
6795
 
6757
6796
  result = Braintree::Transaction.sale(
6758
6797
  :payment_method_nonce => grant_result.payment_method_nonce.nonce,
6759
- :amount => Braintree::Test::TransactionAmounts::Authorize
6798
+ :amount => Braintree::Test::TransactionAmounts::Authorize,
6760
6799
  )
6761
6800
 
6762
6801
  result.transaction.billing_details.postal_code == "95131"
@@ -6768,7 +6807,7 @@ describe Braintree::Transaction do
6768
6807
  :shared_customer_id => @customer.id,
6769
6808
  :shared_shipping_address_id => @address.id,
6770
6809
  :shared_billing_address_id => @address.id,
6771
- :amount => Braintree::Test::TransactionAmounts::Authorize
6810
+ :amount => Braintree::Test::TransactionAmounts::Authorize,
6772
6811
  )
6773
6812
  result.success?.should == true
6774
6813
  result.transaction.shipping_details.first_name.should == @address.first_name
@@ -6778,7 +6817,7 @@ describe Braintree::Transaction do
6778
6817
  it "facilitated details are returned on transaction created via a shared_payment_method_token" do
6779
6818
  result = @granting_gateway.transaction.sale(
6780
6819
  :shared_payment_method_token => @credit_card.token,
6781
- :amount => Braintree::Test::TransactionAmounts::Authorize
6820
+ :amount => Braintree::Test::TransactionAmounts::Authorize,
6782
6821
  )
6783
6822
  result.transaction.facilitated_details.merchant_id.should == "integration_merchant_id"
6784
6823
  result.transaction.facilitated_details.merchant_name.should == "14ladders"
@@ -6790,12 +6829,12 @@ describe Braintree::Transaction do
6790
6829
 
6791
6830
  it "facilitated details are returned on transaction created via a shared_payment_method_nonce" do
6792
6831
  shared_nonce = @partner_merchant_gateway.payment_method_nonce.create(
6793
- @credit_card.token
6832
+ @credit_card.token,
6794
6833
  ).payment_method_nonce.nonce
6795
6834
 
6796
6835
  result = @granting_gateway.transaction.sale(
6797
6836
  :shared_payment_method_nonce => shared_nonce,
6798
- :amount => Braintree::Test::TransactionAmounts::Authorize
6837
+ :amount => Braintree::Test::TransactionAmounts::Authorize,
6799
6838
  )
6800
6839
  result.transaction.facilitated_details.merchant_id.should == "integration_merchant_id"
6801
6840
  result.transaction.facilitated_details.merchant_name.should == "14ladders"
@@ -6808,7 +6847,7 @@ describe Braintree::Transaction do
6808
6847
 
6809
6848
  context "paypal here" do
6810
6849
  it "gets the details of an auth/capture transaction" do
6811
- result = Braintree::Transaction.find('paypal_here_auth_capture_id')
6850
+ result = Braintree::Transaction.find("paypal_here_auth_capture_id")
6812
6851
  result.payment_instrument_type.should eq(Braintree::PaymentInstrumentType::PayPalHere)
6813
6852
  result.paypal_here_details.should_not be_nil
6814
6853
 
@@ -6825,7 +6864,7 @@ describe Braintree::Transaction do
6825
6864
  end
6826
6865
 
6827
6866
  it "gets the details of a sale transaction" do
6828
- result = Braintree::Transaction.find('paypal_here_sale_id')
6867
+ result = Braintree::Transaction.find("paypal_here_sale_id")
6829
6868
  result.paypal_here_details.should_not be_nil
6830
6869
 
6831
6870
  details = result.paypal_here_details
@@ -6833,7 +6872,7 @@ describe Braintree::Transaction do
6833
6872
  end
6834
6873
 
6835
6874
  it "gets the details of a refunded sale transaction" do
6836
- result = Braintree::Transaction.find('paypal_here_refund_id')
6875
+ result = Braintree::Transaction.find("paypal_here_refund_id")
6837
6876
  result.paypal_here_details.should_not be_nil
6838
6877
 
6839
6878
  details = result.paypal_here_details
@@ -6858,7 +6897,7 @@ describe Braintree::Transaction do
6858
6897
  customer = Braintree::Customer.create!
6859
6898
  result = Braintree::PaymentMethod.create(
6860
6899
  :payment_method_nonce => Braintree::Test::Nonce::TransactableVisa,
6861
- :customer_id => customer.id
6900
+ :customer_id => customer.id,
6862
6901
  )
6863
6902
  payment_method_token = result.payment_method.token
6864
6903
 
@@ -6960,4 +6999,179 @@ describe Braintree::Transaction do
6960
6999
  expect(installment.adjustments.map(&:kind)).to match_array([Braintree::Transaction::Installment::Adjustment::Kind::Refund])
6961
7000
  end
6962
7001
  end
7002
+
7003
+ describe "Manual Key Entry" do
7004
+ context "with correct encrypted payment reader card details" do
7005
+ it "returns a success response" do
7006
+ result = Braintree::Transaction.sale(
7007
+ :amount => "10.00",
7008
+ :credit_card => {
7009
+ :payment_reader_card_details => {
7010
+ :encrypted_card_data => "8F34DFB312DC79C24FD5320622F3E11682D79E6B0C0FD881",
7011
+ :key_serial_number => "FFFFFF02000572A00005",
7012
+ },
7013
+ },
7014
+ )
7015
+
7016
+ expect(result).to be_success
7017
+ end
7018
+ end
7019
+
7020
+ context "with invalid encrypted payment reader card details" do
7021
+ it "returns a failure response" do
7022
+ result = Braintree::Transaction.sale(
7023
+ :amount => "10.00",
7024
+ :credit_card => {
7025
+ :payment_reader_card_details => {
7026
+ :encrypted_card_data => "invalid",
7027
+ :key_serial_number => "invalid",
7028
+ },
7029
+ },
7030
+ )
7031
+
7032
+ expect(result).not_to be_success
7033
+ expect(result.errors.for(:transaction).first.code)
7034
+ .to eq(Braintree::ErrorCodes::Transaction::PaymentInstrumentNotSupportedByMerchantAccount)
7035
+ end
7036
+ end
7037
+ end
7038
+
7039
+ describe "Adjust Authorization" do
7040
+ let(:first_data_master_transaction_params) do
7041
+ {
7042
+ :merchant_account_id => SpecHelper::FakeFirstDataMerchantAccountId,
7043
+ :amount => "75.50",
7044
+ :credit_card => {
7045
+ :number => "5105105105105100",
7046
+ :expiration_date => "05/2012"
7047
+ }
7048
+ }
7049
+ end
7050
+ let(:first_data_visa_transaction_params) do
7051
+ {
7052
+ :merchant_account_id => SpecHelper::FakeFirstDataMerchantAccountId,
7053
+ :amount => "75.50",
7054
+ :credit_card => {
7055
+ :number => Braintree::Test::CreditCardNumbers::Visa,
7056
+ :expiration_date => "06/2009"
7057
+ }
7058
+ }
7059
+ end
7060
+ context "successful authorization" do
7061
+ it "returns success response" do
7062
+ initial_transaction = Braintree::Transaction.sale(first_data_master_transaction_params)
7063
+ expect(initial_transaction.success?).to eq(true)
7064
+
7065
+ adjustment_transaction = Braintree::Transaction.adjust_authorization(
7066
+ initial_transaction.transaction.id, "85.50"
7067
+ )
7068
+
7069
+ expect(adjustment_transaction.success?).to eq(true)
7070
+ expect(adjustment_transaction.transaction.amount.should).to eq(BigDecimal("85.50"))
7071
+ end
7072
+ end
7073
+
7074
+ context "unsuccessful authorization" do
7075
+ it "returns failure, when processor does not support multi auth adjustment" do
7076
+ initial_transaction = Braintree::Transaction.sale(
7077
+ :merchant_account_id => SpecHelper::DefaultMerchantAccountId,
7078
+ :amount => "75.50",
7079
+ :credit_card => {
7080
+ :number => Braintree::Test::CreditCardNumbers::Visa,
7081
+ :expiration_date => "06/2009"
7082
+ },
7083
+ )
7084
+ expect(initial_transaction.success?).to eq(true)
7085
+
7086
+ adjustment_transaction = Braintree::Transaction.adjust_authorization(
7087
+ initial_transaction.transaction.id, "85.50"
7088
+ )
7089
+
7090
+
7091
+ expect(adjustment_transaction.success?).to eq(false)
7092
+ expect(adjustment_transaction.transaction.amount.should).to eq(BigDecimal("75.50"))
7093
+ expect(adjustment_transaction.errors.for(:transaction).on(:base).first.code).to eq(Braintree::ErrorCodes::Transaction::ProcessorDoesNotSupportAuthAdjustment)
7094
+ end
7095
+
7096
+ it "returns failure response, when adjusted amount submitted is zero" do
7097
+ initial_transaction = Braintree::Transaction.sale(first_data_master_transaction_params)
7098
+ expect(initial_transaction.success?).to eq(true)
7099
+
7100
+ adjustment_transaction = Braintree::Transaction.adjust_authorization(
7101
+ initial_transaction.transaction.id, "0.0"
7102
+ )
7103
+
7104
+ expect(adjustment_transaction.success?).to eq(false)
7105
+ expect(adjustment_transaction.transaction.amount.should).to eq(BigDecimal("75.50"))
7106
+ expect(adjustment_transaction.errors.for(:authorization_adjustment).on(:amount).first.code).to eq(Braintree::ErrorCodes::Transaction::AdjustmentAmountMustBeGreaterThanZero)
7107
+ end
7108
+
7109
+ it "returns failure response, when adjusted amount submitted same as authorized amount" do
7110
+ initial_transaction = Braintree::Transaction.sale(first_data_master_transaction_params)
7111
+ expect(initial_transaction.success?).to eq(true)
7112
+
7113
+ adjustment_transaction = Braintree::Transaction.adjust_authorization(
7114
+ initial_transaction.transaction.id, "75.50"
7115
+ )
7116
+
7117
+ expect(adjustment_transaction.success?).to eq(false)
7118
+ expect(adjustment_transaction.transaction.amount.should).to eq(BigDecimal("75.50"))
7119
+ expect(adjustment_transaction.errors.for(:authorization_adjustment).on(:base).first.code).to eq(Braintree::ErrorCodes::Transaction::NoNetAmountToPerformAuthAdjustment)
7120
+ end
7121
+
7122
+ it "returns failure, when transaction status is not authorized" do
7123
+ additional_params = {:options => {:submit_for_settlement => true}}
7124
+ initial_transaction = Braintree::Transaction.sale(first_data_master_transaction_params.merge(additional_params))
7125
+ expect(initial_transaction.success?).to eq(true)
7126
+
7127
+ adjustment_transaction = Braintree::Transaction.adjust_authorization(
7128
+ initial_transaction.transaction.id, "85.50"
7129
+ )
7130
+
7131
+ expect(adjustment_transaction.success?).to eq(false)
7132
+ expect(adjustment_transaction.transaction.amount.should).to eq(BigDecimal("75.50"))
7133
+ expect(adjustment_transaction.errors.for(:transaction).on(:base).first.code).to eq(Braintree::ErrorCodes::Transaction::TransactionMustBeInStateAuthorized)
7134
+ end
7135
+
7136
+ it "returns failure, when transaction authorization type final or undefined" do
7137
+ additional_params = {:transaction_source => "recurring_first"}
7138
+ initial_transaction = Braintree::Transaction.sale(first_data_master_transaction_params.merge(additional_params))
7139
+ expect(initial_transaction.success?).to eq(true)
7140
+
7141
+ adjustment_transaction = Braintree::Transaction.adjust_authorization(
7142
+ initial_transaction.transaction.id, "85.50"
7143
+ )
7144
+
7145
+ expect(adjustment_transaction.success?).to eq(false)
7146
+ expect(adjustment_transaction.transaction.amount.should).to eq(BigDecimal("75.50"))
7147
+ expect(adjustment_transaction.errors.for(:transaction).on(:base).first.code).to eq(Braintree::ErrorCodes::Transaction::TransactionIsNotEligibleForAdjustment)
7148
+ end
7149
+
7150
+ it "returns failure, when processor does not support incremental auth" do
7151
+ initial_transaction = Braintree::Transaction.sale(first_data_visa_transaction_params)
7152
+ expect(initial_transaction.success?).to eq(true)
7153
+
7154
+ adjustment_transaction = Braintree::Transaction.adjust_authorization(
7155
+ initial_transaction.transaction.id, "85.50"
7156
+ )
7157
+
7158
+ expect(adjustment_transaction.success?).to eq(false)
7159
+ expect(adjustment_transaction.transaction.amount.should).to eq(BigDecimal("75.50"))
7160
+ expect(adjustment_transaction.errors.for(:transaction).on(:base).first.code).to eq(Braintree::ErrorCodes::Transaction::ProcessorDoesNotSupportIncrementalAuth)
7161
+ end
7162
+
7163
+ it "returns failure, when processor does not support auth reversal" do
7164
+ initial_transaction = Braintree::Transaction.sale(first_data_visa_transaction_params)
7165
+ expect(initial_transaction.success?).to eq(true)
7166
+
7167
+ adjustment_transaction = Braintree::Transaction.adjust_authorization(
7168
+ initial_transaction.transaction.id, "65.50"
7169
+ )
7170
+
7171
+ expect(adjustment_transaction.success?).to eq(false)
7172
+ expect(adjustment_transaction.transaction.amount.should).to eq(BigDecimal("75.50"))
7173
+ expect(adjustment_transaction.errors.for(:transaction).on(:base).first.code).to eq(Braintree::ErrorCodes::Transaction::ProcessorDoesNotSupportPartialAuthReversal)
7174
+ end
7175
+ end
7176
+ end
6963
7177
  end