stripe-ruby-mock 1.8.7.2 → 1.8.7.3

Sign up to get free protection for your applications and to get access to all the features.
data/.travis.yml CHANGED
@@ -2,4 +2,7 @@ language: ruby
2
2
  rvm:
3
3
  - 1.9.3
4
4
  - 2.0.0
5
+ before_script:
6
+ - "sudo touch /var/log/stripe-mock-server.log"
7
+ - "sudo chown travis /var/log/stripe-mock-server.log"
5
8
  script: "bundle exec rake"
data/README.md CHANGED
@@ -7,7 +7,7 @@
7
7
 
8
8
  In your gemfile:
9
9
 
10
- gem 'stripe-ruby-mock', '>= 1.8.7.2'
10
+ gem 'stripe-ruby-mock', '>= 1.8.7.3'
11
11
 
12
12
  ## Features
13
13
 
@@ -1,6 +1,7 @@
1
1
  module StripeMock
2
2
 
3
3
  @default_pid_path = './stripe-mock-server.pid'
4
+ @default_log_path = './stripe-mock-server.log'
4
5
 
5
6
  def self.default_server_pid_path; @default_pid_path; end
6
7
  def self.default_server_pid_path=(new_path)
@@ -10,13 +11,18 @@ module StripeMock
10
11
 
11
12
  def self.spawn_server(opts={})
12
13
  pid_path = opts[:pid_path] || @default_pid_path
13
- Dante::Runner.new('stripe-mock-server').execute(:daemonize => true, :pid_path => pid_path) {
14
+ log_path = opts[:log_path] || @default_log_path
15
+
16
+ Dante::Runner.new('stripe-mock-server').execute(
17
+ :daemonize => true, :pid_path => pid_path, :log_path => log_path
18
+ ){
14
19
  StripeMock::Server.start_new(opts)
15
20
  }
16
21
  at_exit { kill_server(pid_path) }
17
22
  end
18
23
 
19
24
  def self.kill_server(pid_path=nil)
25
+ puts "Y WE KILL NO"
20
26
  path = pid_path || @default_pid_path
21
27
  Dante::Runner.new('stripe-mock-server').execute(:kill => true, :pid_path => path)
22
28
  end
@@ -7,7 +7,7 @@ module StripeMock
7
7
  @port = port
8
8
  @pipe = Jimson::Client.new("http://0.0.0.0:#{port}")
9
9
  # Ensure client can connect to server
10
- timeout_wrap { @pipe.ping }
10
+ timeout_wrap(5) { @pipe.ping }
11
11
  @state = 'ready'
12
12
  @error_queue = ErrorQueue.new
13
13
  end
@@ -75,13 +75,27 @@ module StripeMock
75
75
  @state = 'closed'
76
76
  end
77
77
 
78
- def timeout_wrap
79
- raise ClosedClientConnectionError if @state == 'closed'
80
- yield
81
- rescue ClosedClientConnectionError
82
- raise
83
- rescue Errno::ECONNREFUSED => e
84
- raise StripeMock::ServerTimeoutError.new(e)
78
+ def timeout_wrap(tries=1)
79
+ original_tries = tries
80
+ begin
81
+ raise ClosedClientConnectionError if @state == 'closed'
82
+ yield
83
+ rescue ClosedClientConnectionError
84
+ raise
85
+ rescue Errno::ECONNREFUSED => e
86
+ tries -= 1
87
+ if tries > 0
88
+ if tries == original_tries - 1
89
+ print "Waiting for StripeMock Server.."
90
+ else
91
+ print '.'
92
+ end
93
+ sleep 1
94
+ retry
95
+ else
96
+ raise StripeMock::ServerTimeoutError.new(e)
97
+ end
98
+ end
85
99
  end
86
100
  end
87
101
 
@@ -6,6 +6,7 @@ module StripeMock
6
6
  klass.add_handler 'post /v1/customers/(.*)/cards', :create_card
7
7
  klass.add_handler 'get /v1/customers/(.*)/cards/(.*)', :retrieve_card
8
8
  klass.add_handler 'delete /v1/customers/(.*)/cards/(.*)', :delete_card
9
+ klass.add_handler 'post /v1/customers/(.*)/cards/(.*)', :update_card
9
10
  end
10
11
 
11
12
  def create_card(route, method_url, params, headers)
@@ -42,6 +43,17 @@ module StripeMock
42
43
  card
43
44
  end
44
45
 
46
+ def update_card(route, method_url, params, headers)
47
+ route =~ method_url
48
+
49
+ customer = customers[$1]
50
+ assert_existance :customer, $1, customer
51
+ card = get_customer_card(customer, $2)
52
+ assert_existance :card, $2, card
53
+ card.merge!(params)
54
+ card
55
+ end
56
+
45
57
  private
46
58
 
47
59
  def validate_card(card)
@@ -6,6 +6,7 @@ module StripeMock
6
6
  extend Jimson::Handler
7
7
 
8
8
  def self.start_new(opts)
9
+ puts "Starting StripeMock server on port #{opts[:port] || 4999}"
9
10
  server = Jimson::Server.new(Server.new,
10
11
  :host => opts[:host] || '0.0.0.0',
11
12
  :port => opts[:port] || 4999,
@@ -1,4 +1,4 @@
1
1
  module StripeMock
2
2
  # stripe-ruby-mock version
3
- VERSION = "1.8.7.2"
3
+ VERSION = "1.8.7.3"
4
4
  end
data/spec/server_spec.rb CHANGED
@@ -11,11 +11,6 @@ describe 'StripeMock Server' do
11
11
  StripeMock.spawn_server
12
12
  end
13
13
 
14
- after(:all) do
15
- StripeMock.kill_server
16
- end
17
-
18
-
19
14
  before do
20
15
  @client = StripeMock.start_client
21
16
  end
@@ -71,4 +71,25 @@ shared_examples 'Card API' do
71
71
  it "updates the default card if deleted"
72
72
 
73
73
  end
74
+
75
+ context "update card" do
76
+ let!(:customer) { Stripe::Customer.create(id: 'test_customer_sub') }
77
+ let!(:card_token) { StripeMock.generate_card_token(last4: "1123", exp_month: 11, exp_year: 2099) }
78
+ let!(:card) { customer.cards.create(card: card_token) }
79
+
80
+ it "updates the card" do
81
+ exp_month = 10
82
+ exp_year = 2098
83
+
84
+ card.exp_month = exp_month
85
+ card.exp_year = exp_year
86
+ card.save
87
+
88
+ retrieved = customer.cards.retrieve(card.id)
89
+
90
+ expect(retrieved.exp_month).to eq(exp_month)
91
+ expect(retrieved.exp_year).to eq(exp_year)
92
+ end
93
+ end
94
+
74
95
  end
@@ -19,7 +19,7 @@ Gem::Specification.new do |gem|
19
19
 
20
20
  gem.add_dependency 'stripe', '>= 1.8.4'
21
21
  gem.add_dependency 'jimson-temp'
22
- gem.add_dependency 'dante', '>= 0.1.5'
22
+ gem.add_dependency 'dante', '>= 0.2.0'
23
23
 
24
24
  gem.add_development_dependency 'rspec', '~> 2.4'
25
25
  gem.add_development_dependency 'rubygems-tasks', '~> 0.2'
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.7.2
4
+ version: 1.8.7.3
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-12-09 00:00:00.000000000 Z
12
+ date: 2013-12-23 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: stripe
@@ -50,7 +50,7 @@ dependencies:
50
50
  requirements:
51
51
  - - ! '>='
52
52
  - !ruby/object:Gem::Version
53
- version: 0.1.5
53
+ version: 0.2.0
54
54
  type: :runtime
55
55
  prerelease: false
56
56
  version_requirements: !ruby/object:Gem::Requirement
@@ -58,7 +58,7 @@ dependencies:
58
58
  requirements:
59
59
  - - ! '>='
60
60
  - !ruby/object:Gem::Version
61
- version: 0.1.5
61
+ version: 0.2.0
62
62
  - !ruby/object:Gem::Dependency
63
63
  name: rspec
64
64
  requirement: !ruby/object:Gem::Requirement