From ba4ce6cd420294ea094772124f01e348ff4d8476 Mon Sep 17 00:00:00 2001 From: Brian Collins Date: Sun, 1 Apr 2012 15:45:28 -0700 Subject: [PATCH 1/3] Revert "Charges should not be updatable" This reverts commit 1415b08fb8a912f21b46b39015272ae8a42f105d. --- lib/stripe.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/stripe.rb b/lib/stripe.rb index 416bca12..d465a65c 100644 --- a/lib/stripe.rb +++ b/lib/stripe.rb @@ -401,6 +401,7 @@ module Stripe class Charge < APIResource include Stripe::APIOperations::List include Stripe::APIOperations::Create + include Stripe::APIOperations::Update def refund(params={}) response, api_key = Stripe.request(:post, refund_url, @api_key, params) From 00a4be73f99f1a3058335efbbcb86e37e2ce6e2d Mon Sep 17 00:00:00 2001 From: Brian Collins Date: Sun, 1 Apr 2012 15:49:15 -0700 Subject: [PATCH 2/3] Charge descriptions can be updated --- test/test_stripe.rb | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/test/test_stripe.rb b/test/test_stripe.rb index b16a5268..1ddc84c4 100644 --- a/test/test_stripe.rb +++ b/test/test_stripe.rb @@ -280,14 +280,13 @@ class TestStripeRuby < Test::Unit::TestCase end end - should "charges should not be updateable" do - assert_raises NoMethodError do - @mock.expects(:get).once.returns(test_response(test_charge)) - c = Stripe::Charge.new("test_charge") - c.refresh - c.mnemonic= "YAY PASSING TEST!" - c.save - end + should "charges should be updateable" do + @mock.expects(:get).once.returns(test_response(test_charge)) + @mock.expects(:post).once.returns(test_response(test_charge)) + c = Stripe::Charge.new("test_charge") + c.refresh + c.mnemonic = "New charge description" + c.save end should "charges should have Card objects associated with their Card property" do From 69a96ecc4b08549cf496c26a92ebbd8f405db49f Mon Sep 17 00:00:00 2001 From: Evan Broder Date: Mon, 23 Apr 2012 10:00:29 -0700 Subject: [PATCH 3/3] Parse URL query string in tests to deal with hash order differences My rvm 1.8.7 Linux build of Ruby appears to generate query strings in a different order than the test suite expected. --- test/test_stripe.rb | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/test/test_stripe.rb b/test/test_stripe.rb index 1ddc84c4..6cd0ae2f 100644 --- a/test/test_stripe.rb +++ b/test/test_stripe.rb @@ -5,6 +5,8 @@ require 'shoulda' require 'mocha' require 'pp' require 'rest-client' +require 'cgi' +require 'uri' class TestStripeRuby < Test::Unit::TestCase include Mocha @@ -160,7 +162,12 @@ class TestStripeRuby < Test::Unit::TestCase end should "setting a nil value for a param should exclude that param from the request" do - @mock.expects(:get).with('https://api.stripe.com/v1/charges?offset=5&sad=false', nil, nil).returns(test_response({ :count => 1, :data => [test_charge] })) + @mock.expects(:get).with do |url, api_key, params| + uri = URI(url) + query = CGI.parse(uri.query) + (url =~ %r{^https://api.stripe.com/v1/charges?} && + query.keys.sort == ['offset', 'sad']) + end.returns(test_response({ :count => 1, :data => [test_charge] })) c = Stripe::Charge.all(:count => nil, :offset => 5, :sad => false) @mock.expects(:post).with('https://api.stripe.com/v1/charges', nil, { :amount => 50, :currency => 'usd', :card => {} }).returns(test_response({ :count => 1, :data => [test_charge] }))