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
@@ -0,0 +1,60 @@
1
+ require File.expand_path(File.dirname(__FILE__) + "/../spec_helper")
2
+
3
+ describe Braintree::MetaCheckoutCard do
4
+ let(:attributes) do {
5
+
6
+ :bin => "abc1234",
7
+ :container_id => "a-container-id",
8
+ :card_type => "Visa",
9
+ :cardholder_name => "Meta Checkout Card CardHolder",
10
+ :commercial => "NO",
11
+ :country_of_issuance => "US",
12
+ :created_at => "2023-05-05T21:28:37Z",
13
+ :debit => "NO",
14
+ :durbin_regulated => "NO",
15
+ :expiration_month => "05",
16
+ :expiration_year => "2024",
17
+ :healthcare => "NO",
18
+ :last_4 => "1234",
19
+ :payroll => "NO",
20
+ :prepaid => "NO",
21
+ :token => "token1",
22
+ :unique_number_identifier => "abc1234",
23
+ :updated_at => "2023-05-05T21:28:37Z"
24
+ }
25
+ end
26
+
27
+ describe "unit tests" do
28
+ it "initializes with the correct attributes" do
29
+ card = Braintree::MetaCheckoutCard._new(:gateway, attributes)
30
+
31
+ card.bin.should == "abc1234"
32
+ card.container_id.should == "a-container-id"
33
+ card.card_type.should == "Visa"
34
+ card.cardholder_name.should == "Meta Checkout Card CardHolder"
35
+ card.commercial == "NO"
36
+ card.country_of_issuance == "US"
37
+ card.created_at == "2023-05-05T21:28:37Z"
38
+ card.updated_at == "2023-05-05T21:28:37Z"
39
+ card.debit == "NO"
40
+ card.payroll == "NO"
41
+ card.prepaid == "NO"
42
+ card.healthcare == "NO"
43
+ card.token == "token1"
44
+ card.unique_number_identifier == "abc1234"
45
+ card.expiration_month.should == "05"
46
+ card.expiration_year.should == "2024"
47
+ card.last_4.should == "1234"
48
+ end
49
+
50
+ it "sets expiration date correctly" do
51
+ card = Braintree::MetaCheckoutCard._new(:gateway, attributes)
52
+ card.expiration_date.should == "05/2024"
53
+ end
54
+
55
+ it "masks the card number correctly" do
56
+ card = Braintree::MetaCheckoutCard._new(:gateway, attributes)
57
+ card.masked_number.should == "abc1234******1234"
58
+ end
59
+ end
60
+ end
@@ -0,0 +1,63 @@
1
+ require File.expand_path(File.dirname(__FILE__) + "/../spec_helper")
2
+
3
+ describe Braintree::Transaction::MetaCheckoutTokenDetails do
4
+ let(:attributes) do {
5
+ :bin => "abc1234",
6
+ :container_id => "a-container-id",
7
+ :card_type => "Visa",
8
+ :cardholder_name => "Meta Checkout Card CardHolder",
9
+ :commercial => "NO",
10
+ :country_of_issuance => "US",
11
+ :created_at => "2023-05-05T21:28:37Z",
12
+ :debit => "NO",
13
+ :durbin_regulated => "NO",
14
+ :expiration_month => "05",
15
+ :expiration_year => "2024",
16
+ :healthcare => "NO",
17
+ :last_4 => "1234",
18
+ :payroll => "NO",
19
+ :prepaid => "NO",
20
+ :token => "token1",
21
+ :unique_number_identifier => "abc1234",
22
+ :updated_at => "2023-05-05T21:28:37Z",
23
+ :cryptogram => "AlhlvxmN2ZKuAAESNFZ4GoABFA==",
24
+ :ecommerce_indicator => "07"
25
+ }
26
+ end
27
+
28
+ describe "unit tests" do
29
+ it "initializes with the correct attributes" do
30
+ card = Braintree::Transaction::MetaCheckoutTokenDetails.new(attributes)
31
+
32
+ card.bin.should == "abc1234"
33
+ card.container_id.should == "a-container-id"
34
+ card.card_type.should == "Visa"
35
+ card.cardholder_name.should == "Meta Checkout Card CardHolder"
36
+ card.commercial == "NO"
37
+ card.country_of_issuance == "US"
38
+ card.created_at == "2023-05-05T21:28:37Z"
39
+ card.updated_at == "2023-05-05T21:28:37Z"
40
+ card.debit == "NO"
41
+ card.payroll == "NO"
42
+ card.prepaid == "NO"
43
+ card.healthcare == "NO"
44
+ card.token == "token1"
45
+ card.unique_number_identifier == "abc1234"
46
+ card.expiration_month.should == "05"
47
+ card.expiration_year.should == "2024"
48
+ card.last_4.should == "1234"
49
+ card.cryptogram == "AlhlvxmN2ZKuAAESNFZ4GoABFA=="
50
+ card.ecommerce_indicator == "07"
51
+ end
52
+
53
+ it "sets expiration date correctly" do
54
+ card = Braintree::Transaction::MetaCheckoutTokenDetails.new(attributes)
55
+ card.expiration_date.should == "05/2024"
56
+ end
57
+
58
+ it "masks the card number correctly" do
59
+ card = Braintree::Transaction::MetaCheckoutTokenDetails.new(attributes)
60
+ card.masked_number.should == "abc1234******1234"
61
+ end
62
+ end
63
+ end
@@ -0,0 +1,63 @@
1
+ require File.expand_path(File.dirname(__FILE__) + "/../spec_helper")
2
+
3
+ describe Braintree::MetaCheckoutToken do
4
+ let(:attributes) do {
5
+ :bin => "abc1234",
6
+ :container_id => "a-container-id",
7
+ :card_type => "Visa",
8
+ :cardholder_name => "Meta Checkout Card CardHolder",
9
+ :commercial => "NO",
10
+ :country_of_issuance => "US",
11
+ :created_at => "2023-05-05T21:28:37Z",
12
+ :debit => "NO",
13
+ :durbin_regulated => "NO",
14
+ :expiration_month => "05",
15
+ :expiration_year => "2024",
16
+ :healthcare => "NO",
17
+ :last_4 => "1234",
18
+ :payroll => "NO",
19
+ :prepaid => "NO",
20
+ :token => "token1",
21
+ :unique_number_identifier => "abc1234",
22
+ :updated_at => "2023-05-05T21:28:37Z",
23
+ :cryptogram => "AlhlvxmN2ZKuAAESNFZ4GoABFA==",
24
+ :ecommerce_indicator => "07"
25
+ }
26
+ end
27
+
28
+ describe "unit tests" do
29
+ it "initializes with the correct attributes" do
30
+ card = Braintree::MetaCheckoutToken._new(:gateway, attributes)
31
+
32
+ card.bin.should == "abc1234"
33
+ card.container_id.should == "a-container-id"
34
+ card.card_type.should == "Visa"
35
+ card.cardholder_name.should == "Meta Checkout Card CardHolder"
36
+ card.commercial == "NO"
37
+ card.country_of_issuance == "US"
38
+ card.created_at == "2023-05-05T21:28:37Z"
39
+ card.updated_at == "2023-05-05T21:28:37Z"
40
+ card.debit == "NO"
41
+ card.payroll == "NO"
42
+ card.prepaid == "NO"
43
+ card.healthcare == "NO"
44
+ card.token == "token1"
45
+ card.unique_number_identifier == "abc1234"
46
+ card.expiration_month.should == "05"
47
+ card.expiration_year.should == "2024"
48
+ card.last_4.should == "1234"
49
+ card.cryptogram == "AlhlvxmN2ZKuAAESNFZ4GoABFA=="
50
+ card.ecommerce_indicator == "07"
51
+ end
52
+
53
+ it "sets expiration date correctly" do
54
+ card = Braintree::MetaCheckoutToken._new(:gateway, attributes)
55
+ card.expiration_date.should == "05/2024"
56
+ end
57
+
58
+ it "masks the card number correctly" do
59
+ card = Braintree::MetaCheckoutToken._new(:gateway, attributes)
60
+ card.masked_number.should == "abc1234******1234"
61
+ end
62
+ end
63
+ end
@@ -2,6 +2,6 @@ require File.expand_path(File.dirname(__FILE__) + "/../spec_helper")
2
2
 
3
3
  describe Braintree::Modification do
4
4
  it "converts string amount" do
5
- Braintree::Modification._new(:amount => "100.00").amount.should == BigDecimal("100.00")
5
+ expect(Braintree::Modification._new(:amount => "100.00").amount).to eq(BigDecimal("100.00"))
6
6
  end
7
7
  end
@@ -0,0 +1,77 @@
1
+ require File.expand_path(File.dirname(__FILE__) + "/../spec_helper")
2
+
3
+ # NEXT_MAJOR_VERSION Remove paypal_tracking_id assertions, use paypal_tracker_id going forward
4
+ describe "Package Tracking Unit Tests" do
5
+ describe "creates and validates requests" do
6
+ let(:gateway) do
7
+ config = Braintree::Configuration.new(
8
+ :merchant_id => "merchant_id",
9
+ :public_key => "public_key",
10
+ :private_key => "private_key",
11
+ )
12
+ Braintree::Gateway.new(config)
13
+ end
14
+
15
+ it "creates transaction gateway package tracking request signature" do
16
+ expect(Braintree::TransactionGateway._package_tracking_request_signature).to match(
17
+ [
18
+ :carrier,
19
+ {:line_items => [:commodity_code, :description, :discount_amount, :image_url, :kind, :name, :product_code, :quantity, :tax_amount, :total_amount, :unit_amount, :unit_of_measure, :unit_tax_amount, :upc_code, :upc_type, :url]},
20
+ :notify_payer, :tracking_number,
21
+ ],
22
+ )
23
+ end
24
+
25
+ it "raises an ArgumentError if transaction_id is an invalid format" do
26
+ expect do
27
+ Braintree::Transaction.package_tracking("invalid-transaction-id", {})
28
+ end.to raise_error(ArgumentError, "transaction_id is invalid")
29
+ end
30
+
31
+ it "raises an exception if attributes contain an invalid key" do
32
+ expect do
33
+ Braintree::Transaction.package_tracking("txn123", {:invalid_key => "random", :carrier => "UPS", :tracking_number => "123123"})
34
+ end.to raise_error(ArgumentError, "invalid keys: invalid_key")
35
+ end
36
+ end
37
+
38
+ describe "handles response" do
39
+ it "parses the packages response correctly" do
40
+ transaction = Braintree::Transaction._new(
41
+ :gateway,
42
+ :shipments => [
43
+ {:id => "id1", :carrier => "UPS", :tracking_number => "tracking_number_1", :paypal_tracking_id => "pp_tracking_number_1", :paypal_tracker_id => "pp_tracking_number_1"},
44
+ {:id => "id2", :carrier => "FEDEX", :tracking_number => "tracking_number_2", :paypal_tracking_id => "pp_tracking_number_2", :paypal_tracker_id => "pp_tracking_number_2"}
45
+ ],
46
+ )
47
+ expect(transaction.packages.size).to eq(2)
48
+ expect(transaction.packages[0].id).to eq("id1")
49
+ expect(transaction.packages[0].carrier).to eq("UPS")
50
+ expect(transaction.packages[0].tracking_number).to eq("tracking_number_1")
51
+ expect(transaction.packages[0].paypal_tracking_id).to eq("pp_tracking_number_1")
52
+ expect(transaction.packages[0].paypal_tracker_id).to eq("pp_tracking_number_1")
53
+
54
+ expect(transaction.packages[1].id).to eq("id2")
55
+ expect(transaction.packages[1].carrier).to eq("FEDEX")
56
+ expect(transaction.packages[1].tracking_number).to eq("tracking_number_2")
57
+ expect(transaction.packages[1].paypal_tracking_id).to eq("pp_tracking_number_2")
58
+ expect(transaction.packages[1].paypal_tracker_id).to eq("pp_tracking_number_2")
59
+ end
60
+
61
+ it "doesn't blow up if no shipments are present in the transaction response" do
62
+ transaction = Braintree::Transaction._new(
63
+ :gateway,
64
+ :shipments => [],
65
+ )
66
+ expect(transaction.packages.size).to eq(0)
67
+ end
68
+
69
+ it "doesn't blow up if shipments tag is not present in the transaction response" do
70
+ transaction = Braintree::Transaction._new(
71
+ :gateway,
72
+ {},
73
+ )
74
+ expect(transaction.packages.size).to eq(0)
75
+ end
76
+ end
77
+ end
@@ -0,0 +1,45 @@
1
+ require File.expand_path(File.dirname(__FILE__) + "/../spec_helper")
2
+
3
+ describe Braintree::PaymentMethodCustomerDataUpdatedMetadata do
4
+ describe "self.new" do
5
+ it "is protected" do
6
+ expect do
7
+ Braintree::PaymentMethodCustomerDataUpdatedMetadata.new
8
+ end.to raise_error(NoMethodError, /protected method .new/)
9
+ end
10
+ end
11
+
12
+ describe "self._new" do
13
+ it "initializes the object with the appropriate attributes set" do
14
+
15
+ params = {
16
+ token: "a-token",
17
+ payment_method: {
18
+ venmo_account: {
19
+ venmo_user_id: "venmo-user-id",
20
+ },
21
+ },
22
+ datetime_updated: "2022-01-01T21:28:37Z",
23
+ enriched_customer_data: {
24
+ fields_updated: ["username"],
25
+ profile_data: {
26
+ username: "a-username",
27
+ first_name: "a-first-name",
28
+ last_name: "a-last-name",
29
+ phone_number: "a-phone-number",
30
+ email: "a-email",
31
+ },
32
+ },
33
+ }
34
+
35
+ payment_method_customer_data_updated = Braintree::PaymentMethodCustomerDataUpdatedMetadata._new(:gateway, params)
36
+
37
+ expect(payment_method_customer_data_updated.token).to eq("a-token")
38
+ expect(payment_method_customer_data_updated.datetime_updated).to eq("2022-01-01T21:28:37Z")
39
+ expect(payment_method_customer_data_updated.payment_method).to be_a(Braintree::VenmoAccount)
40
+ expect(payment_method_customer_data_updated.enriched_customer_data.profile_data.first_name).to eq("a-first-name")
41
+ expect(payment_method_customer_data_updated.enriched_customer_data.profile_data.last_name).to eq("a-last-name")
42
+ expect(payment_method_customer_data_updated.enriched_customer_data.fields_updated).to eq(["username"])
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,31 @@
1
+ require File.expand_path(File.dirname(__FILE__) + "/../../spec_helper")
2
+
3
+ describe Braintree::PaymentMethodNonceDetailsPayerInfo do
4
+ let(:payment_method_nonce_details_payer_info) {
5
+ Braintree::PaymentMethodNonceDetailsPayerInfo.new(
6
+ :billing_agreement_id => "billing-agreement-id",
7
+ :country_code => "US",
8
+ :email => "test@example.com",
9
+ :first_name => "First",
10
+ :last_name => "Last",
11
+ :payer_id => "payer-id",
12
+ )
13
+ }
14
+
15
+ describe "#initialize" do
16
+ it "sets attributes" do
17
+ expect(payment_method_nonce_details_payer_info.billing_agreement_id).to eq("billing-agreement-id")
18
+ expect(payment_method_nonce_details_payer_info.country_code).to eq("US")
19
+ expect(payment_method_nonce_details_payer_info.email).to eq("test@example.com")
20
+ expect(payment_method_nonce_details_payer_info.first_name).to eq("First")
21
+ expect(payment_method_nonce_details_payer_info.last_name).to eq("Last")
22
+ expect(payment_method_nonce_details_payer_info.payer_id).to eq("payer-id")
23
+ end
24
+ end
25
+
26
+ describe "inspect" do
27
+ it "prints the attributes" do
28
+ expect(payment_method_nonce_details_payer_info.inspect).to eq(%(#<PaymentMethodNonceDetailsPayerInfo billing_agreement_id: \"billing-agreement-id\", country_code: \"US\", email: \"test@example.com\", first_name: \"First\", last_name: \"Last\", payer_id: \"payer-id\">))
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,51 @@
1
+ require File.expand_path(File.dirname(__FILE__) + "/../../spec_helper")
2
+
3
+ describe Braintree::PaymentMethodNonceDetails do
4
+ let(:payment_method_nonce_details) {
5
+ Braintree::PaymentMethodNonceDetails.new(
6
+ :bank_reference_token => "a-bank-reference-token",
7
+ :bin => "bin",
8
+ :card_type => "American Express",
9
+ :expiration_month => "12",
10
+ :expiration_year => "2025",
11
+ :is_network_tokenized => true,
12
+ :last_4 => "abcd",
13
+ :last_two => "11",
14
+ :mandate_type => "ONE_OFF",
15
+ :merchant_or_partner_customer_id => "a-mp-customer-id",
16
+ :payer_info => {
17
+ :billing_agreement_id => "1234",
18
+ :country_code => "US",
19
+ },
20
+ )
21
+ }
22
+
23
+ describe "#initialize" do
24
+ it "sets attributes" do
25
+ expect(payment_method_nonce_details.bin).to eq("bin")
26
+ expect(payment_method_nonce_details.card_type).to eq("American Express")
27
+ expect(payment_method_nonce_details.expiration_month).to eq("12")
28
+ expect(payment_method_nonce_details.expiration_year).to eq("2025")
29
+ expect(payment_method_nonce_details.is_network_tokenized).to eq(true)
30
+ expect(payment_method_nonce_details.last_two).to eq("11")
31
+ expect(payment_method_nonce_details.payer_info.billing_agreement_id).to eq("1234")
32
+ expect(payment_method_nonce_details.payer_info.country_code).to eq("US")
33
+ expect(payment_method_nonce_details.sepa_direct_debit_account_nonce_details.bank_reference_token).to eq("a-bank-reference-token")
34
+ expect(payment_method_nonce_details.sepa_direct_debit_account_nonce_details.last_4).to eq("abcd")
35
+ expect(payment_method_nonce_details.sepa_direct_debit_account_nonce_details.mandate_type).to eq("ONE_OFF")
36
+ expect(payment_method_nonce_details.sepa_direct_debit_account_nonce_details.merchant_or_partner_customer_id).to eq("a-mp-customer-id")
37
+ end
38
+ end
39
+
40
+ describe "inspect" do
41
+ it "prints the attributes" do
42
+ expect(payment_method_nonce_details.inspect).to eq(%(#<PaymentMethodNonceDetails bin: "bin", card_type: "American Express", expiration_month: "12", expiration_year: "2025", is_network_tokenized: true, last_two: "11", payer_info: #<PaymentMethodNonceDetailsPayerInfo billing_agreement_id: "1234", country_code: "US", email: nil, first_name: nil, last_name: nil, payer_id: nil>, sepa_direct_debit_account_nonce_details: #<SepaDirectDebitAccountNonceDetailsbank_reference_token: "a-bank-reference-token", last_4: "abcd", mandate_type: "ONE_OFF", merchant_or_partner_customer_id: "a-mp-customer-id">>))
43
+ end
44
+ end
45
+
46
+ describe "is_network_tokenized" do
47
+ it "is aliased to is_network_tokenized?" do
48
+ expect(payment_method_nonce_details.is_network_tokenized?).to eq(true)
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,40 @@
1
+ require File.expand_path(File.dirname(__FILE__) + "/../../spec_helper")
2
+
3
+ describe Braintree::PaymentMethodNonce do
4
+ let(:payment_method_nonce) {
5
+ Braintree::PaymentMethodNonce._new(
6
+ :gateway,
7
+ :nonce => "some-nonce",
8
+ :type => "CreditCard",
9
+ :default => true,
10
+ :details => {
11
+ :bin => "some-bin"
12
+ },
13
+ :three_d_secure_info => {
14
+ :liability_shift_possible => false,
15
+ :liability_shifted => false
16
+ },
17
+ :bin_data => {
18
+ :country_of_issuance => "USA"
19
+ },
20
+ )
21
+ }
22
+
23
+ describe "#initialize" do
24
+ it "sets attributes" do
25
+ expect(payment_method_nonce.nonce).to eq("some-nonce")
26
+ expect(payment_method_nonce.type).to eq("CreditCard")
27
+ expect(payment_method_nonce.default).to be true
28
+ expect(payment_method_nonce.details.bin).to eq("some-bin")
29
+ expect(payment_method_nonce.three_d_secure_info.liability_shift_possible).to be false
30
+ expect(payment_method_nonce.three_d_secure_info.liability_shifted).to be false
31
+ expect(payment_method_nonce.bin_data.country_of_issuance).to eq("USA")
32
+ end
33
+ end
34
+
35
+ describe "default" do
36
+ it "is aliased to default?" do
37
+ expect(payment_method_nonce.default?).to be true
38
+ end
39
+ end
40
+ end
@@ -5,11 +5,11 @@ describe Braintree::PaymentMethod do
5
5
  it "handles an unknown payment method type" do
6
6
  unknown_response = {:unknown_payment_method => {:token => 1234, :default => true}}
7
7
  http_instance = double(:get => unknown_response)
8
- Braintree::Http.stub(:new).and_return(http_instance)
8
+ allow(Braintree::Http).to receive(:new).and_return(http_instance)
9
9
  unknown_payment_method = Braintree::PaymentMethod.find("UNKNOWN_PAYMENT_METHOD_TOKEN")
10
10
 
11
- unknown_payment_method.token.should == 1234
12
- unknown_payment_method.default?.should be(true)
11
+ expect(unknown_payment_method.token).to eq(1234)
12
+ expect(unknown_payment_method.default?).to be(true)
13
13
  end
14
14
  end
15
15
 
@@ -17,27 +17,27 @@ describe Braintree::PaymentMethod do
17
17
  it "handles an unknown payment method type" do
18
18
  unknown_response = {:unknown_payment_method => {:token => 1234, :default => true}}
19
19
  http_instance = double(:put => unknown_response)
20
- Braintree::Http.stub(:new).and_return(http_instance)
20
+ allow(Braintree::Http).to receive(:new).and_return(http_instance)
21
21
  result = Braintree::PaymentMethod.update(:unknown,
22
22
  {:options => {:make_default => true}})
23
23
 
24
- result.should be_success
25
- result.payment_method.token.should == 1234
26
- result.payment_method.should be_instance_of(Braintree::UnknownPaymentMethod)
24
+ expect(result).to be_success
25
+ expect(result.payment_method.token).to eq(1234)
26
+ expect(result.payment_method).to be_instance_of(Braintree::UnknownPaymentMethod)
27
27
  end
28
28
  end
29
29
 
30
30
  describe "delete" do
31
- let(:http_stub) { double('http_stub').as_null_object }
31
+ let(:http_stub) { double("http_stub").as_null_object }
32
32
  it "accepts revoke_all_grants option with value true" do
33
- Braintree::Http.stub(:new).and_return http_stub
34
- http_stub.should_receive(:delete).with("/merchants/integration_merchant_id/payment_methods/any/some_token?revoke_all_grants=true")
33
+ allow(Braintree::Http).to receive(:new).and_return http_stub
34
+ expect(http_stub).to receive(:delete).with("/merchants/integration_merchant_id/payment_methods/any/some_token?revoke_all_grants=true")
35
35
  Braintree::PaymentMethod.delete("some_token", {:revoke_all_grants => true})
36
36
  end
37
37
 
38
38
  it "accepts revoke_all_grants option with value false" do
39
- Braintree::Http.stub(:new).and_return http_stub
40
- http_stub.should_receive(:delete).with("/merchants/integration_merchant_id/payment_methods/any/some_token?revoke_all_grants=false")
39
+ allow(Braintree::Http).to receive(:new).and_return http_stub
40
+ expect(http_stub).to receive(:delete).with("/merchants/integration_merchant_id/payment_methods/any/some_token?revoke_all_grants=false")
41
41
  Braintree::PaymentMethod.delete("some_token", {:revoke_all_grants => false})
42
42
  end
43
43
 
@@ -48,8 +48,8 @@ describe Braintree::PaymentMethod do
48
48
  end
49
49
 
50
50
  it "accepts just the token, revoke_all_grants is optional" do
51
- Braintree::Http.stub(:new).and_return http_stub
52
- http_stub.should_receive(:delete).with("/merchants/integration_merchant_id/payment_methods/any/some_token")
51
+ allow(Braintree::Http).to receive(:new).and_return http_stub
52
+ expect(http_stub).to receive(:delete).with("/merchants/integration_merchant_id/payment_methods/any/some_token")
53
53
  Braintree::PaymentMethod.delete("some_token")
54
54
  end
55
55
  end
@@ -59,8 +59,8 @@ describe Braintree::PaymentMethod do
59
59
  now = Time.now
60
60
  paypal_account = Braintree::PayPalAccount._new(:gateway, :updated_at => now, :created_at => now)
61
61
 
62
- paypal_account.created_at.should == now
63
- paypal_account.updated_at.should == now
62
+ expect(paypal_account.created_at).to eq(now)
63
+ expect(paypal_account.updated_at).to eq(now)
64
64
  end
65
65
  end
66
66
 
@@ -84,21 +84,21 @@ describe Braintree::PaymentMethod do
84
84
  end
85
85
 
86
86
  it "does not raise an error if token does not respond to strip" do
87
- Braintree::Http.stub(:new).and_return double.as_null_object
87
+ allow(Braintree::Http).to receive(:new).and_return double.as_null_object
88
88
  expect do
89
89
  Braintree::PaymentMethod.grant(8675309, :allow_vaulting => false)
90
90
  end.to_not raise_error
91
91
  end
92
92
 
93
93
  it "accepts all options as hash map" do
94
- Braintree::Http.stub(:new).and_return double.as_null_object
94
+ allow(Braintree::Http).to receive(:new).and_return double.as_null_object
95
95
  expect do
96
96
  Braintree::PaymentMethod.grant("$dummyToken", :allow_vaulting => false, :include_billing_postal_code => true)
97
97
  end.to_not raise_error
98
98
  end
99
99
 
100
100
  it "accepts only token as parameter" do
101
- Braintree::Http.stub(:new).and_return double.as_null_object
101
+ allow(Braintree::Http).to receive(:new).and_return double.as_null_object
102
102
  expect do
103
103
  Braintree::PaymentMethod.grant("$dummyToken")
104
104
  end.to_not raise_error
@@ -126,7 +126,7 @@ describe Braintree::PaymentMethod do
126
126
  end
127
127
 
128
128
  it "does not raise an error if token does not respond to strip" do
129
- Braintree::Http.stub(:new).and_return double.as_null_object
129
+ allow(Braintree::Http).to receive(:new).and_return double.as_null_object
130
130
  expect do
131
131
  Braintree::PaymentMethod.revoke(8675309)
132
132
  end.to_not raise_error
@@ -4,11 +4,11 @@ describe Braintree::PayPalAccount do
4
4
  describe "self.create" do
5
5
  it "raises an exception if attributes contain an invalid key" do
6
6
  expect do
7
- result = Braintree::PayPalAccount.create(
7
+ Braintree::PayPalAccount.create(
8
8
  :invalid_key => "bad stuff",
9
9
  :options => {
10
10
  :invalid_option => "bad option",
11
- }
11
+ },
12
12
  )
13
13
  end.to raise_error(ArgumentError, "invalid keys: invalid_key, options[invalid_option]")
14
14
  end
@@ -17,18 +17,18 @@ describe Braintree::PayPalAccount do
17
17
  describe "self.update" do
18
18
  it "raises an exception if attributes contain an invalid key" do
19
19
  expect do
20
- Braintree::PayPalAccount.update("some_token", :invalid_key => 'val')
20
+ Braintree::PayPalAccount.update("some_token", :invalid_key => "val")
21
21
  end.to raise_error(ArgumentError, "invalid keys: invalid_key")
22
22
  end
23
23
  end
24
24
 
25
25
  describe "default?" do
26
26
  it "is true if the paypal account is the default payment method for the customer" do
27
- Braintree::PayPalAccount._new(:gateway, :default => true).default?.should == true
27
+ expect(Braintree::PayPalAccount._new(:gateway, :default => true).default?).to eq(true)
28
28
  end
29
29
 
30
30
  it "is false if the paypal account is not the default payment methodfor the customer" do
31
- Braintree::PayPalAccount._new(:gateway, :default => false).default?.should == false
31
+ expect(Braintree::PayPalAccount._new(:gateway, :default => false).default?).to eq(false)
32
32
  end
33
33
  end
34
34
 
@@ -37,8 +37,17 @@ describe Braintree::PayPalAccount do
37
37
  now = Time.now
38
38
  paypal_account = Braintree::PayPalAccount._new(:gateway, :updated_at => now, :created_at => now)
39
39
 
40
- paypal_account.created_at.should == now
41
- paypal_account.updated_at.should == now
40
+ expect(paypal_account.created_at).to eq(now)
41
+ expect(paypal_account.updated_at).to eq(now)
42
+ end
43
+ end
44
+
45
+ describe "edit_paypal_vault_id" do
46
+ it "exposes edit_paypal_vault_id" do
47
+ mock_edit_paypal_vault_id = "ENCR-BA-ID1"
48
+ paypal_account = Braintree::PayPalAccount._new(:gateway, :edit_paypal_vault_id => mock_edit_paypal_vault_id)
49
+
50
+ expect(paypal_account.edit_paypal_vault_id).to eq(mock_edit_paypal_vault_id)
42
51
  end
43
52
  end
44
53
  end