Class: StripeMock::Instance

Constant Summary collapse

@@handlers =

Handlers are ordered by priority

[]

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods included from RequestHandlers::Tokens

#create_token, #get_token, included

Methods included from RequestHandlers::Transfers

#cancel_transfer, #get_all_transfers, #get_transfer, included, #new_transfer

Methods included from RequestHandlers::Recipients

#get_recipient, included, #new_recipient, #update_recipient

Methods included from RequestHandlers::Plans

#delete_plan, #get_plan, included, #list_plans, #new_plan, #update_plan

Methods included from RequestHandlers::InvoiceItems

#delete_invoice_item, #get_invoice_item, included, #list_invoice_items, #new_invoice_item, #update_invoice_item

Methods included from RequestHandlers::Invoices

#get_invoice, #get_invoice_line_items, included, #list_invoices, #new_invoice, #pay_invoice, #upcoming_invoice, #update_invoice

Methods included from RequestHandlers::Events

included, #retrieve_event

Methods included from RequestHandlers::Coupons

#delete_coupon, #get_coupon, included, #list_coupons, #new_coupon

Methods included from RequestHandlers::Customers

#delete_customer, #get_customer, included, #list_customers, #new_customer, #update_customer

Methods included from RequestHandlers::Subscriptions

#cancel_subscription, #create_subscription, included, #retrieve_subscription, #retrieve_subscriptions, #update_subscription

Methods included from RequestHandlers::Sources

#create_source, #delete_source, included, #retrieve_source, #retrieve_sources, #update_source

Methods included from RequestHandlers::Cards

#create_recipient_card, #delete_recipient_card, included, #retrieve_recipient_card, #retrieve_recipient_cards

Methods included from RequestHandlers::Charges

#capture_charge, #create_refund, #get_charge, #get_charges, included, #new_charge, #refund_charge, #update_charge

Methods included from RequestHandlers::Accounts

#get_account, included, #list_accounts, #new_account, #update_account

Methods included from RequestHandlers::ParamValidators

#validate_create_plan_params

Methods included from RequestHandlers::Helpers

#add_card_to, #add_card_to_object, #add_coupon_to_customer, #add_refund_to_charge, #add_subscription_to_customer, #card_from_params, #custom_subscription_params, #delete_card_from, #delete_subscription_from_customer, #generate_bank_token, #generate_card_token, #get_bank_by_token, #get_card, #get_card_by_token, #get_customer_subscription, #get_ending_time, #retrieve_object_cards, #validate_card, #verify_trial_end

Constructor Details

#initializeInstance

Returns a new instance of Instance.



42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# File 'lib/stripe_mock/instance.rb', line 42

def initialize
  @accounts = {}
  @bank_tokens = {}
  @card_tokens = {}
  @customers = {}
  @charges = {}
  @coupons = {}
  @events = {}
  @invoices = {}
  @invoice_items = {}
  @plans = {}
  @recipients = {}
  @transfers = {}
  @subscriptions = {}

  @debug = false
  @error_queue = ErrorQueue.new
  @id_counter = 0
  @balance_transaction_counter = 0

  # This is basically a cache for ParamValidators
  @base_strategy = TestStrategies::Base.new
end

Instance Attribute Details

#accountsObject (readonly)

Returns the value of attribute accounts.



37
38
39
# File 'lib/stripe_mock/instance.rb', line 37

def accounts
  @accounts
end

#bank_tokensObject (readonly)

Returns the value of attribute bank_tokens.



37
38
39
# File 'lib/stripe_mock/instance.rb', line 37

def bank_tokens
  @bank_tokens
end

#chargesObject (readonly)

Returns the value of attribute charges.



37
38
39
# File 'lib/stripe_mock/instance.rb', line 37

def charges
  @charges
end

#couponsObject (readonly)

Returns the value of attribute coupons.



37
38
39
# File 'lib/stripe_mock/instance.rb', line 37

def coupons
  @coupons
end

#customersObject (readonly)

Returns the value of attribute customers.



37
38
39
# File 'lib/stripe_mock/instance.rb', line 37

def customers
  @customers
end

#debugObject

Returns the value of attribute debug.



40
41
42
# File 'lib/stripe_mock/instance.rb', line 40

def debug
  @debug
end

#error_queueObject

Returns the value of attribute error_queue.



40
41
42
# File 'lib/stripe_mock/instance.rb', line 40

def error_queue
  @error_queue
end

#eventsObject (readonly)

Returns the value of attribute events.



37
38
39
# File 'lib/stripe_mock/instance.rb', line 37

def events
  @events
end

#invoice_itemsObject (readonly)

Returns the value of attribute invoice_items.



37
38
39
# File 'lib/stripe_mock/instance.rb', line 37

def invoice_items
  @invoice_items
end

#invoicesObject (readonly)

Returns the value of attribute invoices.



37
38
39
# File 'lib/stripe_mock/instance.rb', line 37

def invoices
  @invoices
end

#plansObject (readonly)

Returns the value of attribute plans.



37
38
39
# File 'lib/stripe_mock/instance.rb', line 37

def plans
  @plans
end

#recipientsObject (readonly)

Returns the value of attribute recipients.



37
38
39
# File 'lib/stripe_mock/instance.rb', line 37

def recipients
  @recipients
end

#subscriptionsObject (readonly)

Returns the value of attribute subscriptions.



37
38
39
# File 'lib/stripe_mock/instance.rb', line 37

def subscriptions
  @subscriptions
end

#transfersObject (readonly)

Returns the value of attribute transfers.



37
38
39
# File 'lib/stripe_mock/instance.rb', line 37

def transfers
  @transfers
end

Class Method Details

.add_handler(route, name) ⇒ Object



10
11
12
13
14
15
# File 'lib/stripe_mock/instance.rb', line 10

def self.add_handler(route, name)
  @@handlers << {
    :route => %r{^#{route}$},
    :name => name
  }
end

.handler_for_method_url(method_url) ⇒ Object



17
18
19
# File 'lib/stripe_mock/instance.rb', line 17

def self.handler_for_method_url(method_url)
  @@handlers.find {|h| method_url =~ h[:route] }
end

Instance Method Details

#generate_webhook_event(event_data) ⇒ Object



98
99
100
101
# File 'lib/stripe_mock/instance.rb', line 98

def generate_webhook_event(event_data)
  event_data[:id] ||= new_id 'evt'
  @events[ event_data[:id] ] = symbolize_names(event_data)
end

#mock_request(method, url, api_key, params = {}, headers = {}, api_base_url = nil) ⇒ Object



66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
# File 'lib/stripe_mock/instance.rb', line 66

def mock_request(method, url, api_key, params={}, headers={}, api_base_url=nil)
  return {} if method == :xtest

  api_key ||= Stripe.api_key

  # Ensure params hash has symbols as keys
  params = Stripe::Util.symbolize_names(params)

  method_url = "#{method} #{url}"

  if handler = Instance.handler_for_method_url(method_url)
    if @debug == true
      puts "- - - - " * 8
      puts "[StripeMock req]::#{handler[:name]} #{method} #{url}"
      puts "                  #{params}"
    end

    if mock_error = @error_queue.error_for_handler_name(handler[:name])
      @error_queue.dequeue
      raise mock_error
    else
      res = self.send(handler[:name], handler[:route], method_url, params, headers)
      puts "           [res]  #{res}" if @debug == true
      [res, api_key]
    end
  else
    puts "[StripeMock] Warning : Unrecognized endpoint + method : [#{method} #{url}]"
    puts "[StripeMock] params: #{params}" unless params.empty?
    [{}, api_key]
  end
end