braintree 2.98.0 → 4.23.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 (308) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +1 -1
  3. data/braintree.gemspec +7 -4
  4. data/lib/braintree/account_updater_daily_report.rb +4 -4
  5. data/lib/braintree/ach_mandate.rb +1 -1
  6. data/lib/braintree/add_on_gateway.rb +1 -1
  7. data/lib/braintree/address.rb +7 -27
  8. data/lib/braintree/address_gateway.rb +8 -7
  9. data/lib/braintree/advanced_search.rb +11 -12
  10. data/lib/braintree/apple_pay.rb +4 -4
  11. data/lib/braintree/apple_pay_card.rb +18 -4
  12. data/lib/braintree/apple_pay_options.rb +4 -4
  13. data/lib/braintree/authorization_adjustment.rb +4 -4
  14. data/lib/braintree/base_module.rb +11 -1
  15. data/lib/braintree/bin_data.rb +10 -3
  16. data/lib/braintree/client_token.rb +1 -1
  17. data/lib/braintree/client_token_gateway.rb +4 -3
  18. data/lib/braintree/configuration.rb +35 -35
  19. data/lib/braintree/connected_merchant_paypal_status_changed.rb +2 -2
  20. data/lib/braintree/connected_merchant_status_transitioned.rb +2 -2
  21. data/lib/braintree/credit_card.rb +40 -86
  22. data/lib/braintree/credit_card_gateway.rb +58 -44
  23. data/lib/braintree/credit_card_verification.rb +39 -20
  24. data/lib/braintree/credit_card_verification_gateway.rb +35 -5
  25. data/lib/braintree/credit_card_verification_search.rb +2 -2
  26. data/lib/braintree/customer.rb +23 -88
  27. data/lib/braintree/customer_gateway.rb +17 -32
  28. data/lib/braintree/customer_search.rb +2 -2
  29. data/lib/braintree/descriptor.rb +1 -1
  30. data/lib/braintree/digest.rb +1 -1
  31. data/lib/braintree/disbursement.rb +7 -7
  32. data/lib/braintree/discount_gateway.rb +1 -1
  33. data/lib/braintree/dispute/evidence.rb +1 -1
  34. data/lib/braintree/{transaction/coinbase_details.rb → dispute/paypal_message.rb} +5 -6
  35. data/lib/braintree/dispute/{history_event.rb → status_history.rb} +3 -1
  36. data/lib/braintree/dispute/transaction.rb +3 -1
  37. data/lib/braintree/dispute/transaction_details.rb +1 -1
  38. data/lib/braintree/dispute.rb +47 -6
  39. data/lib/braintree/dispute_gateway.rb +5 -10
  40. data/lib/braintree/dispute_search.rb +8 -4
  41. data/lib/braintree/document_upload.rb +3 -3
  42. data/lib/braintree/document_upload_gateway.rb +3 -3
  43. data/lib/braintree/enriched_customer_data.rb +21 -0
  44. data/lib/braintree/error_codes.rb +217 -175
  45. data/lib/braintree/error_result.rb +2 -3
  46. data/lib/braintree/errors.rb +3 -3
  47. data/lib/braintree/exceptions.rb +6 -5
  48. data/lib/braintree/exchange_rate.rb +13 -0
  49. data/lib/braintree/exchange_rate_quote.rb +24 -0
  50. data/lib/braintree/exchange_rate_quote_gateway.rb +35 -0
  51. data/lib/braintree/exchange_rate_quote_input.rb +21 -0
  52. data/lib/braintree/exchange_rate_quote_request.rb +18 -0
  53. data/lib/braintree/exchange_rate_quote_response.rb +18 -0
  54. data/lib/braintree/facilitated_details.rb +1 -1
  55. data/lib/braintree/facilitator_details.rb +1 -1
  56. data/lib/braintree/gateway.rb +6 -12
  57. data/lib/braintree/{android_pay_card.rb → google_pay_card.rb} +18 -5
  58. data/lib/braintree/granted_payment_instrument_update.rb +2 -2
  59. data/lib/braintree/graphql_client.rb +14 -8
  60. data/lib/braintree/http.rb +9 -10
  61. data/lib/braintree/local_payment_completed/blik_alias.rb +23 -0
  62. data/lib/braintree/local_payment_completed.rb +10 -5
  63. data/lib/braintree/local_payment_expired.rb +21 -0
  64. data/lib/braintree/local_payment_funded.rb +22 -0
  65. data/lib/braintree/local_payment_reversed.rb +19 -0
  66. data/lib/braintree/merchant.rb +4 -4
  67. data/lib/braintree/merchant_account.rb +3 -3
  68. data/lib/braintree/merchant_account_gateway.rb +10 -8
  69. data/lib/braintree/merchant_gateway.rb +1 -1
  70. data/lib/braintree/meta_checkout_card.rb +89 -0
  71. data/lib/braintree/meta_checkout_token.rb +88 -0
  72. data/lib/braintree/modification.rb +4 -4
  73. data/lib/braintree/oauth_credentials.rb +4 -4
  74. data/lib/braintree/oauth_gateway.rb +5 -5
  75. data/lib/braintree/paginated_collection.rb +2 -2
  76. data/lib/braintree/paginated_result.rb +1 -1
  77. data/lib/braintree/payment_instrument_type.rb +14 -13
  78. data/lib/braintree/payment_method_customer_data_updated_metadata.rb +24 -0
  79. data/lib/braintree/payment_method_gateway.rb +52 -22
  80. data/lib/braintree/payment_method_nonce.rb +12 -7
  81. data/lib/braintree/payment_method_nonce_details.rb +40 -0
  82. data/lib/braintree/payment_method_nonce_details_payer_info.rb +32 -0
  83. data/lib/braintree/payment_method_nonce_gateway.rb +14 -3
  84. data/lib/braintree/payment_method_parser.rb +4 -7
  85. data/lib/braintree/paypal_account.rb +3 -2
  86. data/lib/braintree/paypal_account_gateway.rb +5 -5
  87. data/lib/braintree/plan.rb +22 -2
  88. data/lib/braintree/plan_gateway.rb +101 -1
  89. data/lib/braintree/processor_response_types.rb +3 -3
  90. data/lib/braintree/resource_collection.rb +10 -5
  91. data/lib/braintree/revoked_payment_method_metadata.rb +2 -2
  92. data/lib/braintree/risk_data/liability_shift.rb +22 -0
  93. data/lib/braintree/risk_data.rb +10 -3
  94. data/lib/braintree/samsung_pay_card.rb +8 -6
  95. data/lib/braintree/sepa_direct_debit_account.rb +60 -0
  96. data/lib/braintree/sepa_direct_debit_account_gateway.rb +25 -0
  97. data/lib/braintree/sepa_direct_debit_account_nonce_details.rb +28 -0
  98. data/lib/braintree/settlement_batch_summary.rb +2 -2
  99. data/lib/braintree/settlement_batch_summary_gateway.rb +1 -1
  100. data/lib/braintree/sha256_digest.rb +1 -1
  101. data/lib/braintree/subscription/status_details.rb +1 -1
  102. data/lib/braintree/subscription.rb +13 -13
  103. data/lib/braintree/subscription_gateway.rb +6 -6
  104. data/lib/braintree/subscription_search.rb +1 -1
  105. data/lib/braintree/successful_result.rb +5 -4
  106. data/lib/braintree/test/authentication_id.rb +21 -0
  107. data/lib/braintree/test/credit_card.rb +9 -10
  108. data/lib/braintree/test/merchant_account.rb +1 -1
  109. data/lib/braintree/test/nonce.rb +27 -20
  110. data/lib/braintree/test/transaction_amounts.rb +2 -3
  111. data/lib/braintree/test/venmo_sdk.rb +2 -0
  112. data/lib/braintree/testing_gateway.rb +1 -1
  113. data/lib/braintree/three_d_secure_info.rb +23 -11
  114. data/lib/braintree/transaction/address_details.rb +14 -1
  115. data/lib/braintree/transaction/apple_pay_details.rb +13 -10
  116. data/lib/braintree/transaction/credit_card_details.rb +8 -1
  117. data/lib/braintree/transaction/customer_details.rb +3 -2
  118. data/lib/braintree/transaction/disbursement_details.rb +2 -1
  119. data/lib/braintree/transaction/{android_pay_details.rb → google_pay_details.rb} +6 -1
  120. data/lib/braintree/transaction/installment/adjustment.rb +33 -0
  121. data/lib/braintree/transaction/installment.rb +28 -0
  122. data/lib/braintree/transaction/local_payment_details.rb +3 -0
  123. data/lib/braintree/transaction/meta_checkout_card_details.rb +52 -0
  124. data/lib/braintree/transaction/meta_checkout_token_details.rb +54 -0
  125. data/lib/braintree/transaction/package_details.rb +19 -0
  126. data/lib/braintree/transaction/payment_receipt/card_present_data.rb +36 -0
  127. data/lib/braintree/transaction/payment_receipt/merchant_address.rb +19 -0
  128. data/lib/braintree/transaction/payment_receipt.rb +31 -0
  129. data/lib/braintree/transaction/paypal_details.rb +5 -0
  130. data/lib/braintree/transaction/samsung_pay_card_details.rb +3 -1
  131. data/lib/braintree/transaction/sepa_direct_debit_account_details.rb +27 -0
  132. data/lib/braintree/transaction/status_details.rb +1 -1
  133. data/lib/braintree/transaction/subscription_details.rb +3 -1
  134. data/lib/braintree/transaction/us_bank_account_details.rb +2 -1
  135. data/lib/braintree/transaction/visa_checkout_card_details.rb +1 -1
  136. data/lib/braintree/transaction.rb +119 -128
  137. data/lib/braintree/transaction_gateway.rb +138 -64
  138. data/lib/braintree/transaction_line_item.rb +14 -11
  139. data/lib/braintree/transaction_line_item_gateway.rb +1 -1
  140. data/lib/braintree/transaction_review.rb +18 -0
  141. data/lib/braintree/transaction_search.rb +11 -7
  142. data/lib/braintree/unknown_payment_method.rb +2 -2
  143. data/lib/braintree/us_bank_account.rb +5 -5
  144. data/lib/braintree/us_bank_account_verification.rb +24 -16
  145. data/lib/braintree/us_bank_account_verification_gateway.rb +1 -1
  146. data/lib/braintree/us_bank_account_verification_search.rb +1 -1
  147. data/lib/braintree/util.rb +25 -10
  148. data/lib/braintree/validation_error.rb +1 -1
  149. data/lib/braintree/validation_error_collection.rb +3 -3
  150. data/lib/braintree/venmo_account.rb +4 -4
  151. data/lib/braintree/venmo_profile_data.rb +25 -0
  152. data/lib/braintree/version.rb +2 -2
  153. data/lib/braintree/visa_checkout_card.rb +8 -8
  154. data/lib/braintree/webhook_notification.rb +55 -33
  155. data/lib/braintree/webhook_notification_gateway.rb +9 -9
  156. data/lib/braintree/webhook_testing.rb +1 -1
  157. data/lib/braintree/webhook_testing_gateway.rb +569 -46
  158. data/lib/braintree/xml/generator.rb +6 -5
  159. data/lib/braintree/xml/libxml.rb +1 -1
  160. data/lib/braintree/xml/parser.rb +24 -37
  161. data/lib/braintree/xml/rexml.rb +6 -7
  162. data/lib/braintree/xml.rb +1 -1
  163. data/lib/braintree.rb +41 -24
  164. data/lib/ssl/api_braintreegateway_com.ca.crt +401 -168
  165. data/spec/integration/braintree/add_on_spec.rb +10 -10
  166. data/spec/integration/braintree/address_spec.rb +101 -178
  167. data/spec/integration/braintree/advanced_search_spec.rb +93 -93
  168. data/spec/integration/braintree/apple_pay_spec.rb +12 -12
  169. data/spec/integration/braintree/braintree_gateway_spec.rb +2 -1
  170. data/spec/integration/braintree/client_api/client_token_spec.rb +279 -62
  171. data/spec/integration/braintree/client_api/spec_helper.rb +99 -73
  172. data/spec/integration/braintree/credit_card_spec.rb +522 -821
  173. data/spec/integration/braintree/credit_card_verification_search_spec.rb +18 -18
  174. data/spec/integration/braintree/credit_card_verification_spec.rb +219 -30
  175. data/spec/integration/braintree/customer_search_spec.rb +28 -28
  176. data/spec/integration/braintree/customer_spec.rb +840 -757
  177. data/spec/integration/braintree/disbursement_spec.rb +2 -2
  178. data/spec/integration/braintree/discount_spec.rb +9 -9
  179. data/spec/integration/braintree/dispute_search_spec.rb +45 -9
  180. data/spec/integration/braintree/dispute_spec.rb +109 -82
  181. data/spec/integration/braintree/document_upload_spec.rb +29 -17
  182. data/spec/integration/braintree/error_codes_spec.rb +3 -3
  183. data/spec/integration/braintree/exchange_rate_quote_spec.rb +97 -0
  184. data/spec/integration/braintree/graphql_client_spec.rb +0 -2
  185. data/spec/integration/braintree/http_spec.rb +31 -33
  186. data/spec/integration/braintree/merchant_account_spec.rb +155 -156
  187. data/spec/integration/braintree/merchant_spec.rb +71 -192
  188. data/spec/integration/braintree/oauth_spec.rb +72 -72
  189. data/spec/integration/braintree/package_tracking_spec.rb +130 -0
  190. data/spec/integration/braintree/payment_method_nonce_spec.rb +173 -78
  191. data/spec/integration/braintree/payment_method_spec.rb +953 -501
  192. data/spec/integration/braintree/payment_method_us_bank_account_spec.rb +147 -234
  193. data/spec/integration/braintree/paypal_account_spec.rb +74 -72
  194. data/spec/integration/braintree/plan_spec.rb +96 -15
  195. data/spec/integration/braintree/samsung_pay_card_spec.rb +75 -73
  196. data/spec/integration/braintree/sepa_direct_debit_account_spec.rb +194 -0
  197. data/spec/integration/braintree/settlement_batch_summary_spec.rb +18 -18
  198. data/spec/integration/braintree/subscription_spec.rb +507 -513
  199. data/spec/integration/braintree/test/transaction_amounts_spec.rb +4 -4
  200. data/spec/integration/braintree/test_transaction_spec.rb +29 -29
  201. data/spec/integration/braintree/transaction_line_item_spec.rb +12 -6
  202. data/spec/integration/braintree/transaction_search_spec.rb +410 -217
  203. data/spec/integration/braintree/transaction_spec.rb +3252 -2102
  204. data/spec/integration/braintree/transaction_us_bank_account_spec.rb +42 -278
  205. data/spec/integration/braintree/us_bank_account_spec.rb +36 -36
  206. data/spec/integration/braintree/us_bank_account_verification_search_spec.rb +25 -25
  207. data/spec/integration/braintree/us_bank_account_verification_spec.rb +41 -41
  208. data/spec/integration/braintree/visa_checkout_card_spec.rb +62 -62
  209. data/spec/integration/spec_helper.rb +22 -7
  210. data/spec/oauth_test_helper.rb +1 -1
  211. data/spec/script/httpsd.rb +6 -6
  212. data/spec/spec_helper.rb +15 -20
  213. data/spec/unit/braintree/address_spec.rb +9 -17
  214. data/spec/unit/braintree/apple_pay_card_spec.rb +110 -7
  215. data/spec/unit/braintree/base_module_spec.rb +4 -4
  216. data/spec/unit/braintree/client_token_spec.rb +6 -6
  217. data/spec/unit/braintree/configuration_spec.rb +84 -84
  218. data/spec/unit/braintree/credentials_parser_spec.rb +6 -6
  219. data/spec/unit/braintree/credit_card_spec.rb +91 -58
  220. data/spec/unit/braintree/credit_card_verification_gateway_spec.rb +56 -0
  221. data/spec/unit/braintree/credit_card_verification_search_spec.rb +10 -10
  222. data/spec/unit/braintree/credit_card_verification_spec.rb +40 -18
  223. data/spec/unit/braintree/customer_spec.rb +102 -57
  224. data/spec/unit/braintree/digest_spec.rb +5 -6
  225. data/spec/unit/braintree/disbursement_spec.rb +14 -14
  226. data/spec/unit/braintree/dispute_search_spec.rb +6 -2
  227. data/spec/unit/braintree/dispute_spec.rb +144 -66
  228. data/spec/unit/braintree/document_upload_spec.rb +8 -8
  229. data/spec/unit/braintree/enriched_customer_data_spec.rb +41 -0
  230. data/spec/unit/braintree/error_result_spec.rb +11 -11
  231. data/spec/unit/braintree/errors_spec.rb +17 -17
  232. data/spec/unit/braintree/exchange_rate_quote_input_spec.rb +42 -0
  233. data/spec/unit/braintree/exchange_rate_quote_request_spec.rb +82 -0
  234. data/spec/unit/braintree/exchange_rate_quote_response_spec.rb +52 -0
  235. data/spec/unit/braintree/exchange_rate_quote_spec.rb +42 -0
  236. data/spec/unit/braintree/exchange_rate_spec.rb +23 -0
  237. data/spec/unit/braintree/http_spec.rb +19 -17
  238. data/spec/unit/braintree/local_payment_completed_spec.rb +62 -8
  239. data/spec/unit/braintree/local_payment_expired_spec.rb +24 -0
  240. data/spec/unit/braintree/local_payment_funded_spec.rb +34 -0
  241. data/spec/unit/braintree/merchant_account_spec.rb +5 -5
  242. data/spec/unit/braintree/meta_checkout_card_details_spec.rb +60 -0
  243. data/spec/unit/braintree/meta_checkout_card_spec.rb +60 -0
  244. data/spec/unit/braintree/meta_checkout_token_details_spec.rb +63 -0
  245. data/spec/unit/braintree/meta_checkout_token_spec.rb +63 -0
  246. data/spec/unit/braintree/modification_spec.rb +1 -1
  247. data/spec/unit/braintree/package_tracking_spec.rb +77 -0
  248. data/spec/unit/braintree/payment_method_customer_data_updated_metadata_spec.rb +45 -0
  249. data/spec/unit/braintree/payment_method_nonce_details_payer_info_spec.rb +31 -0
  250. data/spec/unit/braintree/payment_method_nonce_details_spec.rb +51 -0
  251. data/spec/unit/braintree/payment_method_nonce_spec.rb +40 -0
  252. data/spec/unit/braintree/payment_method_spec.rb +20 -20
  253. data/spec/unit/braintree/paypal_account_spec.rb +16 -7
  254. data/spec/unit/braintree/resource_collection_spec.rb +34 -5
  255. data/spec/unit/braintree/risk_data/liability_shift.rb +26 -0
  256. data/spec/unit/braintree/risk_data_spec.rb +38 -8
  257. data/spec/unit/braintree/sepa_debit_account_nonce_details_spec.rb +29 -0
  258. data/spec/unit/braintree/sepa_debit_account_spec.rb +86 -0
  259. data/spec/unit/braintree/sha256_digest_spec.rb +1 -1
  260. data/spec/unit/braintree/signature_service_spec.rb +2 -2
  261. data/spec/unit/braintree/subscription_search_spec.rb +18 -18
  262. data/spec/unit/braintree/subscription_spec.rb +8 -8
  263. data/spec/unit/braintree/successful_result_spec.rb +6 -6
  264. data/spec/unit/braintree/three_d_secure_info_spec.rb +37 -17
  265. data/spec/unit/braintree/transaction/credit_card_details_spec.rb +22 -6
  266. data/spec/unit/braintree/transaction/customer_details_spec.rb +3 -2
  267. data/spec/unit/braintree/transaction/deposit_details_spec.rb +4 -4
  268. data/spec/unit/braintree/transaction/installment_spec.rb +25 -0
  269. data/spec/unit/braintree/transaction/local_payment_details_spec.rb +36 -0
  270. data/spec/unit/braintree/transaction/payment_receipt_spec.rb +73 -0
  271. data/spec/unit/braintree/transaction/paypal_details_spec.rb +63 -0
  272. data/spec/unit/braintree/transaction/sepa_direct_debit_account_details_spec.rb +33 -0
  273. data/spec/unit/braintree/transaction_gateway_spec.rb +150 -0
  274. data/spec/unit/braintree/transaction_search_spec.rb +12 -12
  275. data/spec/unit/braintree/transaction_spec.rb +221 -124
  276. data/spec/unit/braintree/unknown_payment_method_spec.rb +4 -4
  277. data/spec/unit/braintree/us_bank_account_spec.rb +2 -2
  278. data/spec/unit/braintree/us_bank_account_verification_search_spec.rb +7 -7
  279. data/spec/unit/braintree/us_bank_account_verification_spec.rb +12 -7
  280. data/spec/unit/braintree/util_spec.rb +78 -44
  281. data/spec/unit/braintree/validation_error_collection_spec.rb +62 -62
  282. data/spec/unit/braintree/validation_error_spec.rb +4 -4
  283. data/spec/unit/braintree/venmo_profile_data_spec.rb +43 -0
  284. data/spec/unit/braintree/webhook_notification_spec.rb +434 -197
  285. data/spec/unit/braintree/xml/libxml_spec.rb +5 -5
  286. data/spec/unit/braintree/xml/parser_spec.rb +27 -22
  287. data/spec/unit/braintree/xml/rexml_spec.rb +5 -5
  288. data/spec/unit/braintree/xml_spec.rb +38 -38
  289. data/spec/unit/braintree_spec.rb +2 -2
  290. metadata +91 -30
  291. data/lib/braintree/amex_express_checkout_card.rb +0 -38
  292. data/lib/braintree/coinbase_account.rb +0 -34
  293. data/lib/braintree/europe_bank_account.rb +0 -36
  294. data/lib/braintree/europe_bank_account_gateway.rb +0 -17
  295. data/lib/braintree/ideal_payment.rb +0 -61
  296. data/lib/braintree/ideal_payment_gateway.rb +0 -19
  297. data/lib/braintree/masterpass_card.rb +0 -81
  298. data/lib/braintree/settlement_batch.rb +0 -0
  299. data/lib/braintree/transaction/amex_express_checkout_details.rb +0 -21
  300. data/lib/braintree/transaction/ideal_payment_details.rb +0 -19
  301. data/lib/braintree/transaction/masterpass_card_details.rb +0 -47
  302. data/lib/braintree/transparent_redirect.rb +0 -40
  303. data/lib/braintree/transparent_redirect_gateway.rb +0 -105
  304. data/spec/hacks/tcp_socket.rb +0 -18
  305. data/spec/integration/braintree/coinbase_spec.rb +0 -34
  306. data/spec/integration/braintree/masterpass_card_spec.rb +0 -97
  307. data/spec/integration/braintree/transparent_redirect_spec.rb +0 -268
  308. data/spec/unit/braintree/transparent_redirect_spec.rb +0 -223
@@ -14,23 +14,28 @@ describe Braintree::Address do
14
14
  :extended_address => "Suite 200",
15
15
  :locality => "Chicago",
16
16
  :region => "Illinois",
17
+ :phone_number => "5551231234",
18
+ :international_phone => {:country_code => "1", :national_number => "3121234567"},
17
19
  :postal_code => "60622",
18
- :country_name => "United States of America"
20
+ :country_name => "United States of America",
19
21
  )
20
- result.success?.should == true
21
- result.address.customer_id.should == customer.id
22
- result.address.first_name.should == "Ben"
23
- result.address.last_name.should == "Moore"
24
- result.address.company.should == "Moore Co."
25
- result.address.street_address.should == "1811 E Main St"
26
- result.address.extended_address.should == "Suite 200"
27
- result.address.locality.should == "Chicago"
28
- result.address.region.should == "Illinois"
29
- result.address.postal_code.should == "60622"
30
- result.address.country_name.should == "United States of America"
31
- result.address.country_code_alpha2.should == "US"
32
- result.address.country_code_alpha3.should == "USA"
33
- result.address.country_code_numeric.should == "840"
22
+ expect(result.success?).to eq(true)
23
+ expect(result.address.customer_id).to eq(customer.id)
24
+ expect(result.address.first_name).to eq("Ben")
25
+ expect(result.address.last_name).to eq("Moore")
26
+ expect(result.address.company).to eq("Moore Co.")
27
+ expect(result.address.street_address).to eq("1811 E Main St")
28
+ expect(result.address.extended_address).to eq("Suite 200")
29
+ expect(result.address.locality).to eq("Chicago")
30
+ expect(result.address.region).to eq("Illinois")
31
+ expect(result.address.phone_number).to eq("5551231234")
32
+ expect(result.address.international_phone[:country_code]).to eq("1")
33
+ expect(result.address.international_phone[:national_number]).to eq("3121234567")
34
+ expect(result.address.postal_code).to eq("60622")
35
+ expect(result.address.country_name).to eq("United States of America")
36
+ expect(result.address.country_code_alpha2).to eq("US")
37
+ expect(result.address.country_code_alpha3).to eq("USA")
38
+ expect(result.address.country_code_numeric).to eq("840")
34
39
  end
35
40
 
36
41
  it "accepts country_codes" do
@@ -39,23 +44,23 @@ describe Braintree::Address do
39
44
  :customer_id => customer.id,
40
45
  :country_code_alpha2 => "AS",
41
46
  :country_code_alpha3 => "ASM",
42
- :country_code_numeric => "16"
47
+ :country_code_numeric => "16",
43
48
  )
44
- result.success?.should == true
45
- result.address.country_name.should == "American Samoa"
46
- result.address.country_code_alpha2.should == "AS"
47
- result.address.country_code_alpha3.should == "ASM"
48
- result.address.country_code_numeric.should == "016"
49
+ expect(result.success?).to eq(true)
50
+ expect(result.address.country_name).to eq("American Samoa")
51
+ expect(result.address.country_code_alpha2).to eq("AS")
52
+ expect(result.address.country_code_alpha3).to eq("ASM")
53
+ expect(result.address.country_code_numeric).to eq("016")
49
54
  end
50
55
 
51
56
  it "accepts utf-8 country names" do
52
57
  customer = Braintree::Customer.create!
53
58
  result = Braintree::Address.create(
54
59
  :customer_id => customer.id,
55
- :country_name => "Åland"
60
+ :country_name => "Åland",
56
61
  )
57
- result.success?.should == true
58
- result.address.country_name.should == "Åland"
62
+ expect(result.success?).to eq(true)
63
+ expect(result.address.country_name).to eq("Åland")
59
64
  end
60
65
 
61
66
  it "returns an error response given inconsistent country codes" do
@@ -63,50 +68,50 @@ describe Braintree::Address do
63
68
  result = Braintree::Address.create(
64
69
  :customer_id => customer.id,
65
70
  :country_code_alpha2 => "AS",
66
- :country_code_alpha3 => "USA"
71
+ :country_code_alpha3 => "USA",
67
72
  )
68
- result.success?.should == false
69
- result.errors.for(:address).on(:base).map {|e| e.code}.should include(Braintree::ErrorCodes::Address::InconsistentCountry)
73
+ expect(result.success?).to eq(false)
74
+ expect(result.errors.for(:address).on(:base).map { |e| e.code }).to include(Braintree::ErrorCodes::Address::InconsistentCountry)
70
75
  end
71
76
 
72
77
  it "returns an error response given an invalid country_code_alpha2" do
73
78
  customer = Braintree::Customer.create!
74
79
  result = Braintree::Address.create(
75
80
  :customer_id => customer.id,
76
- :country_code_alpha2 => "zz"
81
+ :country_code_alpha2 => "zz",
77
82
  )
78
- result.success?.should == false
79
- result.errors.for(:address).on(:country_code_alpha2).map {|e| e.code}.should include(Braintree::ErrorCodes::Address::CountryCodeAlpha2IsNotAccepted)
83
+ expect(result.success?).to eq(false)
84
+ expect(result.errors.for(:address).on(:country_code_alpha2).map { |e| e.code }).to include(Braintree::ErrorCodes::Address::CountryCodeAlpha2IsNotAccepted)
80
85
  end
81
86
 
82
87
  it "returns an error response given an invalid country_code_alpha3" do
83
88
  customer = Braintree::Customer.create!
84
89
  result = Braintree::Address.create(
85
90
  :customer_id => customer.id,
86
- :country_code_alpha3 => "zzz"
91
+ :country_code_alpha3 => "zzz",
87
92
  )
88
- result.success?.should == false
89
- result.errors.for(:address).on(:country_code_alpha3).map {|e| e.code}.should include(Braintree::ErrorCodes::Address::CountryCodeAlpha3IsNotAccepted)
93
+ expect(result.success?).to eq(false)
94
+ expect(result.errors.for(:address).on(:country_code_alpha3).map { |e| e.code }).to include(Braintree::ErrorCodes::Address::CountryCodeAlpha3IsNotAccepted)
90
95
  end
91
96
 
92
97
  it "returns an error response given an invalid country_code_numeric" do
93
98
  customer = Braintree::Customer.create!
94
99
  result = Braintree::Address.create(
95
100
  :customer_id => customer.id,
96
- :country_code_numeric => "zz"
101
+ :country_code_numeric => "zz",
97
102
  )
98
- result.success?.should == false
99
- result.errors.for(:address).on(:country_code_numeric).map {|e| e.code}.should include(Braintree::ErrorCodes::Address::CountryCodeNumericIsNotAccepted)
103
+ expect(result.success?).to eq(false)
104
+ expect(result.errors.for(:address).on(:country_code_numeric).map { |e| e.code }).to include(Braintree::ErrorCodes::Address::CountryCodeNumericIsNotAccepted)
100
105
  end
101
106
 
102
107
  it "returns an error response if invalid" do
103
108
  customer = Braintree::Customer.create!(:last_name => "Wilson")
104
109
  result = Braintree::Address.create(
105
110
  :customer_id => customer.id,
106
- :country_name => "United States of Invalid"
111
+ :country_name => "United States of Invalid",
107
112
  )
108
- result.success?.should == false
109
- result.errors.for(:address).on(:country_name)[0].message.should == "Country name is not an accepted country."
113
+ expect(result.success?).to eq(false)
114
+ expect(result.errors.for(:address).on(:country_name)[0].message).to eq("Country name is not an accepted country.")
110
115
  end
111
116
 
112
117
  it "allows -, _, A-Z, a-z, and 0-9 in customer_id without raising an ArgumentError" do
@@ -131,16 +136,18 @@ describe Braintree::Address do
131
136
  :extended_address => "Suite 201",
132
137
  :locality => "Bartlett",
133
138
  :region => "IL",
139
+ :phone_number => "5551231234",
134
140
  :postal_code => "60623",
135
- :country_name => "United States of America"
141
+ :country_name => "United States of America",
136
142
  )
137
- address.customer_id.should == customer.id
138
- address.street_address.should == "1812 E Main St"
139
- address.extended_address.should == "Suite 201"
140
- address.locality.should == "Bartlett"
141
- address.region.should == "IL"
142
- address.postal_code.should == "60623"
143
- address.country_name.should == "United States of America"
143
+ expect(address.customer_id).to eq(customer.id)
144
+ expect(address.street_address).to eq("1812 E Main St")
145
+ expect(address.extended_address).to eq("Suite 201")
146
+ expect(address.locality).to eq("Bartlett")
147
+ expect(address.region).to eq("IL")
148
+ expect(address.phone_number).to eq("5551231234")
149
+ expect(address.postal_code).to eq("60623")
150
+ expect(address.country_name).to eq("United States of America")
144
151
  end
145
152
 
146
153
  it "raises a ValidationsFailed if invalid" do
@@ -148,7 +155,7 @@ describe Braintree::Address do
148
155
  expect do
149
156
  Braintree::Address.create!(
150
157
  :customer_id => customer.id,
151
- :country_name => "United States of Invalid"
158
+ :country_name => "United States of Invalid",
152
159
  )
153
160
  end.to raise_error(Braintree::ValidationsFailed)
154
161
  end
@@ -158,7 +165,7 @@ describe Braintree::Address do
158
165
  it "deletes the address given a customer id and an address id" do
159
166
  customer = Braintree::Customer.create!(:last_name => "Wilson")
160
167
  address = Braintree::Address.create!(:customer_id => customer.id, :street_address => "123 E Main St")
161
- Braintree::Address.delete(customer.id, address.id).success?.should == true
168
+ expect(Braintree::Address.delete(customer.id, address.id).success?).to eq(true)
162
169
  expect do
163
170
  Braintree::Address.find(customer.id, address.id)
164
171
  end.to raise_error(Braintree::NotFoundError)
@@ -167,7 +174,7 @@ describe Braintree::Address do
167
174
  it "deletes the address given a customer and an address id" do
168
175
  customer = Braintree::Customer.create!(:last_name => "Wilson")
169
176
  address = Braintree::Address.create!(:customer_id => customer.id, :street_address => "123 E Main St")
170
- Braintree::Address.delete(customer, address.id).success?.should == true
177
+ expect(Braintree::Address.delete(customer, address.id).success?).to eq(true)
171
178
  expect do
172
179
  Braintree::Address.find(customer.id, address.id)
173
180
  end.to raise_error(Braintree::NotFoundError)
@@ -178,13 +185,13 @@ describe Braintree::Address do
178
185
  it "finds the address given a customer and an address id" do
179
186
  customer = Braintree::Customer.create!(:last_name => "Wilson")
180
187
  address = Braintree::Address.create!(:customer_id => customer.id, :street_address => "123 E Main St")
181
- Braintree::Address.find(customer, address.id).should == address
188
+ expect(Braintree::Address.find(customer, address.id)).to eq(address)
182
189
  end
183
190
 
184
191
  it "finds the address given a customer id and an address id" do
185
192
  customer = Braintree::Customer.create!(:last_name => "Wilson")
186
193
  address = Braintree::Address.create!(:customer_id => customer.id, :street_address => "123 E Main St")
187
- Braintree::Address.find(customer.id, address.id).should == address
194
+ expect(Braintree::Address.find(customer.id, address.id)).to eq(address)
188
195
  end
189
196
 
190
197
  it "raises a NotFoundError if it cannot be found because of customer id" do
@@ -199,7 +206,7 @@ describe Braintree::Address do
199
206
 
200
207
  it "raises a NotFoundError if it cannot be found because of address id" do
201
208
  customer = Braintree::Customer.create!(:last_name => "Wilson")
202
- address = Braintree::Address.create!(:customer_id => customer.id, :street_address => "123 E Main St")
209
+ Braintree::Address.create!(:customer_id => customer.id, :street_address => "123 E Main St")
203
210
  expect do
204
211
  Braintree::Address.find(customer, "invalid")
205
212
  end.to raise_error(
@@ -211,7 +218,7 @@ describe Braintree::Address do
211
218
  describe "self.update" do
212
219
  it "raises NotFoundError if the address can't be found" do
213
220
  customer = Braintree::Customer.create!(:last_name => "Wilson")
214
- address = Braintree::Address.create!(:customer_id => customer.id, :street_address => "123 E Main St")
221
+ Braintree::Address.create!(:customer_id => customer.id, :street_address => "123 E Main St")
215
222
  expect do
216
223
  Braintree::Address.update(customer.id, "bad-id", {})
217
224
  end.to raise_error(Braintree::NotFoundError)
@@ -226,7 +233,7 @@ describe Braintree::Address do
226
233
  :locality => "Old Chicago",
227
234
  :region => "IL",
228
235
  :postal_code => "60620",
229
- :country_name => "United States of America"
236
+ :country_name => "United States of America",
230
237
  )
231
238
  result = Braintree::Address.update(
232
239
  customer.id,
@@ -236,60 +243,63 @@ describe Braintree::Address do
236
243
  :locality => "Chicago",
237
244
  :region => "Illinois",
238
245
  :postal_code => "60621",
239
- :country_name => "United States of America"
246
+ :country_name => "United States of America",
247
+ :international_phone => {:country_code => "1", :national_number => "3121234567"},
240
248
  )
241
- result.success?.should == true
242
- result.address.street_address.should == "123 E New St"
243
- result.address.extended_address.should == "New Suite 3"
244
- result.address.locality.should == "Chicago"
245
- result.address.region.should == "Illinois"
246
- result.address.postal_code.should == "60621"
247
- result.address.country_name.should == "United States of America"
248
- result.address.country_code_alpha2.should == "US"
249
- result.address.country_code_alpha3.should == "USA"
250
- result.address.country_code_numeric.should == "840"
249
+ expect(result.success?).to eq(true)
250
+ expect(result.address.street_address).to eq("123 E New St")
251
+ expect(result.address.extended_address).to eq("New Suite 3")
252
+ expect(result.address.locality).to eq("Chicago")
253
+ expect(result.address.region).to eq("Illinois")
254
+ expect(result.address.postal_code).to eq("60621")
255
+ expect(result.address.country_name).to eq("United States of America")
256
+ expect(result.address.country_code_alpha2).to eq("US")
257
+ expect(result.address.country_code_alpha3).to eq("USA")
258
+ expect(result.address.country_code_numeric).to eq("840")
259
+ expect(result.address.international_phone[:country_code]).to eq("1")
260
+ expect(result.address.international_phone[:national_number]).to eq("3121234567")
251
261
  end
252
262
 
253
263
  it "accepts country_codes" do
254
264
  customer = Braintree::Customer.create!(:last_name => "Miller")
255
265
  address = Braintree::Address.create!(
256
266
  :customer_id => customer.id,
257
- :country_name => "Angola"
267
+ :country_name => "Angola",
258
268
  )
259
269
  result = Braintree::Address.update(
260
270
  customer.id,
261
271
  address.id,
262
- :country_name => "Azerbaijan"
272
+ :country_name => "Azerbaijan",
263
273
  )
264
274
 
265
- result.success?.should == true
266
- result.address.country_name.should == "Azerbaijan"
267
- result.address.country_code_alpha2.should == "AZ"
268
- result.address.country_code_alpha3.should == "AZE"
269
- result.address.country_code_numeric.should == "031"
275
+ expect(result.success?).to eq(true)
276
+ expect(result.address.country_name).to eq("Azerbaijan")
277
+ expect(result.address.country_code_alpha2).to eq("AZ")
278
+ expect(result.address.country_code_alpha3).to eq("AZE")
279
+ expect(result.address.country_code_numeric).to eq("031")
270
280
  end
271
281
 
272
282
  it "returns an error response if invalid" do
273
283
  customer = Braintree::Customer.create!(:last_name => "Miller")
274
284
  address = Braintree::Address.create!(
275
285
  :customer_id => customer.id,
276
- :country_name => "United States of America"
286
+ :country_name => "United States of America",
277
287
  )
278
288
  result = Braintree::Address.update(
279
289
  customer.id,
280
290
  address.id,
281
291
  :street_address => "123 E New St",
282
- :country_name => "United States of Invalid"
292
+ :country_name => "United States of Invalid",
283
293
  )
284
- result.success?.should == false
285
- result.errors.for(:address).on(:country_name)[0].message.should == "Country name is not an accepted country."
294
+ expect(result.success?).to eq(false)
295
+ expect(result.errors.for(:address).on(:country_name)[0].message).to eq("Country name is not an accepted country.")
286
296
  end
287
297
  end
288
298
 
289
299
  describe "self.update!" do
290
300
  it "raises NotFoundError if the address can't be found" do
291
301
  customer = Braintree::Customer.create!(:last_name => "Wilson")
292
- address = Braintree::Address.create!(:customer_id => customer.id, :street_address => "123 E Main St")
302
+ Braintree::Address.create!(:customer_id => customer.id, :street_address => "123 E Main St")
293
303
  expect do
294
304
  Braintree::Address.update!(customer.id, "bad-id", {})
295
305
  end.to raise_error(Braintree::NotFoundError)
@@ -304,7 +314,7 @@ describe Braintree::Address do
304
314
  :locality => "Old Chicago",
305
315
  :region => "IL",
306
316
  :postal_code => "60620",
307
- :country_name => "United States of America"
317
+ :country_name => "United States of America",
308
318
  )
309
319
  updated_address = Braintree::Address.update!(
310
320
  customer.id,
@@ -314,29 +324,29 @@ describe Braintree::Address do
314
324
  :locality => "Chicago",
315
325
  :region => "Illinois",
316
326
  :postal_code => "60621",
317
- :country_name => "United States of America"
327
+ :country_name => "United States of America",
318
328
  )
319
- updated_address.should == address
320
- updated_address.street_address.should == "123 E New St"
321
- updated_address.extended_address.should == "New Suite 3"
322
- updated_address.locality.should == "Chicago"
323
- updated_address.region.should == "Illinois"
324
- updated_address.postal_code.should == "60621"
325
- updated_address.country_name.should == "United States of America"
329
+ expect(updated_address).to eq(address)
330
+ expect(updated_address.street_address).to eq("123 E New St")
331
+ expect(updated_address.extended_address).to eq("New Suite 3")
332
+ expect(updated_address.locality).to eq("Chicago")
333
+ expect(updated_address.region).to eq("Illinois")
334
+ expect(updated_address.postal_code).to eq("60621")
335
+ expect(updated_address.country_name).to eq("United States of America")
326
336
  end
327
337
 
328
338
  it "raises a ValidationsFailed invalid" do
329
339
  customer = Braintree::Customer.create!(:last_name => "Miller")
330
340
  address = Braintree::Address.create!(
331
341
  :customer_id => customer.id,
332
- :country_name => "United States of America"
342
+ :country_name => "United States of America",
333
343
  )
334
344
  expect do
335
345
  Braintree::Address.update!(
336
346
  customer.id,
337
347
  address.id,
338
348
  :street_address => "123 E New St",
339
- :country_name => "United States of Invalid"
349
+ :country_name => "United States of Invalid",
340
350
  )
341
351
  end.to raise_error(Braintree::ValidationsFailed)
342
352
  end
@@ -347,98 +357,11 @@ describe Braintree::Address do
347
357
  it "deletes the address" do
348
358
  customer = Braintree::Customer.create!(:last_name => "Wilson")
349
359
  address = Braintree::Address.create!(:customer_id => customer.id, :street_address => "123 E Main St")
350
- address.delete.success?.should == true
360
+ result = Braintree::Address.delete(customer.id, address.id)
361
+ expect(result.success?).to eq(true)
351
362
  expect do
352
363
  Braintree::Address.find(customer.id, address.id)
353
364
  end.to raise_error(Braintree::NotFoundError)
354
365
  end
355
366
  end
356
-
357
- describe "update" do
358
- it "returns a success response and updates the address if valid" do
359
- customer = Braintree::Customer.create!(:last_name => "Miller")
360
- address = Braintree::Address.create!(
361
- :customer_id => customer.id,
362
- :street_address => "1812 E Old St",
363
- :extended_address => "Suite Old 201",
364
- :locality => "Old Chicago",
365
- :region => "IL",
366
- :postal_code => "60620",
367
- :country_name => "United States of America"
368
- )
369
- result = address.update(
370
- :street_address => "123 E New St",
371
- :extended_address => "New Suite 3",
372
- :locality => "Chicago",
373
- :region => "Illinois",
374
- :postal_code => "60621",
375
- :country_name => "United States of America"
376
- )
377
- result.success?.should == true
378
- result.address.should == address
379
- address.street_address.should == "123 E New St"
380
- address.extended_address.should == "New Suite 3"
381
- address.locality.should == "Chicago"
382
- address.region.should == "Illinois"
383
- address.postal_code.should == "60621"
384
- address.country_name.should == "United States of America"
385
- end
386
-
387
- it "returns an error response if invalid" do
388
- customer = Braintree::Customer.create!(:last_name => "Miller")
389
- address = Braintree::Address.create!(
390
- :customer_id => customer.id,
391
- :country_name => "United States of America"
392
- )
393
- result = address.update(
394
- :street_address => "123 E New St",
395
- :country_name => "United States of Invalid"
396
- )
397
- result.success?.should == false
398
- result.errors.for(:address).on(:country_name)[0].message.should == "Country name is not an accepted country."
399
- end
400
- end
401
-
402
- describe "update!" do
403
- it "returns true and updates the address if valid" do
404
- customer = Braintree::Customer.create!(:last_name => "Miller")
405
- address = Braintree::Address.create!(
406
- :customer_id => customer.id,
407
- :street_address => "1812 E Old St",
408
- :extended_address => "Suite Old 201",
409
- :locality => "Old Chicago",
410
- :region => "IL",
411
- :postal_code => "60620",
412
- :country_name => "United States of America"
413
- )
414
- address.update!(
415
- :street_address => "123 E New St",
416
- :extended_address => "New Suite 3",
417
- :locality => "Chicago",
418
- :region => "Illinois",
419
- :postal_code => "60621",
420
- :country_name => "United States of America"
421
- ).should == address
422
- address.street_address.should == "123 E New St"
423
- address.extended_address.should == "New Suite 3"
424
- address.locality.should == "Chicago"
425
- address.region.should == "Illinois"
426
- address.postal_code.should == "60621"
427
- address.country_name.should == "United States of America"
428
- end
429
-
430
- it "raises a ValidationsFailed invalid" do
431
- customer = Braintree::Customer.create!(:last_name => "Miller")
432
- address = Braintree::Address.create!(
433
- :customer_id => customer.id,
434
- :country_name => "United States of America"
435
- )
436
- expect do
437
- address.update!(
438
- :street_address => "123 E New St",
439
- :country_name => "United States of Invalid"
440
- )
441
- end.to raise_error(Braintree::ValidationsFailed)
442
- end
443
- end
444
367
  end