1 require File.dirname(__FILE__) + '<%= '/..' * class_nesting_depth %>/../spec_helper'
3 describe <%= controller_class_name %>Controller do
4 describe "handling GET /<%= table_name %>" do
7 @<%= file_name %> = mock_model(<%= class_name %>)
8 <%= class_name %>.stub!(:find).and_return([@<%= file_name %>])
15 it "should be successful" do
17 response.should be_success
20 it "should render index template" do
22 response.should render_template('index')
25 it "should find all <%= table_name %>" do
26 <%= class_name %>.should_receive(:find).with(:all).and_return([@<%= file_name %>])
30 it "should assign the found <%= table_name %> for the view" do
32 assigns[:<%= table_name %>].should == [@<%= file_name %>]
36 describe "handling GET /<%= table_name %>.xml" do
39 @<%= file_name.pluralize %> = mock("Array of <%= class_name.pluralize %>", :to_xml => "XML")
40 <%= class_name %>.stub!(:find).and_return(@<%= file_name.pluralize %>)
44 @request.env["HTTP_ACCEPT"] = "application/xml"
48 it "should be successful" do
50 response.should be_success
53 it "should find all <%= table_name %>" do
54 <%= class_name %>.should_receive(:find).with(:all).and_return(@<%= file_name.pluralize %>)
58 it "should render the found <%= table_name %> as xml" do
59 @<%= file_name.pluralize %>.should_receive(:to_xml).and_return("XML")
61 response.body.should == "XML"
65 describe "handling GET /<%= table_name %>/1" do
68 @<%= file_name %> = mock_model(<%= class_name %>)
69 <%= class_name %>.stub!(:find).and_return(@<%= file_name %>)
76 it "should be successful" do
78 response.should be_success
81 it "should render show template" do
83 response.should render_template('show')
86 it "should find the <%= file_name %> requested" do
87 <%= class_name %>.should_receive(:find).with("1").and_return(@<%= file_name %>)
91 it "should assign the found <%= file_name %> for the view" do
93 assigns[:<%= file_name %>].should equal(@<%= file_name %>)
97 describe "handling GET /<%= table_name %>/1.xml" do
100 @<%= file_name %> = mock_model(<%= class_name %>, :to_xml => "XML")
101 <%= class_name %>.stub!(:find).and_return(@<%= file_name %>)
105 @request.env["HTTP_ACCEPT"] = "application/xml"
106 get :show, :id => "1"
109 it "should be successful" do
111 response.should be_success
114 it "should find the <%= file_name %> requested" do
115 <%= class_name %>.should_receive(:find).with("1").and_return(@<%= file_name %>)
119 it "should render the found <%= file_name %> as xml" do
120 @<%= file_name %>.should_receive(:to_xml).and_return("XML")
122 response.body.should == "XML"
126 describe "handling GET /<%= table_name %>/new" do
129 @<%= file_name %> = mock_model(<%= class_name %>)
130 <%= class_name %>.stub!(:new).and_return(@<%= file_name %>)
137 it "should be successful" do
139 response.should be_success
142 it "should render new template" do
144 response.should render_template('new')
147 it "should create an new <%= file_name %>" do
148 <%= class_name %>.should_receive(:new).and_return(@<%= file_name %>)
152 it "should not save the new <%= file_name %>" do
153 @<%= file_name %>.should_not_receive(:save)
157 it "should assign the new <%= file_name %> for the view" do
159 assigns[:<%= file_name %>].should equal(@<%= file_name %>)
163 describe "handling GET /<%= table_name %>/1/edit" do
166 @<%= file_name %> = mock_model(<%= class_name %>)
167 <%= class_name %>.stub!(:find).and_return(@<%= file_name %>)
171 get :edit, :id => "1"
174 it "should be successful" do
176 response.should be_success
179 it "should render edit template" do
181 response.should render_template('edit')
184 it "should find the <%= file_name %> requested" do
185 <%= class_name %>.should_receive(:find).and_return(@<%= file_name %>)
189 it "should assign the found <%= class_name %> for the view" do
191 assigns[:<%= file_name %>].should equal(@<%= file_name %>)
195 describe "handling POST /<%= table_name %>" do
198 @<%= file_name %> = mock_model(<%= class_name %>, :to_param => "1")
199 <%= class_name %>.stub!(:new).and_return(@<%= file_name %>)
202 describe "with successful save" do
205 @<%= file_name %>.should_receive(:save).and_return(true)
206 post :create, :<%= file_name %> => {}
209 it "should create a new <%= file_name %>" do
210 <%= class_name %>.should_receive(:new).with({}).and_return(@<%= file_name %>)
214 it "should redirect to the new <%= file_name %>" do
216 response.should redirect_to(<%= table_name.singularize %>_url("1"))
221 describe "with failed save" do
224 @<%= file_name %>.should_receive(:save).and_return(false)
225 post :create, :<%= file_name %> => {}
228 it "should re-render 'new'" do
230 response.should render_template('new')
236 describe "handling PUT /<%= table_name %>/1" do
239 @<%= file_name %> = mock_model(<%= class_name %>, :to_param => "1")
240 <%= class_name %>.stub!(:find).and_return(@<%= file_name %>)
243 describe "with successful update" do
246 @<%= file_name %>.should_receive(:update_attributes).and_return(true)
247 put :update, :id => "1"
250 it "should find the <%= file_name %> requested" do
251 <%= class_name %>.should_receive(:find).with("1").and_return(@<%= file_name %>)
255 it "should update the found <%= file_name %>" do
257 assigns(:<%= file_name %>).should equal(@<%= file_name %>)
260 it "should assign the found <%= file_name %> for the view" do
262 assigns(:<%= file_name %>).should equal(@<%= file_name %>)
265 it "should redirect to the <%= file_name %>" do
267 response.should redirect_to(<%= table_name.singularize %>_url("1"))
272 describe "with failed update" do
275 @<%= file_name %>.should_receive(:update_attributes).and_return(false)
276 put :update, :id => "1"
279 it "should re-render 'edit'" do
281 response.should render_template('edit')
287 describe "handling DELETE /<%= table_name %>/1" do
290 @<%= file_name %> = mock_model(<%= class_name %>, :destroy => true)
291 <%= class_name %>.stub!(:find).and_return(@<%= file_name %>)
295 delete :destroy, :id => "1"
298 it "should find the <%= file_name %> requested" do
299 <%= class_name %>.should_receive(:find).with("1").and_return(@<%= file_name %>)
303 it "should call destroy on the found <%= file_name %>" do
304 @<%= file_name %>.should_receive(:destroy)
308 it "should redirect to the <%= table_name %> list" do
310 response.should redirect_to(<%= table_name %>_url)