braintree 3.1.0 → 4.1.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 (154) hide show
  1. checksums.yaml +4 -4
  2. data/braintree.gemspec +3 -3
  3. data/lib/braintree.rb +8 -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 +12 -4
  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 +11 -8
  43. data/lib/braintree/payment_method_nonce.rb +1 -1
  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/resource_collection.rb +8 -3
  50. data/lib/braintree/revoked_payment_method_metadata.rb +1 -1
  51. data/lib/braintree/risk_data.rb +3 -1
  52. data/lib/braintree/samsung_pay_card.rb +1 -1
  53. data/lib/braintree/settlement_batch_summary.rb +2 -2
  54. data/lib/braintree/subscription.rb +6 -6
  55. data/lib/braintree/test/credit_card.rb +1 -0
  56. data/lib/braintree/three_d_secure_info.rb +22 -12
  57. data/lib/braintree/transaction.rb +40 -24
  58. data/lib/braintree/transaction/installment.rb +28 -0
  59. data/lib/braintree/transaction/installment/adjustment.rb +33 -0
  60. data/lib/braintree/transaction_gateway.rb +27 -6
  61. data/lib/braintree/transaction_line_item.rb +1 -1
  62. data/lib/braintree/transaction_search.rb +3 -1
  63. data/lib/braintree/unknown_payment_method.rb +1 -1
  64. data/lib/braintree/us_bank_account.rb +3 -3
  65. data/lib/braintree/us_bank_account_verification.rb +1 -1
  66. data/lib/braintree/us_bank_account_verification_gateway.rb +1 -1
  67. data/lib/braintree/util.rb +4 -4
  68. data/lib/braintree/venmo_account.rb +1 -1
  69. data/lib/braintree/version.rb +1 -1
  70. data/lib/braintree/visa_checkout_card.rb +2 -2
  71. data/lib/braintree/webhook_notification.rb +30 -20
  72. data/lib/braintree/webhook_notification_gateway.rb +5 -5
  73. data/lib/braintree/webhook_testing_gateway.rb +30 -0
  74. data/lib/braintree/xml/generator.rb +5 -4
  75. data/lib/braintree/xml/libxml.rb +0 -1
  76. data/lib/braintree/xml/parser.rb +22 -12
  77. data/lib/braintree/xml/rexml.rb +70 -0
  78. data/spec/integration/braintree/add_on_spec.rb +1 -1
  79. data/spec/integration/braintree/address_spec.rb +28 -24
  80. data/spec/integration/braintree/advanced_search_spec.rb +45 -45
  81. data/spec/integration/braintree/apple_pay_spec.rb +3 -3
  82. data/spec/integration/braintree/braintree_gateway_spec.rb +2 -1
  83. data/spec/integration/braintree/client_api/client_token_spec.rb +14 -14
  84. data/spec/integration/braintree/client_api/spec_helper.rb +5 -5
  85. data/spec/integration/braintree/credit_card_spec.rb +213 -122
  86. data/spec/integration/braintree/credit_card_verification_search_spec.rb +2 -2
  87. data/spec/integration/braintree/credit_card_verification_spec.rb +1 -1
  88. data/spec/integration/braintree/customer_search_spec.rb +8 -8
  89. data/spec/integration/braintree/customer_spec.rb +433 -149
  90. data/spec/integration/braintree/dispute_search_spec.rb +28 -3
  91. data/spec/integration/braintree/dispute_spec.rb +6 -6
  92. data/spec/integration/braintree/error_codes_spec.rb +1 -1
  93. data/spec/integration/braintree/http_spec.rb +2 -2
  94. data/spec/integration/braintree/merchant_account_spec.rb +25 -26
  95. data/spec/integration/braintree/merchant_spec.rb +14 -14
  96. data/spec/integration/braintree/oauth_spec.rb +11 -11
  97. data/spec/integration/braintree/payment_method_nonce_spec.rb +26 -35
  98. data/spec/integration/braintree/payment_method_spec.rb +430 -149
  99. data/spec/integration/braintree/payment_method_us_bank_account_spec.rb +17 -13
  100. data/spec/integration/braintree/paypal_account_spec.rb +28 -28
  101. data/spec/integration/braintree/samsung_pay_card_spec.rb +9 -9
  102. data/spec/integration/braintree/settlement_batch_summary_spec.rb +8 -8
  103. data/spec/integration/braintree/subscription_spec.rb +133 -133
  104. data/spec/integration/braintree/test/transaction_amounts_spec.rb +2 -2
  105. data/spec/integration/braintree/test_transaction_spec.rb +10 -10
  106. data/spec/integration/braintree/transaction_search_spec.rb +93 -67
  107. data/spec/integration/braintree/transaction_spec.rb +752 -383
  108. data/spec/integration/braintree/transaction_us_bank_account_spec.rb +32 -26
  109. data/spec/integration/braintree/us_bank_account_spec.rb +6 -6
  110. data/spec/integration/braintree/us_bank_account_verification_search_spec.rb +7 -7
  111. data/spec/integration/braintree/us_bank_account_verification_spec.rb +8 -8
  112. data/spec/integration/braintree/visa_checkout_card_spec.rb +5 -5
  113. data/spec/integration/spec_helper.rb +9 -3
  114. data/spec/oauth_test_helper.rb +1 -1
  115. data/spec/script/httpsd.rb +6 -6
  116. data/spec/spec_helper.rb +6 -3
  117. data/spec/unit/braintree/address_spec.rb +1 -1
  118. data/spec/unit/braintree/apple_pay_card_spec.rb +1 -1
  119. data/spec/unit/braintree/client_token_spec.rb +2 -2
  120. data/spec/unit/braintree/configuration_spec.rb +42 -42
  121. data/spec/unit/braintree/credit_card_spec.rb +13 -13
  122. data/spec/unit/braintree/credit_card_verification_search_spec.rb +1 -1
  123. data/spec/unit/braintree/credit_card_verification_spec.rb +8 -4
  124. data/spec/unit/braintree/customer_spec.rb +21 -10
  125. data/spec/unit/braintree/disbursement_spec.rb +7 -7
  126. data/spec/unit/braintree/dispute_search_spec.rb +1 -0
  127. data/spec/unit/braintree/dispute_spec.rb +34 -9
  128. data/spec/unit/braintree/error_result_spec.rb +5 -5
  129. data/spec/unit/braintree/errors_spec.rb +8 -8
  130. data/spec/unit/braintree/http_spec.rb +5 -5
  131. data/spec/unit/braintree/merchant_account_spec.rb +1 -1
  132. data/spec/unit/braintree/payment_method_nonce_details_payer_info_spec.rb +31 -0
  133. data/spec/unit/braintree/payment_method_nonce_details_spec.rb +43 -0
  134. data/spec/unit/braintree/payment_method_spec.rb +1 -1
  135. data/spec/unit/braintree/paypal_account_spec.rb +2 -2
  136. data/spec/unit/braintree/resource_collection_spec.rb +30 -1
  137. data/spec/unit/braintree/risk_data_spec.rb +9 -5
  138. data/spec/unit/braintree/subscription_search_spec.rb +1 -1
  139. data/spec/unit/braintree/successful_result_spec.rb +1 -1
  140. data/spec/unit/braintree/three_d_secure_info_spec.rb +32 -14
  141. data/spec/unit/braintree/transaction/credit_card_details_spec.rb +3 -3
  142. data/spec/unit/braintree/transaction/customer_details_spec.rb +1 -1
  143. data/spec/unit/braintree/transaction/deposit_details_spec.rb +2 -2
  144. data/spec/unit/braintree/transaction/installment_spec.rb +25 -0
  145. data/spec/unit/braintree/transaction/paypal_details_spec.rb +1 -1
  146. data/spec/unit/braintree/transaction_search_spec.rb +12 -12
  147. data/spec/unit/braintree/transaction_spec.rb +25 -17
  148. data/spec/unit/braintree/util_spec.rb +18 -18
  149. data/spec/unit/braintree/validation_error_collection_spec.rb +36 -36
  150. data/spec/unit/braintree/webhook_notification_spec.rb +88 -56
  151. data/spec/unit/braintree/xml/rexml_spec.rb +51 -0
  152. data/spec/unit/braintree/xml_spec.rb +31 -31
  153. metadata +18 -8
  154. data/lib/braintree/settlement_batch.rb +0 -0
@@ -1,4 +1,3 @@
1
- require 'libxml'
2
1
  # Portions of this code were copied and modified from Ruby on Rails, released
3
2
  # under the MIT license, copyright (c) 2005-2009 David Heinemeier Hansson
4
3
  module Braintree
@@ -2,7 +2,7 @@
2
2
  # under the MIT license, copyright (c) 2005-2009 David Heinemeier Hansson
3
3
  module Braintree
4
4
  module Xml # :nodoc:
5
- CONTENT_ROOT = '__content__'
5
+ CONTENT_ROOT = "__content__"
6
6
 
7
7
  module Parser # :nodoc:
8
8
  XML_PARSING = {
@@ -11,18 +11,28 @@ module Braintree
11
11
  "boolean" => Proc.new { |boolean| %w(1 true).include?(boolean.strip) },
12
12
  }
13
13
 
14
- def self.hash_from_xml(xml)
15
- standardized_hash_structure = ::Braintree::Xml::Libxml.parse(xml)
14
+ def self.hash_from_xml(xml, parser = _determine_parser)
15
+ standardized_hash_structure = parser.parse(xml)
16
16
  transformed_xml = _transform_xml(standardized_hash_structure)
17
17
  Util.symbolize_keys(transformed_xml)
18
18
  end
19
19
 
20
+ def self._determine_parser
21
+ # If LibXML is not available, we fall back to REXML
22
+ # This allows us to be compatible with JRuby, which LibXML does not support
23
+ if defined?(::LibXML::XML) && ::LibXML::XML.respond_to?(:default_keep_blanks=)
24
+ ::Braintree::Xml::Libxml
25
+ else
26
+ ::Braintree::Xml::Rexml
27
+ end
28
+ end
29
+
20
30
  # Transform into standard Ruby types and convert all keys to snake_case instead of dash-case
21
31
  def self._transform_xml(value)
22
32
  case value.class.to_s
23
- when 'Hash'
24
- if value['type'] == 'array'
25
- child_key, entries = value.detect { |k,v| k != 'type' } # child_key is throwaway
33
+ when "Hash"
34
+ if value["type"] == "array"
35
+ child_key, entries = value.detect { |k,v| k != "type" } # child_key is throwaway
26
36
  if entries.nil? || ((c = value[CONTENT_ROOT]) && c.strip.empty?)
27
37
  []
28
38
  else
@@ -37,21 +47,21 @@ module Braintree
37
47
  end
38
48
  elsif value.has_key?(CONTENT_ROOT)
39
49
  content = value[CONTENT_ROOT]
40
- if parser = XML_PARSING[value["type"]]
50
+ if (parser = XML_PARSING[value["type"]])
41
51
  XML_PARSING[value["type"]].call(content)
42
52
  else
43
53
  content
44
54
  end
45
- elsif value['type'] == 'string' && value['nil'] != 'true'
55
+ elsif value["type"] == "string" && value["nil"] != "true"
46
56
  ""
47
57
  elsif value == {}
48
58
  ""
49
- elsif value.nil? || value['nil'] == 'true'
59
+ elsif value.nil? || value["nil"] == "true"
50
60
  nil
51
61
  # If the type is the only element which makes it then
52
62
  # this still makes the value nil, except if type is
53
63
  # a XML node(where type['value'] is a Hash)
54
- elsif value['type'] && value.size == 1 && !value['type'].is_a?(::Hash)
64
+ elsif value["type"] && value.size == 1 && !value["type"].is_a?(::Hash)
55
65
  raise "is this needed?"
56
66
  nil
57
67
  else
@@ -61,14 +71,14 @@ module Braintree
61
71
  end
62
72
  xml_value
63
73
  end
64
- when 'Array'
74
+ when "Array"
65
75
  value.map! { |i| _transform_xml(i) }
66
76
  case value.length
67
77
  when 0 then nil
68
78
  when 1 then value.first
69
79
  else value
70
80
  end
71
- when 'String'
81
+ when "String"
72
82
  value
73
83
  else
74
84
  raise "can't transform #{value.class.name} - #{value.inspect}"
@@ -0,0 +1,70 @@
1
+ # Portions of this code were copied and modified from Ruby on Rails, released
2
+ # under the MIT license, copyright (c) 2005-2009 David Heinemeier Hansson
3
+ module Braintree
4
+ module Xml # :nodoc:
5
+ module Rexml # :nodoc:
6
+
7
+ CONTENT_KEY = "__content__".freeze
8
+
9
+ def self.parse(string)
10
+ require "rexml/document" unless defined?(REXML::Document)
11
+ doc = REXML::Document.new(string)
12
+ _merge_element!({}, doc.root)
13
+ end
14
+
15
+ def self._merge_element!(hash, element)
16
+ _merge!(hash, element.name, _collapse(element))
17
+ end
18
+
19
+ def self._collapse(element)
20
+ hash = _get_attributes(element)
21
+
22
+ if element.has_elements?
23
+ element.each_element { |child| _merge_element!(hash, child) }
24
+ _merge_texts!(hash, element) unless _empty_content?(element)
25
+ hash
26
+ else
27
+ _merge_texts!(hash, element)
28
+ end
29
+ end
30
+
31
+ def self._merge_texts!(hash, element)
32
+ unless element.has_text?
33
+ hash
34
+ else
35
+ # must use value to prevent double-escaping
36
+ _merge!(
37
+ hash,
38
+ CONTENT_KEY,
39
+ element.texts.map { |t| t.value }.join,
40
+ )
41
+ end
42
+ end
43
+
44
+ def self._merge!(hash, key, value)
45
+ if hash.has_key?(key)
46
+ if hash[key].instance_of?(Array)
47
+ hash[key] << value
48
+ else
49
+ hash[key] = [hash[key], value]
50
+ end
51
+ elsif value.instance_of?(Array)
52
+ hash[key] = [value]
53
+ else
54
+ hash[key] = value
55
+ end
56
+ hash
57
+ end
58
+
59
+ def self._get_attributes(element)
60
+ attributes = {}
61
+ element.attributes.each { |n,v| attributes[n] = v }
62
+ attributes
63
+ end
64
+
65
+ def self._empty_content?(element)
66
+ element.texts.join.strip == ""
67
+ end
68
+ end
69
+ end
70
+ end
@@ -35,7 +35,7 @@ describe Braintree::AddOn do
35
35
  gateway = Braintree::Gateway.new(
36
36
  :client_id => "client_id$#{Braintree::Configuration.environment}$integration_client_id",
37
37
  :client_secret => "client_secret$#{Braintree::Configuration.environment}$integration_client_secret",
38
- :logger => Logger.new("/dev/null")
38
+ :logger => Logger.new("/dev/null"),
39
39
  )
40
40
 
41
41
  expect do
@@ -14,8 +14,9 @@ describe Braintree::Address do
14
14
  :extended_address => "Suite 200",
15
15
  :locality => "Chicago",
16
16
  :region => "Illinois",
17
+ :phone_number => "5551231234",
17
18
  :postal_code => "60622",
18
- :country_name => "United States of America"
19
+ :country_name => "United States of America",
19
20
  )
20
21
  result.success?.should == true
21
22
  result.address.customer_id.should == customer.id
@@ -26,6 +27,7 @@ describe Braintree::Address do
26
27
  result.address.extended_address.should == "Suite 200"
27
28
  result.address.locality.should == "Chicago"
28
29
  result.address.region.should == "Illinois"
30
+ result.address.phone_number.should == "5551231234"
29
31
  result.address.postal_code.should == "60622"
30
32
  result.address.country_name.should == "United States of America"
31
33
  result.address.country_code_alpha2.should == "US"
@@ -39,7 +41,7 @@ describe Braintree::Address do
39
41
  :customer_id => customer.id,
40
42
  :country_code_alpha2 => "AS",
41
43
  :country_code_alpha3 => "ASM",
42
- :country_code_numeric => "16"
44
+ :country_code_numeric => "16",
43
45
  )
44
46
  result.success?.should == true
45
47
  result.address.country_name.should == "American Samoa"
@@ -52,7 +54,7 @@ describe Braintree::Address do
52
54
  customer = Braintree::Customer.create!
53
55
  result = Braintree::Address.create(
54
56
  :customer_id => customer.id,
55
- :country_name => "Åland"
57
+ :country_name => "Åland",
56
58
  )
57
59
  result.success?.should == true
58
60
  result.address.country_name.should == "Åland"
@@ -63,47 +65,47 @@ describe Braintree::Address do
63
65
  result = Braintree::Address.create(
64
66
  :customer_id => customer.id,
65
67
  :country_code_alpha2 => "AS",
66
- :country_code_alpha3 => "USA"
68
+ :country_code_alpha3 => "USA",
67
69
  )
68
70
  result.success?.should == false
69
- result.errors.for(:address).on(:base).map {|e| e.code}.should include(Braintree::ErrorCodes::Address::InconsistentCountry)
71
+ result.errors.for(:address).on(:base).map { |e| e.code }.should include(Braintree::ErrorCodes::Address::InconsistentCountry)
70
72
  end
71
73
 
72
74
  it "returns an error response given an invalid country_code_alpha2" do
73
75
  customer = Braintree::Customer.create!
74
76
  result = Braintree::Address.create(
75
77
  :customer_id => customer.id,
76
- :country_code_alpha2 => "zz"
78
+ :country_code_alpha2 => "zz",
77
79
  )
78
80
  result.success?.should == false
79
- result.errors.for(:address).on(:country_code_alpha2).map {|e| e.code}.should include(Braintree::ErrorCodes::Address::CountryCodeAlpha2IsNotAccepted)
81
+ result.errors.for(:address).on(:country_code_alpha2).map { |e| e.code }.should include(Braintree::ErrorCodes::Address::CountryCodeAlpha2IsNotAccepted)
80
82
  end
81
83
 
82
84
  it "returns an error response given an invalid country_code_alpha3" do
83
85
  customer = Braintree::Customer.create!
84
86
  result = Braintree::Address.create(
85
87
  :customer_id => customer.id,
86
- :country_code_alpha3 => "zzz"
88
+ :country_code_alpha3 => "zzz",
87
89
  )
88
90
  result.success?.should == false
89
- result.errors.for(:address).on(:country_code_alpha3).map {|e| e.code}.should include(Braintree::ErrorCodes::Address::CountryCodeAlpha3IsNotAccepted)
91
+ result.errors.for(:address).on(:country_code_alpha3).map { |e| e.code }.should include(Braintree::ErrorCodes::Address::CountryCodeAlpha3IsNotAccepted)
90
92
  end
91
93
 
92
94
  it "returns an error response given an invalid country_code_numeric" do
93
95
  customer = Braintree::Customer.create!
94
96
  result = Braintree::Address.create(
95
97
  :customer_id => customer.id,
96
- :country_code_numeric => "zz"
98
+ :country_code_numeric => "zz",
97
99
  )
98
100
  result.success?.should == false
99
- result.errors.for(:address).on(:country_code_numeric).map {|e| e.code}.should include(Braintree::ErrorCodes::Address::CountryCodeNumericIsNotAccepted)
101
+ result.errors.for(:address).on(:country_code_numeric).map { |e| e.code }.should include(Braintree::ErrorCodes::Address::CountryCodeNumericIsNotAccepted)
100
102
  end
101
103
 
102
104
  it "returns an error response if invalid" do
103
105
  customer = Braintree::Customer.create!(:last_name => "Wilson")
104
106
  result = Braintree::Address.create(
105
107
  :customer_id => customer.id,
106
- :country_name => "United States of Invalid"
108
+ :country_name => "United States of Invalid",
107
109
  )
108
110
  result.success?.should == false
109
111
  result.errors.for(:address).on(:country_name)[0].message.should == "Country name is not an accepted country."
@@ -131,14 +133,16 @@ describe Braintree::Address do
131
133
  :extended_address => "Suite 201",
132
134
  :locality => "Bartlett",
133
135
  :region => "IL",
136
+ :phone_number => "5551231234",
134
137
  :postal_code => "60623",
135
- :country_name => "United States of America"
138
+ :country_name => "United States of America",
136
139
  )
137
140
  address.customer_id.should == customer.id
138
141
  address.street_address.should == "1812 E Main St"
139
142
  address.extended_address.should == "Suite 201"
140
143
  address.locality.should == "Bartlett"
141
144
  address.region.should == "IL"
145
+ address.phone_number.should == "5551231234"
142
146
  address.postal_code.should == "60623"
143
147
  address.country_name.should == "United States of America"
144
148
  end
@@ -148,7 +152,7 @@ describe Braintree::Address do
148
152
  expect do
149
153
  Braintree::Address.create!(
150
154
  :customer_id => customer.id,
151
- :country_name => "United States of Invalid"
155
+ :country_name => "United States of Invalid",
152
156
  )
153
157
  end.to raise_error(Braintree::ValidationsFailed)
154
158
  end
@@ -226,7 +230,7 @@ describe Braintree::Address do
226
230
  :locality => "Old Chicago",
227
231
  :region => "IL",
228
232
  :postal_code => "60620",
229
- :country_name => "United States of America"
233
+ :country_name => "United States of America",
230
234
  )
231
235
  result = Braintree::Address.update(
232
236
  customer.id,
@@ -236,7 +240,7 @@ describe Braintree::Address do
236
240
  :locality => "Chicago",
237
241
  :region => "Illinois",
238
242
  :postal_code => "60621",
239
- :country_name => "United States of America"
243
+ :country_name => "United States of America",
240
244
  )
241
245
  result.success?.should == true
242
246
  result.address.street_address.should == "123 E New St"
@@ -254,12 +258,12 @@ describe Braintree::Address do
254
258
  customer = Braintree::Customer.create!(:last_name => "Miller")
255
259
  address = Braintree::Address.create!(
256
260
  :customer_id => customer.id,
257
- :country_name => "Angola"
261
+ :country_name => "Angola",
258
262
  )
259
263
  result = Braintree::Address.update(
260
264
  customer.id,
261
265
  address.id,
262
- :country_name => "Azerbaijan"
266
+ :country_name => "Azerbaijan",
263
267
  )
264
268
 
265
269
  result.success?.should == true
@@ -273,13 +277,13 @@ describe Braintree::Address do
273
277
  customer = Braintree::Customer.create!(:last_name => "Miller")
274
278
  address = Braintree::Address.create!(
275
279
  :customer_id => customer.id,
276
- :country_name => "United States of America"
280
+ :country_name => "United States of America",
277
281
  )
278
282
  result = Braintree::Address.update(
279
283
  customer.id,
280
284
  address.id,
281
285
  :street_address => "123 E New St",
282
- :country_name => "United States of Invalid"
286
+ :country_name => "United States of Invalid",
283
287
  )
284
288
  result.success?.should == false
285
289
  result.errors.for(:address).on(:country_name)[0].message.should == "Country name is not an accepted country."
@@ -304,7 +308,7 @@ describe Braintree::Address do
304
308
  :locality => "Old Chicago",
305
309
  :region => "IL",
306
310
  :postal_code => "60620",
307
- :country_name => "United States of America"
311
+ :country_name => "United States of America",
308
312
  )
309
313
  updated_address = Braintree::Address.update!(
310
314
  customer.id,
@@ -314,7 +318,7 @@ describe Braintree::Address do
314
318
  :locality => "Chicago",
315
319
  :region => "Illinois",
316
320
  :postal_code => "60621",
317
- :country_name => "United States of America"
321
+ :country_name => "United States of America",
318
322
  )
319
323
  updated_address.should == address
320
324
  updated_address.street_address.should == "123 E New St"
@@ -329,14 +333,14 @@ describe Braintree::Address do
329
333
  customer = Braintree::Customer.create!(:last_name => "Miller")
330
334
  address = Braintree::Address.create!(
331
335
  :customer_id => customer.id,
332
- :country_name => "United States of America"
336
+ :country_name => "United States of America",
333
337
  )
334
338
  expect do
335
339
  Braintree::Address.update!(
336
340
  customer.id,
337
341
  address.id,
338
342
  :street_address => "123 E New St",
339
- :country_name => "United States of Invalid"
343
+ :country_name => "United States of Invalid",
340
344
  )
341
345
  end.to raise_error(Braintree::ValidationsFailed)
342
346
  end
@@ -6,7 +6,7 @@ describe Braintree::AdvancedSearch do
6
6
  :credit_card => {
7
7
  :number => Braintree::Test::CreditCardNumbers::Visa,
8
8
  :expiration_date => "05/2010"
9
- }
9
+ },
10
10
  ).credit_cards[0]
11
11
  end
12
12
 
@@ -16,13 +16,13 @@ describe Braintree::AdvancedSearch do
16
16
  subscription1 = Braintree::Subscription.create(
17
17
  :payment_method_token => @credit_card.token,
18
18
  :plan_id => SpecHelper::TriallessPlan[:id],
19
- :id => "subscription1_#{id}"
19
+ :id => "subscription1_#{id}",
20
20
  ).subscription
21
21
 
22
22
  subscription2 = Braintree::Subscription.create(
23
23
  :payment_method_token => @credit_card.token,
24
24
  :plan_id => SpecHelper::TriallessPlan[:id],
25
- :id => "subscription2_#{id}"
25
+ :id => "subscription2_#{id}",
26
26
  ).subscription
27
27
 
28
28
  collection = Braintree::Subscription.search do |search|
@@ -39,14 +39,14 @@ describe Braintree::AdvancedSearch do
39
39
  :payment_method_token => @credit_card.token,
40
40
  :plan_id => SpecHelper::TriallessPlan[:id],
41
41
  :price => "11",
42
- :id => "subscription1_#{id}"
42
+ :id => "subscription1_#{id}",
43
43
  ).subscription
44
44
 
45
45
  subscription2 = Braintree::Subscription.create(
46
46
  :payment_method_token => @credit_card.token,
47
47
  :plan_id => SpecHelper::TriallessPlan[:id],
48
48
  :price => "11",
49
- :id => "subscription2_#{id}"
49
+ :id => "subscription2_#{id}",
50
50
  ).subscription
51
51
 
52
52
  collection = Braintree::Subscription.search do |search|
@@ -63,13 +63,13 @@ describe Braintree::AdvancedSearch do
63
63
  subscription1 = Braintree::Subscription.create(
64
64
  :payment_method_token => @credit_card.token,
65
65
  :plan_id => SpecHelper::TriallessPlan[:id],
66
- :id => "subscription1_#{id}"
66
+ :id => "subscription1_#{id}",
67
67
  ).subscription
68
68
 
69
69
  subscription2 = Braintree::Subscription.create(
70
70
  :payment_method_token => @credit_card.token,
71
71
  :plan_id => SpecHelper::TriallessPlan[:id],
72
- :id => "subscription2_#{id}"
72
+ :id => "subscription2_#{id}",
73
73
  ).subscription
74
74
 
75
75
  collection = Braintree::Subscription.search do |search|
@@ -85,13 +85,13 @@ describe Braintree::AdvancedSearch do
85
85
  subscription1 = Braintree::Subscription.create(
86
86
  :payment_method_token => @credit_card.token,
87
87
  :plan_id => SpecHelper::TriallessPlan[:id],
88
- :id => "subscription1_#{id}"
88
+ :id => "subscription1_#{id}",
89
89
  ).subscription
90
90
 
91
91
  subscription2 = Braintree::Subscription.create(
92
92
  :payment_method_token => @credit_card.token,
93
93
  :plan_id => SpecHelper::TriallessPlan[:id],
94
- :id => "subscription2_#{id}"
94
+ :id => "subscription2_#{id}",
95
95
  ).subscription
96
96
 
97
97
  collection = Braintree::Subscription.search do |search|
@@ -107,13 +107,13 @@ describe Braintree::AdvancedSearch do
107
107
  subscription1 = Braintree::Subscription.create(
108
108
  :payment_method_token => @credit_card.token,
109
109
  :plan_id => SpecHelper::TriallessPlan[:id],
110
- :id => "subscription1_#{id}"
110
+ :id => "subscription1_#{id}",
111
111
  ).subscription
112
112
 
113
113
  subscription2 = Braintree::Subscription.create(
114
114
  :payment_method_token => @credit_card.token,
115
115
  :plan_id => SpecHelper::TriallessPlan[:id],
116
- :id => "subscription2_#{id}"
116
+ :id => "subscription2_#{id}",
117
117
  ).subscription
118
118
 
119
119
  collection = Braintree::Subscription.search do |search|
@@ -131,13 +131,13 @@ describe Braintree::AdvancedSearch do
131
131
  subscription1 = Braintree::Subscription.create(
132
132
  :payment_method_token => @credit_card.token,
133
133
  :plan_id => SpecHelper::TriallessPlan[:id],
134
- :price => "12"
134
+ :price => "12",
135
135
  ).subscription
136
136
 
137
137
  subscription2 = Braintree::Subscription.create(
138
138
  :payment_method_token => @credit_card.token,
139
139
  :plan_id => SpecHelper::TriallessPlan[:id],
140
- :price => "12"
140
+ :price => "12",
141
141
  ).subscription
142
142
 
143
143
  Braintree::Subscription.cancel(subscription2.id)
@@ -155,13 +155,13 @@ describe Braintree::AdvancedSearch do
155
155
  subscription1 = Braintree::Subscription.create(
156
156
  :payment_method_token => @credit_card.token,
157
157
  :plan_id => SpecHelper::TriallessPlan[:id],
158
- :price => "13"
158
+ :price => "13",
159
159
  ).subscription
160
160
 
161
161
  subscription2 = Braintree::Subscription.create(
162
162
  :payment_method_token => @credit_card.token,
163
163
  :plan_id => SpecHelper::TriallessPlan[:id],
164
- :price => "13"
164
+ :price => "13",
165
165
  ).subscription
166
166
 
167
167
  Braintree::Subscription.cancel(subscription2.id)
@@ -179,13 +179,13 @@ describe Braintree::AdvancedSearch do
179
179
  subscription1 = Braintree::Subscription.create(
180
180
  :payment_method_token => @credit_card.token,
181
181
  :plan_id => SpecHelper::TriallessPlan[:id],
182
- :price => "14"
182
+ :price => "14",
183
183
  ).subscription
184
184
 
185
185
  subscription2 = Braintree::Subscription.create(
186
186
  :payment_method_token => @credit_card.token,
187
187
  :plan_id => SpecHelper::TriallessPlan[:id],
188
- :price => "14"
188
+ :price => "14",
189
189
  ).subscription
190
190
 
191
191
  Braintree::Subscription.cancel(subscription2.id)
@@ -204,13 +204,13 @@ describe Braintree::AdvancedSearch do
204
204
  subscription1 = Braintree::Subscription.create(
205
205
  :payment_method_token => @credit_card.token,
206
206
  :plan_id => SpecHelper::TriallessPlan[:id],
207
- :price => "15"
207
+ :price => "15",
208
208
  ).subscription
209
209
 
210
210
  subscription2 = Braintree::Subscription.create(
211
211
  :payment_method_token => @credit_card.token,
212
212
  :plan_id => SpecHelper::TriallessPlan[:id],
213
- :price => "15"
213
+ :price => "15",
214
214
  ).subscription
215
215
 
216
216
  Braintree::Subscription.cancel(subscription2.id)
@@ -229,13 +229,13 @@ describe Braintree::AdvancedSearch do
229
229
  subscription1 = Braintree::Subscription.create(
230
230
  :payment_method_token => @credit_card.token,
231
231
  :plan_id => SpecHelper::TriallessPlan[:id],
232
- :price => "16"
232
+ :price => "16",
233
233
  ).subscription
234
234
 
235
235
  subscription2 = Braintree::Subscription.create(
236
236
  :payment_method_token => @credit_card.token,
237
237
  :plan_id => SpecHelper::TriallessPlan[:id],
238
- :price => "16"
238
+ :price => "16",
239
239
  ).subscription
240
240
 
241
241
  Braintree::Subscription.cancel(subscription2.id)
@@ -266,19 +266,19 @@ describe Braintree::AdvancedSearch do
266
266
  subscription1 = Braintree::Subscription.create(
267
267
  :payment_method_token => @credit_card.token,
268
268
  :plan_id => SpecHelper::TriallessPlan[:id],
269
- :price => "17"
269
+ :price => "17",
270
270
  ).subscription
271
271
 
272
272
  subscription2 = Braintree::Subscription.create(
273
273
  :payment_method_token => @credit_card.token,
274
274
  :plan_id => SpecHelper::TrialPlan[:id],
275
- :price => "17"
275
+ :price => "17",
276
276
  ).subscription
277
277
 
278
278
  subscription3 = Braintree::Subscription.create(
279
279
  :payment_method_token => @credit_card.token,
280
280
  :plan_id => SpecHelper::AddOnDiscountPlan[:id],
281
- :price => "17"
281
+ :price => "17",
282
282
  ).subscription
283
283
 
284
284
  plan_ids = [SpecHelper::TriallessPlan[:id], SpecHelper::TrialPlan[:id]]
@@ -307,13 +307,13 @@ describe Braintree::AdvancedSearch do
307
307
  trialless_subscription = Braintree::Subscription.create(
308
308
  :payment_method_token => @credit_card.token,
309
309
  :plan_id => SpecHelper::TriallessPlan[:id],
310
- :price => "18"
310
+ :price => "18",
311
311
  ).subscription
312
312
 
313
313
  trial_subscription = Braintree::Subscription.create(
314
314
  :payment_method_token => @credit_card.token,
315
315
  :plan_id => SpecHelper::TrialPlan[:id],
316
- :price => "18"
316
+ :price => "18",
317
317
  ).subscription
318
318
 
319
319
  collection = Braintree::Subscription.search do |search|
@@ -331,13 +331,13 @@ describe Braintree::AdvancedSearch do
331
331
  trialless_subscription = Braintree::Subscription.create(
332
332
  :payment_method_token => @credit_card.token,
333
333
  :plan_id => SpecHelper::TriallessPlan[:id],
334
- :price => "19"
334
+ :price => "19",
335
335
  ).subscription
336
336
 
337
337
  trial_subscription = Braintree::Subscription.create(
338
338
  :payment_method_token => @credit_card.token,
339
339
  :plan_id => SpecHelper::TrialPlan[:id],
340
- :price => "19"
340
+ :price => "19",
341
341
  ).subscription
342
342
 
343
343
  collection = Braintree::Subscription.search do |search|
@@ -355,13 +355,13 @@ describe Braintree::AdvancedSearch do
355
355
  trialless_subscription = Braintree::Subscription.create(
356
356
  :payment_method_token => @credit_card.token,
357
357
  :plan_id => SpecHelper::TriallessPlan[:id],
358
- :price => "20"
358
+ :price => "20",
359
359
  ).subscription
360
360
 
361
361
  trial_subscription = Braintree::Subscription.create(
362
362
  :payment_method_token => @credit_card.token,
363
363
  :plan_id => SpecHelper::TrialPlan[:id],
364
- :price => "20"
364
+ :price => "20",
365
365
  ).subscription
366
366
 
367
367
  collection = Braintree::Subscription.search do |search|
@@ -379,13 +379,13 @@ describe Braintree::AdvancedSearch do
379
379
  trialless_subscription = Braintree::Subscription.create(
380
380
  :payment_method_token => @credit_card.token,
381
381
  :plan_id => SpecHelper::TriallessPlan[:id],
382
- :price => "21"
382
+ :price => "21",
383
383
  ).subscription
384
384
 
385
385
  trial_subscription = Braintree::Subscription.create(
386
386
  :payment_method_token => @credit_card.token,
387
387
  :plan_id => SpecHelper::TrialPlan[:id],
388
- :price => "21"
388
+ :price => "21",
389
389
  ).subscription
390
390
 
391
391
  collection = Braintree::Subscription.search do |search|
@@ -403,13 +403,13 @@ describe Braintree::AdvancedSearch do
403
403
  trialless_subscription = Braintree::Subscription.create(
404
404
  :payment_method_token => @credit_card.token,
405
405
  :plan_id => SpecHelper::TriallessPlan[:id],
406
- :price => "22"
406
+ :price => "22",
407
407
  ).subscription
408
408
 
409
409
  trial_subscription = Braintree::Subscription.create(
410
410
  :payment_method_token => @credit_card.token,
411
411
  :plan_id => SpecHelper::TrialPlan[:id],
412
- :price => "22"
412
+ :price => "22",
413
413
  ).subscription
414
414
 
415
415
  collection = Braintree::Subscription.search do |search|
@@ -428,13 +428,13 @@ describe Braintree::AdvancedSearch do
428
428
  subscription_500 = Braintree::Subscription.create(
429
429
  :payment_method_token => @credit_card.token,
430
430
  :plan_id => SpecHelper::TriallessPlan[:id],
431
- :price => "5.00"
431
+ :price => "5.00",
432
432
  ).subscription
433
433
 
434
434
  subscription_501 = Braintree::Subscription.create(
435
435
  :payment_method_token => @credit_card.token,
436
436
  :plan_id => SpecHelper::TrialPlan[:id],
437
- :price => "5.01"
437
+ :price => "5.01",
438
438
  ).subscription
439
439
 
440
440
  collection = Braintree::Subscription.search do |search|
@@ -449,19 +449,19 @@ describe Braintree::AdvancedSearch do
449
449
  subscription_499 = Braintree::Subscription.create(
450
450
  :payment_method_token => @credit_card.token,
451
451
  :plan_id => SpecHelper::TrialPlan[:id],
452
- :price => "4.99"
452
+ :price => "4.99",
453
453
  ).subscription
454
454
 
455
455
  subscription_500 = Braintree::Subscription.create(
456
456
  :payment_method_token => @credit_card.token,
457
457
  :plan_id => SpecHelper::TriallessPlan[:id],
458
- :price => "5.00"
458
+ :price => "5.00",
459
459
  ).subscription
460
460
 
461
461
  subscription_501 = Braintree::Subscription.create(
462
462
  :payment_method_token => @credit_card.token,
463
463
  :plan_id => SpecHelper::TrialPlan[:id],
464
- :price => "5.01"
464
+ :price => "5.01",
465
465
  ).subscription
466
466
 
467
467
  collection = Braintree::Subscription.search do |search|
@@ -477,19 +477,19 @@ describe Braintree::AdvancedSearch do
477
477
  subscription_499 = Braintree::Subscription.create(
478
478
  :payment_method_token => @credit_card.token,
479
479
  :plan_id => SpecHelper::TrialPlan[:id],
480
- :price => "999.99"
480
+ :price => "999.99",
481
481
  ).subscription
482
482
 
483
483
  subscription_500 = Braintree::Subscription.create(
484
484
  :payment_method_token => @credit_card.token,
485
485
  :plan_id => SpecHelper::TriallessPlan[:id],
486
- :price => "1000.00"
486
+ :price => "1000.00",
487
487
  ).subscription
488
488
 
489
489
  subscription_501 = Braintree::Subscription.create(
490
490
  :payment_method_token => @credit_card.token,
491
491
  :plan_id => SpecHelper::TrialPlan[:id],
492
- :price => "1000.01"
492
+ :price => "1000.01",
493
493
  ).subscription
494
494
 
495
495
  collection = Braintree::Subscription.search do |search|
@@ -505,19 +505,19 @@ describe Braintree::AdvancedSearch do
505
505
  subscription_499 = Braintree::Subscription.create(
506
506
  :payment_method_token => @credit_card.token,
507
507
  :plan_id => SpecHelper::TrialPlan[:id],
508
- :price => "4.99"
508
+ :price => "4.99",
509
509
  ).subscription
510
510
 
511
511
  subscription_500 = Braintree::Subscription.create(
512
512
  :payment_method_token => @credit_card.token,
513
513
  :plan_id => SpecHelper::TriallessPlan[:id],
514
- :price => "5.00"
514
+ :price => "5.00",
515
515
  ).subscription
516
516
 
517
517
  subscription_502 = Braintree::Subscription.create(
518
518
  :payment_method_token => @credit_card.token,
519
519
  :plan_id => SpecHelper::TrialPlan[:id],
520
- :price => "5.02"
520
+ :price => "5.02",
521
521
  ).subscription
522
522
 
523
523
  collection = Braintree::Subscription.search do |search|