spicycode-micronaut-rails 0.1.7.0 → 0.1.7.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.
- data/lib/micronaut/rails/configuration.rb +6 -3
- data/lib/micronaut/rails/controllers.rb +0 -2
- data/lib/micronaut/rails/mocking/model_stubber.rb +24 -0
- data/lib/micronaut/rails/mocking/with_mocha.rb +1 -18
- data/lib/micronaut/rails/mocking/with_rr.rb +44 -0
- data/lib/micronaut/rails/version.rb +1 -1
- data/lib/micronaut-rails.rb +1 -9
- metadata +4 -2
@@ -27,13 +27,16 @@ module Micronaut
|
|
27
27
|
when /mocha/i
|
28
28
|
require 'micronaut/rails/mocking/with_mocha'
|
29
29
|
::Micronaut.configuration.include(::Micronaut::Rails::Mocking::WithMocha, filter_options)
|
30
|
+
when /rr/i
|
31
|
+
require 'micronaut/rails/mocking/with_rr'
|
32
|
+
::Micronaut.configuration.include(::Micronaut::Rails::Mocking::WithRR, filter_options)
|
30
33
|
end
|
31
34
|
end
|
32
35
|
|
33
36
|
def enable_reasonable_defaults!
|
34
|
-
enable_active_record_transactional_support :describes => lambda { |dt| dt < ::ActiveRecord::Base }
|
35
|
-
enable_helper_support :describes => lambda { |dt| dt.to_s.ends_with?('Helper') }
|
36
|
-
enable_controller_support :describes => lambda { |dt| dt < ::ActionController::Base }
|
37
|
+
enable_active_record_transactional_support :behaviour => { :describes => lambda { |dt| dt < ::ActiveRecord::Base } }
|
38
|
+
enable_helper_support :behaviour => { :describes => lambda { |dt| dt.to_s.ends_with?('Helper') } }
|
39
|
+
enable_controller_support :behaviour => { :describes => lambda { |dt| dt < ::ActionController::Base } }
|
37
40
|
enable_rails_specific_mocking_extensions
|
38
41
|
end
|
39
42
|
|
@@ -0,0 +1,24 @@
|
|
1
|
+
module Micronaut
|
2
|
+
module Rails
|
3
|
+
module Mocking
|
4
|
+
|
5
|
+
module ModelStubber
|
6
|
+
|
7
|
+
def connection
|
8
|
+
raise MicronautRails::IllegalDataAccessException.new("stubbed/mocked models are not allowed to access the database")
|
9
|
+
end
|
10
|
+
|
11
|
+
def new_record?
|
12
|
+
id.nil?
|
13
|
+
end
|
14
|
+
|
15
|
+
def as_new_record
|
16
|
+
self.id = nil
|
17
|
+
self
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -3,29 +3,12 @@ module Micronaut
|
|
3
3
|
module Mocking
|
4
4
|
module WithMocha
|
5
5
|
|
6
|
-
module ModelStubber
|
7
|
-
|
8
|
-
def connection
|
9
|
-
raise MicronautRails::IllegalDataAccessException.new("stubbed models are not allowed to access the database")
|
10
|
-
end
|
11
|
-
|
12
|
-
def new_record?
|
13
|
-
id.nil?
|
14
|
-
end
|
15
|
-
|
16
|
-
def as_new_record
|
17
|
-
self.id = nil
|
18
|
-
self
|
19
|
-
end
|
20
|
-
|
21
|
-
end
|
22
|
-
|
23
6
|
def stub_model(model_class, params = {})
|
24
7
|
params = params.dup
|
25
8
|
model = model_class.new
|
26
9
|
model.id = params.delete(:id) || next_id
|
27
10
|
|
28
|
-
model.extend ModelStubber
|
11
|
+
model.extend Micronaut::Rails::Mocking::ModelStubber
|
29
12
|
params.keys.each do |prop|
|
30
13
|
model[prop] = params.delete(prop) if model.has_attribute?(prop)
|
31
14
|
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
module Micronaut
|
2
|
+
module Rails
|
3
|
+
module Mocking
|
4
|
+
|
5
|
+
module WithRR
|
6
|
+
# Creates a mock object instance for a +model_class+ with common
|
7
|
+
# methods stubbed out. Additional methods may be easily stubbed (via
|
8
|
+
# add_stubs) if +stubs+ is passed.
|
9
|
+
def mock_or_stub_model(model_class, mock_or_stub, options = {})
|
10
|
+
model = model_class.new
|
11
|
+
model.extend Micronaut::Rails::Mocking::ModelStubber
|
12
|
+
model_id = next_id
|
13
|
+
|
14
|
+
stub(errors_stub = Object.new).count.returns(0)
|
15
|
+
full_params = { :id => model_id, :new_record? => false, :errors => errors_stub }.update(options)
|
16
|
+
|
17
|
+
full_params.each do |method, value|
|
18
|
+
eval "#{mock_or_stub}(model).#{method}.returns(value)", binding, __FILE__, __LINE__
|
19
|
+
end
|
20
|
+
|
21
|
+
yield model if block_given?
|
22
|
+
model
|
23
|
+
end
|
24
|
+
|
25
|
+
def mock_model(model_class, options = {})
|
26
|
+
mock_or_stub_model(model_class, 'mock', options)
|
27
|
+
end
|
28
|
+
|
29
|
+
def stub_model(model_class, options = {})
|
30
|
+
mock_or_stub_model(model_class, 'stub', options)
|
31
|
+
end
|
32
|
+
|
33
|
+
private
|
34
|
+
|
35
|
+
@@model_id = 1000
|
36
|
+
def next_id
|
37
|
+
@@model_id += 1
|
38
|
+
end
|
39
|
+
|
40
|
+
end
|
41
|
+
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
data/lib/micronaut-rails.rb
CHANGED
@@ -8,20 +8,12 @@ require 'micronaut/rails/version'
|
|
8
8
|
require 'micronaut/rails/helpers'
|
9
9
|
require 'micronaut/rails/controllers'
|
10
10
|
require 'micronaut/rails/extensions/active_record'
|
11
|
+
require 'micronaut/rails/mocking/model_stubber'
|
11
12
|
|
12
13
|
module Micronaut
|
13
14
|
module Rails
|
14
15
|
class IllegalDataAccessException < StandardError; end
|
15
16
|
|
16
|
-
def self.include_in(config)
|
17
|
-
if config.mock_framework.to_s =~ /mocha/i
|
18
|
-
require 'micronaut/rails/mocking/with_mocha'
|
19
|
-
Micronaut::Behaviour.send(:include, Micronaut::Rails::Mocking::WithMocha)
|
20
|
-
end
|
21
|
-
config.extend(Micronaut::Rails::TransactionalDatabaseSupport, :behaviour => { :describes => lambda { |dt| dt < ActiveRecord::Base } })
|
22
|
-
config.extend(Micronaut::Rails::Helpers, :behaviour => { :describes => lambda { |dt| dt.to_s.ends_with?('Helper') } })
|
23
|
-
config.extend(Micronaut::Rails::Controllers, :behaviour => { :describes => lambda { |dt| dt < ActionController::Base } })
|
24
|
-
end
|
25
17
|
end
|
26
18
|
|
27
19
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: spicycode-micronaut-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.7.
|
4
|
+
version: 0.1.7.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chad Humphries
|
@@ -9,7 +9,7 @@ autorequire: micronaut-rails
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2008-12-
|
12
|
+
date: 2008-12-29 00:00:00 -08:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -61,7 +61,9 @@ files:
|
|
61
61
|
- lib/micronaut/rails/matchers/controllers/redirect_to.rb
|
62
62
|
- lib/micronaut/rails/matchers/controllers/render_template.rb
|
63
63
|
- lib/micronaut/rails/mocking
|
64
|
+
- lib/micronaut/rails/mocking/model_stubber.rb
|
64
65
|
- lib/micronaut/rails/mocking/with_mocha.rb
|
66
|
+
- lib/micronaut/rails/mocking/with_rr.rb
|
65
67
|
- lib/micronaut/rails/transactional_database_support.rb
|
66
68
|
- lib/micronaut/rails/version.rb
|
67
69
|
- lib/micronaut-rails.rb
|