cancan-unit-test 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
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