cancan-unit-test 0.0.4 → 0.0.5

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: 152e62cc388cf4a4ac5318cf460adf7f6f2bd725
4
- data.tar.gz: 5bbe663f37bc9787002e0ccfb1b42c66f1c2f9c9
3
+ metadata.gz: e9eac8ccda8627bf87ea9a3300901414fac3806c
4
+ data.tar.gz: 727e13fa64a7f78ccca27ea3c62f7af510ba3a76
5
5
  SHA512:
6
- metadata.gz: 5ad368e034e59e0f45df4c3206081c002120b619478067d1d92f7d1bd8ac48d563249e052b52ab7671e4488c8e26b67c9c3de98641998f41dabb3f363e72ffc7
7
- data.tar.gz: ed0744b2111cefbaba0f5e6ab24302873609bb04236472cd2005a4faf4d148e4a0c541886b36728c09dc3a6fbefe80705fd3f9c18fd95de761f493a870ff101e
6
+ metadata.gz: 22bd573b90db60fe476fa4546e3bd812629cf547555310bed7f082d56a05400b5ada2e4e06b16cf32fa07cc9568c468c4135ed943d0df4466aee74d76126c04e
7
+ data.tar.gz: 9924637bb57e3054df0c80a796104bc060a9400e675a37304705ee1be9c1ac3e9028762ea8d9708d6fcb0b3832d533bc49098f43c321428e3f7217dd04ae01c8
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- cancan-unit-test (0.0.4)
4
+ cancan-unit-test (0.0.5)
5
5
  activesupport
6
6
  cancan
7
7
 
@@ -6,7 +6,7 @@ require 'cancan_unit_test/version'
6
6
  Gem::Specification.new do |gem|
7
7
  gem.name = "cancan-unit-test"
8
8
  gem.version = CancanUnitTest::VERSION
9
- gem.authors = ["Todd Mohney, Rasheed Abdul-Aziz"]
9
+ gem.authors = ["Todd Mohney, Rasheed Abdul-Aziz, Alex Babkin, Peter Swan"]
10
10
  gem.email = ["zephyr-dev@googlegroups.com"]
11
11
  gem.description = %q{Unit test helpers for CanCan}
12
12
  gem.summary = %q{Unit test helpers for CanCan}
@@ -30,7 +30,5 @@ describe CommentsController do
30
30
  assigns(:post_author).should == post_author
31
31
  end
32
32
  end
33
-
34
33
  end
35
-
36
34
  end
@@ -6,6 +6,5 @@ class CommentsController < ApplicationController
6
6
  def index
7
7
  head :ok
8
8
  end
9
-
10
9
  end
11
10
 
@@ -2,9 +2,9 @@ module CancanUnitTest
2
2
  module ActionController
3
3
  module StubRegistry
4
4
 
5
- def _add_cancan_unit_test_stub(method, resource_type, model, options, &block)
5
+ def _add_cancan_unit_test_stub(method, resource_type, resource, options, &block)
6
6
  method_list = _get_cancan_unit_test_stubs(method)
7
- method_list << { resource_type: resource_type, model: model, options: options, block: block }
7
+ method_list << { resource_type: resource_type, resource: resource, options: options, block: block }
8
8
  end
9
9
 
10
10
  def _get_cancan_unit_test_stubs(method)
@@ -15,43 +15,41 @@ module CancanUnitTest
15
15
  end
16
16
 
17
17
  def _shim_load_and_authorize_resource
18
- model_name = resource_class.model_name.underscore
19
18
  method_name = :load_and_authorize_resource
20
19
 
21
20
  stub_finder = StubFinder.new(@controller, method_name)
22
21
 
23
- singleton_stub = stub_finder.find_by_singleton(model_name.to_sym, @options)
24
- collection_stub = stub_finder.find_by_collection(model_name.to_sym, @options)
22
+ singleton_stub = stub_finder.find_by_singleton(name.to_sym, @options)
23
+ collection_stub = stub_finder.find_by_collection(name.to_sym, @options)
25
24
 
26
25
  if (singleton_stub || collection_stub)
27
26
  self.resource_instance = singleton_stub.call if singleton_stub
28
27
  self.collection_instance = collection_stub.call if collection_stub
29
28
  else
30
- warn_about_missing_stub(model_name, method_name) if ControllerResource.show_warnings
29
+ warn_about_missing_stub(name.to_sym, method_name) if ControllerResource.show_warnings
31
30
  _original_load_and_authorize_resource
32
31
  end
33
32
  end
34
33
 
35
34
  def _shim_load_resource
36
- model_name = resource_class.model_name.underscore
37
35
  method_name = :load_resource
38
36
 
39
37
  stub_finder = StubFinder.new(@controller, method_name)
40
38
 
41
- singleton_stub = stub_finder.find_by_singleton(model_name.to_sym, @options)
39
+ singleton_stub = stub_finder.find_by_singleton(name.to_sym, @options)
42
40
 
43
41
  if singleton_stub
44
42
  self.resource_instance = singleton_stub.call if singleton_stub
45
43
  else
46
- warn_about_missing_stub(model_name, method_name) if ControllerResource.show_warnings
44
+ warn_about_missing_stub(name.to_sym, method_name) if ControllerResource.show_warnings
47
45
  _original_load_resource
48
46
  end
49
47
  end
50
48
 
51
49
  private
52
50
 
53
- def warn_about_missing_stub(model_name, method)
54
- puts("\e[33mCancanUnitTest Warning:\e[0m no stub found for '#{method} :#{model_name}'")
51
+ def warn_about_missing_stub(name, method)
52
+ puts("\e[33mCancanUnitTest Warning:\e[0m no stub found for '#{method} :#{name}'")
55
53
  ControllerResource.show_warnings = false
56
54
  end
57
55
 
@@ -5,18 +5,18 @@ module CancanUnitTest
5
5
  @stub_list = controller._get_cancan_unit_test_stubs(method)
6
6
  end
7
7
 
8
- def find_by_singleton(model, options)
9
- find_by_resource_type(model, :singleton, options)
8
+ def find_by_singleton(resource, options)
9
+ find_by_resource_type(resource, :singleton, options)
10
10
  end
11
11
 
12
- def find_by_collection(model, options)
13
- find_by_resource_type(model, :collection, options)
12
+ def find_by_collection(resource, options)
13
+ find_by_resource_type(resource, :collection, options)
14
14
  end
15
15
 
16
16
  private
17
17
 
18
- def find_by_resource_type(model, resource_type, options)
19
- filtered_stub_list = filter_stub_list(model, resource_type, options)
18
+ def find_by_resource_type(resource, resource_type, options)
19
+ filtered_stub_list = filter_stub_list(resource, resource_type, options)
20
20
 
21
21
  return nil if filtered_stub_list.empty?
22
22
 
@@ -25,11 +25,11 @@ module CancanUnitTest
25
25
  filtered_stub_list.first[:block]
26
26
  end
27
27
 
28
- def filter_stub_list(model, resource_type, options)
28
+ def filter_stub_list(resource, resource_type, options)
29
29
  stub_list.select do |stub|
30
30
  stub[:resource_type] == resource_type &&
31
- stub[:model] == model &&
32
- stub[:options] == options
31
+ stub[:resource] == resource &&
32
+ stub[:options] == options
33
33
  end
34
34
  end
35
35
 
@@ -1,3 +1,3 @@
1
1
  module CancanUnitTest
2
- VERSION = "0.0.4"
2
+ VERSION = "0.0.5"
3
3
  end
@@ -3,11 +3,10 @@ require 'spec_helper'
3
3
  module CancanUnitTest
4
4
  module CanCan
5
5
  describe ControllerResource do
6
-
7
6
  class TestControllerResource
8
- def initialize(model_name, options, controller)
7
+ def initialize(name, options, controller)
9
8
  @options = options
10
- @model_name = model_name
9
+ @name = name
11
10
  @controller = controller
12
11
  end
13
12
 
@@ -23,29 +22,27 @@ module CancanUnitTest
23
22
  raise "original called"
24
23
  end
25
24
 
26
- def resource_class
27
- OpenStruct.new({ model_name: @model_name })
28
- end
25
+ attr_reader :name
29
26
 
30
27
  include CancanUnitTest::CanCan::ControllerResource
31
28
  end
32
29
 
33
- describe "#load_and_authorize_resource" do
30
+ let(:name) { :the_name }
31
+ let(:controller_resource) { TestControllerResource.new(name, options, controller) }
34
32
 
35
- let(:controller_resource) { TestControllerResource.new(model_name, options, controller) }
36
- let(:model_name) { "TheModelName" }
37
- let_double(:controller)
38
- let_double(:options)
33
+ let_double(:controller)
34
+ let_double(:options)
39
35
 
40
- let_double(:block_result)
41
- let(:block) { double(:block, call: block_result) }
36
+ let_double(:block_result)
37
+ let(:block) { double(:block, call: block_result) }
42
38
 
43
- let_double(:stub_finder)
39
+ let_double(:stub_finder)
44
40
 
41
+ describe "#load_and_authorize_resource" do
45
42
  before do
46
43
  StubFinder.stub(:new).with(controller, :load_and_authorize_resource) { stub_finder }
47
- stub_finder.stub(:find_by_singleton).with(:the_model_name, options) { singleton_results }
48
- stub_finder.stub(:find_by_collection).with(:the_model_name, options) { collection_results }
44
+ stub_finder.stub(:find_by_singleton).with(:the_name, options) { singleton_results }
45
+ stub_finder.stub(:find_by_collection).with(:the_name, options) { collection_results }
49
46
  end
50
47
 
51
48
  context "when a stub doesn't exist for the resource" do
@@ -59,7 +56,7 @@ module CancanUnitTest
59
56
  context "when showing warning" do
60
57
  it "does not warn that there was no stub found" do
61
58
  ControllerResource.show_warnings = true
62
- STDOUT.should_receive(:puts).with("\e[33mCancanUnitTest Warning:\e[0m no stub found for 'load_and_authorize_resource :the_model_name'")
59
+ STDOUT.should_receive(:puts).with("\e[33mCancanUnitTest Warning:\e[0m no stub found for 'load_and_authorize_resource :the_name'")
63
60
  begin
64
61
  controller_resource.load_and_authorize_resource
65
62
  rescue
@@ -70,7 +67,7 @@ module CancanUnitTest
70
67
  context "when suppressing warning" do
71
68
  it "warns that there was no stub found" do
72
69
  ControllerResource.show_warnings = false
73
- STDOUT.should_not_receive(:puts).with("\e[33mCancanUnitTest Warning:\e[0m no stub found for 'load_and_authorize_resource :the_model_name'")
70
+ STDOUT.should_not_receive(:puts).with("\e[33mCancanUnitTest Warning:\e[0m no stub found for 'load_and_authorize_resource :the_name'")
74
71
  begin
75
72
  controller_resource.load_and_authorize_resource
76
73
  rescue
@@ -111,20 +108,9 @@ module CancanUnitTest
111
108
  end
112
109
 
113
110
  describe "#load_resource" do
114
-
115
- let(:controller_resource) { TestControllerResource.new(model_name, options, controller) }
116
- let(:model_name) { "TheModelName" }
117
- let_double(:controller)
118
- let_double(:options)
119
-
120
- let_double(:block_result)
121
- let(:block) { double(:block, call: block_result) }
122
-
123
- let_double(:stub_finder)
124
-
125
111
  before do
126
112
  StubFinder.stub(:new).with(controller, :load_resource) { stub_finder }
127
- stub_finder.stub(:find_by_singleton).with(:the_model_name, options) { singleton_results }
113
+ stub_finder.stub(:find_by_singleton).with(:the_name, options) { singleton_results }
128
114
  end
129
115
 
130
116
  context "when a stub doesn't exist for the resource" do
@@ -137,7 +123,7 @@ module CancanUnitTest
137
123
  context "when showing warning" do
138
124
  it "does not warn that there was no stub found" do
139
125
  ControllerResource.show_warnings = true
140
- STDOUT.should_receive(:puts).with("\e[33mCancanUnitTest Warning:\e[0m no stub found for 'load_resource :the_model_name'")
126
+ STDOUT.should_receive(:puts).with("\e[33mCancanUnitTest Warning:\e[0m no stub found for 'load_resource :the_name'")
141
127
  begin
142
128
  controller_resource.load_resource
143
129
  rescue
@@ -148,7 +134,7 @@ module CancanUnitTest
148
134
  context "when suppressing warning" do
149
135
  it "warns that there was no stub found" do
150
136
  ControllerResource.show_warnings = false
151
- STDOUT.should_not_receive(:puts).with("\e[33mCancanUnitTest Warning:\e[0m no stub found for 'load_resource :the_model_name'")
137
+ STDOUT.should_not_receive(:puts).with("\e[33mCancanUnitTest Warning:\e[0m no stub found for 'load_resource :the_name'")
152
138
  begin
153
139
  controller_resource.load_resource
154
140
  rescue
@@ -11,14 +11,14 @@ module CancanUnitTest
11
11
 
12
12
  subject(:test_controller) { TestController.new }
13
13
 
14
- let(:model) { :some_model }
14
+ let(:resource) { :some_resource }
15
15
  let(:options) { double(:options) }
16
16
  let(:block) { ->{} }
17
17
 
18
18
  let(:expected_singleton_definition) do
19
19
  {
20
20
  resource_type: :singleton,
21
- model: model,
21
+ resource: resource,
22
22
  options: options,
23
23
  block: block
24
24
  }
@@ -27,7 +27,7 @@ module CancanUnitTest
27
27
  let(:expected_collection_definition) do
28
28
  {
29
29
  resource_type: :collection,
30
- model: model,
30
+ resource: resource,
31
31
  options: options,
32
32
  block: block
33
33
  }
@@ -45,26 +45,26 @@ module CancanUnitTest
45
45
 
46
46
  context "added one stub" do
47
47
  before do
48
- test_controller._add_cancan_unit_test_stub(:falaffel, :singleton, model, options, &block)
48
+ test_controller._add_cancan_unit_test_stub(:falaffel, :singleton, resource, options, &block)
49
49
  end
50
50
 
51
51
  it "should be possible to find the stub with a matching key" do
52
52
  test_controller._get_cancan_unit_test_stubs(:falaffel).should == [expected_singleton_definition]
53
53
  end
54
54
 
55
- context "adding another with the same model name" do
55
+ context "adding another with the same resource name" do
56
56
  let(:another_singleton_definition) do
57
57
  {
58
58
  resource_type: :singleton,
59
- model: model,
60
- options: options,
61
- block: block
59
+ resource: resource,
60
+ options: options,
61
+ block: block
62
62
  }
63
63
  end
64
64
 
65
65
  context "and the same resource type" do
66
66
  before do
67
- test_controller._add_cancan_unit_test_stub(:falaffel, :singleton, model, options, &block)
67
+ test_controller._add_cancan_unit_test_stub(:falaffel, :singleton, resource, options, &block)
68
68
  end
69
69
 
70
70
  it "returns both stubs" do
@@ -76,7 +76,7 @@ module CancanUnitTest
76
76
 
77
77
  context "and a different resource type" do
78
78
  before do
79
- test_controller._add_cancan_unit_test_stub(:falaffel, :collection, model, options, &block)
79
+ test_controller._add_cancan_unit_test_stub(:falaffel, :collection, resource, options, &block)
80
80
  end
81
81
 
82
82
  it "returns both stubs" do
@@ -87,20 +87,19 @@ module CancanUnitTest
87
87
  end
88
88
  end
89
89
 
90
-
91
- context "adding another with a different model name" do
90
+ context "adding another with a different resource name" do
92
91
  let(:waffle_options) { { syrup: :maple } }
93
92
  let(:waffle_stub_definition) do
94
93
  {
95
94
  resource_type: :singleton,
96
- model: model,
95
+ resource: resource,
97
96
  options: waffle_options,
98
97
  block: block
99
98
  }
100
99
  end
101
100
 
102
101
  before do
103
- test_controller._add_cancan_unit_test_stub(:waffle, :singleton, model, waffle_options, &block)
102
+ test_controller._add_cancan_unit_test_stub(:waffle, :singleton, resource, waffle_options, &block)
104
103
  end
105
104
 
106
105
  it "return the other definition" do
@@ -4,14 +4,14 @@ module CancanUnitTest
4
4
  describe StubFinder do
5
5
  let_double(:controller)
6
6
  let_double(:method)
7
- let_double(:model)
7
+ let_double(:resource)
8
8
  let_double(:options)
9
9
  let_double(:block)
10
10
 
11
11
  let(:finder) { StubFinder.new(controller, method) }
12
12
 
13
13
  describe "#find_by_singleton" do
14
- subject { finder.find_by_singleton(model, options) }
14
+ subject { finder.find_by_singleton(resource, options) }
15
15
 
16
16
  before do
17
17
  controller.
@@ -26,18 +26,18 @@ module CancanUnitTest
26
26
  end
27
27
 
28
28
  context "the controller has a stub for the method" do
29
- context "with no matching model" do
30
- let(:results) { [{ resource_type: :singleton, model: double(:other_model), options: options, block: block }] }
29
+ context "with no matching resource" do
30
+ let(:results) { [{ resource_type: :singleton, resource: double(:other_resource), options: options, block: block }] }
31
31
  it { should be_nil }
32
32
  end
33
33
 
34
34
  context "with no matching options" do
35
- let(:results) { [{ resource_type: :singleton, model: model, options: double(:other_options), block: block }] }
35
+ let(:results) { [{ resource_type: :singleton, resource: resource, options: double(:other_options), block: block }] }
36
36
  it { should be_nil }
37
37
  end
38
38
 
39
- context "with matching model and options" do
40
- let(:results) { [{ resource_type: :singleton, model: model, options: options, block: block }] }
39
+ context "with matching resource and options" do
40
+ let(:results) { [{ resource_type: :singleton, resource: resource, options: options, block: block }] }
41
41
  it { should == block }
42
42
  end
43
43
  end
@@ -46,8 +46,8 @@ module CancanUnitTest
46
46
  context "with a different resource type" do
47
47
  let(:results) do
48
48
  [
49
- { resource_type: :collection, model: model, options: options, block: -> {} },
50
- { resource_type: :singleton, model: model, options: options, block: block }
49
+ { resource_type: :collection, resource: resource, options: options, block: -> {} },
50
+ { resource_type: :singleton, resource: resource, options: options, block: block }
51
51
  ]
52
52
  end
53
53
 
@@ -57,13 +57,13 @@ module CancanUnitTest
57
57
  context "with the same resource type" do
58
58
  let(:results) do
59
59
  [
60
- { resource_type: :singleton, model: model, options: options, block: block },
61
- { resource_type: :singleton, model: model, options: options, block: block }
60
+ { resource_type: :singleton, resource: resource, options: options, block: block },
61
+ { resource_type: :singleton, resource: resource, options: options, block: block }
62
62
  ]
63
63
  end
64
64
 
65
65
  it "raises an exception" do
66
- expect { finder.find_by_singleton(model, options) }.to raise_error
66
+ expect { finder.find_by_singleton(resource, options) }.to raise_error
67
67
  end
68
68
  end
69
69
  end
@@ -71,7 +71,7 @@ module CancanUnitTest
71
71
  end
72
72
 
73
73
  describe "#find_by_collection" do
74
- subject { finder.find_by_collection(model, options) }
74
+ subject { finder.find_by_collection(resource, options) }
75
75
 
76
76
  before do
77
77
  controller.
@@ -83,8 +83,8 @@ module CancanUnitTest
83
83
  context "with a different resource type" do
84
84
  let(:results) do
85
85
  [
86
- { resource_type: :singleton, model: model, options: options, block: -> {} },
87
- { resource_type: :collection, model: model, options: options, block: block }
86
+ { resource_type: :singleton, resource: resource, options: options, block: -> {} },
87
+ { resource_type: :collection, resource: resource, options: options, block: block }
88
88
  ]
89
89
  end
90
90
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cancan-unit-test
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
- - Todd Mohney, Rasheed Abdul-Aziz
7
+ - Todd Mohney, Rasheed Abdul-Aziz, Alex Babkin, Peter Swan
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-03-04 00:00:00.000000000 Z
11
+ date: 2014-07-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cancan
@@ -237,7 +237,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
237
237
  version: '0'
238
238
  requirements: []
239
239
  rubyforge_project:
240
- rubygems_version: 2.0.3
240
+ rubygems_version: 2.1.11
241
241
  signing_key:
242
242
  specification_version: 4
243
243
  summary: Unit test helpers for CanCan