Sha256: 4a63554858ff53e1c2be4ab5fff86f533ca6d11ffdb02ed88e3f8d6782e695c8

Contents?: true

Size: 1.92 KB

Versions: 5

Compression:

Stored size: 1.92 KB

Contents

require File.expand_path('../../test_helper', __FILE__)

module Stripe
  class SourceTest < Test::Unit::TestCase
    should "be retrievable" do
      source = Stripe::Source.retrieve("src_123")
      assert_requested :get, "#{Stripe.api_base}/v1/sources/src_123"
      assert source.kind_of?(Stripe::Source)
    end

    should "be creatable" do
      source = Stripe::Source.create(
        type: 'card',
        token: "tok_123"
      )
      assert_requested :post, "#{Stripe.api_base}/v1/sources"
      assert source.kind_of?(Stripe::Source)
    end

    should "be saveable" do
      source = Stripe::Source.retrieve("src_123")
      source.metadata['key'] = 'value'
      source.save
      assert_requested :post, "#{Stripe.api_base}/v1/sources/#{source.id}"
    end

    should "be updateable" do
      source = Stripe::Source.update("src_123", metadata: {foo: 'bar'})
      assert_requested :post, "#{Stripe.api_base}/v1/sources/src_123"
      assert source.kind_of?(Stripe::Source)
    end

    context "#delete" do
      should "not be deletable when unattached" do
        source = Stripe::Source.retrieve("src_123")

        assert_raises NotImplementedError do
          source.delete
        end
      end

      should "be deletable when attached to a customer" do
        source = Stripe::Source.construct_from({
          customer: "cus_123",
          id: "src_123",
          object: "source"
        })
        source = source.delete
        assert_requested :delete, "#{Stripe.api_base}/v1/customers/cus_123/sources/src_123"
        assert source.kind_of?(Stripe::Source)
      end
    end

    should 'not be listable' do
      assert_raises NoMethodError do
        Stripe::Source.list
      end
    end

    context "#verify" do
      should "verify the source" do
        source = Stripe::Source.retrieve("src_123")
        source = source.verify(:values => [1,2])
        assert source.kind_of?(Stripe::Source)
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
stripe-3.3.2 test/stripe/source_test.rb
stripe-3.3.1 test/stripe/source_test.rb
stripe-3.3.0 test/stripe/source_test.rb
stripe-3.2.0 test/stripe/source_test.rb
stripe-3.1.0 test/stripe/source_test.rb