stripe 4.9.0 → 5.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 (224) hide show
  1. checksums.yaml +4 -4
  2. data/.editorconfig +10 -0
  3. data/.rubocop.yml +28 -4
  4. data/.rubocop_todo.yml +11 -22
  5. data/.travis.yml +3 -6
  6. data/.vscode/extensions.json +7 -0
  7. data/.vscode/settings.json +8 -0
  8. data/CHANGELOG.md +102 -2
  9. data/Gemfile +2 -10
  10. data/README.md +96 -40
  11. data/Rakefile +8 -7
  12. data/VERSION +1 -1
  13. data/lib/stripe.rb +64 -85
  14. data/lib/stripe/api_operations/delete.rb +23 -1
  15. data/lib/stripe/api_operations/list.rb +0 -6
  16. data/lib/stripe/api_operations/nested_resource.rb +14 -7
  17. data/lib/stripe/api_operations/request.rb +3 -7
  18. data/lib/stripe/api_operations/save.rb +1 -3
  19. data/lib/stripe/api_resource.rb +50 -2
  20. data/lib/stripe/connection_manager.rb +141 -0
  21. data/lib/stripe/error_object.rb +94 -0
  22. data/lib/stripe/errors.rb +22 -9
  23. data/lib/stripe/list_object.rb +11 -5
  24. data/lib/stripe/multipart_encoder.rb +131 -0
  25. data/lib/stripe/object_types.rb +94 -0
  26. data/lib/stripe/resources.rb +77 -0
  27. data/lib/stripe/{account.rb → resources/account.rb} +49 -27
  28. data/lib/stripe/{account_link.rb → resources/account_link.rb} +1 -1
  29. data/lib/stripe/resources/alipay_account.rb +34 -0
  30. data/lib/stripe/{apple_pay_domain.rb → resources/apple_pay_domain.rb} +1 -1
  31. data/lib/stripe/resources/application_fee.rb +13 -0
  32. data/lib/stripe/resources/application_fee_refund.rb +30 -0
  33. data/lib/stripe/{balance.rb → resources/balance.rb} +1 -1
  34. data/lib/stripe/{balance_transaction.rb → resources/balance_transaction.rb} +1 -5
  35. data/lib/stripe/{bank_account.rb → resources/bank_account.rb} +14 -4
  36. data/lib/stripe/{bitcoin_receiver.rb → resources/bitcoin_receiver.rb} +3 -3
  37. data/lib/stripe/{bitcoin_transaction.rb → resources/bitcoin_transaction.rb} +1 -1
  38. data/lib/stripe/resources/capability.rb +33 -0
  39. data/lib/stripe/{card.rb → resources/card.rb} +12 -4
  40. data/lib/stripe/resources/charge.rb +22 -0
  41. data/lib/stripe/{checkout → resources/checkout}/session.rb +2 -2
  42. data/lib/stripe/{country_spec.rb → resources/country_spec.rb} +1 -1
  43. data/lib/stripe/{coupon.rb → resources/coupon.rb} +2 -2
  44. data/lib/stripe/resources/credit_note.rb +22 -0
  45. data/lib/stripe/resources/customer.rb +35 -0
  46. data/lib/stripe/resources/customer_balance_transaction.rb +30 -0
  47. data/lib/stripe/resources/discount.rb +7 -0
  48. data/lib/stripe/{dispute.rb → resources/dispute.rb} +9 -7
  49. data/lib/stripe/{ephemeral_key.rb → resources/ephemeral_key.rb} +5 -2
  50. data/lib/stripe/{event.rb → resources/event.rb} +1 -1
  51. data/lib/stripe/{exchange_rate.rb → resources/exchange_rate.rb} +1 -1
  52. data/lib/stripe/{file.rb → resources/file.rb} +8 -11
  53. data/lib/stripe/{file_link.rb → resources/file_link.rb} +2 -2
  54. data/lib/stripe/resources/invoice.rb +73 -0
  55. data/lib/stripe/{invoice_item.rb → resources/invoice_item.rb} +2 -2
  56. data/lib/stripe/{invoice_line_item.rb → resources/invoice_line_item.rb} +1 -1
  57. data/lib/stripe/resources/issuing/authorization.rb +33 -0
  58. data/lib/stripe/resources/issuing/card.rb +24 -0
  59. data/lib/stripe/{issuing → resources/issuing}/card_details.rb +1 -1
  60. data/lib/stripe/{issuing → resources/issuing}/cardholder.rb +2 -2
  61. data/lib/stripe/{issuing → resources/issuing}/dispute.rb +2 -2
  62. data/lib/stripe/{issuing → resources/issuing}/transaction.rb +2 -2
  63. data/lib/stripe/resources/login_link.rb +14 -0
  64. data/lib/stripe/resources/order.rb +32 -0
  65. data/lib/stripe/{order_return.rb → resources/order_return.rb} +1 -1
  66. data/lib/stripe/resources/payment_intent.rb +42 -0
  67. data/lib/stripe/resources/payment_method.rb +32 -0
  68. data/lib/stripe/resources/payout.rb +22 -0
  69. data/lib/stripe/{person.rb → resources/person.rb} +8 -3
  70. data/lib/stripe/{plan.rb → resources/plan.rb} +1 -1
  71. data/lib/stripe/{product.rb → resources/product.rb} +3 -3
  72. data/lib/stripe/resources/radar/early_fraud_warning.rb +11 -0
  73. data/lib/stripe/{radar → resources/radar}/value_list.rb +2 -2
  74. data/lib/stripe/{radar → resources/radar}/value_list_item.rb +2 -2
  75. data/lib/stripe/{recipient.rb → resources/recipient.rb} +2 -6
  76. data/lib/stripe/{recipient_transfer.rb → resources/recipient_transfer.rb} +1 -1
  77. data/lib/stripe/{refund.rb → resources/refund.rb} +1 -1
  78. data/lib/stripe/{reporting → resources/reporting}/report_run.rb +2 -2
  79. data/lib/stripe/{reporting → resources/reporting}/report_type.rb +2 -2
  80. data/lib/stripe/resources/reversal.rb +29 -0
  81. data/lib/stripe/resources/review.rb +20 -0
  82. data/lib/stripe/resources/setup_intent.rb +32 -0
  83. data/lib/stripe/{sigma → resources/sigma}/scheduled_query_run.rb +2 -2
  84. data/lib/stripe/{sku.rb → resources/sku.rb} +3 -3
  85. data/lib/stripe/{source.rb → resources/source.rb} +17 -15
  86. data/lib/stripe/{source_transaction.rb → resources/source_transaction.rb} +1 -1
  87. data/lib/stripe/resources/subscription.rb +25 -0
  88. data/lib/stripe/{subscription_item.rb → resources/subscription_item.rb} +5 -2
  89. data/lib/stripe/resources/subscription_schedule.rb +32 -0
  90. data/lib/stripe/resources/tax_id.rb +26 -0
  91. data/lib/stripe/resources/tax_rate.rb +11 -0
  92. data/lib/stripe/{terminal → resources/terminal}/connection_token.rb +2 -2
  93. data/lib/stripe/{terminal → resources/terminal}/location.rb +3 -2
  94. data/lib/stripe/{terminal → resources/terminal}/reader.rb +3 -2
  95. data/lib/stripe/{three_d_secure.rb → resources/three_d_secure.rb} +1 -1
  96. data/lib/stripe/{token.rb → resources/token.rb} +1 -1
  97. data/lib/stripe/resources/topup.rb +22 -0
  98. data/lib/stripe/resources/transfer.rb +26 -0
  99. data/lib/stripe/resources/usage_record.rb +7 -0
  100. data/lib/stripe/{usage_record_summary.rb → resources/usage_record_summary.rb} +1 -1
  101. data/lib/stripe/{webhook_endpoint.rb → resources/webhook_endpoint.rb} +2 -2
  102. data/lib/stripe/singleton_api_resource.rb +3 -1
  103. data/lib/stripe/stripe_client.rb +347 -218
  104. data/lib/stripe/stripe_object.rb +72 -59
  105. data/lib/stripe/stripe_response.rb +53 -21
  106. data/lib/stripe/util.rb +54 -109
  107. data/lib/stripe/version.rb +1 -1
  108. data/lib/stripe/webhook.rb +5 -3
  109. data/stripe.gemspec +14 -5
  110. data/test/stripe/account_link_test.rb +1 -1
  111. data/test/stripe/account_test.rb +193 -32
  112. data/test/stripe/alipay_account_test.rb +1 -1
  113. data/test/stripe/api_operations_test.rb +3 -4
  114. data/test/stripe/api_resource_test.rb +119 -30
  115. data/test/stripe/apple_pay_domain_test.rb +18 -5
  116. data/test/stripe/application_fee_refund_test.rb +1 -1
  117. data/test/stripe/application_fee_test.rb +45 -1
  118. data/test/stripe/balance_test.rb +1 -1
  119. data/test/stripe/balance_transaction_test.rb +20 -0
  120. data/test/stripe/bank_account_test.rb +1 -1
  121. data/test/stripe/capability_test.rb +45 -0
  122. data/test/stripe/charge_test.rb +13 -8
  123. data/test/stripe/checkout/session_test.rb +7 -1
  124. data/test/stripe/connection_manager_test.rb +138 -0
  125. data/test/stripe/country_spec_test.rb +1 -1
  126. data/test/stripe/coupon_test.rb +16 -6
  127. data/test/stripe/credit_note_test.rb +61 -0
  128. data/test/stripe/customer_balance_transaction_test.rb +37 -0
  129. data/test/stripe/customer_card_test.rb +1 -1
  130. data/test/stripe/customer_test.rb +151 -40
  131. data/test/stripe/dispute_test.rb +10 -1
  132. data/test/stripe/ephemeral_key_test.rb +8 -1
  133. data/test/stripe/errors_test.rb +30 -9
  134. data/test/stripe/exchange_rate_test.rb +1 -1
  135. data/test/stripe/file_link_test.rb +1 -1
  136. data/test/stripe/file_test.rb +19 -5
  137. data/test/stripe/invoice_item_test.rb +18 -7
  138. data/test/stripe/invoice_line_item_test.rb +1 -1
  139. data/test/stripe/invoice_test.rb +77 -9
  140. data/test/stripe/issuing/authorization_test.rb +33 -11
  141. data/test/stripe/issuing/card_test.rb +15 -6
  142. data/test/stripe/issuing/cardholder_test.rb +1 -1
  143. data/test/stripe/issuing/dispute_test.rb +1 -1
  144. data/test/stripe/issuing/transaction_test.rb +1 -1
  145. data/test/stripe/list_object_test.rb +1 -17
  146. data/test/stripe/login_link_test.rb +2 -2
  147. data/test/stripe/multipart_encoder_test.rb +130 -0
  148. data/test/stripe/oauth_test.rb +1 -1
  149. data/test/stripe/order_return_test.rb +1 -1
  150. data/test/stripe/order_test.rb +28 -3
  151. data/test/stripe/payment_intent_test.rb +31 -4
  152. data/test/stripe/payment_method_test.rb +84 -0
  153. data/test/stripe/payout_test.rb +8 -1
  154. data/test/stripe/person_test.rb +1 -1
  155. data/test/stripe/plan_test.rb +26 -20
  156. data/test/stripe/product_test.rb +16 -6
  157. data/test/stripe/radar/early_fraud_warning_test.rb +22 -0
  158. data/test/stripe/radar/value_list_item_test.rb +16 -6
  159. data/test/stripe/radar/value_list_test.rb +16 -6
  160. data/test/stripe/recipient_test.rb +18 -5
  161. data/test/stripe/refund_test.rb +1 -1
  162. data/test/stripe/reporting/report_run_test.rb +1 -1
  163. data/test/stripe/reporting/report_type_test.rb +1 -1
  164. data/test/stripe/reversal_test.rb +1 -1
  165. data/test/stripe/review_test.rb +1 -1
  166. data/test/stripe/setup_intent_test.rb +84 -0
  167. data/test/stripe/sigma/scheduled_query_run_test.rb +1 -1
  168. data/test/stripe/sku_test.rb +16 -6
  169. data/test/stripe/source_test.rb +14 -19
  170. data/test/stripe/source_transaction_test.rb +1 -1
  171. data/test/stripe/stripe_client_test.rb +242 -26
  172. data/test/stripe/stripe_object_test.rb +8 -36
  173. data/test/stripe/stripe_response_test.rb +71 -25
  174. data/test/stripe/subscription_item_test.rb +28 -6
  175. data/test/stripe/subscription_schedule_test.rb +19 -1
  176. data/test/stripe/subscription_test.rb +29 -9
  177. data/test/stripe/tax_id_test.rb +31 -0
  178. data/test/stripe/tax_rate_test.rb +43 -0
  179. data/test/stripe/terminal/connection_token_test.rb +1 -1
  180. data/test/stripe/terminal/location_test.rb +18 -1
  181. data/test/stripe/terminal/reader_test.rb +18 -1
  182. data/test/stripe/three_d_secure_test.rb +1 -1
  183. data/test/stripe/topup_test.rb +9 -1
  184. data/test/stripe/transfer_test.rb +46 -1
  185. data/test/stripe/usage_record_summary_test.rb +1 -1
  186. data/test/stripe/util_test.rb +1 -1
  187. data/test/stripe/webhook_endpoint_test.rb +18 -1
  188. data/test/stripe/webhook_test.rb +4 -4
  189. data/test/stripe_mock.rb +4 -3
  190. data/test/stripe_test.rb +1 -14
  191. data/test/test_helper.rb +14 -11
  192. metadata +117 -125
  193. data/lib/stripe/alipay_account.rb +0 -27
  194. data/lib/stripe/application_fee.rb +0 -23
  195. data/lib/stripe/application_fee_refund.rb +0 -22
  196. data/lib/stripe/charge.rb +0 -84
  197. data/lib/stripe/customer.rb +0 -90
  198. data/lib/stripe/invoice.rb +0 -48
  199. data/lib/stripe/issuer_fraud_record.rb +0 -9
  200. data/lib/stripe/issuing/authorization.rb +0 -22
  201. data/lib/stripe/issuing/card.rb +0 -18
  202. data/lib/stripe/login_link.rb +0 -11
  203. data/lib/stripe/order.rb +0 -31
  204. data/lib/stripe/payment_intent.rb +0 -26
  205. data/lib/stripe/payout.rb +0 -20
  206. data/lib/stripe/reversal.rb +0 -22
  207. data/lib/stripe/review.rb +0 -14
  208. data/lib/stripe/subscription.rb +0 -25
  209. data/lib/stripe/subscription_schedule.rb +0 -32
  210. data/lib/stripe/subscription_schedule_revision.rb +0 -25
  211. data/lib/stripe/topup.rb +0 -16
  212. data/lib/stripe/transfer.rb +0 -23
  213. data/lib/stripe/usage_record.rb +0 -14
  214. data/test/stripe/account_external_accounts_operations_test.rb +0 -69
  215. data/test/stripe/account_login_links_operations_test.rb +0 -21
  216. data/test/stripe/account_persons_operations_test.rb +0 -70
  217. data/test/stripe/application_fee_refunds_operations_test.rb +0 -56
  218. data/test/stripe/customer_sources_operations_test.rb +0 -64
  219. data/test/stripe/file_upload_test.rb +0 -76
  220. data/test/stripe/issuer_fraud_record_test.rb +0 -20
  221. data/test/stripe/subscription_schedule_revision_test.rb +0 -37
  222. data/test/stripe/subscription_schedule_revisions_operations_test.rb +0 -35
  223. data/test/stripe/transfer_reversals_operations_test.rb +0 -57
  224. data/test/stripe/usage_record_test.rb +0 -28
@@ -1,22 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Stripe
4
- class Reversal < APIResource
5
- extend Stripe::APIOperations::List
6
- include Stripe::APIOperations::Save
7
-
8
- OBJECT_NAME = "transfer_reversal".freeze
9
-
10
- def resource_url
11
- "#{Transfer.resource_url}/#{CGI.escape(transfer)}/reversals/#{CGI.escape(id)}"
12
- end
13
-
14
- def self.update(_id, _params = nil, _opts = nil)
15
- raise NotImplementedError, "Reversals cannot be updated without a transfer ID. Update a reversal using `r = transfer.reversals.retrieve('reversal_id'); r.save`"
16
- end
17
-
18
- def self.retrieve(_id, _opts = {})
19
- raise NotImplementedError, "Reversals cannot be retrieved without a transfer ID. Retrieve a reversal using transfer.reversals.retrieve('reversal_id')"
20
- end
21
- end
22
- end
@@ -1,14 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Stripe
4
- class Review < APIResource
5
- extend Stripe::APIOperations::List
6
-
7
- OBJECT_NAME = "review".freeze
8
-
9
- def approve(params = {}, opts = {})
10
- resp, opts = request(:post, resource_url + "/approve", params, opts)
11
- initialize_from(resp.data, opts)
12
- end
13
- end
14
- end
@@ -1,25 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Stripe
4
- class Subscription < APIResource
5
- extend Stripe::APIOperations::List
6
- extend Stripe::APIOperations::Create
7
- include Stripe::APIOperations::Save
8
- include Stripe::APIOperations::Delete
9
-
10
- OBJECT_NAME = "subscription".freeze
11
-
12
- save_nested_resource :source
13
-
14
- def delete_discount
15
- _, opts = request(:delete, discount_url)
16
- initialize_from({ discount: nil }, opts, true)
17
- end
18
-
19
- private
20
-
21
- def discount_url
22
- resource_url + "/discount"
23
- end
24
- end
25
- end
@@ -1,32 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Stripe
4
- class SubscriptionSchedule < APIResource
5
- extend Stripe::APIOperations::List
6
- extend Stripe::APIOperations::Create
7
- include Stripe::APIOperations::Save
8
- extend Stripe::APIOperations::NestedResource
9
-
10
- OBJECT_NAME = "subscription_schedule".freeze
11
-
12
- nested_resource_class_methods :revision,
13
- operations: %i[retrieve list]
14
-
15
- def cancel(params = {}, opts = {})
16
- url = resource_url + "/cancel"
17
- resp, opts = request(:post, url, params, opts)
18
- initialize_from(resp.data, opts)
19
- end
20
-
21
- def release(params = {}, opts = {})
22
- url = resource_url + "/release"
23
- resp, opts = request(:post, url, params, opts)
24
- initialize_from(resp.data, opts)
25
- end
26
-
27
- def revisions(params = {}, opts = {})
28
- resp, opts = request(:get, resource_url + "/revisions", params, Util.normalize_opts(opts))
29
- Util.convert_to_stripe_object(resp.data, opts)
30
- end
31
- end
32
- end
@@ -1,25 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Stripe
4
- class SubscriptionScheduleRevision < APIResource
5
- extend Stripe::APIOperations::List
6
-
7
- OBJECT_NAME = "subscription_schedule_revision".freeze
8
-
9
- def resource_url
10
- if !respond_to?(:schedule) || schedule.nil?
11
- raise NotImplementedError,
12
- "Subscription Schedule Revisions cannot be accessed without a Subscription Schedule ID."
13
- end
14
- "#{SubscriptionSchedule.resource_url}/#{CGI.escape(schedule)}/revisions/#{CGI.escape(id)}"
15
- end
16
-
17
- def self.retrieve(_id, _opts = {})
18
- raise NotImplementedError, "Subscription Schedule Revisions cannot be retrieved without a Subscription Schedule ID. Retrieve it using schedule.revisions.retrieve('revision_id')"
19
- end
20
-
21
- def self.list(_id, _opts = {})
22
- raise NotImplementedError, "Subscription Schedule Revisions cannot be listed without a Subscription Schedule ID. List those using schedule.revisions"
23
- end
24
- end
25
- end
@@ -1,16 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Stripe
4
- class Topup < APIResource
5
- extend Stripe::APIOperations::List
6
- extend Stripe::APIOperations::Create
7
- include Stripe::APIOperations::Save
8
-
9
- OBJECT_NAME = "topup".freeze
10
-
11
- def cancel
12
- resp, api_key = request(:post, resource_url + "/cancel")
13
- initialize_from(resp.data, api_key)
14
- end
15
- end
16
- end
@@ -1,23 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Stripe
4
- class Transfer < APIResource
5
- extend Stripe::APIOperations::List
6
- extend Stripe::APIOperations::Create
7
- include Stripe::APIOperations::Save
8
- extend Stripe::APIOperations::NestedResource
9
-
10
- OBJECT_NAME = "transfer".freeze
11
-
12
- nested_resource_class_methods :reversal, operations: %i[create retrieve update list]
13
-
14
- def cancel
15
- resp, api_key = request(:post, cancel_url)
16
- initialize_from(resp.data, api_key)
17
- end
18
-
19
- def cancel_url
20
- resource_url + "/cancel"
21
- end
22
- end
23
- end
@@ -1,14 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Stripe
4
- class UsageRecord < APIResource
5
- def self.create(params = {}, opts = {})
6
- raise(ArgumentError, "Params must have a subscription_item key") unless params.key?(:subscription_item)
7
- req_params = params.clone.delete_if { |key, _value| key == :subscription_item }
8
- resp, opts = request(:post, "/v1/subscription_items/#{params[:subscription_item]}/usage_records", req_params, opts)
9
- Util.convert_to_stripe_object(resp.data, opts)
10
- end
11
-
12
- OBJECT_NAME = "usage_record".freeze
13
- end
14
- end
@@ -1,69 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require ::File.expand_path("../../test_helper", __FILE__)
4
-
5
- module Stripe
6
- class AccountExternalAccountsOperationsTest < Test::Unit::TestCase
7
- setup do
8
- @account_id = "acct_123"
9
- @external_account_id = "ba_123"
10
- end
11
-
12
- context "#create_external_account" do
13
- should "create an external account" do
14
- external_account = Stripe::Account.create_external_account(
15
- @account_id,
16
- external_account: "btok_123"
17
- )
18
- assert_requested :post, "#{Stripe.api_base}/v1/accounts/#{@account_id}/external_accounts"
19
- assert external_account.is_a?(Stripe::BankAccount)
20
- end
21
- end
22
-
23
- context "#retrieve_external_account" do
24
- should "retrieve an external account" do
25
- external_account = Stripe::Account.retrieve_external_account(
26
- @account_id,
27
- @external_account_id
28
- )
29
- assert_requested :get, "#{Stripe.api_base}/v1/accounts/#{@account_id}/external_accounts/#{@external_account_id}"
30
- assert external_account.is_a?(Stripe::BankAccount)
31
- end
32
- end
33
-
34
- context "#update_external_account" do
35
- should "update an external account" do
36
- external_account = Stripe::Account.update_external_account(
37
- @account_id,
38
- @external_account_id,
39
- metadata: { foo: "bar" }
40
- )
41
- assert_requested :post, "#{Stripe.api_base}/v1/accounts/#{@account_id}/external_accounts/#{@external_account_id}"
42
- assert external_account.is_a?(Stripe::BankAccount)
43
- end
44
- end
45
-
46
- context "#delete_external_account" do
47
- should "delete an external_account" do
48
- external_account = Stripe::Account.delete_external_account(
49
- @account_id,
50
- @external_account_id
51
- )
52
- assert_requested :delete, "#{Stripe.api_base}/v1/accounts/#{@account_id}/external_accounts/#{@external_account_id}"
53
- assert external_account.deleted
54
- assert_equal @external_account_id, external_account.id
55
- end
56
- end
57
-
58
- context "#list_external_accounts" do
59
- should "list the account's external accounts" do
60
- external_accounts = Stripe::Account.list_external_accounts(
61
- @account_id
62
- )
63
- assert_requested :get, "#{Stripe.api_base}/v1/accounts/#{@account_id}/external_accounts"
64
- assert external_accounts.is_a?(Stripe::ListObject)
65
- assert external_accounts.data.is_a?(Array)
66
- end
67
- end
68
- end
69
- end
@@ -1,21 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require ::File.expand_path("../../test_helper", __FILE__)
4
-
5
- module Stripe
6
- class AccountLoginLinksOperationsTest < Test::Unit::TestCase
7
- setup do
8
- @account_id = "acct_123"
9
- end
10
-
11
- context "#create_login_link" do
12
- should "create a login link" do
13
- login_link = Stripe::Account.create_login_link(
14
- @account_id
15
- )
16
- assert_requested :post, "#{Stripe.api_base}/v1/accounts/#{@account_id}/login_links"
17
- assert login_link.is_a?(Stripe::LoginLink)
18
- end
19
- end
20
- end
21
- end
@@ -1,70 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require ::File.expand_path("../../test_helper", __FILE__)
4
-
5
- module Stripe
6
- class AccountPersonsOperationsTest < Test::Unit::TestCase
7
- setup do
8
- @account_id = "acct_123"
9
- @person_id = "person_123"
10
- end
11
-
12
- context "#create_person" do
13
- should "create a person" do
14
- person = Stripe::Account.create_person(
15
- @account_id,
16
- first_name: "John",
17
- last_name: "Doe"
18
- )
19
- assert_requested :post, "#{Stripe.api_base}/v1/accounts/#{@account_id}/persons"
20
- assert person.is_a?(Stripe::Person)
21
- end
22
- end
23
-
24
- context "#retrieve_person" do
25
- should "retrieve a person" do
26
- person = Stripe::Account.retrieve_person(
27
- @account_id,
28
- @person_id
29
- )
30
- assert_requested :get, "#{Stripe.api_base}/v1/accounts/#{@account_id}/persons/#{@person_id}"
31
- assert person.is_a?(Stripe::Person)
32
- end
33
- end
34
-
35
- context "#update_person" do
36
- should "update a person" do
37
- person = Stripe::Account.update_person(
38
- @account_id,
39
- @person_id,
40
- first_name: "John"
41
- )
42
- assert_requested :post, "#{Stripe.api_base}/v1/accounts/#{@account_id}/persons/#{@person_id}"
43
- assert person.is_a?(Stripe::Person)
44
- end
45
- end
46
-
47
- context "#delete_person" do
48
- should "delete an person" do
49
- person = Stripe::Account.delete_person(
50
- @account_id,
51
- @person_id
52
- )
53
- assert_requested :delete, "#{Stripe.api_base}/v1/accounts/#{@account_id}/persons/#{@person_id}"
54
- assert person.deleted
55
- assert_equal @person_id, person.id
56
- end
57
- end
58
-
59
- context "#list_persons" do
60
- should "list the account's external accounts" do
61
- persons = Stripe::Account.list_persons(
62
- @account_id
63
- )
64
- assert_requested :get, "#{Stripe.api_base}/v1/accounts/#{@account_id}/persons"
65
- assert persons.is_a?(Stripe::ListObject)
66
- assert persons.data.is_a?(Array)
67
- end
68
- end
69
- end
70
- end
@@ -1,56 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require ::File.expand_path("../../test_helper", __FILE__)
4
-
5
- module Stripe
6
- class ApplicationFeeRefundsOperationsTest < Test::Unit::TestCase
7
- setup do
8
- @application_fee_id = "fee_123"
9
- @refund_id = "fr_123"
10
- end
11
-
12
- context "#create_refund" do
13
- should "create a refund" do
14
- refund = Stripe::ApplicationFee.create_refund(
15
- @application_fee_id
16
- )
17
- assert_requested :post, "#{Stripe.api_base}/v1/application_fees/#{@application_fee_id}/refunds"
18
- assert refund.is_a?(Stripe::ApplicationFeeRefund)
19
- end
20
- end
21
-
22
- context "#retrieve_refund" do
23
- should "retrieve a refund" do
24
- refund = Stripe::ApplicationFee.retrieve_refund(
25
- @application_fee_id,
26
- @refund_id
27
- )
28
- assert_requested :get, "#{Stripe.api_base}/v1/application_fees/#{@application_fee_id}/refunds/#{@refund_id}"
29
- assert refund.is_a?(Stripe::ApplicationFeeRefund)
30
- end
31
- end
32
-
33
- context "#update_refund" do
34
- should "update a refund" do
35
- refund = Stripe::ApplicationFee.update_refund(
36
- @application_fee_id,
37
- @refund_id,
38
- metadata: { foo: "bar" }
39
- )
40
- assert_requested :post, "#{Stripe.api_base}/v1/application_fees/#{@application_fee_id}/refunds/#{@refund_id}"
41
- assert refund.is_a?(Stripe::ApplicationFeeRefund)
42
- end
43
- end
44
-
45
- context "#list_refunds" do
46
- should "list the application fee's refuns" do
47
- refunds = Stripe::ApplicationFee.list_refunds(
48
- @application_fee_id
49
- )
50
- assert_requested :get, "#{Stripe.api_base}/v1/application_fees/#{@application_fee_id}/refunds"
51
- assert refunds.is_a?(Stripe::ListObject)
52
- assert refunds.data.is_a?(Array)
53
- end
54
- end
55
- end
56
- end
@@ -1,64 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require ::File.expand_path("../../test_helper", __FILE__)
4
-
5
- module Stripe
6
- class CustomerSourcesOperationsTest < Test::Unit::TestCase
7
- setup do
8
- @customer_id = "cus_123"
9
- @source_id = "ba_123"
10
- end
11
-
12
- context "#create_source" do
13
- should "create a source" do
14
- Stripe::Customer.create_source(
15
- @customer_id,
16
- source: "tok_123"
17
- )
18
- assert_requested :post, "#{Stripe.api_base}/v1/customers/#{@customer_id}/sources"
19
- end
20
- end
21
-
22
- context "#retrieve_source" do
23
- should "retrieve a source" do
24
- Stripe::Customer.retrieve_source(
25
- @customer_id,
26
- @source_id
27
- )
28
- assert_requested :get, "#{Stripe.api_base}/v1/customers/#{@customer_id}/sources/#{@source_id}"
29
- end
30
- end
31
-
32
- context "#update_source" do
33
- should "update a source" do
34
- Stripe::Customer.update_source(
35
- @customer_id,
36
- @source_id,
37
- metadata: { foo: "bar" }
38
- )
39
- assert_requested :post, "#{Stripe.api_base}/v1/customers/#{@customer_id}/sources/#{@source_id}"
40
- end
41
- end
42
-
43
- context "#delete_source" do
44
- should "delete a source" do
45
- Stripe::Customer.delete_source(
46
- @customer_id,
47
- @source_id
48
- )
49
- assert_requested :delete, "#{Stripe.api_base}/v1/customers/#{@customer_id}/sources/#{@source_id}"
50
- end
51
- end
52
-
53
- context "#list_sources" do
54
- should "list the customer's sources" do
55
- sources = Stripe::Customer.list_sources(
56
- @customer_id
57
- )
58
- assert_requested :get, "#{Stripe.api_base}/v1/customers/#{@customer_id}/sources"
59
- assert sources.is_a?(Stripe::ListObject)
60
- assert sources.data.is_a?(Array)
61
- end
62
- end
63
- end
64
- end