From 0851f2a7fd01d7305db674b55b1b47c1d62387d7 Mon Sep 17 00:00:00 2001 From: Finbarr Taylor Date: Sat, 22 Jun 2013 16:30:35 -0700 Subject: [PATCH] Added BalanceTransaction list resource. Added Balance singleton resource. --- lib/stripe.rb | 2 ++ lib/stripe/balance.rb | 4 ++++ lib/stripe/balance_transaction.rb | 9 ++++++++ lib/stripe/util.rb | 2 ++ test/test_helper.rb | 36 +++++++++++++++++++++++++++++++ test/test_stripe.rb | 20 +++++++++++++++++ 6 files changed, 73 insertions(+) create mode 100644 lib/stripe/balance.rb create mode 100644 lib/stripe/balance_transaction.rb diff --git a/lib/stripe.rb b/lib/stripe.rb index 90d6480a..7d0bce05 100644 --- a/lib/stripe.rb +++ b/lib/stripe.rb @@ -23,6 +23,8 @@ require 'stripe/api_resource' require 'stripe/singleton_api_resource' require 'stripe/list_object' require 'stripe/account' +require 'stripe/balance' +require 'stripe/balance_transaction' require 'stripe/customer' require 'stripe/invoice' require 'stripe/invoice_item' diff --git a/lib/stripe/balance.rb b/lib/stripe/balance.rb new file mode 100644 index 00000000..d6dd0324 --- /dev/null +++ b/lib/stripe/balance.rb @@ -0,0 +1,4 @@ +module Stripe + class Balance < SingletonAPIResource + end +end diff --git a/lib/stripe/balance_transaction.rb b/lib/stripe/balance_transaction.rb new file mode 100644 index 00000000..31d224c3 --- /dev/null +++ b/lib/stripe/balance_transaction.rb @@ -0,0 +1,9 @@ +module Stripe + class BalanceTransaction < APIResource + include Stripe::APIOperations::List + + def self.url + '/v1/balance/history' + end + end +end diff --git a/lib/stripe/util.rb b/lib/stripe/util.rb index 35d383b2..b79e339c 100644 --- a/lib/stripe/util.rb +++ b/lib/stripe/util.rb @@ -17,6 +17,8 @@ module Stripe def self.object_classes @object_classes ||= { + 'balance' => Balance, + 'balance_transaction' => BalanceTransaction, 'charge' => Charge, 'customer' => Customer, 'invoiceitem' => InvoiceItem, diff --git a/test/test_helper.rb b/test/test_helper.rb index 162a651e..89218249 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -34,6 +34,42 @@ def test_response(body, code=200) m end +def test_balance(params={}) + { + :pending => [ + {:amount => 12345, :currency => "usd"} + ], + :available => [ + {:amount => 6789, :currency => "usd"} + ], + :livemode => false, + :object => "balance" + }.merge(params) +end + +def test_balance_transaction(params={}) + { + :amount => 100, + :net => 41, + :currency => "usd", + :type => "charge", + :created => 1371945005, + :available_on => 1372549805, + :status => "pending", + :description => "A test balance transaction", + :fee => 59, + :object => "balance_transaction" + }.merge(params) +end + +def test_balance_transaction_array + { + :data => [test_balance_transaction, test_balance_transaction, test_balance_transaction], + :object => "list", + :url => "/v1/balance/history" + } +end + def test_customer(params={}) { :subscription_history => [], diff --git a/test/test_stripe.rb b/test/test_stripe.rb index d802bef3..f2e1a5b9 100644 --- a/test/test_stripe.rb +++ b/test/test_stripe.rb @@ -351,6 +351,26 @@ class TestStripeRuby < Test::Unit::TestCase end end + context "balance tests" do + should "balance should be retrievable" do + @mock.expects(:get).once.returns(test_response(test_balance)) + b = Stripe::Balance.retrieve + assert_equal 12345, b.pending.first.amount + assert_equal 6789, b.available.first.amount + end + end + + context "balance transaction tests" do + should "balance transactions should be listable" do + @mock.expects(:get).once.returns(test_response(test_balance_transaction_array)) + bt = Stripe::BalanceTransaction.all + assert bt.data.kind_of?(Array) + bt.each do |balance_transaction| + assert balance_transaction.kind_of?(Stripe::BalanceTransaction) + end + end + end + context "list tests" do should "be able to retrieve full lists given a listobject" do @mock.expects(:get).twice.returns(test_response(test_charge_array))