stripe 1.58.0 → 2.0.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.
- checksums.yaml +4 -4
- data/.gitattributes +4 -0
- data/.travis.yml +1 -2
- data/Gemfile +11 -12
- data/History.txt +8 -0
- data/README.md +44 -31
- data/Rakefile +1 -1
- data/VERSION +1 -1
- data/lib/stripe.rb +4 -344
- data/lib/stripe/account.rb +4 -4
- data/lib/stripe/api_operations/create.rb +2 -2
- data/lib/stripe/api_operations/delete.rb +2 -2
- data/lib/stripe/api_operations/list.rb +2 -2
- data/lib/stripe/api_operations/request.rb +9 -3
- data/lib/stripe/api_operations/save.rb +4 -6
- data/lib/stripe/api_resource.rb +2 -2
- data/lib/stripe/bank_account.rb +2 -2
- data/lib/stripe/bitcoin_receiver.rb +1 -1
- data/lib/stripe/charge.rb +12 -12
- data/lib/stripe/customer.rb +6 -6
- data/lib/stripe/dispute.rb +2 -3
- data/lib/stripe/errors.rb +20 -10
- data/lib/stripe/invoice.rb +4 -4
- data/lib/stripe/list_object.rb +2 -2
- data/lib/stripe/order.rb +4 -4
- data/lib/stripe/reversal.rb +1 -1
- data/lib/stripe/source.rb +2 -2
- data/lib/stripe/stripe_client.rb +396 -0
- data/lib/stripe/stripe_response.rb +48 -0
- data/lib/stripe/transfer.rb +2 -2
- data/lib/stripe/util.rb +6 -6
- data/lib/stripe/version.rb +1 -1
- data/spec/fixtures.json +0 -0
- data/spec/fixtures.yaml +0 -0
- data/spec/spec.json +0 -0
- data/spec/spec.yaml +0 -0
- data/stripe.gemspec +1 -1
- data/test/api_fixtures.rb +29 -0
- data/test/api_stub_helpers.rb +125 -0
- data/test/stripe/account_test.rb +153 -247
- data/test/stripe/alipay_account_test.rb +10 -2
- data/test/stripe/api_operations_test.rb +3 -3
- data/test/stripe/api_resource_test.rb +139 -499
- data/test/stripe/apple_pay_domain_test.rb +22 -23
- data/test/stripe/application_fee_refund_test.rb +22 -31
- data/test/stripe/application_fee_test.rb +6 -17
- data/test/stripe/balance_test.rb +3 -3
- data/test/stripe/bank_account_test.rb +31 -11
- data/test/stripe/bitcoin_receiver_test.rb +51 -42
- data/test/stripe/bitcoin_transaction_test.rb +11 -19
- data/test/stripe/charge_test.rb +39 -126
- data/test/stripe/country_spec_test.rb +7 -30
- data/test/stripe/coupon_test.rb +33 -17
- data/test/stripe/customer_card_test.rb +25 -46
- data/test/stripe/customer_test.rb +86 -81
- data/test/stripe/dispute_test.rb +27 -38
- data/test/stripe/errors_test.rb +2 -2
- data/test/stripe/file_upload_test.rb +32 -24
- data/test/stripe/invoice_item_test.rb +46 -10
- data/test/stripe/invoice_test.rb +48 -48
- data/test/stripe/list_object_test.rb +22 -31
- data/test/stripe/order_return_test.rb +11 -15
- data/test/stripe/order_test.rb +38 -51
- data/test/stripe/plan_test.rb +39 -18
- data/test/stripe/product_test.rb +29 -33
- data/test/stripe/recipient_card_test.rb +23 -40
- data/test/stripe/recipient_test.rb +39 -10
- data/test/stripe/refund_test.rb +20 -45
- data/test/stripe/reversal_test.rb +27 -31
- data/test/stripe/sku_test.rb +36 -19
- data/test/stripe/source_test.rb +26 -66
- data/test/stripe/stripe_client_test.rb +428 -0
- data/test/stripe/stripe_object_test.rb +6 -2
- data/test/stripe/stripe_response_test.rb +46 -0
- data/test/stripe/subscription_item_test.rb +37 -59
- data/test/stripe/subscription_test.rb +40 -176
- data/test/stripe/three_d_secure_test.rb +13 -12
- data/test/stripe/transfer_test.rb +36 -19
- data/test/stripe_test.rb +3 -36
- data/test/test_data.rb +5 -931
- data/test/test_helper.rb +21 -25
- metadata +22 -17
- data/test/stripe/charge_refund_test.rb +0 -67
- data/test/stripe/metadata_test.rb +0 -129
data/test/test_helper.rb
CHANGED
@@ -1,45 +1,41 @@
|
|
1
|
+
require 'committee'
|
2
|
+
require 'sinatra'
|
1
3
|
require 'stripe'
|
2
4
|
require 'test/unit'
|
3
5
|
require 'mocha/setup'
|
4
6
|
require 'stringio'
|
5
7
|
require 'shoulda/context'
|
6
|
-
require
|
7
|
-
|
8
|
-
# monkeypatch request methods
|
9
|
-
module Stripe
|
10
|
-
@mock_rest_client = nil
|
11
|
-
|
12
|
-
def self.mock_rest_client=(mock_client)
|
13
|
-
@mock_rest_client = mock_client
|
14
|
-
end
|
8
|
+
require 'webmock/test_unit'
|
15
9
|
|
16
|
-
|
17
|
-
remove_method :execute_request
|
18
|
-
end
|
10
|
+
PROJECT_ROOT = File.expand_path("../../", __FILE__)
|
19
11
|
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
case opts[:method]
|
24
|
-
when :get then @mock_rest_client.get opts[:url], get_params, post_params
|
25
|
-
when :post then @mock_rest_client.post opts[:url], get_params, post_params
|
26
|
-
when :delete then @mock_rest_client.delete opts[:url], get_params, post_params
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
12
|
+
require File.expand_path('../api_fixtures', __FILE__)
|
13
|
+
require File.expand_path('../api_stub_helpers', __FILE__)
|
14
|
+
require File.expand_path('../test_data', __FILE__)
|
30
15
|
|
31
16
|
class Test::Unit::TestCase
|
17
|
+
include APIStubHelpers
|
32
18
|
include Stripe::TestData
|
33
19
|
include Mocha
|
34
20
|
|
21
|
+
# Fixtures are available in tests using something like:
|
22
|
+
#
|
23
|
+
# API_FIXTURES[:charge][:id]
|
24
|
+
#
|
25
|
+
API_FIXTURES = APIFixtures.new
|
26
|
+
|
35
27
|
setup do
|
36
|
-
@mock = mock
|
37
|
-
Stripe.mock_rest_client = @mock
|
38
28
|
Stripe.api_key = "foo"
|
29
|
+
|
30
|
+
# Stub the Stripe API with a default stub. Note that this method can be
|
31
|
+
# called again in test bodies in order to override responses on particular
|
32
|
+
# endpoints.
|
33
|
+
stub_api
|
34
|
+
|
35
|
+
stub_connect
|
39
36
|
end
|
40
37
|
|
41
38
|
teardown do
|
42
|
-
Stripe.mock_rest_client = nil
|
43
39
|
Stripe.api_key = nil
|
44
40
|
end
|
45
41
|
end
|
metadata
CHANGED
@@ -1,35 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: stripe
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stripe
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-02-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
14
|
+
name: faraday
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
20
|
-
- - "<"
|
21
|
-
- !ruby/object:Gem::Version
|
22
|
-
version: '4.0'
|
19
|
+
version: '0'
|
23
20
|
type: :runtime
|
24
21
|
prerelease: false
|
25
22
|
version_requirements: !ruby/object:Gem::Requirement
|
26
23
|
requirements:
|
27
|
-
- - "
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
version: '1.4'
|
30
|
-
- - "<"
|
24
|
+
- - "~>"
|
31
25
|
- !ruby/object:Gem::Version
|
32
|
-
version: '
|
26
|
+
version: '0'
|
33
27
|
description: Stripe is the easiest way to accept payments online. See https://stripe.com
|
34
28
|
for details.
|
35
29
|
email: support@stripe.com
|
@@ -38,6 +32,7 @@ executables:
|
|
38
32
|
extensions: []
|
39
33
|
extra_rdoc_files: []
|
40
34
|
files:
|
35
|
+
- ".gitattributes"
|
41
36
|
- ".github/ISSUE_TEMPLATE.md"
|
42
37
|
- ".gitignore"
|
43
38
|
- ".travis.yml"
|
@@ -89,7 +84,9 @@ files:
|
|
89
84
|
- lib/stripe/singleton_api_resource.rb
|
90
85
|
- lib/stripe/sku.rb
|
91
86
|
- lib/stripe/source.rb
|
87
|
+
- lib/stripe/stripe_client.rb
|
92
88
|
- lib/stripe/stripe_object.rb
|
89
|
+
- lib/stripe/stripe_response.rb
|
93
90
|
- lib/stripe/subscription.rb
|
94
91
|
- lib/stripe/subscription_item.rb
|
95
92
|
- lib/stripe/three_d_secure.rb
|
@@ -97,7 +94,13 @@ files:
|
|
97
94
|
- lib/stripe/transfer.rb
|
98
95
|
- lib/stripe/util.rb
|
99
96
|
- lib/stripe/version.rb
|
97
|
+
- spec/fixtures.json
|
98
|
+
- spec/fixtures.yaml
|
99
|
+
- spec/spec.json
|
100
|
+
- spec/spec.yaml
|
100
101
|
- stripe.gemspec
|
102
|
+
- test/api_fixtures.rb
|
103
|
+
- test/api_stub_helpers.rb
|
101
104
|
- test/stripe/account_test.rb
|
102
105
|
- test/stripe/alipay_account_test.rb
|
103
106
|
- test/stripe/api_operations_test.rb
|
@@ -109,7 +112,6 @@ files:
|
|
109
112
|
- test/stripe/bank_account_test.rb
|
110
113
|
- test/stripe/bitcoin_receiver_test.rb
|
111
114
|
- test/stripe/bitcoin_transaction_test.rb
|
112
|
-
- test/stripe/charge_refund_test.rb
|
113
115
|
- test/stripe/charge_test.rb
|
114
116
|
- test/stripe/country_spec_test.rb
|
115
117
|
- test/stripe/coupon_test.rb
|
@@ -121,7 +123,6 @@ files:
|
|
121
123
|
- test/stripe/invoice_item_test.rb
|
122
124
|
- test/stripe/invoice_test.rb
|
123
125
|
- test/stripe/list_object_test.rb
|
124
|
-
- test/stripe/metadata_test.rb
|
125
126
|
- test/stripe/order_return_test.rb
|
126
127
|
- test/stripe/order_test.rb
|
127
128
|
- test/stripe/plan_test.rb
|
@@ -132,7 +133,9 @@ files:
|
|
132
133
|
- test/stripe/reversal_test.rb
|
133
134
|
- test/stripe/sku_test.rb
|
134
135
|
- test/stripe/source_test.rb
|
136
|
+
- test/stripe/stripe_client_test.rb
|
135
137
|
- test/stripe/stripe_object_test.rb
|
138
|
+
- test/stripe/stripe_response_test.rb
|
136
139
|
- test/stripe/subscription_item_test.rb
|
137
140
|
- test/stripe/subscription_test.rb
|
138
141
|
- test/stripe/three_d_secure_test.rb
|
@@ -166,6 +169,8 @@ signing_key:
|
|
166
169
|
specification_version: 4
|
167
170
|
summary: Ruby bindings for the Stripe API
|
168
171
|
test_files:
|
172
|
+
- test/api_fixtures.rb
|
173
|
+
- test/api_stub_helpers.rb
|
169
174
|
- test/stripe/account_test.rb
|
170
175
|
- test/stripe/alipay_account_test.rb
|
171
176
|
- test/stripe/api_operations_test.rb
|
@@ -177,7 +182,6 @@ test_files:
|
|
177
182
|
- test/stripe/bank_account_test.rb
|
178
183
|
- test/stripe/bitcoin_receiver_test.rb
|
179
184
|
- test/stripe/bitcoin_transaction_test.rb
|
180
|
-
- test/stripe/charge_refund_test.rb
|
181
185
|
- test/stripe/charge_test.rb
|
182
186
|
- test/stripe/country_spec_test.rb
|
183
187
|
- test/stripe/coupon_test.rb
|
@@ -189,7 +193,6 @@ test_files:
|
|
189
193
|
- test/stripe/invoice_item_test.rb
|
190
194
|
- test/stripe/invoice_test.rb
|
191
195
|
- test/stripe/list_object_test.rb
|
192
|
-
- test/stripe/metadata_test.rb
|
193
196
|
- test/stripe/order_return_test.rb
|
194
197
|
- test/stripe/order_test.rb
|
195
198
|
- test/stripe/plan_test.rb
|
@@ -200,7 +203,9 @@ test_files:
|
|
200
203
|
- test/stripe/reversal_test.rb
|
201
204
|
- test/stripe/sku_test.rb
|
202
205
|
- test/stripe/source_test.rb
|
206
|
+
- test/stripe/stripe_client_test.rb
|
203
207
|
- test/stripe/stripe_object_test.rb
|
208
|
+
- test/stripe/stripe_response_test.rb
|
204
209
|
- test/stripe/subscription_item_test.rb
|
205
210
|
- test/stripe/subscription_test.rb
|
206
211
|
- test/stripe/three_d_secure_test.rb
|
@@ -1,67 +0,0 @@
|
|
1
|
-
require File.expand_path('../../test_helper', __FILE__)
|
2
|
-
|
3
|
-
module Stripe
|
4
|
-
class ChargeRefundTest < Test::Unit::TestCase
|
5
|
-
should "refunds should be listable" do
|
6
|
-
@mock.expects(:get).once.returns(make_response(make_charge))
|
7
|
-
|
8
|
-
charge = Stripe::Charge.retrieve('test_charge')
|
9
|
-
|
10
|
-
assert charge.refunds.first.kind_of?(Stripe::Refund)
|
11
|
-
end
|
12
|
-
|
13
|
-
should "refunds should be refreshable" do
|
14
|
-
@mock.expects(:get).twice.returns(make_response(make_charge), make_response(make_refund(:id => 'refreshed_refund')))
|
15
|
-
|
16
|
-
charge = Stripe::Charge.retrieve('test_charge')
|
17
|
-
refund = charge.refunds.first
|
18
|
-
refund.refresh
|
19
|
-
|
20
|
-
assert_equal 'refreshed_refund', refund.id
|
21
|
-
end
|
22
|
-
|
23
|
-
should "refunds should be updateable" do
|
24
|
-
@mock.expects(:get).
|
25
|
-
with("#{Stripe.api_base}/v1/charges/test_charge", nil, nil).
|
26
|
-
once.returns(make_response(make_charge))
|
27
|
-
@mock.expects(:post).
|
28
|
-
with("#{Stripe.api_base}/v1/refunds/ref_test_refund", nil, 'metadata[key]=value').
|
29
|
-
once.returns(make_response(make_refund(:metadata => {'key' => 'value'})))
|
30
|
-
|
31
|
-
charge = Stripe::Charge.retrieve('test_charge')
|
32
|
-
refund = charge.refunds.first
|
33
|
-
|
34
|
-
assert_equal nil, refund.metadata['key']
|
35
|
-
|
36
|
-
refund.metadata['key'] = 'value'
|
37
|
-
refund.save
|
38
|
-
|
39
|
-
assert_equal 'value', refund.metadata['key']
|
40
|
-
end
|
41
|
-
|
42
|
-
should "create should return a new refund" do
|
43
|
-
@mock.expects(:get).
|
44
|
-
with("#{Stripe.api_base}/v1/charges/test_charge", nil, nil).
|
45
|
-
once.returns(make_response(make_charge(:id => 'test_charge')))
|
46
|
-
@mock.expects(:post).
|
47
|
-
with("#{Stripe.api_base}/v1/charges/test_charge/refunds", nil, 'amount=20').
|
48
|
-
once.returns(make_response(make_refund(:id => 'test_new_refund')))
|
49
|
-
|
50
|
-
charge = Stripe::Charge.retrieve('test_charge')
|
51
|
-
refund = charge.refunds.create(:amount => 20)
|
52
|
-
assert_equal 'test_new_refund', refund.id
|
53
|
-
end
|
54
|
-
|
55
|
-
should "should refund a charge with given amount" do
|
56
|
-
@mock.expects(:get).
|
57
|
-
with("#{Stripe.api_base}/v1/charges/test_charge", nil, nil).
|
58
|
-
twice.returns(make_response(make_charge(:id => 'test_charge')))
|
59
|
-
@mock.expects(:post).
|
60
|
-
with("#{Stripe.api_base}/v1/charges/test_charge/refunds", nil, 'amount=20').
|
61
|
-
once.returns(make_response(make_refund(:amount => 20)))
|
62
|
-
|
63
|
-
charge = Stripe::Charge.retrieve('test_charge')
|
64
|
-
charge.refund(:amount => 20)
|
65
|
-
end
|
66
|
-
end
|
67
|
-
end
|
@@ -1,129 +0,0 @@
|
|
1
|
-
require File.expand_path('../../test_helper', __FILE__)
|
2
|
-
|
3
|
-
module Stripe
|
4
|
-
class MetadataTest < Test::Unit::TestCase
|
5
|
-
setup do
|
6
|
-
@metadata_supported = {
|
7
|
-
:charge => {
|
8
|
-
:new => Stripe::Charge.method(:new),
|
9
|
-
:test => method(:make_charge),
|
10
|
-
:url => "/v1/charges/#{make_charge()[:id]}"
|
11
|
-
},
|
12
|
-
:customer => {
|
13
|
-
:new => Stripe::Customer.method(:new),
|
14
|
-
:test => method(:make_customer),
|
15
|
-
:url => "/v1/customers/#{make_customer()[:id]}"
|
16
|
-
},
|
17
|
-
:recipient => {
|
18
|
-
:new => Stripe::Recipient.method(:new),
|
19
|
-
:test => method(:make_recipient),
|
20
|
-
:url => "/v1/recipients/#{make_recipient()[:id]}"
|
21
|
-
},
|
22
|
-
:transfer => {
|
23
|
-
:new => Stripe::Transfer.method(:new),
|
24
|
-
:test => method(:make_transfer),
|
25
|
-
:url => "/v1/transfers/#{make_transfer()[:id]}"
|
26
|
-
},
|
27
|
-
:product => {
|
28
|
-
:new => Stripe::Product.method(:new),
|
29
|
-
:test => method(:make_product),
|
30
|
-
:url => "/v1/products/#{make_product()[:id]}"
|
31
|
-
},
|
32
|
-
:order => {
|
33
|
-
:new => Stripe::Order.method(:new),
|
34
|
-
:test => method(:make_order),
|
35
|
-
:url => "/v1/orders/#{make_order()[:id]}"
|
36
|
-
},
|
37
|
-
:sku => {
|
38
|
-
:new => Stripe::SKU.method(:new),
|
39
|
-
:test => method(:make_sku),
|
40
|
-
:url => "/v1/skus/#{make_sku()[:id]}"
|
41
|
-
},
|
42
|
-
}
|
43
|
-
|
44
|
-
@base_url = 'https://api.stripe.com'
|
45
|
-
end
|
46
|
-
|
47
|
-
should "not touch metadata" do
|
48
|
-
update_actions = lambda {|obj| obj.description = 'test'}
|
49
|
-
check_metadata({:metadata => {'initial' => 'true'}},
|
50
|
-
'description=test',
|
51
|
-
update_actions)
|
52
|
-
end
|
53
|
-
|
54
|
-
|
55
|
-
should "update metadata as a whole" do
|
56
|
-
update_actions = lambda {|obj| obj.metadata = {'uuid' => '6735'}}
|
57
|
-
check_metadata({:metadata => {}},
|
58
|
-
'metadata[uuid]=6735',
|
59
|
-
update_actions)
|
60
|
-
|
61
|
-
if is_greater_than_ruby_1_9?
|
62
|
-
check_metadata({:metadata => {:initial => 'true'}},
|
63
|
-
'metadata[initial]=&metadata[uuid]=6735',
|
64
|
-
update_actions)
|
65
|
-
end
|
66
|
-
end
|
67
|
-
|
68
|
-
should "update metadata keys individually" do
|
69
|
-
update_actions = lambda {|obj| obj.metadata['txn_id'] = '134a13'}
|
70
|
-
check_metadata({:metadata => {'initial' => 'true'}},
|
71
|
-
'metadata[txn_id]=134a13',
|
72
|
-
update_actions)
|
73
|
-
end
|
74
|
-
|
75
|
-
should "clear metadata as a whole" do
|
76
|
-
update_actions = lambda {|obj| obj.metadata = nil}
|
77
|
-
check_metadata({:metadata => {'initial' => 'true'}},
|
78
|
-
'metadata=',
|
79
|
-
update_actions)
|
80
|
-
end
|
81
|
-
|
82
|
-
should "clear metadata keys individually" do
|
83
|
-
update_actions = lambda {|obj| obj.metadata['initial'] = nil}
|
84
|
-
check_metadata({:metadata => {'initial' => 'true'}},
|
85
|
-
'metadata[initial]=',
|
86
|
-
update_actions)
|
87
|
-
end
|
88
|
-
|
89
|
-
should "handle combinations of whole and partial metadata updates" do
|
90
|
-
if is_greater_than_ruby_1_9?
|
91
|
-
update_actions = lambda do |obj|
|
92
|
-
obj.metadata = {'type' => 'summer'}
|
93
|
-
obj.metadata['uuid'] = '6735'
|
94
|
-
end
|
95
|
-
params = {:metadata => {'type' => 'summer', 'uuid' => '6735'}}
|
96
|
-
curl_args = Stripe::Util.encode_parameters(params)
|
97
|
-
check_metadata({:metadata => {'type' => 'christmas'}},
|
98
|
-
curl_args,
|
99
|
-
update_actions)
|
100
|
-
end
|
101
|
-
end
|
102
|
-
|
103
|
-
def check_metadata (initial_params, curl_args, metadata_update)
|
104
|
-
@metadata_supported.each do |name, methods|
|
105
|
-
neu = methods[:new]
|
106
|
-
test = methods[:test]
|
107
|
-
url = @base_url + methods[:url]
|
108
|
-
|
109
|
-
initial_test_obj = test.call(initial_params)
|
110
|
-
@mock.expects(:get).once.returns(make_response(initial_test_obj))
|
111
|
-
|
112
|
-
final_test_obj = test.call()
|
113
|
-
@mock.expects(:post).once.
|
114
|
-
returns(make_response(final_test_obj)).
|
115
|
-
with(url, nil, curl_args)
|
116
|
-
|
117
|
-
obj = neu.call("test")
|
118
|
-
obj.refresh()
|
119
|
-
metadata_update.call(obj)
|
120
|
-
obj.save
|
121
|
-
end
|
122
|
-
end
|
123
|
-
|
124
|
-
def is_greater_than_ruby_1_9?
|
125
|
-
version = RUBY_VERSION.dup # clone preserves frozen state
|
126
|
-
Gem::Version.new(version) >= Gem::Version.new('1.9')
|
127
|
-
end
|
128
|
-
end
|
129
|
-
end
|