killbill-stripe 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,23 +1,29 @@
1
+ # -- encoding : utf-8 --
2
+
3
+ set :views, File.expand_path(File.dirname(__FILE__) + '/views')
4
+
5
+ include Killbill::Plugin::ActiveMerchant::Sinatra
6
+
1
7
  configure do
2
8
  # Usage: rackup -Ilib -E test
3
9
  if development? or test?
4
- Killbill::Stripe.initialize! unless Killbill::Stripe.initialized
10
+ # Make sure the plugin is initialized
11
+ plugin = ::Killbill::Stripe::PaymentPlugin.new
12
+ plugin.logger = Logger.new(STDOUT)
13
+ plugin.logger.level = Logger::INFO
14
+ plugin.conf_dir = File.dirname(File.dirname(__FILE__)) + '/..'
15
+ plugin.start_plugin
5
16
  end
6
17
  end
7
18
 
8
19
  helpers do
9
- def plugin
10
- Killbill::Stripe::PrivatePaymentPlugin.instance
20
+ def plugin(session = {})
21
+ ::Killbill::Stripe::PrivatePaymentPlugin.new(:stripe,
22
+ ::Killbill::Stripe::StripePaymentMethod,
23
+ ::Killbill::Stripe::StripeTransaction,
24
+ ::Killbill::Stripe::StripeResponse,
25
+ session)
11
26
  end
12
-
13
- def required_parameter!(parameter_name, parameter_value, message='must be specified!')
14
- halt 400, "#{parameter_name} #{message}" if parameter_value.blank?
15
- end
16
- end
17
-
18
- after do
19
- # return DB connections to the Pool if required
20
- ActiveRecord::Base.connection.close
21
27
  end
22
28
 
23
29
  # http://127.0.0.1:9292/plugins/killbill-stripe
@@ -26,11 +32,11 @@ get '/plugins/killbill-stripe' do
26
32
  required_parameter! :kb_account_id, kb_account_id
27
33
 
28
34
  # URL to Stripe.js
29
- stripejs_url = Killbill::Stripe.config[:stripe][:stripejs_url] || 'https://js.stripe.com/v2/'
35
+ stripejs_url = config[:stripe][:stripejs_url] || 'https://js.stripe.com/v2/'
30
36
  required_parameter! :stripejs_url, stripejs_url, 'is not configured'
31
37
 
32
38
  # Public API key
33
- publishable_key = Killbill::Stripe.config[:stripe][:api_publishable_key]
39
+ publishable_key = config[:stripe][:api_publishable_key]
34
40
  required_parameter! :publishable_key, publishable_key, 'is not configured'
35
41
 
36
42
  # Redirect
@@ -38,12 +44,12 @@ get '/plugins/killbill-stripe' do
38
44
  required_parameter! :success_page, success_page, 'is not specified'
39
45
 
40
46
  locals = {
41
- :stripejs_url => stripejs_url,
47
+ :stripejs_url => stripejs_url,
42
48
  :publishable_key => publishable_key,
43
- :kb_account_id => kb_account_id,
44
- :success_page => success_page
49
+ :kb_account_id => kb_account_id,
50
+ :success_page => success_page
45
51
  }
46
- erb :stripejs, :views => File.expand_path(File.dirname(__FILE__) + '/../views'), :locals => locals
52
+ erb :stripejs, :locals => locals
47
53
  end
48
54
 
49
55
  # This is mainly for testing. Your application should redirect from the Stripe.js checkout above
@@ -59,7 +65,7 @@ end
59
65
 
60
66
  # curl -v http://127.0.0.1:9292/plugins/killbill-stripe/1.0/pms/1
61
67
  get '/plugins/killbill-stripe/1.0/pms/:id', :provides => 'json' do
62
- if pm = Killbill::Stripe::StripePaymentMethod.find_by_id(params[:id].to_i)
68
+ if pm = ::Killbill::Stripe::StripePaymentMethod.find_by_id(params[:id].to_i)
63
69
  pm.to_json
64
70
  else
65
71
  status 404
@@ -68,9 +74,18 @@ end
68
74
 
69
75
  # curl -v http://127.0.0.1:9292/plugins/killbill-stripe/1.0/transactions/1
70
76
  get '/plugins/killbill-stripe/1.0/transactions/:id', :provides => 'json' do
71
- if transaction = Killbill::Stripe::StripeTransaction.find_by_id(params[:id].to_i)
77
+ if transaction = ::Killbill::Stripe::StripeTransaction.find_by_id(params[:id].to_i)
72
78
  transaction.to_json
73
79
  else
74
80
  status 404
75
81
  end
76
82
  end
83
+
84
+ # curl -v http://127.0.0.1:9292/plugins/killbill-stripe/1.0/responses/1
85
+ get '/plugins/killbill-stripe/1.0/responses/:id', :provides => 'json' do
86
+ if transaction = ::Killbill::Stripe::StripeResponse.find_by_id(params[:id].to_i)
87
+ transaction.to_json
88
+ else
89
+ status 404
90
+ end
91
+ end
@@ -0,0 +1,58 @@
1
+ module Killbill #:nodoc:
2
+ module Stripe #:nodoc:
3
+ class StripePaymentMethod < ::Killbill::Plugin::ActiveMerchant::ActiveRecord::PaymentMethod
4
+
5
+ self.table_name = 'stripe_payment_methods'
6
+
7
+ def self.from_response(kb_account_id, kb_payment_method_id, kb_tenant_id, cc_or_token, response, options, extra_params = {}, model = ::Killbill::Stripe::StripePaymentMethod)
8
+ stripe_customer_id = self.stripe_customer_id_from_kb_account_id(kb_account_id, kb_tenant_id)
9
+ unless stripe_customer_id.blank?
10
+ card_response = response.responses.first.params
11
+ customer_response = response.responses.last.params
12
+ else
13
+ card_response = response.params['cards']['data'][0]
14
+ customer_response = response.params
15
+ end
16
+
17
+ super(kb_account_id,
18
+ kb_payment_method_id,
19
+ kb_tenant_id,
20
+ cc_or_token,
21
+ response,
22
+ options,
23
+ {
24
+ :stripe_customer_id => customer_response['id'],
25
+ :token => card_response['id'],
26
+ :cc_first_name => card_response['name'],
27
+ :cc_last_name => nil,
28
+ :cc_type => card_response['type'],
29
+ :cc_exp_month => card_response['exp_month'],
30
+ :cc_exp_year => card_response['exp_year'],
31
+ :cc_last_4 => card_response['last4'],
32
+ :address1 => card_response['address_line1'],
33
+ :address2 => card_response['address_line2'],
34
+ :city => card_response['address_city'],
35
+ :state => card_response['address_state'],
36
+ :zip => card_response['address_zip'],
37
+ :country => card_response['address_country']
38
+ }.merge!(extra_params),
39
+ model)
40
+ end
41
+
42
+ def self.search_where_clause(t, search_key)
43
+ super.or(t[:stripe_customer_id].eq(search_key))
44
+ end
45
+
46
+ def self.stripe_customer_id_from_kb_account_id(kb_account_id, tenant_id)
47
+ pms = from_kb_account_id(kb_account_id, tenant_id)
48
+ return nil if pms.empty?
49
+
50
+ stripe_customer_ids = Set.new
51
+ pms.each { |pm| stripe_customer_ids << pm.stripe_customer_id }
52
+ raise "No Stripe customer id found for account #{kb_account_id}" if stripe_customer_ids.empty?
53
+ raise "Kill Bill account #{kb_account_id} mapping to multiple Stripe customers: #{stripe_customer_ids}" if stripe_customer_ids.size > 1
54
+ stripe_customer_ids.first
55
+ end
56
+ end
57
+ end
58
+ end
@@ -0,0 +1,80 @@
1
+ module Killbill #:nodoc:
2
+ module Stripe #:nodoc:
3
+ class StripeResponse < ::Killbill::Plugin::ActiveMerchant::ActiveRecord::Response
4
+
5
+ self.table_name = 'stripe_responses'
6
+
7
+ has_one :stripe_transaction
8
+
9
+ def self.from_response(api_call, kb_account_id, kb_payment_id, kb_payment_transaction_id, transaction_type, payment_processor_account_id, kb_tenant_id, response, extra_params = {}, model = ::Killbill::Stripe::StripeResponse)
10
+ super(api_call,
11
+ kb_account_id,
12
+ kb_payment_id,
13
+ kb_payment_transaction_id,
14
+ transaction_type,
15
+ payment_processor_account_id,
16
+ kb_tenant_id,
17
+ response,
18
+ {
19
+ :params_id => extract(response, 'id'),
20
+ :params_object => extract(response, 'object'),
21
+ :params_created => extract(response, 'created'),
22
+ :params_livemode => extract(response, 'livemode'),
23
+ :params_paid => extract(response, 'paid'),
24
+ :params_amount => extract(response, 'amount'),
25
+ :params_currency => extract(response, 'currency'),
26
+ :params_refunded => extract(response, 'refunded'),
27
+ :params_card_id => extract(response, 'card', 'id'),
28
+ :params_card_object => extract(response, 'card', 'object'),
29
+ :params_card_last4 => extract(response, 'card', 'last4'),
30
+ :params_card_type => extract(response, 'card', 'type'),
31
+ :params_card_exp_month => extract(response, 'card', 'exp_month'),
32
+ :params_card_exp_year => extract(response, 'card', 'exp_year'),
33
+ :params_card_fingerprint => extract(response, 'card', 'fingerprint'),
34
+ :params_card_customer => extract(response, 'card', 'customer'),
35
+ :params_card_country => extract(response, 'card', 'country'),
36
+ :params_card_name => extract(response, 'card', 'name'),
37
+ :params_card_address_line1 => extract(response, 'card', 'address_line1'),
38
+ :params_card_address_line2 => extract(response, 'card', 'address_line2'),
39
+ :params_card_address_city => extract(response, 'card', 'address_city'),
40
+ :params_card_address_state => extract(response, 'card', 'address_state'),
41
+ :params_card_address_zip => extract(response, 'card', 'address_zip'),
42
+ :params_card_address_country => extract(response, 'card', 'address_country'),
43
+ :params_card_cvc_check => extract(response, 'card', 'cvc_check'),
44
+ :params_card_address_line1_check => extract(response, 'card', 'address_line1_check'),
45
+ :params_card_address_zip_check => extract(response, 'card', 'address_zip_check'),
46
+ :params_captured => extract(response, 'captured'),
47
+ :params_refunds => extract(response, 'refunds'),
48
+ :params_balance_transaction => extract(response, 'balance_transaction'),
49
+ :params_failure_message => extract(response, 'failure_message'),
50
+ :params_failure_code => extract(response, 'failure_code'),
51
+ :params_amount_refunded => extract(response, 'amount_refunded'),
52
+ :params_customer => extract(response, 'customer'),
53
+ :params_email => extract(response, 'email'),
54
+ :params_delinquent => extract(response, 'delinquent'),
55
+ :params_subscription => extract(response, 'subscription'),
56
+ :params_discount => extract(response, 'discount'),
57
+ :params_account_balance => extract(response, 'account_balance'),
58
+ :params_cards => extract(response, 'cards'),
59
+ :params_invoice => extract(response, 'invoice'),
60
+ :params_description => extract(response, 'description'),
61
+ :params_dispute => extract(response, 'dispute'),
62
+ :params_metadata => extract(response, 'metadata'),
63
+ :params_error_type => extract(response, 'error', 'type'),
64
+ :params_error_message => extract(response, 'error', 'message')
65
+ }.merge!(extra_params),
66
+ model)
67
+ end
68
+
69
+ def self.search_where_clause(t, search_key)
70
+ where_clause = t[:params_id].eq(search_key)
71
+ .or(t[:params_card_id].eq(search_key))
72
+
73
+ # Only search successful payments and refunds
74
+ where_clause = where_clause.and(t[:success].eq(true))
75
+
76
+ super.or(where_clause)
77
+ end
78
+ end
79
+ end
80
+ end
@@ -0,0 +1,11 @@
1
+ module Killbill #:nodoc:
2
+ module Stripe #:nodoc:
3
+ class StripeTransaction < ::Killbill::Plugin::ActiveMerchant::ActiveRecord::Transaction
4
+
5
+ self.table_name = 'stripe_transactions'
6
+
7
+ belongs_to :stripe_response
8
+
9
+ end
10
+ end
11
+ end
@@ -1,52 +1,34 @@
1
- module Killbill::Stripe
2
- class PrivatePaymentPlugin
3
- include Singleton
1
+ module Killbill #:nodoc:
2
+ module Stripe #:nodoc:
3
+ class PrivatePaymentPlugin < ::Killbill::Plugin::ActiveMerchant::PrivatePaymentPlugin
4
4
 
5
- def add_payment_method(params)
6
- stripe_customer_id = StripePaymentMethod.stripe_customer_id_from_kb_account_id(params[:kbAccountId])
5
+ def add_payment_method(params)
6
+ stripe_customer_id = StripePaymentMethod.stripe_customer_id_from_kb_account_id(params[:kbAccountId], params[:kbTenantId])
7
7
 
8
- # This will either update the current customer if present, or create a new one
9
- stripe_response = gateway.store params[:stripeToken], { :description => params[:kbAccountId], :customer => stripe_customer_id }
10
- response = save_response stripe_response, :add_payment_method
11
- raise response.message unless response.success
8
+ # This will either update the current customer if present, or create a new one
9
+ stripe_response = gateway.store params[:stripeToken], {:description => params[:kbAccountId], :customer => stripe_customer_id}
10
+ response = save_response stripe_response, :add_payment_method
11
+ raise response.message unless response.success
12
12
 
13
- # Create the payment method (not associated to a Kill Bill payment method yet)
14
- pm = Killbill::Stripe::StripePaymentMethod.create! :kb_account_id => params[:kbAccountId],
15
- :kb_payment_method_id => nil,
16
- :stripe_customer_id => stripe_customer_id,
17
- :stripe_token => params[:stripeToken],
18
- :cc_first_name => params[:stripeCardName],
19
- :cc_last_name => nil,
20
- :cc_type => params[:stripeCardType],
21
- :cc_exp_month => params[:stripeCardExpMonth],
22
- :cc_exp_year => params[:stripeCardExpYear],
23
- :cc_last_4 => params[:stripeCardLast4],
24
- :address1 => params[:stripeCardAddressLine1],
25
- :address2 => params[:stripeCardAddressLine2],
26
- :city => params[:stripeCardAddressCity],
27
- :state => params[:stripeCardAddressState],
28
- :zip => params[:stripeCardAddressZip],
29
- :country => params[:stripeCardAddressCountry] || params[:stripeCardCountry]
30
- pm
31
- end
32
-
33
- def save_response(stripe_response, api_call)
34
- logger.warn "Unsuccessful #{api_call}: #{stripe_response.message}" unless stripe_response.success?
35
-
36
- # Save the response to our logs
37
- response = StripeResponse.from_response(api_call, nil, stripe_response)
38
- response.save!
39
- response
40
- end
41
-
42
- def gateway
43
- # The gateway should have been configured when the plugin started
44
- Killbill::Stripe.gateway
45
- end
46
-
47
- def logger
48
- # The logger should have been configured when the plugin started
49
- Killbill::Stripe.logger
13
+ # Create the payment method (not associated to a Kill Bill payment method yet)
14
+ Killbill::Stripe::StripePaymentMethod.create! :kb_account_id => params[:kbAccountId],
15
+ :kb_payment_method_id => nil,
16
+ :kb_tenant_id => params[:kbTenantId],
17
+ :stripe_customer_id => stripe_customer_id,
18
+ :token => params[:stripeToken],
19
+ :cc_first_name => params[:stripeCardName],
20
+ :cc_last_name => nil,
21
+ :cc_type => params[:stripeCardType],
22
+ :cc_exp_month => params[:stripeCardExpMonth],
23
+ :cc_exp_year => params[:stripeCardExpYear],
24
+ :cc_last_4 => params[:stripeCardLast4],
25
+ :address1 => params[:stripeCardAddressLine1],
26
+ :address2 => params[:stripeCardAddressLine2],
27
+ :city => params[:stripeCardAddressCity],
28
+ :state => params[:stripeCardAddressState],
29
+ :zip => params[:stripeCardAddressZip],
30
+ :country => params[:stripeCardAddressCountry] || params[:stripeCardCountry]
31
+ end
50
32
  end
51
33
  end
52
34
  end
data/pom.xml CHANGED
@@ -1,8 +1,8 @@
1
1
  <?xml version="1.0" encoding="UTF-8"?>
2
2
  <!--
3
- ~ Copyright 2010-2013 Ning, Inc.
3
+ ~ Copyright 2014 The Billing Project, LLC
4
4
  ~
5
- ~ Ning licenses this file to you under the Apache License, version 2.0
5
+ ~ The Billing Project licenses this file to you under the Apache License, version 2.0
6
6
  ~ (the "License"); you may not use this file except in compliance with the
7
7
  ~ License. You may obtain a copy of the License at:
8
8
  ~
@@ -25,7 +25,7 @@
25
25
  <groupId>org.kill-bill.billing.plugin.ruby</groupId>
26
26
  <artifactId>stripe-plugin</artifactId>
27
27
  <packaging>pom</packaging>
28
- <version>0.1.0</version>
28
+ <version>0.2.0</version>
29
29
  <name>stripe-plugin</name>
30
30
  <url>http://github.com/killbill/killbill-stripe-plugin</url>
31
31
  <description>Plugin for accessing Stripe as a payment gateway</description>
data/release.sh CHANGED
@@ -1,31 +1,31 @@
1
1
  set -e
2
2
 
3
- if [ "GNU" != "$(tar --help | grep GNU | head -1 | awk '{print $1}')" ]; then
4
- echo "Unable to release: make sure to use GNU tar"
3
+ if [ 'GNU' != "$(tar --help | grep GNU | head -1 | awk '{print $1}')" ]; then
4
+ echo 'Unable to release: make sure to use GNU tar'
5
5
  exit 1
6
6
  fi
7
7
 
8
8
  if $(ruby -e'require "java"'); then
9
9
  # Good
10
- echo "Detected JRuby"
10
+ echo 'Detected JRuby'
11
11
  else
12
- echo "Unable to release: make sure to use JRuby"
12
+ echo 'Unable to release: make sure to use JRuby'
13
13
  exit 1
14
14
  fi
15
15
 
16
16
  VERSION=`grep -E '<version>([0-9]+\.[0-9]+\.[0-9]+)</version>' pom.xml | sed 's/[\t \n]*<version>\(.*\)<\/version>[\t \n]*/\1/'`
17
17
  if [ "$VERSION" != "$(cat $PWD/VERSION)" ]; then
18
- echo "Unable to release: make sure the versions in pom.xml and VERSION match"
18
+ echo 'Unable to release: make sure the versions in pom.xml and VERSION match'
19
19
  exit 1
20
20
  fi
21
21
 
22
- echo "Cleaning up"
22
+ echo 'Cleaning up'
23
23
  rake killbill:clean ; rake build
24
24
 
25
- echo "Pushing the gem to Rubygems"
25
+ echo 'Pushing the gem to Rubygems'
26
26
  rake release
27
27
 
28
- echo "Building artifact"
28
+ echo 'Building artifact'
29
29
  rake killbill:package
30
30
 
31
31
  ARTIFACT="$PWD/pkg/killbill-stripe-$VERSION.tar.gz"
data/spec/spec_helper.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  require 'bundler'
2
2
  require 'stripe'
3
+ require 'killbill/helpers/active_merchant/killbill_spec_helper'
3
4
 
4
5
  require 'logger'
5
6
 
@@ -13,25 +14,11 @@ end
13
14
 
14
15
  require 'active_record'
15
16
  ActiveRecord::Base.establish_connection(
16
- :adapter => 'sqlite3',
17
- :database => 'test.db'
17
+ :adapter => 'sqlite3',
18
+ :database => 'test.db'
18
19
  )
19
20
  # For debugging
20
21
  #ActiveRecord::Base.logger = Logger.new(STDOUT)
21
22
  # Create the schema
22
23
  require File.expand_path(File.dirname(__FILE__) + '../../db/schema.rb')
23
24
 
24
- begin
25
- require 'securerandom'
26
- SecureRandom.uuid
27
- rescue LoadError, NoMethodError
28
- # See http://jira.codehaus.org/browse/JRUBY-6176
29
- module SecureRandom
30
- def self.uuid
31
- ary = self.random_bytes(16).unpack("NnnnnN")
32
- ary[2] = (ary[2] & 0x0fff) | 0x4000
33
- ary[3] = (ary[3] & 0x3fff) | 0x8000
34
- "%08x-%04x-%04x-%04x-%04x%08x" % ary
35
- end unless respond_to?(:uuid)
36
- end
37
- end
@@ -14,10 +14,12 @@ describe Killbill::Stripe::PaymentPlugin do
14
14
  eos
15
15
  file.close
16
16
 
17
- @plugin = Killbill::Stripe::PaymentPlugin.new
18
- @plugin.logger = Logger.new(STDOUT)
17
+ @plugin = Killbill::Stripe::PaymentPlugin.new
18
+ @plugin.logger = Logger.new(STDOUT)
19
19
  @plugin.logger.level = Logger::INFO
20
- @plugin.conf_dir = File.dirname(file)
20
+ @plugin.conf_dir = File.dirname(file)
21
+ @account_api = ::Killbill::Plugin::ActiveMerchant::RSpec::FakeJavaUserAccountApi.new
22
+ @plugin.kb_apis = Killbill::Plugin::KillbillApi.new('stripe', {})
21
23
 
22
24
  # Start the plugin here - since the config file will be deleted
23
25
  @plugin.start_plugin
@@ -30,15 +32,18 @@ describe Killbill::Stripe::PaymentPlugin do
30
32
 
31
33
  it 'should reset payment methods' do
32
34
  kb_account_id = '129384'
35
+ kb_tenant_id = '092384'
36
+ context = @plugin.kb_apis.create_context(kb_tenant_id)
33
37
 
34
- @plugin.get_payment_methods(kb_account_id).size.should == 0
35
- verify_pms kb_account_id, 0
38
+ @plugin.get_payment_methods(kb_account_id, false, [], context).size.should == 0
39
+ verify_pms kb_account_id, 0, context
36
40
 
37
41
  # Create a pm with a kb_payment_method_id
38
- Killbill::Stripe::StripePaymentMethod.create :kb_account_id => kb_account_id,
42
+ Killbill::Stripe::StripePaymentMethod.create :kb_account_id => kb_account_id,
43
+ :kb_tenant_id => kb_tenant_id,
39
44
  :kb_payment_method_id => 'kb-1',
40
- :stripe_card_id_or_token => 'stripe-1'
41
- verify_pms kb_account_id, 1
45
+ :token => 'stripe-1'
46
+ verify_pms kb_account_id, 1, context
42
47
 
43
48
  # Add some in KillBill and reset
44
49
  payment_methods = []
@@ -46,26 +51,27 @@ describe Killbill::Stripe::PaymentPlugin do
46
51
  payment_methods << create_pm_info_plugin(kb_account_id, 'kb-3', false, 'stripe-3')
47
52
  payment_methods << create_pm_info_plugin(kb_account_id, 'kb-2', false, 'stripe-2')
48
53
  payment_methods << create_pm_info_plugin(kb_account_id, 'kb-4', false, 'stripe-4')
49
- @plugin.reset_payment_methods kb_account_id, payment_methods
50
- verify_pms kb_account_id, 4
54
+ @plugin.reset_payment_methods kb_account_id, payment_methods, [], context
55
+ verify_pms kb_account_id, 4, context
51
56
 
52
57
  # Add a payment method without a kb_payment_method_id
53
58
  Killbill::Stripe::StripePaymentMethod.create :kb_account_id => kb_account_id,
54
- :stripe_card_id_or_token => 'stripe-5'
55
- @plugin.get_payment_methods(kb_account_id).size.should == 5
59
+ :kb_tenant_id => kb_tenant_id,
60
+ :token => 'stripe-5'
61
+ @plugin.get_payment_methods(kb_account_id, false, nil, context).size.should == 5
56
62
 
57
63
  # Verify we can match it
58
64
  payment_methods << create_pm_info_plugin(kb_account_id, 'kb-5', false, 'stripe-5')
59
- @plugin.reset_payment_methods kb_account_id, payment_methods
60
- verify_pms kb_account_id, 5
65
+ @plugin.reset_payment_methods kb_account_id, payment_methods, [], context
66
+ verify_pms kb_account_id, 5, context
61
67
 
62
68
  @plugin.stop_plugin
63
69
  end
64
70
 
65
71
  private
66
72
 
67
- def verify_pms(kb_account_id, size)
68
- pms = @plugin.get_payment_methods(kb_account_id)
73
+ def verify_pms(kb_account_id, size, context)
74
+ pms = @plugin.get_payment_methods(kb_account_id, false, [], context)
69
75
  pms.size.should == size
70
76
  pms.each do |pm|
71
77
  pm.account_id.should == kb_account_id
@@ -75,10 +81,10 @@ describe Killbill::Stripe::PaymentPlugin do
75
81
  end
76
82
 
77
83
  def create_pm_info_plugin(kb_account_id, kb_payment_method_id, is_default, external_payment_method_id)
78
- pm_info_plugin = Killbill::Plugin::Model::PaymentMethodInfoPlugin.new
79
- pm_info_plugin.account_id = kb_account_id
80
- pm_info_plugin.payment_method_id = kb_payment_method_id
81
- pm_info_plugin.is_default = is_default
84
+ pm_info_plugin = Killbill::Plugin::Model::PaymentMethodInfoPlugin.new
85
+ pm_info_plugin.account_id = kb_account_id
86
+ pm_info_plugin.payment_method_id = kb_payment_method_id
87
+ pm_info_plugin.is_default = is_default
82
88
  pm_info_plugin.external_payment_method_id = external_payment_method_id
83
89
  pm_info_plugin
84
90
  end