stripe-ruby/test/stripe/stripe_object_test.rb
Brian Krausz 4d611c62f7 Support persisted use of Stripe-Account header everywhere
Including implicit use in /v1/accounts/ endpoints
2015-02-09 23:38:34 -08:00

29 lines
1.1 KiB
Ruby

require File.expand_path('../../test_helper', __FILE__)
module Stripe
class StripeObjectTest < Test::Unit::TestCase
should "implement #respond_to correctly" do
obj = Stripe::StripeObject.construct_from({ :id => 1, :foo => 'bar' })
assert obj.respond_to?(:id)
assert obj.respond_to?(:foo)
assert !obj.respond_to?(:baz)
end
should "marshal a stripe object correctly" do
obj = Stripe::StripeObject.construct_from({ :id => 1, :name => 'Stripe' }, {:api_key => 'apikey'})
m = Marshal.load(Marshal.dump(obj))
assert_equal 1, m.id
assert_equal 'Stripe', m.name
expected_hash = {:api_key => 'apikey'}
assert_equal expected_hash, m.instance_variable_get('@opts')
end
should "recursively call to_hash on its values" do
nested = Stripe::StripeObject.construct_from({ :id => 7, :foo => 'bar' })
obj = Stripe::StripeObject.construct_from({ :id => 1, :nested => nested })
expected_hash = { :id => 1, :nested => { :id => 7, :foo => 'bar' } }
assert_equal expected_hash, obj.to_hash
end
end
end