Created
March 13, 2009 16:13
-
-
Save hchoroomi/78635 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require File.dirname(__FILE__) + '/../spec_helper' | |
describe CategoriesController, "GET #index" do | |
subject { controller } | |
before(:each) { get :index } | |
it { should assign_to(:categories) } | |
it { should respond_with(:success) } | |
end | |
describe CategoriesController, "GET #show" do | |
subject { controller } | |
before(:each) do | |
Category.should_receive(:find).with('1').and_return(mock_model(Category)) | |
get :show, :id => '1' | |
end | |
it { should assign_to(:category) } | |
it { should respond_with(:success) } | |
end | |
describe CategoriesController, "GET #new" do | |
subject { controller } | |
before(:each) do | |
Category.should_receive(:new).and_return(mock_model(Category)) | |
get :new | |
end | |
it { should assign_to(:category) } | |
it { should respond_with(:success) } | |
end | |
describe CategoriesController, "GET #edit" do | |
subject { controller } | |
before(:each) do | |
Category.should_receive(:find).with('1').and_return(mock_model(Category)) | |
get :edit, :id => '1' | |
end | |
it { should assign_to(:category) } | |
it { should respond_with(:success) } | |
end | |
describe CategoriesController, "POST #create" do | |
before(:each) do | |
@category = mock_model(Category, :save => true) | |
Category.should_receive(:new).with({}).and_return(@category) | |
end | |
def do_post | |
post :create, :category => {} | |
end | |
describe CategoriesController, "(successful creation)" do | |
subject { controller } | |
before(:each) do | |
@category.should_receive(:save).and_return(true) | |
do_post | |
end | |
it { should assign_to(:category) } | |
it { should set_the_flash } | |
it { response.should redirect_to category_path(@category) } | |
end | |
describe CategoriesController, "(unsuccessful creation)" do | |
subject { controller } | |
before(:each) do | |
@category.should_receive(:save).and_return(false) | |
do_post | |
end | |
it { should_not set_the_flash } | |
it { response.should render_template('new') } | |
end | |
end | |
describe CategoriesController, "PUT #update" do | |
before(:each) do | |
@category = mock_model(Category, :update_attributes => true) | |
Category.should_receive(:find).with('1').and_return(@category) | |
end | |
def do_put | |
put :update, :id => '1', :category => {} | |
end | |
describe CategoriesController, "(successful creation)" do | |
subject { controller } | |
before(:each) do | |
@category.should_receive(:update_attributes).and_return(true) | |
do_put | |
end | |
it { should assign_to(:category) } | |
it { should set_the_flash } | |
it { response.should redirect_to category_path(@category) } | |
end | |
describe CategoriesController, "(unsuccessful creation)" do | |
subject { controller } | |
before(:each) do | |
@category.should_receive(:update_attributes).and_return(false) | |
do_put | |
end | |
it { should_not set_the_flash } | |
it { response.should render_template('edit') } | |
end | |
end | |
describe CategoriesController, "DELETE #destroy" do | |
subject { controller } | |
before(:each) do | |
@category = mock_model(Category) | |
Category.should_receive(:find).with('1').and_return(@category) | |
@category.should_receive(:destroy) | |
delete :destroy, :id => '1' | |
end | |
it { should assign_to(:category) } | |
it { should respond_with(:redirect) } | |
it { response.should redirect_to(categories_path)} | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment