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