rspec-rails-mocha 0.3.0 → 0.3.1

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.
@@ -3,13 +3,28 @@ rspec-rails Mocha extension
3
3
 
4
4
  Functionality of `mock_model` and `stub_model` from rspec-rails for those using Mocha.
5
5
 
6
- Installation:
6
+ Installation for **Rails 3** (rspec-rails v2.6 and above):
7
7
 
8
8
  # Gemfile
9
+ group :development, :test do
10
+ gem 'rspec-rails', '~> 2.4'
11
+ end
12
+
9
13
  group :test do
10
- gem 'rspec-rails-mocha'
14
+ gem 'rspec-rails-mocha', '~> 0.3.1', :require => false
11
15
  end
12
16
 
17
+ # spec/spec_helper.rb
18
+ require 'rspec/rails'
19
+ require 'rspec/rails/mocha'
20
+
21
+ For **Rails 2** (rspec-rails v1.3.x), use the '0.2.x' branch:
22
+
23
+ gem 'rspec-rails-mocha', '~> 0.2.1'
24
+
25
+ Then, for any version of Rails, ensure that your "spec_helper.rb" file
26
+ **doesn't contain** `config.mock_with :rspec`.
27
+
13
28
  Usage:
14
29
 
15
30
  describe "Mocha plugin" do
@@ -20,3 +35,7 @@ Usage:
20
35
  person.id.should == 66
21
36
  end
22
37
  end
38
+
39
+ You should be able to use `mock_model` and `stub_model` in the same way
40
+ you use them when mocking with rspec instead of mocha. [Here are the
41
+ docs](http://relishapp.com/rspec/rspec-rails/v/2-6/dir/mocks/mock-model).
@@ -1,12 +1,18 @@
1
+ require 'active_support/core_ext'
1
2
  require 'active_model'
2
3
 
3
4
  module RSpec
4
5
  module Rails
6
+
7
+ unless defined? IllegalDataAccessException
8
+ class IllegalDataAccessException < StandardError; end
9
+ end
10
+
5
11
  module Mocha
12
+
6
13
  module ActiveModelInstanceMethods
7
14
  def as_new_record
8
- self.stubs(:persisted?) { false }
9
- self.stubs(:id) { nil }
15
+ self.stubs(:persisted? => false, :id => nil)
10
16
  self
11
17
  end
12
18
 
@@ -21,8 +27,11 @@ module RSpec
21
27
 
22
28
  module ActiveRecordInstanceMethods
23
29
  def destroy
24
- self.stubs(:persisted?) { false }
25
- self.stubs(:id) { nil }
30
+ self.stubs(:persisted? => false, :id => nil)
31
+ end
32
+
33
+ def [](key)
34
+ send(key)
26
35
  end
27
36
 
28
37
  def new_record?
@@ -71,21 +80,23 @@ It received #{model_class.inspect}
71
80
  EOM
72
81
  end
73
82
 
74
- stubs = stubs.reverse_merge(:id => next_id)
83
+ stubs = stubs.reverse_merge \
84
+ :id => next_id,
85
+ :destroyed? => false,
86
+ :marked_for_destruction? => false,
87
+ :blank? => false
88
+
75
89
  stubs = stubs.reverse_merge(:persisted? => !!stubs[:id])
76
- stubs = stubs.reverse_merge(:destroyed? => false)
77
- stubs = stubs.reverse_merge(:marked_for_destruction? => false)
78
- stubs = stubs.reverse_merge(:errors => stub("errors", :count => 0, :[] => [], :empty? => true))
79
90
 
80
91
  stub("#{model_class.name}_#{stubs[:id]}", stubs).tap do |m|
81
92
  m.extend ActiveModelInstanceMethods
82
- model_class.__send__ :include, ActiveModel::Conversion
83
- model_class.__send__ :include, ActiveModel::Validations
93
+ m.singleton_class.__send__ :include, ActiveModel::Conversion
94
+ m.singleton_class.__send__ :include, ActiveModel::Validations
84
95
  if defined?(ActiveRecord)
85
96
  m.extend ActiveRecordInstanceMethods
86
97
  [:save, :update_attributes].each do |key|
87
98
  if stubs[key] == false
88
- m.errors.stubs(:empty?) { false }
99
+ m.errors.stubs(:empty? => false)
89
100
  end
90
101
  end
91
102
  end
@@ -108,10 +119,6 @@ EOM
108
119
  def to_s
109
120
  "#{model_class.name}_#{to_param}"
110
121
  end
111
-
112
- def to_key
113
- [id]
114
- end
115
122
  CODE
116
123
  yield m if block_given?
117
124
  end
@@ -119,10 +126,13 @@ EOM
119
126
 
120
127
  module ActiveModelStubExtensions
121
128
  def as_new_record
122
- self.stubs(:persisted?) { false }
123
- self.stubs(:id) { nil }
129
+ self.stubs(:persisted? => false, :id => nil)
124
130
  self
125
131
  end
132
+
133
+ def persisted?
134
+ true
135
+ end
126
136
  end
127
137
 
128
138
  module ActiveRecordStubExtensions
@@ -136,7 +146,7 @@ EOM
136
146
  end
137
147
 
138
148
  def connection
139
- raise RSpec::Rails::IllegalDataAccessException.new("stubbed models are not allowed to access the database")
149
+ raise IllegalDataAccessException.new("stubbed models are not allowed to access the database")
140
150
  end
141
151
  end
142
152
 
@@ -187,6 +197,7 @@ EOM
187
197
  stubs = stubs.reverse_merge(:id => next_id)
188
198
  stubs = stubs.reverse_merge(:persisted? => !!stubs[:id])
189
199
  end
200
+ stubs = stubs.reverse_merge(:blank? => false)
190
201
  stubs.each do |k,v|
191
202
  m.__send__("#{k}=", stubs.delete(k)) if m.respond_to?("#{k}=")
192
203
  end
@@ -202,6 +213,12 @@ EOM
202
213
  def next_id
203
214
  @@model_id += 1
204
215
  end
216
+
205
217
  end
206
218
  end
207
219
  end
220
+
221
+ RSpec.configure do |config|
222
+ config.mock_with :mocha
223
+ config.include RSpec::Rails::Mocha
224
+ end
@@ -1,5 +1,5 @@
1
1
  require 'rspec'
2
- require 'rspec-rails-mocha'
2
+ require 'rspec/rails/mocha'
3
3
 
4
4
  # Simple stub for ActiveRecord::Base
5
5
  module ActiveRecord
@@ -16,9 +16,6 @@ module RSpec::Rails
16
16
  class IllegalDataAccessException < StandardError; end
17
17
  end
18
18
 
19
- require 'active_support/core_ext/hash/reverse_merge'
20
- require 'active_support/core_ext/object'
21
-
22
19
  class Person < ActiveRecord::Base
23
20
  attr_accessor :id, :name
24
21
 
@@ -59,13 +56,6 @@ describe "rspec-rails Mocha plugin" do
59
56
  person.id.should == 66
60
57
  end
61
58
 
62
- it "should use given ID in to_key" do
63
- personA = create(Person, :id => 66)
64
- personA.to_key.should == [66]
65
- personB = create(Person)
66
- personB.to_key.first.should >= 1000
67
- end
68
-
69
59
  it "should mock a record with properties" do
70
60
  hacker = create(Hacker, :name => "Mislav", :skillz => 1337)
71
61
  hacker.name.should == "Mislav"
metadata CHANGED
@@ -1,13 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rspec-rails-mocha
3
3
  version: !ruby/object:Gem::Version
4
- hash: 19
5
- prerelease:
4
+ prerelease: false
6
5
  segments:
7
6
  - 0
8
7
  - 3
9
- - 0
10
- version: 0.3.0
8
+ - 1
9
+ version: 0.3.1
11
10
  platform: ruby
12
11
  authors:
13
12
  - "Mislav Marohni\xC4\x87"
@@ -16,7 +15,7 @@ autorequire:
16
15
  bindir: bin
17
16
  cert_chain: []
18
17
 
19
- date: 2011-02-13 00:00:00 +01:00
18
+ date: 2011-06-18 00:00:00 +02:00
20
19
  default_executable:
21
20
  dependencies:
22
21
  - !ruby/object:Gem::Dependency
@@ -27,7 +26,6 @@ dependencies:
27
26
  requirements:
28
27
  - - ">="
29
28
  - !ruby/object:Gem::Version
30
- hash: 43
31
29
  segments:
32
30
  - 0
33
31
  - 9
@@ -43,7 +41,6 @@ dependencies:
43
41
  requirements:
44
42
  - - ">="
45
43
  - !ruby/object:Gem::Version
46
- hash: 15
47
44
  segments:
48
45
  - 2
49
46
  - 0
@@ -62,10 +59,9 @@ extra_rdoc_files: []
62
59
  files:
63
60
  - Rakefile
64
61
  - lib/rspec/rails/mocha.rb
65
- - lib/rspec-rails-mocha.rb
66
62
  - spec/mocha_spec.rb
67
63
  - README.markdown
68
- has_rdoc: false
64
+ has_rdoc: true
69
65
  homepage: http://github.com/mislav/rspec-rails-mocha
70
66
  licenses: []
71
67
 
@@ -79,7 +75,6 @@ required_ruby_version: !ruby/object:Gem::Requirement
79
75
  requirements:
80
76
  - - ">="
81
77
  - !ruby/object:Gem::Version
82
- hash: 3
83
78
  segments:
84
79
  - 0
85
80
  version: "0"
@@ -88,16 +83,15 @@ required_rubygems_version: !ruby/object:Gem::Requirement
88
83
  requirements:
89
84
  - - ">="
90
85
  - !ruby/object:Gem::Version
91
- hash: 3
92
86
  segments:
93
87
  - 0
94
88
  version: "0"
95
89
  requirements: []
96
90
 
97
91
  rubyforge_project:
98
- rubygems_version: 1.5.0
92
+ rubygems_version: 1.3.7
99
93
  signing_key:
100
94
  specification_version: 3
101
- summary: mock_model and stub_model with Mocha
95
+ summary: Mocha versions of mock_model and stub_model from rspec-rails
102
96
  test_files: []
103
97
 
@@ -1,7 +0,0 @@
1
- require 'rspec/core'
2
- require 'rspec/rails/mocha'
3
-
4
- RSpec.configure do |config|
5
- config.mock_with :mocha
6
- config.include RSpec::Rails::Mocha
7
- end