stripe-ruby-mock 2.2.3 → 2.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: bba43dc6fa6783116ffe44184f71d0dfde22dfd7
4
- data.tar.gz: 3edc82d06fc617bc52edc782c78f5f88add7c032
3
+ metadata.gz: 907a296926746f9f85a5971db9272ffe4c7cd8e7
4
+ data.tar.gz: 41deab127c933031f4e08fe4b54d0e62b5268cdb
5
5
  SHA512:
6
- metadata.gz: 98260ded2e2586fae954ccb8c5a27c42e408a6d9493b40175576aa39638648f4a0fc18054c2284c37efdbf231fd27adcd75aa9d9a2e9cf9e7131452e3b9a0d12
7
- data.tar.gz: 6ae328b0864be28dc176b5b318c60a85c54528d1a8a123beb44332d390915455fda8b432bc6b6072397abf044a15f70592b4fb41c8c2f600f4f287d87cdf8d2f
6
+ metadata.gz: 55104b30501886b7a11efbef32fb28eb1c5eb2c2d130bd9370e532f2ef417ee9a4338e0a08d1993f6bc62fe1a659ac7596aa51ff7a851c225b1054d228cd1b61
7
+ data.tar.gz: 430679dd30c713bd45a8ae8831c855862848706c01f46c871e66a2ae3e906a85944f11179dc596d6d729705287193ecb9146cc960636f4bf69434faf06794914
data/README.md CHANGED
@@ -12,7 +12,7 @@ This gem has unexpectedly grown in popularity and I've gotten pretty busy, so I'
12
12
 
13
13
  In your gemfile:
14
14
 
15
- gem 'stripe-ruby-mock', '~> 2.2.3', :require => 'stripe_mock'
15
+ gem 'stripe-ruby-mock', '~> 2.2.4', :require => 'stripe_mock'
16
16
 
17
17
  ## Features
18
18
 
@@ -235,9 +235,13 @@ module StripeMock
235
235
  object: "bank_account",
236
236
  bank_name: "STRIPEMOCK TEST BANK",
237
237
  last4: "6789",
238
+ routing_number: '110000000',
238
239
  country: "US",
239
240
  currency: "usd",
240
241
  validated: false,
242
+ status: 'new',
243
+ account_holder_name: 'John Doe',
244
+ account_holder_type: 'individual',
241
245
  fingerprint: "aBcFinGerPrINt123"
242
246
  }.merge(params)
243
247
  end
@@ -487,7 +491,7 @@ module StripeMock
487
491
  }
488
492
  end
489
493
 
490
- def self.mock_token(params={})
494
+ def self.mock_card_token(params={})
491
495
  {
492
496
  :id => 'tok_default',
493
497
  :livemode => false,
@@ -517,6 +521,22 @@ module StripeMock
517
521
  }.merge(params)
518
522
  end
519
523
 
524
+ def self.mock_bank_account_token(params={})
525
+ {
526
+ :id => 'tok_default',
527
+ :livemode => false,
528
+ :used => false,
529
+ :object => 'token',
530
+ :type => 'bank_account',
531
+ :bank_account => {
532
+ :id => 'bank_account_default',
533
+ :object => 'bank_account',
534
+ :last4 => '2222',
535
+ :fingerprint => 'JRRLXGh38NiYygM7',
536
+ }
537
+ }.merge(params)
538
+ end
539
+
520
540
  def self.mock_transfer(params={})
521
541
  id = params[:id] || 'tr_test_transfer'
522
542
  {
@@ -22,7 +22,7 @@ module StripeMock
22
22
  end
23
23
  card_from_params(params[:source])
24
24
  else
25
- get_card_by_token(params.delete(:source))
25
+ get_card_or_bank_by_token(params.delete(:source))
26
26
  end
27
27
  sources << new_card
28
28
  params[:default_source] = sources.first[:id]
@@ -71,9 +71,9 @@ module StripeMock
71
71
  end
72
72
  cus.merge!(params)
73
73
 
74
- if params[:source]
74
+ if params[:source]
75
75
  if params[:source].is_a?(String)
76
- new_card = get_card_by_token(params.delete(:source))
76
+ new_card = get_card_or_bank_by_token(params.delete(:source))
77
77
  elsif params[:source].is_a?(Hash)
78
78
  unless params[:source][:object] && params[:source][:number] && params[:source][:exp_month] && params[:source][:exp_year]
79
79
  raise Stripe::InvalidRequestError.new('You must supply a valid card', nil, 400)
@@ -0,0 +1,14 @@
1
+ module StripeMock
2
+ module RequestHandlers
3
+ module Helpers
4
+
5
+ def verify_bank_account(object, bank_account_id, class_name='Customer')
6
+ bank_accounts = object[:bank_accounts] || object[:sources]
7
+ bank_account = bank_accounts[:data].find{|acc| acc[:id] == bank_account_id }
8
+ return if bank_account.nil?
9
+ bank_account['status'] = 'verified'
10
+ bank_account
11
+ end
12
+ end
13
+ end
14
+ end
@@ -4,6 +4,7 @@ module StripeMock
4
4
 
5
5
  def generate_bank_token(bank_params)
6
6
  token = new_id 'btok'
7
+ bank_params[:id] = new_id 'bank_account'
7
8
  @bank_tokens[token] = Data.mock_bank_account bank_params
8
9
  token
9
10
  end
@@ -33,6 +34,10 @@ module StripeMock
33
34
  end
34
35
  end
35
36
 
37
+ def get_card_or_bank_by_token(token)
38
+ @card_tokens[token] || @bank_tokens[token] || raise(Stripe::InvalidRequestError.new("Invalid token id: #{token}", 'tok', 404))
39
+ end
40
+
36
41
  end
37
42
  end
38
- end
43
+ end
@@ -5,6 +5,7 @@ module StripeMock
5
5
  def Sources.included(klass)
6
6
  klass.add_handler 'get /v1/customers/(.*)/sources', :retrieve_sources
7
7
  klass.add_handler 'post /v1/customers/(.*)/sources', :create_source
8
+ klass.add_handler 'post /v1/customers/(.*)/sources/(.*)/verify', :verify_source
8
9
  klass.add_handler 'get /v1/customers/(.*)/sources/(.*)', :retrieve_source
9
10
  klass.add_handler 'delete /v1/customers/(.*)/sources/(.*)', :delete_source
10
11
  klass.add_handler 'post /v1/customers/(.*)/sources/(.*)', :update_source
@@ -41,6 +42,14 @@ module StripeMock
41
42
  card
42
43
  end
43
44
 
45
+ def verify_source(route, method_url, params, headers)
46
+ route =~ method_url
47
+ customer = assert_existence :customer, $1, customers[$1]
48
+
49
+ bank_account = assert_existence :bank_account, $2, verify_bank_account(customer, $2)
50
+ bank_account
51
+ end
52
+
44
53
  end
45
54
  end
46
55
  end
@@ -14,7 +14,7 @@ module StripeMock
14
14
  route =~ method_url
15
15
  customer = assert_existence :customer, $1, customers[$1]
16
16
 
17
- plan_id = params[:plan]
17
+ plan_id = params[:plan].to_s
18
18
  plan = assert_existence :plan, plan_id, plans[plan_id]
19
19
 
20
20
  if params[:source]
@@ -39,7 +39,7 @@ module StripeMock
39
39
  token_id = generate_card_token(customer_card)
40
40
  card = @card_tokens[token_id]
41
41
 
42
- Data.mock_token(params.merge :id => token_id, :card => card)
42
+ Data.mock_card_token(params.merge :id => token_id, :card => card)
43
43
  end
44
44
 
45
45
  def get_token(route, method_url, params, headers)
@@ -49,9 +49,9 @@ module StripeMock
49
49
  assert_existence :token, $1, bank_or_card
50
50
 
51
51
  if bank_or_card[:object] == 'card'
52
- Data.mock_token(:id => $1, :card => bank_or_card)
52
+ Data.mock_card_token(:id => $1, :card => bank_or_card)
53
53
  elsif bank_or_card[:object] == 'bank_account'
54
- Data.mock_token(:id => $1, :bank_account => bank_or_card)
54
+ Data.mock_bank_account_token(:id => $1, :bank_account => bank_or_card)
55
55
  end
56
56
  end
57
57
  end
@@ -1,4 +1,4 @@
1
1
  module StripeMock
2
2
  # stripe-ruby-mock version
3
- VERSION = "2.2.3"
3
+ VERSION = "2.2.4"
4
4
  end
data/lib/stripe_mock.rb CHANGED
@@ -34,6 +34,7 @@ require 'stripe_mock/api/live'
34
34
  require 'stripe_mock/api/test_helpers'
35
35
  require 'stripe_mock/api/webhooks'
36
36
 
37
+ require 'stripe_mock/request_handlers/helpers/bank_account_helpers.rb'
37
38
  require 'stripe_mock/request_handlers/helpers/card_helpers.rb'
38
39
  require 'stripe_mock/request_handlers/helpers/charge_helpers.rb'
39
40
  require 'stripe_mock/request_handlers/helpers/coupon_helpers.rb'
@@ -35,6 +35,23 @@ shared_examples 'Customer Subscriptions' do
35
35
  expect(customer.subscriptions.data.first.metadata.example).to eq( "yes" )
36
36
  end
37
37
 
38
+ it "adds a new subscription to customer (string/symbol agnostic)" do
39
+ customer = Stripe::Customer.create(source: gen_card_tk)
40
+ expect(customer.subscriptions.count).to eq(0)
41
+
42
+ plan = stripe_helper.create_plan(id: :silver, name: 'Silver Plan', amount: 4999, currency: 'usd')
43
+ sub = customer.subscriptions.create({ :plan => 'silver' })
44
+ customer = Stripe::Customer.retrieve(customer.id)
45
+ expect(sub.plan.to_hash).to eq(plan.to_hash)
46
+ expect(customer.subscriptions.count).to eq(1)
47
+
48
+ plan = stripe_helper.create_plan(id: 'gold', name: 'Gold Plan', amount: 14999, currency: 'usd')
49
+ sub = customer.subscriptions.create({ :plan => :gold })
50
+ customer = Stripe::Customer.retrieve(customer.id)
51
+ expect(sub.plan.to_hash).to eq(plan.to_hash)
52
+ expect(customer.subscriptions.count).to eq(2)
53
+ end
54
+
38
55
  it 'creates a charge for the customer', live: true do
39
56
  stripe_helper.create_plan(id: 'silver', name: 'Silver Plan', amount: 4999)
40
57
 
@@ -267,6 +284,7 @@ shared_examples 'Customer Subscriptions' do
267
284
  expect(e.message).to eq("Invalid timestamp: can be no more than five years in the future")
268
285
  }
269
286
  end
287
+
270
288
  end
271
289
 
272
290
  context "updating a subscription" do
@@ -17,7 +17,7 @@ Gem::Specification.new do |gem|
17
17
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
18
18
  gem.require_paths = ['lib']
19
19
 
20
- gem.add_dependency 'stripe', '>= 1.31.0'
20
+ gem.add_dependency 'stripe', ['>= 1.31.0', '< 1.42']
21
21
  gem.add_dependency 'jimson-temp'
22
22
  gem.add_dependency 'dante', '>= 0.2.0'
23
23
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: stripe-ruby-mock
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.3
4
+ version: 2.2.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gilbert
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-05-05 00:00:00.000000000 Z
11
+ date: 2016-05-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: stripe
@@ -17,6 +17,9 @@ dependencies:
17
17
  - - '>='
18
18
  - !ruby/object:Gem::Version
19
19
  version: 1.31.0
20
+ - - <
21
+ - !ruby/object:Gem::Version
22
+ version: '1.42'
20
23
  type: :runtime
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
@@ -24,6 +27,9 @@ dependencies:
24
27
  - - '>='
25
28
  - !ruby/object:Gem::Version
26
29
  version: 1.31.0
30
+ - - <
31
+ - !ruby/object:Gem::Version
32
+ version: '1.42'
27
33
  - !ruby/object:Gem::Dependency
28
34
  name: jimson-temp
29
35
  requirement: !ruby/object:Gem::Requirement
@@ -140,6 +146,7 @@ files:
140
146
  - lib/stripe_mock/request_handlers/customers.rb
141
147
  - lib/stripe_mock/request_handlers/disputes.rb
142
148
  - lib/stripe_mock/request_handlers/events.rb
149
+ - lib/stripe_mock/request_handlers/helpers/bank_account_helpers.rb
143
150
  - lib/stripe_mock/request_handlers/helpers/card_helpers.rb
144
151
  - lib/stripe_mock/request_handlers/helpers/charge_helpers.rb
145
152
  - lib/stripe_mock/request_handlers/helpers/coupon_helpers.rb