stripe-ruby/test/stripe/subscription_item_test.rb
2017-02-14 12:07:18 -08:00

64 lines
2.7 KiB
Ruby

require File.expand_path('../../test_helper', __FILE__)
module Stripe
class SubscriptionItemTest < Test::Unit::TestCase
should "subscription items should be retrievable" do
stub_request(:get, "#{Stripe.api_base}/v1/subscription_items/si_test_subscription_item").
to_return(body: make_response(make_subscription_item))
sub_item = Stripe::SubscriptionItem.retrieve('si_test_subscription_item')
assert sub_item.kind_of?(Stripe::SubscriptionItem)
end
should "subscription items should be listable" do
stub_request(:get, "#{Stripe.api_base}/v1/subscription_items").
with(query: { subscription: "s_test_subscription", limit: "3" }).
to_return(body: make_response(make_subscription_item_array))
sub_items = Stripe::SubscriptionItem.list(:subscription => 's_test_subscription', :limit => 3).data
assert sub_items.kind_of? Array
assert sub_items[0].kind_of? Stripe::SubscriptionItem
end
should "subscription items should be deletable" do
stub_request(:get, "#{Stripe.api_base}/v1/subscription_items/si_test_subscription_item").
to_return(body: make_response(make_subscription_item))
sub_item = Stripe::SubscriptionItem.retrieve('si_test_subscription_item')
stub_request(:delete, "#{Stripe.api_base}/v1/subscription_items/#{sub_item.id}").
to_return(body: make_response(make_subscription_item))
sub_item.delete
end
should "subscription items should be updateable" do
sid = 'si_test_subscription_item'
stub_request(:post, "#{Stripe.api_base}/v1/subscription_items/#{sid}").
with(body: { plan: "silver", quantity: "3" }).
to_return(body: make_response(make_subscription_item))
_ = Stripe::SubscriptionItem.update(sid, {:plan => 'silver', :quantity => 3})
end
should "subscription items should be saveable" do
stub_request(:get, "#{Stripe.api_base}/v1/subscription_items/si_test_subscription_item").
to_return(body: make_response(make_subscription_item))
sub_item = Stripe::SubscriptionItem.retrieve('si_test_subscription_item')
stub_request(:post, "#{Stripe.api_base}/v1/subscription_items/#{sub_item.id}").
with(body: { plan: "silver", quantity: "3" }).
to_return(body: make_response(make_subscription_item))
sub_item.plan = 'silver'
sub_item.quantity = 3
sub_item.save
end
should "create should return a new subscription item" do
stub_request(:post, "#{Stripe.api_base}/v1/subscription_items").
with(body: { plan: "silver", quantity: "3" }).
to_return(body: make_response(make_subscription_item))
_ = Stripe::SubscriptionItem.create(:plan => 'silver', :quantity => 3)
end
end
end