Upgraded Rails and RSpec
[monkeycharger.git] / vendor / plugins / rspec_on_rails / generators / rspec_scaffold / templates / controller_spec.rb
blobc3b5945805fdd8d9146012c1150024c7e71e80e7
1 require File.dirname(__FILE__) + '<%= '/..' * class_nesting_depth %>/../spec_helper'
3 describe <%= controller_class_name %>Controller, "#route_for" do
5   it "should map { :controller => '<%= table_name %>', :action => 'index' } to /<%= table_name %>" do
6     route_for(:controller => "<%= table_name %>", :action => "index").should == "/<%= table_name %>"
7   end
8   
9   it "should map { :controller => '<%= table_name %>', :action => 'new' } to /<%= table_name %>/new" do
10     route_for(:controller => "<%= table_name %>", :action => "new").should == "/<%= table_name %>/new"
11   end
12   
13   it "should map { :controller => '<%= table_name %>', :action => 'show', :id => 1 } to /<%= table_name %>/1" do
14     route_for(:controller => "<%= table_name %>", :action => "show", :id => 1).should == "/<%= table_name %>/1"
15   end
16   
17   it "should map { :controller => '<%= table_name %>', :action => 'edit', :id => 1 } to /<%= table_name %>/1<%= resource_edit_path %>" do
18     route_for(:controller => "<%= table_name %>", :action => "edit", :id => 1).should == "/<%= table_name %>/1<%= resource_edit_path %>"
19   end
20   
21   it "should map { :controller => '<%= table_name %>', :action => 'update', :id => 1} to /<%= table_name %>/1" do
22     route_for(:controller => "<%= table_name %>", :action => "update", :id => 1).should == "/<%= table_name %>/1"
23   end
24   
25   it "should map { :controller => '<%= table_name %>', :action => 'destroy', :id => 1} to /<%= table_name %>/1" do
26     route_for(:controller => "<%= table_name %>", :action => "destroy", :id => 1).should == "/<%= table_name %>/1"
27   end
28   
29 end
31 describe <%= controller_class_name %>Controller, "handling GET /<%= table_name %>" do
33   before do
34     @<%= file_name %> = mock_model(<%= class_name %>)
35     <%= class_name %>.stub!(:find).and_return([@<%= file_name %>])
36   end
37   
38   def do_get
39     get :index
40   end
41   
42   it "should be successful" do
43     do_get
44     response.should be_success
45   end
47   it "should render index template" do
48     do_get
49     response.should render_template('index')
50   end
51   
52   it "should find all <%= table_name %>" do
53     <%= class_name %>.should_receive(:find).with(:all).and_return([@<%= file_name %>])
54     do_get
55   end
56   
57   it "should assign the found <%= table_name %> for the view" do
58     do_get
59     assigns[:<%= table_name %>].should == [@<%= file_name %>]
60   end
61 end
63 describe <%= controller_class_name %>Controller, "handling GET /<%= table_name %>.xml" do
65   before do
66     @<%= file_name %> = mock_model(<%= class_name %>, :to_xml => "XML")
67     <%= class_name %>.stub!(:find).and_return(@<%= file_name %>)
68   end
69   
70   def do_get
71     @request.env["HTTP_ACCEPT"] = "application/xml"
72     get :index
73   end
74   
75   it "should be successful" do
76     do_get
77     response.should be_success
78   end
80   it "should find all <%= table_name %>" do
81     <%= class_name %>.should_receive(:find).with(:all).and_return([@<%= file_name %>])
82     do_get
83   end
84   
85   it "should render the found <%= table_name %> as xml" do
86     @<%= file_name %>.should_receive(:to_xml).and_return("XML")
87     do_get
88     response.body.should == "XML"
89   end
90 end
92 describe <%= controller_class_name %>Controller, "handling GET /<%= table_name %>/1" do
94   before do
95     @<%= file_name %> = mock_model(<%= class_name %>)
96     <%= class_name %>.stub!(:find).and_return(@<%= file_name %>)
97   end
98   
99   def do_get
100     get :show, :id => "1"
101   end
103   it "should be successful" do
104     do_get
105     response.should be_success
106   end
107   
108   it "should render show template" do
109     do_get
110     response.should render_template('show')
111   end
112   
113   it "should find the <%= file_name %> requested" do
114     <%= class_name %>.should_receive(:find).with("1").and_return(@<%= file_name %>)
115     do_get
116   end
117   
118   it "should assign the found <%= file_name %> for the view" do
119     do_get
120     assigns[:<%= file_name %>].should equal(@<%= file_name %>)
121   end
124 describe <%= controller_class_name %>Controller, "handling GET /<%= table_name %>/1.xml" do
126   before do
127     @<%= file_name %> = mock_model(<%= class_name %>, :to_xml => "XML")
128     <%= class_name %>.stub!(:find).and_return(@<%= file_name %>)
129   end
130   
131   def do_get
132     @request.env["HTTP_ACCEPT"] = "application/xml"
133     get :show, :id => "1"
134   end
136   it "should be successful" do
137     do_get
138     response.should be_success
139   end
140   
141   it "should find the <%= file_name %> requested" do
142     <%= class_name %>.should_receive(:find).with("1").and_return(@<%= file_name %>)
143     do_get
144   end
145   
146   it "should render the found <%= file_name %> as xml" do
147     @<%= file_name %>.should_receive(:to_xml).and_return("XML")
148     do_get
149     response.body.should == "XML"
150   end
153 describe <%= controller_class_name %>Controller, "handling GET /<%= table_name %>/new" do
155   before do
156     @<%= file_name %> = mock_model(<%= class_name %>)
157     <%= class_name %>.stub!(:new).and_return(@<%= file_name %>)
158   end
159   
160   def do_get
161     get :new
162   end
164   it "should be successful" do
165     do_get
166     response.should be_success
167   end
168   
169   it "should render new template" do
170     do_get
171     response.should render_template('new')
172   end
173   
174   it "should create an new <%= file_name %>" do
175     <%= class_name %>.should_receive(:new).and_return(@<%= file_name %>)
176     do_get
177   end
178   
179   it "should not save the new <%= file_name %>" do
180     @<%= file_name %>.should_not_receive(:save)
181     do_get
182   end
183   
184   it "should assign the new <%= file_name %> for the view" do
185     do_get
186     assigns[:<%= file_name %>].should equal(@<%= file_name %>)
187   end
190 describe <%= controller_class_name %>Controller, "handling GET /<%= table_name %>/1/edit" do
192   before do
193     @<%= file_name %> = mock_model(<%= class_name %>)
194     <%= class_name %>.stub!(:find).and_return(@<%= file_name %>)
195   end
196   
197   def do_get
198     get :edit, :id => "1"
199   end
201   it "should be successful" do
202     do_get
203     response.should be_success
204   end
205   
206   it "should render edit template" do
207     do_get
208     response.should render_template('edit')
209   end
210   
211   it "should find the <%= file_name %> requested" do
212     <%= class_name %>.should_receive(:find).and_return(@<%= file_name %>)
213     do_get
214   end
215   
216   it "should assign the found <%= class_name %> for the view" do
217     do_get
218     assigns[:<%= file_name %>].should equal(@<%= file_name %>)
219   end
222 describe <%= controller_class_name %>Controller, "handling POST /<%= table_name %>" do
224   before do
225     @<%= file_name %> = mock_model(<%= class_name %>, :to_param => "1", :save => true)
226     <%= class_name %>.stub!(:new).and_return(@<%= file_name %>)
227     @params = {}
228   end
229   
230   def do_post
231     post :create, :<%= file_name %> => @params
232   end
233   
234   it "should create a new <%= file_name %>" do
235     <%= class_name %>.should_receive(:new).with(@params).and_return(@<%= file_name %>)
236     do_post
237   end
239   it "should redirect to the new <%= file_name %>" do
240     do_post
241     response.should redirect_to(<%= table_name.singularize %>_url("1"))
242   end
245 describe <%= controller_class_name %>Controller, "handling PUT /<%= table_name %>/1" do
247   before do
248     @<%= file_name %> = mock_model(<%= class_name %>, :to_param => "1", :update_attributes => true)
249     <%= class_name %>.stub!(:find).and_return(@<%= file_name %>)
250   end
251   
252   def do_update
253     put :update, :id => "1"
254   end
255   
256   it "should find the <%= file_name %> requested" do
257     <%= class_name %>.should_receive(:find).with("1").and_return(@<%= file_name %>)
258     do_update
259   end
261   it "should update the found <%= file_name %>" do
262     @<%= file_name %>.should_receive(:update_attributes)
263     do_update
264     assigns(:<%= file_name %>).should equal(@<%= file_name %>)
265   end
267   it "should assign the found <%= file_name %> for the view" do
268     do_update
269     assigns(:<%= file_name %>).should equal(@<%= file_name %>)
270   end
272   it "should redirect to the <%= file_name %>" do
273     do_update
274     response.should redirect_to(<%= table_name.singularize %>_url("1"))
275   end
278 describe <%= controller_class_name %>Controller, "handling DELETE /<%= table_name %>/1" do
280   before do
281     @<%= file_name %> = mock_model(<%= class_name %>, :destroy => true)
282     <%= class_name %>.stub!(:find).and_return(@<%= file_name %>)
283   end
284   
285   def do_delete
286     delete :destroy, :id => "1"
287   end
289   it "should find the <%= file_name %> requested" do
290     <%= class_name %>.should_receive(:find).with("1").and_return(@<%= file_name %>)
291     do_delete
292   end
293   
294   it "should call destroy on the found <%= file_name %>" do
295     @<%= file_name %>.should_receive(:destroy)
296     do_delete
297   end
298   
299   it "should redirect to the <%= table_name %> list" do
300     do_delete
301     response.should redirect_to(<%= table_name %>_url)
302   end