From e11a8e4d5f0b4192d8adb6437fd38978eb4d2b7a Mon Sep 17 00:00:00 2001 From: Bounmy Stephane Date: Fri, 1 Jun 2012 00:36:42 +0200 Subject: [PATCH] fixed credit when no payment_profiles_supported --- .../paypal_express_base.rb | 5 ++-- .../paypal_express_base_spec.rb | 27 +++++++++++++++++++ 2 files changed, 30 insertions(+), 2 deletions(-) diff --git a/app/models/spree/billing_integration/paypal_express_base.rb b/app/models/spree/billing_integration/paypal_express_base.rb index d694f4f..d2e9820 100644 --- a/app/models/spree/billing_integration/paypal_express_base.rb +++ b/app/models/spree/billing_integration/paypal_express_base.rb @@ -26,11 +26,12 @@ class Spree::BillingIntegration::PaypalExpressBase < Spree::BillingIntegration end end - def credit(amount, account, response_code, gateway_options) + def credit(*args) + amount = args.shift + response_code = args.first.is_a?(String) ? args.first : args[1] provider.credit(amount, response_code, :currency => preferred_currency) end - def find_authorization(payment) logs = payment.log_entries.all(:order => 'created_at DESC') logs.each do |log| diff --git a/spec/models/billing_integration/paypal_express_base_spec.rb b/spec/models/billing_integration/paypal_express_base_spec.rb index 85aa463..a346839 100644 --- a/spec/models/billing_integration/paypal_express_base_spec.rb +++ b/spec/models/billing_integration/paypal_express_base_spec.rb @@ -105,4 +105,31 @@ describe Spree::BillingIntegration::PaypalExpressBase do end end + describe "#credit" do + before { payment.stub :response_code => '123' } + context "when payment_profiles_supported = true" do + before { gateway.stub :payment_profiles_supported? => true } + + + it "should receive correct params" do + provider.should_receive(:credit).with(1000, '123', :currency => 'EUR').and_return(success_response) + payment.credit!(10.0) + payment.response_code.should == '123' + end + end + + context "when payment_profiles_supported = false" do + before do + payment.stub :response_code => '123' + gateway.stub :payment_profiles_supported? => false + end + + it "should receive correct params" do + provider.should_receive(:credit).with(amount_in_cents, '123', :currency => 'EUR').and_return(success_response) + payment.credit!(10.0) + payment.response_code.should == '123' + end + + end + end end