stripe 1.18.0 → 1.30.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 +7 -0
- data/.gitignore +1 -0
- data/.travis.yml +11 -1
- data/History.txt +98 -0
- data/README.rdoc +19 -10
- data/VERSION +1 -1
- data/lib/stripe/account.rb +46 -4
- data/lib/stripe/api_operations/create.rb +3 -10
- data/lib/stripe/api_operations/delete.rb +4 -4
- data/lib/stripe/api_operations/list.rb +17 -9
- data/lib/stripe/api_operations/request.rb +41 -0
- data/lib/stripe/api_operations/update.rb +41 -40
- data/lib/stripe/api_resource.rb +7 -4
- data/lib/stripe/application_fee.rb +3 -4
- data/lib/stripe/application_fee_refund.rb +1 -1
- data/lib/stripe/balance_transaction.rb +1 -1
- data/lib/stripe/bank_account.rb +19 -0
- data/lib/stripe/bitcoin_receiver.rb +12 -2
- data/lib/stripe/bitcoin_transaction.rb +5 -0
- data/lib/stripe/card.rb +6 -4
- data/lib/stripe/charge.rb +14 -22
- data/lib/stripe/coupon.rb +2 -2
- data/lib/stripe/customer.rb +24 -26
- data/lib/stripe/dispute.rb +16 -0
- data/lib/stripe/errors/card_error.rb +3 -2
- data/lib/stripe/errors/invalid_request_error.rb +3 -2
- data/lib/stripe/errors/rate_limit_error.rb +4 -0
- data/lib/stripe/errors/stripe_error.rb +8 -2
- data/lib/stripe/event.rb +1 -1
- data/lib/stripe/file_upload.rb +12 -22
- data/lib/stripe/invoice.rb +8 -8
- data/lib/stripe/invoice_item.rb +2 -2
- data/lib/stripe/list_object.rb +77 -13
- data/lib/stripe/order.rb +19 -0
- data/lib/stripe/plan.rb +2 -2
- data/lib/stripe/product.rb +16 -0
- data/lib/stripe/recipient.rb +2 -2
- data/lib/stripe/refund.rb +2 -9
- data/lib/stripe/reversal.rb +14 -0
- data/lib/stripe/singleton_api_resource.rb +2 -2
- data/lib/stripe/sku.rb +8 -0
- data/lib/stripe/stripe_object.rb +232 -46
- data/lib/stripe/subscription.rb +3 -3
- data/lib/stripe/token.rb +1 -1
- data/lib/stripe/transfer.rb +3 -3
- data/lib/stripe/util.rb +64 -21
- data/lib/stripe/version.rb +1 -1
- data/lib/stripe.rb +102 -67
- data/stripe.gemspec +0 -2
- data/test/stripe/account_test.rb +135 -6
- data/test/stripe/api_resource_test.rb +326 -42
- data/test/stripe/application_fee_refund_test.rb +6 -6
- data/test/stripe/application_fee_test.rb +3 -3
- data/test/stripe/balance_test.rb +11 -0
- data/test/stripe/bitcoin_receiver_test.rb +30 -7
- data/test/stripe/bitcoin_transaction_test.rb +29 -0
- data/test/stripe/charge_refund_test.rb +55 -0
- data/test/stripe/charge_test.rb +32 -13
- data/test/stripe/coupon_test.rb +3 -3
- data/test/stripe/customer_card_test.rb +20 -14
- data/test/stripe/customer_test.rb +15 -15
- data/test/stripe/dispute_test.rb +45 -0
- data/test/stripe/file_upload_test.rb +17 -6
- data/test/stripe/invoice_test.rb +18 -4
- data/test/stripe/list_object_test.rb +126 -2
- data/test/stripe/metadata_test.rb +28 -13
- data/test/stripe/order_test.rb +52 -0
- data/test/stripe/product_test.rb +41 -0
- data/test/stripe/recipient_card_test.rb +9 -9
- data/test/stripe/refund_test.rb +23 -15
- data/test/stripe/reversal_test.rb +47 -0
- data/test/stripe/sku_test.rb +24 -0
- data/test/stripe/stripe_object_test.rb +67 -6
- data/test/stripe/subscription_test.rb +13 -13
- data/test/stripe/transfer_test.rb +4 -4
- data/test/stripe/util_test.rb +45 -29
- data/test/stripe_test.rb +16 -0
- data/test/test_data.rb +273 -66
- metadata +47 -76
- data/lib/stripe/certificate_blacklist.rb +0 -55
- data/test/stripe/certificate_blacklist_test.rb +0 -18
@@ -3,20 +3,20 @@ require File.expand_path('../../test_helper', __FILE__)
|
|
3
3
|
module Stripe
|
4
4
|
class BitcoinReceiverTest < Test::Unit::TestCase
|
5
5
|
should "retrieve should retrieve bitcoin receiver" do
|
6
|
-
@mock.expects(:get).once.returns(
|
6
|
+
@mock.expects(:get).once.returns(make_response(make_bitcoin_receiver))
|
7
7
|
receiver = Stripe::BitcoinReceiver.retrieve('btcrcv_test_receiver')
|
8
8
|
assert_equal 'btcrcv_test_receiver', receiver.id
|
9
9
|
end
|
10
10
|
|
11
11
|
should "create should create a bitcoin receiver" do
|
12
|
-
@mock.expects(:post).once.returns(
|
12
|
+
@mock.expects(:post).once.returns(make_response(make_bitcoin_receiver))
|
13
13
|
receiver = Stripe::BitcoinReceiver.create
|
14
14
|
assert_equal "btcrcv_test_receiver", receiver.id
|
15
15
|
end
|
16
16
|
|
17
17
|
should "all should list bitcoin receivers" do
|
18
|
-
@mock.expects(:get).once.returns(
|
19
|
-
receivers = Stripe::BitcoinReceiver.
|
18
|
+
@mock.expects(:get).once.returns(make_response(make_bitcoin_receiver_array))
|
19
|
+
receivers = Stripe::BitcoinReceiver.list
|
20
20
|
assert_equal 3, receivers.data.length
|
21
21
|
assert receivers.data.kind_of? Array
|
22
22
|
receivers.each do |receiver|
|
@@ -28,11 +28,34 @@ module Stripe
|
|
28
28
|
end
|
29
29
|
|
30
30
|
should "maintain bitcoin transaction sublist" do
|
31
|
-
@mock.expects(:get).with("#{Stripe.api_base}/v1/bitcoin/receivers/btcrcv_test_receiver", nil, nil).once.returns(
|
31
|
+
@mock.expects(:get).with("#{Stripe.api_base}/v1/bitcoin/receivers/btcrcv_test_receiver", nil, nil).once.returns(make_response(make_bitcoin_receiver))
|
32
32
|
receiver = Stripe::BitcoinReceiver.retrieve('btcrcv_test_receiver')
|
33
|
-
@mock.expects(:get).with("#{Stripe.api_base}/v1/bitcoin/receivers/btcrcv_test_receiver/transactions", nil, nil).once.returns(
|
34
|
-
transactions = receiver.transactions.
|
33
|
+
@mock.expects(:get).with("#{Stripe.api_base}/v1/bitcoin/receivers/btcrcv_test_receiver/transactions", nil, nil).once.returns(make_response(make_bitcoin_transaction_array))
|
34
|
+
transactions = receiver.transactions.list
|
35
35
|
assert_equal(3, transactions.data.length)
|
36
36
|
end
|
37
|
+
|
38
|
+
should "update should update a bitcoin receiver" do
|
39
|
+
@mock.expects(:get).once.returns(make_response(make_bitcoin_receiver))
|
40
|
+
@mock.expects(:post).with("#{Stripe.api_base}/v1/bitcoin/receivers/btcrcv_test_receiver", nil, "description=details").once.returns(make_response(make_bitcoin_receiver))
|
41
|
+
receiver = Stripe::BitcoinReceiver.construct_from(make_bitcoin_receiver)
|
42
|
+
receiver.refresh
|
43
|
+
receiver.description = "details"
|
44
|
+
receiver.save
|
45
|
+
end
|
46
|
+
|
47
|
+
should "delete a bitcoin receiver with no customer through top-level API" do
|
48
|
+
@mock.expects(:delete).with("#{Stripe.api_base}/v1/bitcoin/receivers/btcrcv_test_receiver", nil, nil).once.returns(make_response({:deleted => true, :id => "btcrcv_test_receiver"}))
|
49
|
+
receiver = Stripe::BitcoinReceiver.construct_from(make_bitcoin_receiver)
|
50
|
+
response = receiver.delete
|
51
|
+
assert(receiver.deleted)
|
52
|
+
end
|
53
|
+
|
54
|
+
should "delete a bitcoin receiver with a customer through customer's subresource API" do
|
55
|
+
@mock.expects(:delete).with("#{Stripe.api_base}/v1/customers/customer_foo/sources/btcrcv_test_receiver", nil, nil).once.returns(make_response({:deleted => true, :id => "btcrcv_test_receiver"}))
|
56
|
+
receiver = Stripe::BitcoinReceiver.construct_from(make_bitcoin_receiver(:customer => 'customer_foo'))
|
57
|
+
response = receiver.delete
|
58
|
+
assert(receiver.deleted)
|
59
|
+
end
|
37
60
|
end
|
38
61
|
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require File.expand_path('../../test_helper', __FILE__)
|
2
|
+
|
3
|
+
module Stripe
|
4
|
+
class BitcoinTransactionTest < Test::Unit::TestCase
|
5
|
+
TEST_ID = "btctxn_test_transaction".freeze
|
6
|
+
|
7
|
+
should "retrieve should retrieve bitcoin receiver" do
|
8
|
+
@mock.expects(:get).
|
9
|
+
with("#{Stripe.api_base}/v1/bitcoin/transactions/#{TEST_ID}", nil, nil).
|
10
|
+
once.
|
11
|
+
returns(make_response(make_bitcoin_transaction))
|
12
|
+
receiver = Stripe::BitcoinTransaction.retrieve(TEST_ID)
|
13
|
+
assert_equal TEST_ID, receiver.id
|
14
|
+
end
|
15
|
+
|
16
|
+
should "all should list bitcoin transactions" do
|
17
|
+
@mock.expects(:get).
|
18
|
+
with("#{Stripe.api_base}/v1/bitcoin/transactions", nil, nil).
|
19
|
+
once.
|
20
|
+
returns(make_response(make_bitcoin_transaction_array))
|
21
|
+
transactions = Stripe::BitcoinTransaction.list
|
22
|
+
assert_equal 3, transactions.data.length
|
23
|
+
assert transactions.data.kind_of? Array
|
24
|
+
transactions.each do |transaction|
|
25
|
+
assert transaction.kind_of?(Stripe::BitcoinTransaction)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,55 @@
|
|
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
|
+
end
|
55
|
+
end
|
data/test/stripe/charge_test.rb
CHANGED
@@ -3,8 +3,8 @@ require File.expand_path('../../test_helper', __FILE__)
|
|
3
3
|
module Stripe
|
4
4
|
class ChargeTest < Test::Unit::TestCase
|
5
5
|
should "charges should be listable" do
|
6
|
-
@mock.expects(:get).once.returns(
|
7
|
-
c = Stripe::Charge.
|
6
|
+
@mock.expects(:get).once.returns(make_response(make_charge_array))
|
7
|
+
c = Stripe::Charge.list
|
8
8
|
assert c.data.kind_of? Array
|
9
9
|
c.each do |charge|
|
10
10
|
assert charge.kind_of?(Stripe::Charge)
|
@@ -13,7 +13,7 @@ module Stripe
|
|
13
13
|
|
14
14
|
should "charges should be refundable" do
|
15
15
|
@mock.expects(:get).never
|
16
|
-
@mock.expects(:post).once.returns(
|
16
|
+
@mock.expects(:post).once.returns(make_response({:id => "ch_test_charge", :refunded => true}))
|
17
17
|
c = Stripe::Charge.new("test_charge")
|
18
18
|
c.refund
|
19
19
|
assert c.refunded
|
@@ -21,15 +21,15 @@ module Stripe
|
|
21
21
|
|
22
22
|
should "charges should not be deletable" do
|
23
23
|
assert_raises NoMethodError do
|
24
|
-
@mock.expects(:get).once.returns(
|
24
|
+
@mock.expects(:get).once.returns(make_response(make_charge))
|
25
25
|
c = Stripe::Charge.retrieve("test_charge")
|
26
26
|
c.delete
|
27
27
|
end
|
28
28
|
end
|
29
29
|
|
30
30
|
should "charges should be updateable" do
|
31
|
-
@mock.expects(:get).once.returns(
|
32
|
-
@mock.expects(:post).once.returns(
|
31
|
+
@mock.expects(:get).once.returns(make_response(make_charge))
|
32
|
+
@mock.expects(:post).once.returns(make_response(make_charge))
|
33
33
|
c = Stripe::Charge.new("test_charge")
|
34
34
|
c.refresh
|
35
35
|
c.mnemonic = "New charge description"
|
@@ -37,23 +37,23 @@ module Stripe
|
|
37
37
|
end
|
38
38
|
|
39
39
|
should "charges should be able to be marked as fraudulent" do
|
40
|
-
@mock.expects(:get).once.returns(
|
41
|
-
@mock.expects(:post).once.returns(
|
40
|
+
@mock.expects(:get).once.returns(make_response(make_charge))
|
41
|
+
@mock.expects(:post).once.returns(make_response(make_charge))
|
42
42
|
c = Stripe::Charge.new("test_charge")
|
43
43
|
c.refresh
|
44
44
|
c.mark_as_fraudulent
|
45
45
|
end
|
46
46
|
|
47
47
|
should "charges should be able to be marked as safe" do
|
48
|
-
@mock.expects(:get).once.returns(
|
49
|
-
@mock.expects(:post).once.returns(
|
48
|
+
@mock.expects(:get).once.returns(make_response(make_charge))
|
49
|
+
@mock.expects(:post).once.returns(make_response(make_charge))
|
50
50
|
c = Stripe::Charge.new("test_charge")
|
51
51
|
c.refresh
|
52
52
|
c.mark_as_safe
|
53
53
|
end
|
54
54
|
|
55
55
|
should "charges should have Card objects associated with their Card property" do
|
56
|
-
@mock.expects(:get).once.returns(
|
56
|
+
@mock.expects(:get).once.returns(make_response(make_charge))
|
57
57
|
c = Stripe::Charge.retrieve("test_charge")
|
58
58
|
assert c.card.kind_of?(Stripe::StripeObject) && c.card.object == 'card'
|
59
59
|
end
|
@@ -66,7 +66,7 @@ module Stripe
|
|
66
66
|
'card[number]' => ['4242424242424242'],
|
67
67
|
'card[exp_month]' => ['11']
|
68
68
|
}
|
69
|
-
end.once.returns(
|
69
|
+
end.once.returns(make_response(make_charge))
|
70
70
|
|
71
71
|
c = Stripe::Charge.create({
|
72
72
|
:amount => 100,
|
@@ -86,7 +86,7 @@ module Stripe
|
|
86
86
|
'currency' => ['usd'], 'amount' => ['100'],
|
87
87
|
'source' => ['btcrcv_test_receiver']
|
88
88
|
}
|
89
|
-
end.once.returns(
|
89
|
+
end.once.returns(make_response(make_charge))
|
90
90
|
|
91
91
|
c = Stripe::Charge.create({
|
92
92
|
:amount => 100,
|
@@ -95,5 +95,24 @@ module Stripe
|
|
95
95
|
})
|
96
96
|
assert c.paid
|
97
97
|
end
|
98
|
+
|
99
|
+
should "properly handle an array or dictionaries" do
|
100
|
+
@mock.expects(:post).with do |url, api_key, params|
|
101
|
+
url == "#{Stripe.api_base}/v1/charges" && api_key.nil? && CGI.parse(params) == {
|
102
|
+
'currency' => ['usd'], 'amount' => ['100'],
|
103
|
+
'source' => ['btcrcv_test_receiver'],
|
104
|
+
'level3[][red]' => ['firstred', 'another'],
|
105
|
+
'level3[][one]' => ['fish'],
|
106
|
+
}
|
107
|
+
end.once.returns(make_response(make_charge))
|
108
|
+
|
109
|
+
c = Stripe::Charge.create({
|
110
|
+
:amount => 100,
|
111
|
+
:source => 'btcrcv_test_receiver',
|
112
|
+
:currency => "usd",
|
113
|
+
:level3 => [{:red => 'firstred'}, {:one => 'fish', :red => 'another'}]
|
114
|
+
})
|
115
|
+
assert c.paid
|
116
|
+
end
|
98
117
|
end
|
99
118
|
end
|
data/test/stripe/coupon_test.rb
CHANGED
@@ -3,14 +3,14 @@ require File.expand_path('../../test_helper', __FILE__)
|
|
3
3
|
module Stripe
|
4
4
|
class CouponTest < Test::Unit::TestCase
|
5
5
|
should "create should return a new coupon" do
|
6
|
-
@mock.expects(:post).once.returns(
|
6
|
+
@mock.expects(:post).once.returns(make_response(make_coupon))
|
7
7
|
c = Stripe::Coupon.create
|
8
8
|
assert_equal "co_test_coupon", c.id
|
9
9
|
end
|
10
10
|
|
11
11
|
should "coupons should be updateable" do
|
12
|
-
@mock.expects(:get).once.returns(
|
13
|
-
@mock.expects(:post).once.returns(
|
12
|
+
@mock.expects(:get).once.returns(make_response(make_coupon))
|
13
|
+
@mock.expects(:post).once.returns(make_response(make_coupon))
|
14
14
|
c = Stripe::Coupon.new("test_coupon")
|
15
15
|
c.refresh
|
16
16
|
c.metadata['foo'] = 'bar'
|
@@ -2,45 +2,45 @@ require File.expand_path('../../test_helper', __FILE__)
|
|
2
2
|
|
3
3
|
module Stripe
|
4
4
|
class CustomerCardTest < Test::Unit::TestCase
|
5
|
-
CUSTOMER_CARD_URL = '/v1/customers/test_customer/
|
5
|
+
CUSTOMER_CARD_URL = '/v1/customers/test_customer/sources/test_card'
|
6
6
|
|
7
7
|
def customer
|
8
|
-
@mock.expects(:get).once.returns(
|
8
|
+
@mock.expects(:get).once.returns(make_response(make_customer))
|
9
9
|
Stripe::Customer.retrieve('test_customer')
|
10
10
|
end
|
11
11
|
|
12
12
|
should "customer cards should be listable" do
|
13
13
|
c = customer
|
14
|
-
@mock.expects(:get).once.returns(
|
15
|
-
cards = c.
|
14
|
+
@mock.expects(:get).once.returns(make_response(make_customer_card_array(customer.id)))
|
15
|
+
cards = c.sources.list(:object => "card").data
|
16
16
|
assert cards.kind_of? Array
|
17
17
|
assert cards[0].kind_of? Stripe::Card
|
18
18
|
end
|
19
19
|
|
20
20
|
should "customer cards should have the correct url" do
|
21
21
|
c = customer
|
22
|
-
@mock.expects(:get).once.returns(
|
22
|
+
@mock.expects(:get).once.returns(make_response(make_card(
|
23
23
|
:id => 'test_card',
|
24
24
|
:customer => 'test_customer'
|
25
25
|
)))
|
26
|
-
card = c.
|
26
|
+
card = c.sources.retrieve('card')
|
27
27
|
assert_equal CUSTOMER_CARD_URL, card.url
|
28
28
|
end
|
29
29
|
|
30
30
|
should "customer cards should be deletable" do
|
31
31
|
c = customer
|
32
|
-
@mock.expects(:get).once.returns(
|
33
|
-
@mock.expects(:delete).once.returns(
|
34
|
-
card = c.
|
32
|
+
@mock.expects(:get).once.returns(make_response(make_card))
|
33
|
+
@mock.expects(:delete).once.returns(make_response(make_card(:deleted => true)))
|
34
|
+
card = c.sources.retrieve('card')
|
35
35
|
card.delete
|
36
36
|
assert card.deleted
|
37
37
|
end
|
38
38
|
|
39
39
|
should "customer cards should be updateable" do
|
40
40
|
c = customer
|
41
|
-
@mock.expects(:get).once.returns(
|
42
|
-
@mock.expects(:post).once.returns(
|
43
|
-
card = c.
|
41
|
+
@mock.expects(:get).once.returns(make_response(make_card(:exp_year => "2000")))
|
42
|
+
@mock.expects(:post).once.returns(make_response(make_card(:exp_year => "2100")))
|
43
|
+
card = c.sources.retrieve('card')
|
44
44
|
assert_equal "2000", card.exp_year
|
45
45
|
card.exp_year = "2100"
|
46
46
|
card.save
|
@@ -49,9 +49,15 @@ module Stripe
|
|
49
49
|
|
50
50
|
should "create should return a new customer card" do
|
51
51
|
c = customer
|
52
|
-
@mock.expects(:post).once.returns(
|
53
|
-
card = c.
|
52
|
+
@mock.expects(:post).once.returns(make_response(make_card(:id => "test_card")))
|
53
|
+
card = c.sources.create(:source => "tok_41YJ05ijAaWaFS")
|
54
54
|
assert_equal "test_card", card.id
|
55
55
|
end
|
56
|
+
|
57
|
+
should "raise if accessing Stripe::Card.retrieve directly" do
|
58
|
+
assert_raises NotImplementedError do
|
59
|
+
Stripe::Card.retrieve "card_12345"
|
60
|
+
end
|
61
|
+
end
|
56
62
|
end
|
57
63
|
end
|
@@ -3,22 +3,22 @@ require File.expand_path('../../test_helper', __FILE__)
|
|
3
3
|
module Stripe
|
4
4
|
class CustomerTest < Test::Unit::TestCase
|
5
5
|
should "customers should be listable" do
|
6
|
-
@mock.expects(:get).once.returns(
|
7
|
-
c = Stripe::Customer.
|
6
|
+
@mock.expects(:get).once.returns(make_response(make_customer_array))
|
7
|
+
c = Stripe::Customer.list.data
|
8
8
|
assert c.kind_of? Array
|
9
9
|
assert c[0].kind_of? Stripe::Customer
|
10
10
|
end
|
11
11
|
|
12
12
|
should "customers should be deletable" do
|
13
|
-
@mock.expects(:delete).once.returns(
|
13
|
+
@mock.expects(:delete).once.returns(make_response(make_customer({:deleted => true})))
|
14
14
|
c = Stripe::Customer.new("test_customer")
|
15
15
|
c.delete
|
16
16
|
assert c.deleted
|
17
17
|
end
|
18
18
|
|
19
19
|
should "customers should be updateable" do
|
20
|
-
@mock.expects(:get).once.returns(
|
21
|
-
@mock.expects(:post).once.returns(
|
20
|
+
@mock.expects(:get).once.returns(make_response(make_customer({:mnemonic => "foo"})))
|
21
|
+
@mock.expects(:post).once.returns(make_response(make_customer({:mnemonic => "bar"})))
|
22
22
|
c = Stripe::Customer.new("test_customer").refresh
|
23
23
|
assert_equal "foo", c.mnemonic
|
24
24
|
c.mnemonic = "bar"
|
@@ -27,24 +27,24 @@ module Stripe
|
|
27
27
|
end
|
28
28
|
|
29
29
|
should "create should return a new customer" do
|
30
|
-
@mock.expects(:post).once.returns(
|
30
|
+
@mock.expects(:post).once.returns(make_response(make_customer))
|
31
31
|
c = Stripe::Customer.create
|
32
32
|
assert_equal "c_test_customer", c.id
|
33
33
|
end
|
34
34
|
|
35
35
|
should "create_upcoming_invoice should create a new invoice" do
|
36
|
-
@mock.expects(:post).once.returns(
|
36
|
+
@mock.expects(:post).once.returns(make_response(make_invoice))
|
37
37
|
i = Stripe::Customer.new("test_customer").create_upcoming_invoice
|
38
38
|
assert_equal "c_test_customer", i.customer
|
39
39
|
end
|
40
40
|
|
41
41
|
should "be able to update a customer's subscription" do
|
42
|
-
@mock.expects(:get).once.returns(
|
42
|
+
@mock.expects(:get).once.returns(make_response(make_customer))
|
43
43
|
c = Stripe::Customer.retrieve("test_customer")
|
44
44
|
|
45
45
|
@mock.expects(:post).once.with do |url, api_key, params|
|
46
46
|
url == "#{Stripe.api_base}/v1/customers/c_test_customer/subscription" && api_key.nil? && CGI.parse(params) == {'plan' => ['silver']}
|
47
|
-
end.returns(
|
47
|
+
end.returns(make_response(make_subscription(:plan => 'silver')))
|
48
48
|
s = c.update_subscription({:plan => 'silver'})
|
49
49
|
|
50
50
|
assert_equal 'subscription', s.object
|
@@ -52,15 +52,15 @@ module Stripe
|
|
52
52
|
end
|
53
53
|
|
54
54
|
should "be able to cancel a customer's subscription" do
|
55
|
-
@mock.expects(:get).once.returns(
|
55
|
+
@mock.expects(:get).once.returns(make_response(make_customer))
|
56
56
|
c = Stripe::Customer.retrieve("test_customer")
|
57
57
|
|
58
58
|
# Not an accurate response, but whatever
|
59
59
|
|
60
|
-
@mock.expects(:delete).once.with("#{Stripe.api_base}/v1/customers/c_test_customer/subscription?at_period_end=true", nil, nil).returns(
|
60
|
+
@mock.expects(:delete).once.with("#{Stripe.api_base}/v1/customers/c_test_customer/subscription?at_period_end=true", nil, nil).returns(make_response(make_subscription(:plan => 'silver')))
|
61
61
|
c.cancel_subscription({:at_period_end => 'true'})
|
62
62
|
|
63
|
-
@mock.expects(:delete).once.with("#{Stripe.api_base}/v1/customers/c_test_customer/subscription", nil, nil).returns(
|
63
|
+
@mock.expects(:delete).once.with("#{Stripe.api_base}/v1/customers/c_test_customer/subscription", nil, nil).returns(make_response(make_subscription(:plan => 'silver')))
|
64
64
|
c.cancel_subscription
|
65
65
|
end
|
66
66
|
|
@@ -69,7 +69,7 @@ module Stripe
|
|
69
69
|
|
70
70
|
@mock.expects(:post).once.with do |url, api_key, params|
|
71
71
|
url == "#{Stripe.api_base}/v1/customers/test_customer/subscriptions" && api_key.nil? && CGI.parse(params) == {'plan' => ['silver']}
|
72
|
-
end.returns(
|
72
|
+
end.returns(make_response(make_subscription(:plan => 'silver')))
|
73
73
|
s = c.create_subscription({:plan => 'silver'})
|
74
74
|
|
75
75
|
assert_equal 'subscription', s.object
|
@@ -77,10 +77,10 @@ module Stripe
|
|
77
77
|
end
|
78
78
|
|
79
79
|
should "be able to delete a customer's discount" do
|
80
|
-
@mock.expects(:get).once.returns(
|
80
|
+
@mock.expects(:get).once.returns(make_response(make_customer))
|
81
81
|
c = Stripe::Customer.retrieve("test_customer")
|
82
82
|
|
83
|
-
@mock.expects(:delete).once.with("#{Stripe.api_base}/v1/customers/c_test_customer/discount", nil, nil).returns(
|
83
|
+
@mock.expects(:delete).once.with("#{Stripe.api_base}/v1/customers/c_test_customer/discount", nil, nil).returns(make_response(make_delete_discount_response))
|
84
84
|
c.delete_discount
|
85
85
|
assert_equal nil, c.discount
|
86
86
|
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
require File.expand_path('../../test_helper', __FILE__)
|
2
|
+
|
3
|
+
module Stripe
|
4
|
+
class DisputeTest < Test::Unit::TestCase
|
5
|
+
should "disputes should be retrievable" do
|
6
|
+
@mock.expects(:get).once.returns(make_response(make_dispute))
|
7
|
+
d = Stripe::Dispute.retrieve('dp_test_dispute')
|
8
|
+
assert d.kind_of?(Stripe::Dispute)
|
9
|
+
end
|
10
|
+
|
11
|
+
should "disputes should be listable" do
|
12
|
+
@mock.expects(:get).once.returns(make_response(make_dispute_array))
|
13
|
+
d = Stripe::Dispute.list
|
14
|
+
assert d.data.kind_of? Array
|
15
|
+
d.each do |dispute|
|
16
|
+
assert dispute.kind_of?(Stripe::Dispute)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
should "disputes should be closeable" do
|
21
|
+
@mock.expects(:get).never
|
22
|
+
@mock.expects(:post).with(
|
23
|
+
"#{Stripe.api_base}/v1/disputes/test_dispute/close",
|
24
|
+
nil,
|
25
|
+
''
|
26
|
+
).once.returns(make_response({:id => 'dp_test_dispute', :status => 'lost'}))
|
27
|
+
d = Stripe::Dispute.new('test_dispute')
|
28
|
+
d.close
|
29
|
+
end
|
30
|
+
|
31
|
+
should "disputes should be updateable" do
|
32
|
+
@mock.expects(:get).once.returns(make_response(make_dispute))
|
33
|
+
@mock.expects(:post).with(
|
34
|
+
"#{Stripe.api_base}/v1/disputes/dp_test_dispute",
|
35
|
+
nil,
|
36
|
+
'evidence[customer_name]=customer'
|
37
|
+
).once.returns(make_response(make_dispute))
|
38
|
+
|
39
|
+
d = Stripe::Dispute.new('test_dispute')
|
40
|
+
d.refresh
|
41
|
+
d.evidence['customer_name'] = 'customer'
|
42
|
+
d.save
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
@@ -3,24 +3,35 @@ require File.expand_path('../../test_helper', __FILE__)
|
|
3
3
|
module Stripe
|
4
4
|
class FileUploadTest < Test::Unit::TestCase
|
5
5
|
should "create should return a new file" do
|
6
|
-
|
7
|
-
f = Stripe::FileUpload.create({
|
6
|
+
params = {
|
8
7
|
:purpose => "dispute_evidence",
|
9
8
|
:file => File.new(__FILE__),
|
10
|
-
}
|
9
|
+
}
|
10
|
+
|
11
|
+
@mock.expects(:post).once.
|
12
|
+
with("#{Stripe.uploads_base}/v1/files", nil, params).
|
13
|
+
returns(make_response(make_file))
|
14
|
+
|
15
|
+
f = Stripe::FileUpload.create(params)
|
11
16
|
assert_equal "fil_test_file", f.id
|
12
17
|
end
|
13
18
|
|
14
19
|
should "files should be retrievable" do
|
15
|
-
@mock.expects(:get).once.
|
20
|
+
@mock.expects(:get).once.
|
21
|
+
with("#{Stripe.uploads_base}/v1/files/fil_test_file", nil, nil).
|
22
|
+
returns(make_response(make_file))
|
23
|
+
|
16
24
|
c = Stripe::FileUpload.new("fil_test_file")
|
17
25
|
c.refresh
|
18
26
|
assert_equal 1403047735, c.created
|
19
27
|
end
|
20
28
|
|
21
29
|
should "files should be listable" do
|
22
|
-
@mock.expects(:get).once.
|
23
|
-
|
30
|
+
@mock.expects(:get).once.
|
31
|
+
with("#{Stripe.uploads_base}/v1/files", nil, nil).
|
32
|
+
returns(make_response(make_file_array))
|
33
|
+
|
34
|
+
c = Stripe::FileUpload.list.data
|
24
35
|
assert c.kind_of? Array
|
25
36
|
assert c[0].kind_of? Stripe::FileUpload
|
26
37
|
end
|
data/test/stripe/invoice_test.rb
CHANGED
@@ -3,22 +3,36 @@ require File.expand_path('../../test_helper', __FILE__)
|
|
3
3
|
module Stripe
|
4
4
|
class InvoiceTest < Test::Unit::TestCase
|
5
5
|
should "retrieve should retrieve invoices" do
|
6
|
-
@mock.expects(:get).once.returns(
|
6
|
+
@mock.expects(:get).once.returns(make_response(make_invoice))
|
7
7
|
i = Stripe::Invoice.retrieve('in_test_invoice')
|
8
8
|
assert_equal 'in_test_invoice', i.id
|
9
9
|
end
|
10
10
|
|
11
11
|
should "create should create a new invoice" do
|
12
|
-
@mock.expects(:post).once.returns(
|
12
|
+
@mock.expects(:post).once.returns(make_response(make_invoice))
|
13
13
|
i = Stripe::Invoice.create
|
14
14
|
assert_equal "in_test_invoice", i.id
|
15
15
|
end
|
16
16
|
|
17
17
|
should "pay should pay an invoice" do
|
18
|
-
@mock.expects(:get).once.returns(
|
18
|
+
@mock.expects(:get).once.returns(make_response(make_invoice))
|
19
19
|
i = Stripe::Invoice.retrieve('in_test_invoice')
|
20
20
|
|
21
|
-
@mock.expects(:post).once.with('https://api.stripe.com/v1/invoices/in_test_invoice/pay', nil, '').returns(
|
21
|
+
@mock.expects(:post).once.with('https://api.stripe.com/v1/invoices/in_test_invoice/pay', nil, '').returns(make_response(make_paid_invoice))
|
22
|
+
i.pay
|
23
|
+
assert_equal nil, i.next_payment_attempt
|
24
|
+
end
|
25
|
+
|
26
|
+
should "pay with extra opts should pay an invoice" do
|
27
|
+
@mock.expects(:get).once.returns(make_response(make_invoice))
|
28
|
+
i = Stripe::Invoice.retrieve('in_test_invoice', {:api_key => 'foobar'})
|
29
|
+
|
30
|
+
Stripe.expects(:execute_request).with do |opts|
|
31
|
+
opts[:url] == "#{Stripe.api_base}/v1/invoices/in_test_invoice/pay" &&
|
32
|
+
opts[:method] == :post &&
|
33
|
+
opts[:headers][:authorization] == 'Bearer foobar'
|
34
|
+
end.returns(make_response(make_paid_invoice))
|
35
|
+
|
22
36
|
i.pay
|
23
37
|
assert_equal nil, i.next_payment_attempt
|
24
38
|
end
|