braintree 2.20.0 → 2.21.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.
@@ -180,6 +180,7 @@ module Braintree
180
180
  MerchantAccountNameIsInvalid = "91513" # Deprecated
181
181
  OrderIdIsTooLong = "91501"
182
182
  PaymentMethodConflict = "91515"
183
+ PaymentMethodConflictWithVenmoSDK = "91549"
183
184
  PaymentMethodDoesNotBelongToCustomer = "91516"
184
185
  PaymentMethodDoesNotBelongToSubscription = "91527"
185
186
  PaymentMethodTokenCardTypeIsNotAccepted = "91517"
@@ -4,7 +4,8 @@ module Braintree
4
4
  include BaseModule
5
5
 
6
6
  attr_reader :bin, :card_type, :cardholder_name, :customer_location, :expiration_month,
7
- :expiration_year, :last_4, :token
7
+ :expiration_year, :last_4, :token, :prepaid, :healthcare, :durbin_regulated, :debit,
8
+ :commercial, :payroll, :country_of_issuance, :issuing_bank
8
9
 
9
10
  def initialize(attributes)
10
11
  set_instance_variables_from_hash attributes unless attributes.nil?
@@ -15,7 +16,8 @@ module Braintree
15
16
  end
16
17
 
17
18
  def inspect
18
- attr_order = [:token, :bin, :last_4, :card_type, :expiration_date, :cardholder_name, :customer_location]
19
+ attr_order = [:token, :bin, :last_4, :card_type, :expiration_date, :cardholder_name, :customer_location, :prepaid,
20
+ :healthcare, :durbin_regulated, :debit, :commercial, :payroll, :country_of_issuance, :issuing_bank]
19
21
  formatted_attrs = attr_order.map do |attr|
20
22
  "#{attr}: #{send(attr).inspect}"
21
23
  end
@@ -26,11 +26,11 @@ module Braintree
26
26
  end
27
27
 
28
28
  def self.url_decode(text)
29
- CGI.unescape text.to_s
29
+ CGI.unescape text.to_s.to_str
30
30
  end
31
31
 
32
32
  def self.url_encode(text)
33
- CGI.escape text.to_s
33
+ CGI.escape text.to_s.to_str
34
34
  end
35
35
 
36
36
  def self.symbolize_keys(hash)
@@ -1,7 +1,7 @@
1
1
  module Braintree
2
2
  module Version
3
3
  Major = 2
4
- Minor = 20
4
+ Minor = 21
5
5
  Tiny = 0
6
6
 
7
7
  String = "#{Major}.#{Minor}.#{Tiny}"
data/spec/httpsd.pid CHANGED
@@ -1 +1 @@
1
- 54061
1
+ 44961
@@ -25,5 +25,31 @@ describe Braintree::CreditCardVerification, "search" do
25
25
  Braintree::CreditCardVerification.find("invalid-id")
26
26
  end.to raise_error(Braintree::NotFoundError, 'verification with id "invalid-id" not found')
27
27
  end
28
+
29
+ describe "card type indicators" do
30
+ it "returns prepaid on a prepaid card" do
31
+ cardholder_name = "Tom #{rand(1_000_000)} Smith"
32
+
33
+ result = Braintree::Customer.create(
34
+ :credit_card => {
35
+ :cardholder_name => cardholder_name,
36
+ :expiration_date => "05/2012",
37
+ :number => Braintree::Test::CreditCardNumbers::CardTypeIndicators::Prepaid,
38
+ :cvv => '200',
39
+ :options => {
40
+ :verify_card => true
41
+ }
42
+ })
43
+
44
+ search_results = Braintree::CreditCardVerification.search do |search|
45
+ search.credit_card_cardholder_name.is cardholder_name
46
+ end
47
+
48
+ verification_id = search_results.first.id
49
+
50
+ found_verification = Braintree::CreditCardVerification.find(verification_id)
51
+ found_verification.credit_card[:prepaid].should == Braintree::CreditCard::Prepaid::Yes
52
+ end
53
+ end
28
54
  end
29
55
  end
@@ -115,6 +115,21 @@ describe Braintree::Transaction do
115
115
  end
116
116
 
117
117
  describe "self.create" do
118
+
119
+ describe "card type indicators" do
120
+ it "sets the prepaid field if the card is prepaid" do
121
+ result = Braintree::Transaction.create(
122
+ :type => "sale",
123
+ :amount => 1_00,
124
+ :credit_card => {
125
+ :number => Braintree::Test::CreditCardNumbers::CardTypeIndicators::Prepaid,
126
+ :expiration_date => "05/2009"
127
+ }
128
+ )
129
+ result.transaction.credit_card_details.prepaid.should == Braintree::CreditCard::Prepaid::Yes
130
+ end
131
+ end
132
+
118
133
  it "returns a successful result if successful" do
119
134
  result = Braintree::Transaction.create(
120
135
  :type => "sale",
@@ -461,7 +476,7 @@ describe Braintree::Transaction do
461
476
  }
462
477
  result = Braintree::Transaction.create(params[:transaction])
463
478
  result.success?.should == false
464
- result.errors.for(:transaction).on(:base).map{|error| error.code}.should include(Braintree::ErrorCodes::Transaction::PaymentMethodConflict)
479
+ result.errors.for(:transaction).on(:base).map{|error| error.code}.should include(Braintree::ErrorCodes::Transaction::PaymentMethodConflictWithVenmoSDK)
465
480
  result.errors.for(:transaction).on(:base).map{|error| error.code}.should include(Braintree::ErrorCodes::Transaction::PaymentMethodDoesNotBelongToCustomer)
466
481
  result.errors.for(:transaction).on(:amount)[0].code.should == Braintree::ErrorCodes::Transaction::AmountIsRequired
467
482
  result.errors.for(:transaction).on(:customer_id)[0].code.should == Braintree::ErrorCodes::Transaction::CustomerIdIsInvalid
@@ -21,10 +21,19 @@ describe Braintree::Transaction::CreditCardDetails do
21
21
  :expiration_year => "2012",
22
22
  :last_4 => "6789",
23
23
  :token => "token",
24
- :customer_location => "US"
24
+ :customer_location => "US",
25
+ :healthcare => "No",
26
+ :prepaid => "Yes",
27
+ :durbin_regulated => "No",
28
+ :debit => "Yes",
29
+ :commercial => "Unknown",
30
+ :payroll => "Unknown",
31
+ :country_of_issuance => "Lilliput",
32
+ :issuing_bank => "Gulliver Bank"
25
33
  )
26
- details.inspect.should == %(#<token: "token", bin: "123456", last_4: "6789", card_type: "Visa", expiration_date: "05/2012", cardholder_name: "The Cardholder", customer_location: "US">)
34
+ details.inspect.should == %(#<token: "token", bin: "123456", last_4: "6789", card_type: "Visa", expiration_date: "05/2012", cardholder_name: "The Cardholder", customer_location: "US", prepaid: "Yes", healthcare: "No", durbin_regulated: "No", debit: "Yes", commercial: "Unknown", payroll: "Unknown", country_of_issuance: "Lilliput", issuing_bank: "Gulliver Bank">)
27
35
  end
36
+
28
37
  end
29
38
 
30
39
  describe "masked_number" do
@@ -95,7 +95,15 @@ describe Braintree::Transaction do
95
95
  :card_type => "Visa",
96
96
  :expiration_month => "08",
97
97
  :expiration_year => "2009",
98
- :customer_location => "US"
98
+ :customer_location => "US",
99
+ :prepaid => "Yes",
100
+ :healthcare => "Yes",
101
+ :durbin_regulated => "Yes",
102
+ :debit => "Yes",
103
+ :commercial => "No",
104
+ :payroll => "Unknown",
105
+ :country_of_issuance => "Narnia",
106
+ :issuing_bank => "Mr Tumnus"
99
107
  }
100
108
  )
101
109
  transaction.credit_card_details.token.should == "mzg2"
@@ -105,6 +113,13 @@ describe Braintree::Transaction do
105
113
  transaction.credit_card_details.expiration_month.should == "08"
106
114
  transaction.credit_card_details.expiration_year.should == "2009"
107
115
  transaction.credit_card_details.customer_location.should == "US"
116
+ transaction.credit_card_details.prepaid.should == Braintree::CreditCard::Prepaid::Yes
117
+ transaction.credit_card_details.healthcare.should == Braintree::CreditCard::Healthcare::Yes
118
+ transaction.credit_card_details.durbin_regulated.should == Braintree::CreditCard::DurbinRegulated::Yes
119
+ transaction.credit_card_details.debit.should == Braintree::CreditCard::Debit::Yes
120
+ transaction.credit_card_details.commercial.should == Braintree::CreditCard::Commercial::No
121
+ transaction.credit_card_details.country_of_issuance.should == "Narnia"
122
+ transaction.credit_card_details.issuing_bank.should == "Mr Tumnus"
108
123
  end
109
124
 
110
125
  it "sets up history attributes in status_history" do
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: braintree
3
3
  version: !ruby/object:Gem::Version
4
- hash: 95
4
+ hash: 91
5
5
  prerelease: false
6
6
  segments:
7
7
  - 2
8
- - 20
8
+ - 21
9
9
  - 0
10
- version: 2.20.0
10
+ version: 2.21.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Braintree
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2012-11-09 00:00:00 -06:00
18
+ date: 2012-12-05 00:00:00 -06:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency