stripe-ruby-mock 1.8.3.5 → 1.8.3.6

Sign up to get free protection for your applications and to get access to all the features.
@@ -25,6 +25,10 @@ module StripeMock
25
25
  private
26
26
 
27
27
  def self.redirect_to_mock_server(method, url, api_key, params={}, headers={})
28
+ if @remote_state_pending_error
29
+ raise @remote_state_pending_error
30
+ @remote_state_pending_error = nil
31
+ end
28
32
  Stripe::Util.symbolize_names @client.mock_request(method, url, api_key, params, headers)
29
33
  end
30
34
 
@@ -1,8 +1,13 @@
1
1
  module StripeMock
2
2
 
3
3
  def self.prepare_error(stripe_error)
4
- raise UninitializedInstanceError if instance.nil?
5
- instance.pending_error = stripe_error
4
+ if @state == 'local'
5
+ instance.pending_error = stripe_error
6
+ elsif @state == 'remote'
7
+ @remote_state_pending_error = stripe_error
8
+ else
9
+ raise UnstartedStateError
10
+ end
6
11
  end
7
12
 
8
13
  def self.prepare_card_error(code)
@@ -16,7 +16,12 @@ module StripeMock
16
16
  end
17
17
 
18
18
  def get_server_data(key)
19
- timeout_wrap { @pipe.get_data(key) }
19
+ timeout_wrap {
20
+ # Massage the data make this behave the same as the local StripeMock.start
21
+ result = {}
22
+ @pipe.get_data(key).each {|k,v| result[k] = Stripe::Util.symbolize_names(v) }
23
+ result
24
+ }
20
25
  end
21
26
 
22
27
  def set_server_debug(toggle)
@@ -0,0 +1,9 @@
1
+ module StripeMock
2
+ class UnstartedStateError < StripeMockError
3
+
4
+ def initialize
5
+ super("StripeMock has not been started. Please call StripeMock.start or StripeMock.start_client")
6
+ end
7
+
8
+ end
9
+ end
@@ -1,4 +1,4 @@
1
1
  module StripeMock
2
2
  # stripe-ruby-mock version
3
- VERSION = "1.8.3.5"
3
+ VERSION = "1.8.3.6"
4
4
  end
data/lib/stripe_mock.rb CHANGED
@@ -9,6 +9,7 @@ require 'stripe_mock/data'
9
9
 
10
10
  require 'stripe_mock/errors/stripe_mock_error'
11
11
  require 'stripe_mock/errors/uninitialized_instance_error'
12
+ require 'stripe_mock/errors/unstarted_state_error'
12
13
  require 'stripe_mock/errors/server_timeout_error'
13
14
  require 'stripe_mock/errors/closed_client_connection_error'
14
15
 
@@ -1,7 +1,12 @@
1
1
  require 'spec_helper'
2
+ require_stripe_examples
2
3
 
3
4
  describe StripeMock::Instance do
4
5
 
6
+ it_behaves_like_stripe do
7
+ def test_data_source(type); StripeMock.instance.send(type); end
8
+ end
9
+
5
10
  before { StripeMock.start }
6
11
  after { StripeMock.stop }
7
12
 
data/spec/server_spec.rb CHANGED
@@ -1,7 +1,12 @@
1
1
  require 'spec_helper'
2
+ require_stripe_examples
2
3
 
3
4
  describe 'StripeMock Server' do
4
5
 
6
+ it_behaves_like_stripe do
7
+ def test_data_source(type); StripeMock.client.get_server_data(type); end
8
+ end
9
+
5
10
  before(:all) do
6
11
  StripeMock.spawn_server
7
12
  end
@@ -37,14 +42,14 @@ describe 'StripeMock Server' do
37
42
 
38
43
  server_customer_data = StripeMock.client.get_server_data(:customers)[customer.id]
39
44
  expect(server_customer_data).to_not be_nil
40
- expect(server_customer_data['email']).to eq('johnny@appleseed.com')
45
+ expect(server_customer_data[:email]).to eq('johnny@appleseed.com')
41
46
 
42
47
  StripeMock.stop_client
43
48
  StripeMock.start_client
44
49
 
45
50
  server_customer_data = StripeMock.client.get_server_data(:customers)[customer.id]
46
51
  expect(server_customer_data).to_not be_nil
47
- expect(server_customer_data['email']).to eq('johnny@appleseed.com')
52
+ expect(server_customer_data[:email]).to eq('johnny@appleseed.com')
48
53
  end
49
54
 
50
55
 
@@ -1,9 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe 'Charge API' do
4
-
5
- before { StripeMock.start }
6
- after { StripeMock.stop }
3
+ shared_examples 'Charge API' do
7
4
 
8
5
  it "creates a stripe charge item with a card token" do
9
6
  charge = Stripe::Charge.create(
@@ -30,7 +27,7 @@ describe 'Charge API' do
30
27
  currency: 'USD',
31
28
  card: 'card_token_777'
32
29
  })
33
- data = StripeMock.instance.charges
30
+ data = test_data_source(:charges)
34
31
  expect(data[charge.id]).to_not be_nil
35
32
  expect(data[charge.id][:amount]).to eq(333)
36
33
 
@@ -1,9 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe 'Customer API' do
4
-
5
- before { StripeMock.start }
6
- after { StripeMock.stop }
3
+ shared_examples 'Customer API' do
7
4
 
8
5
  it "creates a stripe customer" do
9
6
  customer = Stripe::Customer.create({
@@ -25,7 +22,7 @@ describe 'Customer API' do
25
22
  email: 'bob@bobbers.com',
26
23
  card: 'another_card_token'
27
24
  })
28
- data = StripeMock.instance.customers
25
+ data = test_data_source(:customers)
29
26
  expect(data[customer.id]).to_not be_nil
30
27
  expect(data[customer.id][:email]).to eq('johnny@appleseed.com')
31
28
 
@@ -9,10 +9,7 @@ def expect_card_error(code, param)
9
9
  }
10
10
  end
11
11
 
12
- describe 'Stripe Error Mocking' do
13
-
14
- before { StripeMock.start }
15
- after { StripeMock.stop }
12
+ shared_examples 'Stripe Error Mocking' do
16
13
 
17
14
  it "mocks a manually gives stripe card error" do
18
15
 
@@ -1,9 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe 'Invoice Item API' do
4
-
5
- before { StripeMock.start }
6
- after { StripeMock.stop }
3
+ shared_examples 'Invoice Item API' do
7
4
 
8
5
  it "creates a stripe invoice item" do
9
6
  invoice_item = Stripe::InvoiceItem.create({
@@ -1,9 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe 'Plan API' do
4
-
5
- before { StripeMock.start }
6
- after { StripeMock.stop }
3
+ shared_examples 'Plan API' do
7
4
 
8
5
  it "creates a stripe plan" do
9
6
  plan = Stripe::Plan.create(
@@ -40,7 +37,7 @@ describe 'Plan API' do
40
37
  :currency => 'USD',
41
38
  :interval => 1
42
39
  )
43
- data = StripeMock.instance.plans
40
+ data = test_data_source(:plans)
44
41
  expect(data[plan.id]).to_not be_nil
45
42
  expect(data[plan.id][:amount]).to eq(1100)
46
43
 
data/spec/spec_helper.rb CHANGED
@@ -3,3 +3,7 @@ require 'rspec'
3
3
  require 'stripe'
4
4
  require 'stripe_mock'
5
5
  require 'stripe_mock/server'
6
+
7
+ # Requires supporting ruby files with custom matchers and macros, etc,
8
+ # in spec/support/ and its subdirectories.
9
+ Dir["./spec/support/**/*.rb"].each {|f| require f}
@@ -29,11 +29,11 @@ describe StripeMock do
29
29
 
30
30
  it "throws an error when trying to prepare an error before starting" do
31
31
  expect { StripeMock.prepare_error(StandardError.new) }.to raise_error {|e|
32
- expect(e).to be_a(StripeMock::UninitializedInstanceError)
32
+ expect(e).to be_a(StripeMock::UnstartedStateError)
33
33
  }
34
34
 
35
35
  expect { StripeMock.prepare_card_error(:card_declined) }.to raise_error {|e|
36
- expect(e).to be_a(StripeMock::UninitializedInstanceError)
36
+ expect(e).to be_a(StripeMock::UnstartedStateError)
37
37
  }
38
38
  end
39
39
 
@@ -0,0 +1,16 @@
1
+
2
+ def require_stripe_examples
3
+ require 'shared_stripe_examples/charges'
4
+ require 'shared_stripe_examples/customers'
5
+ require 'shared_stripe_examples/error_mocks'
6
+ require 'shared_stripe_examples/invoice_items'
7
+ require 'shared_stripe_examples/plans'
8
+ end
9
+
10
+ def it_behaves_like_stripe(&block)
11
+ it_behaves_like 'Charge API', &block
12
+ it_behaves_like 'Customer API', &block
13
+ it_behaves_like 'Invoice Item API', &block
14
+ it_behaves_like 'Plan API', &block
15
+ it_behaves_like 'Stripe Error Mocking', &block
16
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: stripe-ruby-mock
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.8.3.5
4
+ version: 1.8.3.6
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-06-13 00:00:00.000000000 Z
12
+ date: 2013-06-17 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: stripe
@@ -116,6 +116,7 @@ files:
116
116
  - lib/stripe_mock/errors/server_timeout_error.rb
117
117
  - lib/stripe_mock/errors/stripe_mock_error.rb
118
118
  - lib/stripe_mock/errors/uninitialized_instance_error.rb
119
+ - lib/stripe_mock/errors/unstarted_state_error.rb
119
120
  - lib/stripe_mock/instance.rb
120
121
  - lib/stripe_mock/request_handlers/charges.rb
121
122
  - lib/stripe_mock/request_handlers/customers.rb
@@ -127,14 +128,14 @@ files:
127
128
  - spec/instance_spec.rb
128
129
  - spec/readme_spec.rb
129
130
  - spec/server_spec.rb
131
+ - spec/shared_stripe_examples/charges.rb
132
+ - spec/shared_stripe_examples/customers.rb
133
+ - spec/shared_stripe_examples/error_mocks.rb
134
+ - spec/shared_stripe_examples/invoice_items.rb
135
+ - spec/shared_stripe_examples/plans.rb
130
136
  - spec/spec_helper.rb
131
- - spec/stripe/charge_spec.rb
132
- - spec/stripe/customer_spec.rb
133
- - spec/stripe/error_mock_spec.rb
134
- - spec/stripe/invoice_item_spec.rb
135
- - spec/stripe/plan_spec.rb
136
137
  - spec/stripe_mock_spec.rb
137
- - spec/support/server_daemon.rb
138
+ - spec/support/stripe_examples.rb
138
139
  - stripe-ruby-mock.gemspec
139
140
  homepage: https://github.com/mindeavor/stripe-ruby-mock
140
141
  licenses:
@@ -165,11 +166,11 @@ test_files:
165
166
  - spec/instance_spec.rb
166
167
  - spec/readme_spec.rb
167
168
  - spec/server_spec.rb
169
+ - spec/shared_stripe_examples/charges.rb
170
+ - spec/shared_stripe_examples/customers.rb
171
+ - spec/shared_stripe_examples/error_mocks.rb
172
+ - spec/shared_stripe_examples/invoice_items.rb
173
+ - spec/shared_stripe_examples/plans.rb
168
174
  - spec/spec_helper.rb
169
- - spec/stripe/charge_spec.rb
170
- - spec/stripe/customer_spec.rb
171
- - spec/stripe/error_mock_spec.rb
172
- - spec/stripe/invoice_item_spec.rb
173
- - spec/stripe/plan_spec.rb
174
175
  - spec/stripe_mock_spec.rb
175
- - spec/support/server_daemon.rb
176
+ - spec/support/stripe_examples.rb
File without changes