braintree 2.16.0 → 2.17.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -31,7 +31,7 @@ module Braintree
31
31
 
32
32
  def find(customer_or_customer_id, address_id)
33
33
  customer_id = _determine_customer_id(customer_or_customer_id)
34
- raise ArgumentError if address_id.nil? || address_id.strip.to_s == ""
34
+ raise ArgumentError if address_id.nil? || address_id.to_s.strip == ""
35
35
  response = @config.http.get("/customers/#{customer_id}/addresses/#{address_id}")
36
36
  Address._new(@gateway, response[:address])
37
37
  rescue NotFoundError
@@ -26,8 +26,14 @@ module Braintree
26
26
  US = "us"
27
27
  end
28
28
 
29
+ module Prepaid
30
+ Yes = "Yes"
31
+ No = "No"
32
+ Unknown = "Unknown"
33
+ end
34
+
29
35
  attr_reader :billing_address, :bin, :card_type, :cardholder_name, :created_at, :customer_id, :expiration_month,
30
- :expiration_year, :last_4, :unique_number_identifier, :subscriptions, :token, :updated_at
36
+ :expiration_year, :last_4, :prepaid, :unique_number_identifier, :subscriptions, :token, :updated_at
31
37
 
32
38
  # See http://www.braintreepayments.com/docs/ruby/credit_cards/create
33
39
  def self.create(attributes)
@@ -227,7 +233,7 @@ module Braintree
227
233
  def self._attributes # :nodoc:
228
234
  [
229
235
  :billing_address, :bin, :card_type, :cardholder_name, :created_at, :customer_id, :expiration_month,
230
- :expiration_year, :last_4, :token, :updated_at
236
+ :expiration_year, :last_4, :token, :updated_at, :prepaid
231
237
  ]
232
238
  end
233
239
 
@@ -41,7 +41,7 @@ module Braintree
41
41
  end
42
42
 
43
43
  def find(token)
44
- raise ArgumentError if token.nil? || token.strip.to_s == ""
44
+ raise ArgumentError if token.nil? || token.to_s.strip == ""
45
45
  response = @config.http.get "/payment_methods/#{token}"
46
46
  CreditCard._new(@gateway, response[:credit_card])
47
47
  rescue NotFoundError
@@ -33,7 +33,7 @@ module Braintree
33
33
 
34
34
  def find(customer_id)
35
35
  raise ArgumentError, "customer_id contains invalid characters" unless customer_id.to_s =~ /\A[\w-]+\z/
36
- raise ArgumentError, "customer_id cannot be blank" if customer_id.nil?|| customer_id.strip.to_s == ""
36
+ raise ArgumentError, "customer_id cannot be blank" if customer_id.nil?|| customer_id.to_s.strip == ""
37
37
  response = @config.http.get("/customers/#{customer_id}")
38
38
  Customer._new(@gateway, response[:customer])
39
39
  rescue NotFoundError
@@ -24,7 +24,7 @@ module Braintree
24
24
  end
25
25
 
26
26
  def find(id)
27
- raise ArgumentError if id.nil? || id.strip.to_s == ""
27
+ raise ArgumentError if id.nil? || id.to_s.strip == ""
28
28
  response = @config.http.get "/subscriptions/#{id}"
29
29
  Subscription._new(@gateway, response[:subscription])
30
30
  rescue NotFoundError
@@ -21,8 +21,9 @@ module Braintree
21
21
 
22
22
  Visa = "4012888888881881"
23
23
  VisaInternational = "4009348888881881" # :nodoc:
24
+ VisaPrepaid = "4500600000000061"
24
25
 
25
- Visas = %w[4009348888881881 4012888888881881 4111111111111111 4000111111111115]
26
+ Visas = %w[4009348888881881 4012888888881881 4111111111111111 4000111111111115 4500600000000061]
26
27
  Unknowns = %w[1000000000000008]
27
28
 
28
29
  module FailsSandboxVerification
@@ -1,7 +1,7 @@
1
1
  module Braintree
2
2
  module Version
3
3
  Major = 2
4
- Minor = 16
4
+ Minor = 17
5
5
  Tiny = 0
6
6
 
7
7
  String = "#{Major}.#{Minor}.#{Tiny}"
@@ -243,6 +243,43 @@ describe Braintree::CreditCard do
243
243
 
244
244
  Braintree::CreditCard.find(card1.token).should_not be_default
245
245
  end
246
+
247
+ it "sets the prepaid field if the card is prepaid" do
248
+ customer = Braintree::Customer.create!
249
+ result = Braintree::CreditCard.create(
250
+ :customer_id => customer.id,
251
+ :number => Braintree::Test::CreditCardNumbers::VisaPrepaid,
252
+ :expiration_date => "05/2014",
253
+ :options => {:verify_card => true}
254
+ )
255
+ credit_card = result.credit_card
256
+ credit_card.prepaid.should == Braintree::CreditCard::Prepaid::Yes
257
+ end
258
+
259
+ it "sets negative card type identifiers" do
260
+ customer = Braintree::Customer.create!
261
+ result = Braintree::CreditCard.create(
262
+ :customer_id => customer.id,
263
+ :number => Braintree::Test::CreditCardNumbers::Visa,
264
+ :expiration_date => "05/2014",
265
+ :options => {:verify_card => true}
266
+ )
267
+ credit_card = result.credit_card
268
+ credit_card.prepaid.should == Braintree::CreditCard::Prepaid::No
269
+ end
270
+
271
+ it "doesn't set the card type identifiers for an un-identified card" do
272
+ customer = Braintree::Customer.create!
273
+ result = Braintree::CreditCard.create(
274
+ :customer_id => customer.id,
275
+ :number => Braintree::Test::CreditCardNumbers::MasterCard,
276
+ :expiration_date => "05/2014",
277
+ :options => {:verify_card => true}
278
+ )
279
+ credit_card = result.credit_card
280
+ credit_card.prepaid.should == Braintree::CreditCard::Prepaid::Unknown
281
+ end
282
+
246
283
  end
247
284
 
248
285
  describe "self.create!" do
@@ -140,7 +140,7 @@ describe Braintree::Customer do
140
140
  :first_name => "Mike",
141
141
  :last_name => "Jones",
142
142
  :credit_card => {
143
- :number => Braintree::Test::CreditCardNumbers::FailsSandboxVerification::MasterCard,
143
+ :number => Braintree::Test::CreditCardNumbers::Visa,
144
144
  :expiration_date => "05/2015",
145
145
  :options => {:fail_on_duplicate_payment_method => true}
146
146
  }
@@ -78,6 +78,13 @@ describe Braintree::Address do
78
78
  Braintree::Address.find("customer_id", nil)
79
79
  end.to raise_error(ArgumentError)
80
80
  end
81
+
82
+ it "does not raise an error if address_id does not respond to strip" do
83
+ Braintree::Http.stub(:new).and_return stub.as_null_object
84
+ expect do
85
+ Braintree::Address.find("customer_id", 8675309)
86
+ end.to_not raise_error(NoMethodError)
87
+ end
81
88
  end
82
89
 
83
90
  describe "self.new" do
@@ -137,6 +137,13 @@ describe Braintree::CreditCard do
137
137
  Braintree::CreditCard.find(nil)
138
138
  end.to raise_error(ArgumentError)
139
139
  end
140
+
141
+ it "does not raise an error if address_id does not respond to strip" do
142
+ Braintree::Http.stub(:new).and_return stub.as_null_object
143
+ expect do
144
+ Braintree::CreditCard.find(8675309)
145
+ end.to_not raise_error(NoMethodError)
146
+ end
140
147
  end
141
148
 
142
149
  describe "inspect" do
@@ -53,6 +53,13 @@ describe Braintree::Customer do
53
53
  Braintree::Customer.find(nil)
54
54
  end.to raise_error(ArgumentError)
55
55
  end
56
+
57
+ it "does not raise an exception if the id is a fixnum" do
58
+ Braintree::Http.stub(:new).and_return stub.as_null_object
59
+ expect do
60
+ Braintree::Customer.find(8675309)
61
+ end.to_not raise_error(NoMethodError)
62
+ end
56
63
  end
57
64
 
58
65
  describe "self.update" do
@@ -40,6 +40,13 @@ describe Braintree::Subscription do
40
40
  Braintree::Subscription.find(nil)
41
41
  end.to raise_error(ArgumentError)
42
42
  end
43
+
44
+ it "does not raise an error if subscription id does not respond to strip" do
45
+ Braintree::Http.stub(:new).and_return stub(:get => {:subscription => default_params})
46
+ expect do
47
+ Braintree::Subscription.find(8675309)
48
+ end.to_not raise_error(NoMethodError)
49
+ end
43
50
  end
44
51
 
45
52
  describe "self.search" 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: 79
4
+ hash: 75
5
5
  prerelease: false
6
6
  segments:
7
7
  - 2
8
- - 16
8
+ - 17
9
9
  - 0
10
- version: 2.16.0
10
+ version: 2.17.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-04-19 00:00:00 -05:00
18
+ date: 2012-09-13 00:00:00 -05:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency