josevalim-inherited_resources 0.5.2 → 0.6.0
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/CHANGELOG +12 -5
- data/README +13 -3
- data/lib/inherited_resources/base.rb +29 -19
- data/lib/inherited_resources/base_helpers.rb +17 -8
- data/lib/inherited_resources/respond_to.rb +26 -63
- data/test/aliases_test.rb +5 -11
- data/test/base_helpers_test.rb +5 -8
- data/test/base_test.rb +8 -11
- data/test/belongs_to_test.rb +9 -21
- data/test/class_methods_test.rb +20 -21
- data/test/defaults_test.rb +5 -4
- data/test/nested_belongs_to_test.rb +11 -41
- data/test/optional_belongs_to_test.rb +22 -48
- data/test/polymorphic_test.rb +98 -23
- data/test/redirect_to_test.rb +52 -0
- data/test/respond_to_test.rb +23 -26
- data/test/singleton_test.rb +4 -4
- data/test/test_helper.rb +0 -7
- metadata +3 -2
data/test/base_test.rb
CHANGED
@@ -1,16 +1,13 @@
|
|
1
1
|
require File.dirname(__FILE__) + '/test_helper'
|
2
2
|
|
3
|
-
# This test file is instead to test the how controller flow and actions.
|
4
|
-
# This is done using mocks a la rspec.
|
5
|
-
#
|
6
3
|
class User
|
7
4
|
def self.human_name; 'User'; end
|
8
5
|
end
|
9
6
|
|
10
7
|
class UsersController < InheritedResources::Base
|
8
|
+
respond_to :html, :xml
|
11
9
|
end
|
12
10
|
|
13
|
-
# Create a TestHelper module with some helpers
|
14
11
|
module UserTestHelper
|
15
12
|
def setup
|
16
13
|
@controller = UsersController.new
|
@@ -24,7 +21,7 @@ module UserTestHelper
|
|
24
21
|
end
|
25
22
|
end
|
26
23
|
|
27
|
-
class IndexActionBaseTest <
|
24
|
+
class IndexActionBaseTest < ActionController::TestCase
|
28
25
|
include UserTestHelper
|
29
26
|
|
30
27
|
def test_expose_all_users_as_instance_variable
|
@@ -50,7 +47,7 @@ class IndexActionBaseTest < TEST_CLASS
|
|
50
47
|
end
|
51
48
|
end
|
52
49
|
|
53
|
-
class ShowActionBaseTest <
|
50
|
+
class ShowActionBaseTest < ActionController::TestCase
|
54
51
|
include UserTestHelper
|
55
52
|
|
56
53
|
def test_expose_the_resquested_user
|
@@ -76,7 +73,7 @@ class ShowActionBaseTest < TEST_CLASS
|
|
76
73
|
end
|
77
74
|
end
|
78
75
|
|
79
|
-
class NewActionBaseTest <
|
76
|
+
class NewActionBaseTest < ActionController::TestCase
|
80
77
|
include UserTestHelper
|
81
78
|
|
82
79
|
def test_expose_a_new_user
|
@@ -102,7 +99,7 @@ class NewActionBaseTest < TEST_CLASS
|
|
102
99
|
end
|
103
100
|
end
|
104
101
|
|
105
|
-
class EditActionBaseTest <
|
102
|
+
class EditActionBaseTest < ActionController::TestCase
|
106
103
|
include UserTestHelper
|
107
104
|
|
108
105
|
def test_expose_the_resquested_user
|
@@ -120,7 +117,7 @@ class EditActionBaseTest < TEST_CLASS
|
|
120
117
|
end
|
121
118
|
end
|
122
119
|
|
123
|
-
class CreateActionBaseTest <
|
120
|
+
class CreateActionBaseTest < ActionController::TestCase
|
124
121
|
include UserTestHelper
|
125
122
|
|
126
123
|
def test_expose_a_newly_create_user_when_saved_with_success
|
@@ -156,7 +153,7 @@ class CreateActionBaseTest < TEST_CLASS
|
|
156
153
|
end
|
157
154
|
end
|
158
155
|
|
159
|
-
class UpdateActionBaseTest <
|
156
|
+
class UpdateActionBaseTest < ActionController::TestCase
|
160
157
|
include UserTestHelper
|
161
158
|
|
162
159
|
def test_update_the_requested_object
|
@@ -193,7 +190,7 @@ class UpdateActionBaseTest < TEST_CLASS
|
|
193
190
|
end
|
194
191
|
end
|
195
192
|
|
196
|
-
class DestroyActionBaseTest <
|
193
|
+
class DestroyActionBaseTest < ActionController::TestCase
|
197
194
|
include UserTestHelper
|
198
195
|
|
199
196
|
def test_the_resquested_user_is_destroyed
|
data/test/belongs_to_test.rb
CHANGED
@@ -1,8 +1,5 @@
|
|
1
1
|
require File.dirname(__FILE__) + '/test_helper'
|
2
2
|
|
3
|
-
# This test file is instead to test the how controller flow and actions
|
4
|
-
# using a belongs_to association. This is done using mocks a la rspec.
|
5
|
-
#
|
6
3
|
class Post
|
7
4
|
end
|
8
5
|
|
@@ -14,17 +11,18 @@ class CommentsController < InheritedResources::Base
|
|
14
11
|
belongs_to :post
|
15
12
|
end
|
16
13
|
|
17
|
-
class BelongsToTest <
|
14
|
+
class BelongsToTest < ActionController::TestCase
|
15
|
+
tests CommentsController
|
18
16
|
|
19
17
|
def setup
|
20
|
-
|
21
|
-
|
22
|
-
|
18
|
+
Post.expects(:find).with('37').returns(mock_post)
|
19
|
+
mock_post.expects(:comments).returns(Comment)
|
20
|
+
|
21
|
+
@controller.stubs(:resource_url).returns('/')
|
22
|
+
@controller.stubs(:collection_url).returns('/')
|
23
23
|
end
|
24
24
|
|
25
25
|
def test_expose_all_comments_as_instance_variable_on_index
|
26
|
-
Post.expects(:find).with('37').returns(mock_post)
|
27
|
-
mock_post.expects(:comments).returns(Comment)
|
28
26
|
Comment.expects(:find).with(:all).returns([mock_comment])
|
29
27
|
get :index, :post_id => '37'
|
30
28
|
assert_equal mock_post, assigns(:post)
|
@@ -32,8 +30,6 @@ class BelongsToTest < TEST_CLASS
|
|
32
30
|
end
|
33
31
|
|
34
32
|
def test_expose_the_resquested_comment_on_show
|
35
|
-
Post.expects(:find).with('37').returns(mock_post)
|
36
|
-
mock_post.expects(:comments).returns(Comment)
|
37
33
|
Comment.expects(:find).with('42').returns(mock_comment)
|
38
34
|
get :show, :id => '42', :post_id => '37'
|
39
35
|
assert_equal mock_post, assigns(:post)
|
@@ -41,8 +37,6 @@ class BelongsToTest < TEST_CLASS
|
|
41
37
|
end
|
42
38
|
|
43
39
|
def test_expose_a_new_comment_on_new
|
44
|
-
Post.expects(:find).with('37').returns(mock_post)
|
45
|
-
mock_post.expects(:comments).returns(Comment)
|
46
40
|
Comment.expects(:build).returns(mock_comment)
|
47
41
|
get :new, :post_id => '37'
|
48
42
|
assert_equal mock_post, assigns(:post)
|
@@ -50,8 +44,6 @@ class BelongsToTest < TEST_CLASS
|
|
50
44
|
end
|
51
45
|
|
52
46
|
def test_expose_the_resquested_comment_on_edit
|
53
|
-
Post.expects(:find).with('37').returns(mock_post)
|
54
|
-
mock_post.expects(:comments).returns(Comment)
|
55
47
|
Comment.expects(:find).with('42').returns(mock_comment)
|
56
48
|
get :edit, :id => '42', :post_id => '37'
|
57
49
|
assert_equal mock_post, assigns(:post)
|
@@ -59,8 +51,6 @@ class BelongsToTest < TEST_CLASS
|
|
59
51
|
end
|
60
52
|
|
61
53
|
def test_expose_a_newly_create_comment_on_create
|
62
|
-
Post.expects(:find).with('37').returns(mock_post)
|
63
|
-
mock_post.expects(:comments).returns(Comment)
|
64
54
|
Comment.expects(:build).with({'these' => 'params'}).returns(mock_comment(:save => true))
|
65
55
|
post :create, :post_id => '37', :comment => {:these => 'params'}
|
66
56
|
assert_equal mock_post, assigns(:post)
|
@@ -68,8 +58,6 @@ class BelongsToTest < TEST_CLASS
|
|
68
58
|
end
|
69
59
|
|
70
60
|
def test_update_the_requested_object_on_update
|
71
|
-
Post.expects(:find).with('37').returns(mock_post)
|
72
|
-
mock_post.expects(:comments).returns(Comment)
|
73
61
|
Comment.expects(:find).with('42').returns(mock_comment)
|
74
62
|
mock_comment.expects(:update_attributes).with({'these' => 'params'}).returns(true)
|
75
63
|
put :update, :id => '42', :post_id => '37', :comment => {:these => 'params'}
|
@@ -78,15 +66,15 @@ class BelongsToTest < TEST_CLASS
|
|
78
66
|
end
|
79
67
|
|
80
68
|
def test_the_resquested_comment_is_destroyed_on_destroy
|
81
|
-
Post.expects(:find).with('37').returns(mock_post)
|
82
|
-
mock_post.expects(:comments).returns(Comment)
|
83
69
|
Comment.expects(:find).with('42').returns(mock_comment)
|
84
70
|
mock_comment.expects(:destroy)
|
85
71
|
delete :destroy, :id => '42', :post_id => '37'
|
86
72
|
assert_equal mock_post, assigns(:post)
|
87
73
|
assert_equal mock_comment, assigns(:comment)
|
88
74
|
end
|
75
|
+
|
89
76
|
protected
|
77
|
+
|
90
78
|
def mock_post(stubs={})
|
91
79
|
@mock_post ||= mock(stubs)
|
92
80
|
end
|
data/test/class_methods_test.rb
CHANGED
@@ -93,62 +93,70 @@ class DefaultsClassMethodTest < ActiveSupport::TestCase
|
|
93
93
|
end
|
94
94
|
|
95
95
|
|
96
|
-
class BelongsToClassMethodTest <
|
96
|
+
class BelongsToClassMethodTest < ActionController::TestCase
|
97
|
+
tests ProfessorsController
|
98
|
+
|
97
99
|
def setup
|
98
|
-
|
99
|
-
|
100
|
-
@controller.
|
100
|
+
GreatSchool.expects(:find_by_title!).with('nice').returns(mock_school(:professors => Professor))
|
101
|
+
|
102
|
+
@controller.stubs(:resource_url).returns('/')
|
103
|
+
@controller.stubs(:collection_url).returns('/')
|
101
104
|
end
|
102
105
|
|
103
106
|
def test_expose_the_resquested_school_with_chosen_instance_variable_on_index
|
104
|
-
GreatSchool.expects(:find_by_title!).with('nice').returns(mock_school(:professors => Professor))
|
105
107
|
Professor.stubs(:find).returns([mock_professor])
|
106
108
|
get :index, :school_title => 'nice'
|
107
109
|
assert_equal mock_school, assigns(:great_school)
|
108
110
|
end
|
109
111
|
|
110
112
|
def test_expose_the_resquested_school_with_chosen_instance_variable_on_show
|
111
|
-
GreatSchool.expects(:find_by_title!).with('nice').returns(mock_school(:professors => Professor))
|
112
113
|
Professor.stubs(:find).returns(mock_professor)
|
113
114
|
get :show, :school_title => 'nice'
|
114
115
|
assert_equal mock_school, assigns(:great_school)
|
115
116
|
end
|
116
117
|
|
117
118
|
def test_expose_the_resquested_school_with_chosen_instance_variable_on_new
|
118
|
-
GreatSchool.expects(:find_by_title!).with('nice').returns(mock_school(:professors => Professor))
|
119
119
|
Professor.stubs(:build).returns(mock_professor)
|
120
120
|
get :new, :school_title => 'nice'
|
121
121
|
assert_equal mock_school, assigns(:great_school)
|
122
122
|
end
|
123
123
|
|
124
124
|
def test_expose_the_resquested_school_with_chosen_instance_variable_on_edit
|
125
|
-
GreatSchool.expects(:find_by_title!).with('nice').returns(mock_school(:professors => Professor))
|
126
125
|
Professor.stubs(:find).returns(mock_professor)
|
127
126
|
get :edit, :school_title => 'nice'
|
128
127
|
assert_equal mock_school, assigns(:great_school)
|
129
128
|
end
|
130
129
|
|
131
130
|
def test_expose_the_resquested_school_with_chosen_instance_variable_on_create
|
132
|
-
GreatSchool.expects(:find_by_title!).with('nice').returns(mock_school(:professors => Professor))
|
133
131
|
Professor.stubs(:build).returns(mock_professor(:save => true))
|
134
132
|
post :create, :school_title => 'nice'
|
135
133
|
assert_equal mock_school, assigns(:great_school)
|
136
134
|
end
|
137
135
|
|
138
136
|
def test_expose_the_resquested_school_with_chosen_instance_variable_on_update
|
139
|
-
GreatSchool.expects(:find_by_title!).with('nice').returns(mock_school(:professors => Professor))
|
140
137
|
Professor.stubs(:find).returns(mock_professor(:update_attributes => true))
|
141
138
|
put :update, :school_title => 'nice'
|
142
139
|
assert_equal mock_school, assigns(:great_school)
|
143
140
|
end
|
144
141
|
|
145
142
|
def test_expose_the_resquested_school_with_chosen_instance_variable_on_destroy
|
146
|
-
GreatSchool.expects(:find_by_title!).with('nice').returns(mock_school(:professors => Professor))
|
147
143
|
Professor.stubs(:find).returns(mock_professor(:destroy => true))
|
148
144
|
delete :destroy, :school_title => 'nice'
|
149
145
|
assert_equal mock_school, assigns(:great_school)
|
150
146
|
end
|
151
147
|
|
148
|
+
protected
|
149
|
+
|
150
|
+
def mock_school(stubs={})
|
151
|
+
@mock_school ||= mock(stubs)
|
152
|
+
end
|
153
|
+
|
154
|
+
def mock_professor(stubs={})
|
155
|
+
@mock_professor ||= mock(stubs)
|
156
|
+
end
|
157
|
+
end
|
158
|
+
|
159
|
+
class BelongsToErrorsTest < ActiveSupport::TestCase
|
152
160
|
def test_belongs_to_raise_errors_with_invalid_arguments
|
153
161
|
assert_raise ArgumentError do
|
154
162
|
ProfessorsController.send(:belongs_to)
|
@@ -167,16 +175,7 @@ class BelongsToClassMethodTest < TEST_CLASS
|
|
167
175
|
InheritedResources::UrlHelpers.expects(:create_resources_url_helpers!).returns(true).once
|
168
176
|
ProfessorsController.send(:defaults, BELONGS_TO_OPTIONS)
|
169
177
|
ensure
|
170
|
-
#
|
178
|
+
# Restore default settings
|
171
179
|
ProfessorsController.send(:parents_symbols=, [:school])
|
172
180
|
end
|
173
|
-
|
174
|
-
protected
|
175
|
-
def mock_school(stubs={})
|
176
|
-
@mock_school ||= mock(stubs)
|
177
|
-
end
|
178
|
-
|
179
|
-
def mock_professor(stubs={})
|
180
|
-
@mock_professor ||= mock(stubs)
|
181
|
-
end
|
182
181
|
end
|
data/test/defaults_test.rb
CHANGED
@@ -8,11 +8,12 @@ class PaintersController < InheritedResources::Base
|
|
8
8
|
defaults :instance_name => 'malarz', :collection_name => 'malarze', :resource_class => Malarz
|
9
9
|
end
|
10
10
|
|
11
|
-
class DefaultsTest <
|
11
|
+
class DefaultsTest < ActionController::TestCase
|
12
|
+
tests PaintersController
|
13
|
+
|
12
14
|
def setup
|
13
|
-
@controller
|
14
|
-
@controller.
|
15
|
-
@controller.response = @response = ActionController::TestResponse.new
|
15
|
+
@controller.stubs(:resource_url).returns('/')
|
16
|
+
@controller.stubs(:collection_url).returns('/')
|
16
17
|
end
|
17
18
|
|
18
19
|
def test_expose_all_painters_as_instance_variable
|
@@ -14,22 +14,21 @@ class CitiesController < InheritedResources::Base
|
|
14
14
|
belongs_to :country, :state
|
15
15
|
end
|
16
16
|
|
17
|
-
|
18
|
-
|
17
|
+
class NestedBelongsToTest < ActionController::TestCase
|
18
|
+
tests CitiesController
|
19
19
|
|
20
20
|
def setup
|
21
|
-
@controller = CitiesController.new
|
22
|
-
@controller.request = @request = ActionController::TestRequest.new
|
23
|
-
@controller.response = @response = ActionController::TestResponse.new
|
24
|
-
end
|
25
|
-
|
26
|
-
def test_assigns_country_and_state_and_city_on_create
|
27
21
|
Country.expects(:find).with('13').returns(mock_country)
|
28
22
|
mock_country.expects(:states).returns(State)
|
29
23
|
State.expects(:find).with('37').returns(mock_state)
|
30
24
|
mock_state.expects(:cities).returns(City)
|
31
|
-
City.expects(:find).with(:all).returns([mock_city])
|
32
25
|
|
26
|
+
@controller.stubs(:resource_url).returns('/')
|
27
|
+
@controller.stubs(:collection_url).returns('/')
|
28
|
+
end
|
29
|
+
|
30
|
+
def test_assigns_country_and_state_and_city_on_create
|
31
|
+
City.expects(:find).with(:all).returns([mock_city])
|
33
32
|
get :index, :state_id => '37', :country_id => '13'
|
34
33
|
|
35
34
|
assert_equal mock_country, assigns(:country)
|
@@ -38,12 +37,7 @@ class NestedBelongsToTest < TEST_CLASS
|
|
38
37
|
end
|
39
38
|
|
40
39
|
def test_assigns_country_and_state_and_city_on_show
|
41
|
-
Country.expects(:find).with('13').returns(mock_country)
|
42
|
-
mock_country.expects(:states).returns(State)
|
43
|
-
State.expects(:find).with('37').returns(mock_state)
|
44
|
-
mock_state.expects(:cities).returns(City)
|
45
40
|
City.expects(:find).with('42').returns(mock_city)
|
46
|
-
|
47
41
|
get :show, :id => '42', :state_id => '37', :country_id => '13'
|
48
42
|
|
49
43
|
assert_equal mock_country, assigns(:country)
|
@@ -52,12 +46,7 @@ class NestedBelongsToTest < TEST_CLASS
|
|
52
46
|
end
|
53
47
|
|
54
48
|
def test_assigns_country_and_state_and_city_on_new
|
55
|
-
Country.expects(:find).with('13').returns(mock_country)
|
56
|
-
mock_country.expects(:states).returns(State)
|
57
|
-
State.expects(:find).with('37').returns(mock_state)
|
58
|
-
mock_state.expects(:cities).returns(City)
|
59
49
|
City.expects(:build).returns(mock_city)
|
60
|
-
|
61
50
|
get :new, :state_id => '37', :country_id => '13'
|
62
51
|
|
63
52
|
assert_equal mock_country, assigns(:country)
|
@@ -66,12 +55,7 @@ class NestedBelongsToTest < TEST_CLASS
|
|
66
55
|
end
|
67
56
|
|
68
57
|
def test_assigns_country_and_state_and_city_on_edit
|
69
|
-
Country.expects(:find).with('13').returns(mock_country)
|
70
|
-
mock_country.expects(:states).returns(State)
|
71
|
-
State.expects(:find).with('37').returns(mock_state)
|
72
|
-
mock_state.expects(:cities).returns(City)
|
73
58
|
City.expects(:find).with('42').returns(mock_city)
|
74
|
-
|
75
59
|
get :edit, :id => '42', :state_id => '37', :country_id => '13'
|
76
60
|
|
77
61
|
assert_equal mock_country, assigns(:country)
|
@@ -80,12 +64,8 @@ class NestedBelongsToTest < TEST_CLASS
|
|
80
64
|
end
|
81
65
|
|
82
66
|
def test_assigns_country_and_state_and_city_on_create
|
83
|
-
|
84
|
-
|
85
|
-
State.expects(:find).with('37').returns(mock_state)
|
86
|
-
mock_state.expects(:cities).returns(City)
|
87
|
-
City.expects(:build).with({'these' => 'params'}).returns(mock_city(:save => true))
|
88
|
-
|
67
|
+
City.expects(:build).with({'these' => 'params'}).returns(mock_city)
|
68
|
+
mock_city.expects(:save).returns(true)
|
89
69
|
post :create, :state_id => '37', :country_id => '13', :city => {:these => 'params'}
|
90
70
|
|
91
71
|
assert_equal mock_country, assigns(:country)
|
@@ -94,13 +74,8 @@ class NestedBelongsToTest < TEST_CLASS
|
|
94
74
|
end
|
95
75
|
|
96
76
|
def test_assigns_country_and_state_and_city_on_update
|
97
|
-
Country.expects(:find).with('13').returns(mock_country)
|
98
|
-
mock_country.expects(:states).returns(State)
|
99
|
-
State.expects(:find).with('37').returns(mock_state)
|
100
|
-
mock_state.expects(:cities).returns(City)
|
101
77
|
City.expects(:find).with('42').returns(mock_city)
|
102
|
-
mock_city.expects(:update_attributes).
|
103
|
-
|
78
|
+
mock_city.expects(:update_attributes).returns(true)
|
104
79
|
put :update, :id => '42', :state_id => '37', :country_id => '13', :city => {:these => 'params'}
|
105
80
|
|
106
81
|
assert_equal mock_country, assigns(:country)
|
@@ -109,13 +84,8 @@ class NestedBelongsToTest < TEST_CLASS
|
|
109
84
|
end
|
110
85
|
|
111
86
|
def test_assigns_country_and_state_and_city_on_destroy
|
112
|
-
Country.expects(:find).with('13').returns(mock_country)
|
113
|
-
mock_country.expects(:states).returns(State)
|
114
|
-
State.expects(:find).with('37').returns(mock_state)
|
115
|
-
mock_state.expects(:cities).returns(City)
|
116
87
|
City.expects(:find).with('42').returns(mock_city)
|
117
88
|
mock_city.expects(:destroy)
|
118
|
-
|
119
89
|
delete :destroy, :id => '42', :state_id => '37', :country_id => '13'
|
120
90
|
|
121
91
|
assert_equal mock_country, assigns(:country)
|
@@ -11,27 +11,14 @@ class ProductsController < InheritedResources::Base
|
|
11
11
|
belongs_to :brand, :category, :polymorphic => true, :optional => true
|
12
12
|
end
|
13
13
|
|
14
|
-
|
15
|
-
|
14
|
+
class OptionalTest < ActionController::TestCase
|
15
|
+
tests ProductsController
|
16
|
+
|
16
17
|
def setup
|
17
|
-
@controller
|
18
|
-
@controller.
|
19
|
-
@controller.response = @response = ActionController::TestResponse.new
|
18
|
+
@controller.stubs(:resource_url).returns('/')
|
19
|
+
@controller.stubs(:collection_url).returns('/')
|
20
20
|
end
|
21
21
|
|
22
|
-
protected
|
23
|
-
def mock_category(stubs={})
|
24
|
-
@mock_category ||= mock(stubs)
|
25
|
-
end
|
26
|
-
|
27
|
-
def mock_product(stubs={})
|
28
|
-
@mock_product ||= mock(stubs)
|
29
|
-
end
|
30
|
-
end
|
31
|
-
|
32
|
-
class IndexActionOptionalTest < TEST_CLASS
|
33
|
-
include ProductTestHelper
|
34
|
-
|
35
22
|
def test_expose_all_products_as_instance_variable_with_category
|
36
23
|
Category.expects(:find).with('37').returns(mock_category)
|
37
24
|
mock_category.expects(:products).returns(Product)
|
@@ -47,10 +34,6 @@ class IndexActionOptionalTest < TEST_CLASS
|
|
47
34
|
assert_equal nil, assigns(:category)
|
48
35
|
assert_equal [mock_product], assigns(:products)
|
49
36
|
end
|
50
|
-
end
|
51
|
-
|
52
|
-
class ShowActionOptionalTest < TEST_CLASS
|
53
|
-
include ProductTestHelper
|
54
37
|
|
55
38
|
def test_expose_the_resquested_product_with_category
|
56
39
|
Category.expects(:find).with('37').returns(mock_category)
|
@@ -67,10 +50,6 @@ class ShowActionOptionalTest < TEST_CLASS
|
|
67
50
|
assert_equal nil, assigns(:category)
|
68
51
|
assert_equal mock_product, assigns(:product)
|
69
52
|
end
|
70
|
-
end
|
71
|
-
|
72
|
-
class NewActionOptionalTest < TEST_CLASS
|
73
|
-
include ProductTestHelper
|
74
53
|
|
75
54
|
def test_expose_a_new_product_with_category
|
76
55
|
Category.expects(:find).with('37').returns(mock_category)
|
@@ -87,12 +66,8 @@ class NewActionOptionalTest < TEST_CLASS
|
|
87
66
|
assert_equal nil, assigns(:category)
|
88
67
|
assert_equal mock_product, assigns(:product)
|
89
68
|
end
|
90
|
-
end
|
91
|
-
|
92
|
-
class EditActionOptionalTest < TEST_CLASS
|
93
|
-
include ProductTestHelper
|
94
69
|
|
95
|
-
def
|
70
|
+
def test_expose_the_resquested_product_for_edition_with_category
|
96
71
|
Category.expects(:find).with('37').returns(mock_category)
|
97
72
|
mock_category.expects(:products).returns(Product)
|
98
73
|
Product.expects(:find).with('42').returns(mock_product)
|
@@ -101,16 +76,12 @@ class EditActionOptionalTest < TEST_CLASS
|
|
101
76
|
assert_equal mock_product, assigns(:product)
|
102
77
|
end
|
103
78
|
|
104
|
-
def
|
79
|
+
def test_expose_the_resquested_product_for_edition_without_category
|
105
80
|
Product.expects(:find).with('42').returns(mock_product)
|
106
81
|
get :edit, :id => '42'
|
107
82
|
assert_equal nil, assigns(:category)
|
108
83
|
assert_equal mock_product, assigns(:product)
|
109
84
|
end
|
110
|
-
end
|
111
|
-
|
112
|
-
class CreateActionOptionalTest < TEST_CLASS
|
113
|
-
include ProductTestHelper
|
114
85
|
|
115
86
|
def test_expose_a_newly_create_product_with_category
|
116
87
|
Category.expects(:find).with('37').returns(mock_category)
|
@@ -127,16 +98,13 @@ class CreateActionOptionalTest < TEST_CLASS
|
|
127
98
|
assert_equal nil, assigns(:category)
|
128
99
|
assert_equal mock_product, assigns(:product)
|
129
100
|
end
|
130
|
-
end
|
131
|
-
|
132
|
-
class UpdateActionOptionalTest < TEST_CLASS
|
133
|
-
include ProductTestHelper
|
134
101
|
|
135
102
|
def test_update_the_requested_object_with_category
|
136
103
|
Category.expects(:find).with('37').returns(mock_category)
|
137
104
|
mock_category.expects(:products).returns(Product)
|
138
105
|
Product.expects(:find).with('42').returns(mock_product)
|
139
106
|
mock_product.expects(:update_attributes).with({'these' => 'params'}).returns(true)
|
107
|
+
|
140
108
|
put :update, :id => '42', :category_id => '37', :product => {:these => 'params'}
|
141
109
|
assert_equal mock_category, assigns(:category)
|
142
110
|
assert_equal mock_product, assigns(:product)
|
@@ -145,20 +113,19 @@ class UpdateActionOptionalTest < TEST_CLASS
|
|
145
113
|
def test_update_the_requested_object_without_category
|
146
114
|
Product.expects(:find).with('42').returns(mock_product)
|
147
115
|
mock_product.expects(:update_attributes).with({'these' => 'params'}).returns(true)
|
116
|
+
|
148
117
|
put :update, :id => '42', :product => {:these => 'params'}
|
149
118
|
assert_equal nil, assigns(:category)
|
150
119
|
assert_equal mock_product, assigns(:product)
|
151
120
|
end
|
152
|
-
end
|
153
|
-
|
154
|
-
class DestroyActionOptionalTest < TEST_CLASS
|
155
|
-
include ProductTestHelper
|
156
121
|
|
157
122
|
def test_the_resquested_product_is_destroyed_with_category
|
158
123
|
Category.expects(:find).with('37').returns(mock_category)
|
159
124
|
mock_category.expects(:products).returns(Product)
|
160
125
|
Product.expects(:find).with('42').returns(mock_product)
|
161
126
|
mock_product.expects(:destroy)
|
127
|
+
@controller.expects(:collection_url).returns('/')
|
128
|
+
|
162
129
|
delete :destroy, :id => '42', :category_id => '37'
|
163
130
|
assert_equal mock_category, assigns(:category)
|
164
131
|
assert_equal mock_product, assigns(:product)
|
@@ -167,14 +134,12 @@ class DestroyActionOptionalTest < TEST_CLASS
|
|
167
134
|
def test_the_resquested_product_is_destroyed_without_category
|
168
135
|
Product.expects(:find).with('42').returns(mock_product)
|
169
136
|
mock_product.expects(:destroy)
|
137
|
+
@controller.expects(:collection_url).returns('/')
|
138
|
+
|
170
139
|
delete :destroy, :id => '42'
|
171
140
|
assert_equal nil, assigns(:category)
|
172
141
|
assert_equal mock_product, assigns(:product)
|
173
142
|
end
|
174
|
-
end
|
175
|
-
|
176
|
-
class OptionalHelpersTest < TEST_CLASS
|
177
|
-
include ProductTestHelper
|
178
143
|
|
179
144
|
def test_polymorphic_helpers
|
180
145
|
Product.expects(:find).with(:all).returns([mock_product])
|
@@ -187,4 +152,13 @@ class OptionalHelpersTest < TEST_CLASS
|
|
187
152
|
assert_equal nil, assigns(:category)
|
188
153
|
assert_equal nil, @controller.send(:parent)
|
189
154
|
end
|
155
|
+
|
156
|
+
protected
|
157
|
+
def mock_category(stubs={})
|
158
|
+
@mock_category ||= mock(stubs)
|
159
|
+
end
|
160
|
+
|
161
|
+
def mock_product(stubs={})
|
162
|
+
@mock_product ||= mock(stubs)
|
163
|
+
end
|
190
164
|
end
|