# frozen_string_literal: true require ::File.expand_path("../../../test_helper", __FILE__) module Stripe module Issuing class TransactionTest < Test::Unit::TestCase should "be listable" do stub_request(:get, "#{Stripe.api_base}/v1/issuing/transactions") .to_return(body: JSON.generate(object: "list", data: [{ id: "ipi_123", object: "issuing.transaction" }])) transactions = Stripe::Issuing::Transaction.list assert_requested :get, "#{Stripe.api_base}/v1/issuing/transactions" assert transactions.data.is_a?(Array) assert transactions.data[0].is_a?(Stripe::Issuing::Transaction) end should "be retrievable" do stub_request(:get, "#{Stripe.api_base}/v1/issuing/transactions/ipi_123") .to_return(body: JSON.generate(id: "ipi_123", object: "issuing.transaction")) transaction = Stripe::Issuing::Transaction.retrieve("ipi_123") assert_requested :get, "#{Stripe.api_base}/v1/issuing/transactions/ipi_123" assert transaction.is_a?(Stripe::Issuing::Transaction) end should "be saveable" do stub_request(:post, "#{Stripe.api_base}/v1/issuing/transactions/ipi_123") .to_return(body: JSON.generate(id: "ipi_123", object: "issuing.transaction")) transaction = Stripe::Issuing::Transaction.construct_from(id: "ipi_123", object: "issuing.transaction", metadata: {}) transaction.metadata["key"] = "value" transaction.save assert_requested :post, "#{Stripe.api_base}/v1/issuing/transactions/#{transaction.id}" assert transaction.is_a?(Stripe::Issuing::Transaction) end should "be updateable" do stub_request(:post, "#{Stripe.api_base}/v1/issuing/transactions/ipi_123") .to_return(body: JSON.generate(id: "ipi_123", object: "issuing.transaction")) transaction = Stripe::Issuing::Transaction.update("ipi_123", metadata: { foo: "bar" }) assert_requested :post, "#{Stripe.api_base}/v1/issuing/transactions/ipi_123" assert transaction.is_a?(Stripe::Issuing::Transaction) end end end end