Add support for ephemeral keys (#549)

This commit is contained in:
Marc Hesse 2017-06-20 18:30:30 -07:00 committed by GitHub
parent 3f01024974
commit d69ccfc1dd
4 changed files with 108 additions and 0 deletions

View File

@ -47,6 +47,7 @@ require 'stripe/country_spec'
require 'stripe/coupon'
require 'stripe/customer'
require 'stripe/dispute'
require 'stripe/ephemeral_key'
require 'stripe/event'
require 'stripe/file_upload'
require 'stripe/invoice'

View File

@ -0,0 +1,18 @@
module Stripe
class EphemeralKey < APIResource
extend Stripe::APIOperations::Create
include Stripe::APIOperations::Delete
OBJECT_NAME = 'ephemeral_key'
def self.resource_url
'/v1/ephemeral_keys'
end
def self.create(params={}, opts={})
opts = Util.normalize_opts(opts)
raise ArgumentError.new('stripe_version must be specified to create an ephemeral key') if !opts[:stripe_version]
super
end
end
end

View File

@ -39,6 +39,7 @@ module Stripe
Coupon::OBJECT_NAME => Coupon,
Customer::OBJECT_NAME => Customer,
Dispute::OBJECT_NAME => Dispute,
EphemeralKey::OBJECT_NAME => EphemeralKey,
Event::OBJECT_NAME => Event,
FileUpload::OBJECT_NAME => FileUpload,
Invoice::OBJECT_NAME => Invoice,

View File

@ -0,0 +1,88 @@
require File.expand_path('../../test_helper', __FILE__)
module Stripe
class EphemeralKeyTest < Test::Unit::TestCase
context "#create" do
FIXTURE = API_FIXTURES.fetch(:ephemeral_key_with_secret)
should "succeed" do
key = Stripe::EphemeralKey.create(
{customer:"cus_123"},
{stripe_version:"2017-05-25"}
)
assert_requested(
:post,
"#{Stripe.api_base}/v1/ephemeral_keys",
headers: {'Stripe-Version' => '2017-05-25'}
)
assert key.kind_of?(Stripe::EphemeralKey)
end
context "#no global version" do
should "use the correct api version" do
key = Stripe::EphemeralKey.create(
{customer: "cus_123"},
{stripe_version: "2017-06-05"}
)
assert_requested(
:post,
"#{Stripe.api_base}/v1/ephemeral_keys",
headers: {'Stripe-Version' => '2017-06-05'}
)
assert key.kind_of?(Stripe::EphemeralKey)
end
should "error without an explicit api version" do
e = assert_raises(ArgumentError) do
Stripe::EphemeralKey.create(customer: "cus_123")
end
assert_match("stripe_version must be specified", e.message)
end
end
context "#with global version" do
setup do
Stripe.api_version = "2017-05-25"
end
teardown do
Stripe.api_version = nil
end
should "use the correct api version" do
key = Stripe::EphemeralKey.create(
{customer: "cus_123"},
{stripe_version: "2017-05-25"}
)
assert key.kind_of?(Stripe::EphemeralKey)
end
should "error without an explicit api version" do
e = assert_raises(ArgumentError) do
Stripe::EphemeralKey.create(customer: "cus_123")
end
assert_match("stripe_version must be specified", e.message)
end
end
end
context "#delete" do
FIXTURE = API_FIXTURES.fetch(:ephemeral_key)
should "succeed" do
key = Stripe::EphemeralKey.create(
{customer: 'cus_123'},
{stripe_version: '2017-05-25'}
)
key.delete
assert_requested :delete, "#{Stripe.api_base}/v1/ephemeral_keys/#{key.id}"
end
end
end
end