Sha256: f3f11ea192ca28ff6fda39a76dc842e8e564ab76e5dd486c2917c30866b24d9a

Contents?: true

Size: 1.44 KB

Versions: 6

Compression:

Stored size: 1.44 KB

Contents

require File.dirname(__FILE__) + '/../../spec_helper'
require File.dirname(__FILE__) + '/ar_classes'

describe "stub_model" do
  it "should have an id starting at 1000" do
    stub_model(MockableModel).id.should be >= 1000
  end
  
  it "should accept a stub id" do
    stub_model(MockableModel, :id => 3).id.should == 3
  end
  
  it "should accept a stub anything" do
    stub_model(MockableModel, :foo => "bar").foo.should == "bar"
  end
  
  it "should raise when hitting the db" do
    lambda do
      stub_model(MockableModel).save
    end.should raise_error(Spec::Rails::IllegalDataAccessException, /stubbed models are not allowed to access the database/)
  end
  
  it "should increment the id" do
    first = stub_model(MockableModel)
    second = stub_model(MockableModel)
    second.id.should == (first.id + 1)
  end
  
end

describe "stub_model as association", :type => :view do
  before(:each) do
    @real = AssociatedModel.create!
    @stub_model = stub_model(MockableModel)
    @real.mockable_model = @stub_model
  end
  
  it "should pass associated_model == mock" do
      @stub_model.should == @real.mockable_model
  end

  it "should pass mock == associated_model" do
      @real.mockable_model.should == @stub_model
  end
end

describe "stub_model with a block", :type => :view do
  it "should yield the stub" do
    model = stub_model(MockableModel) do |model|
      model.stub!(:foo).and_return(:bar)
    end
    model.foo.should == :bar
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
radiant-0.6.5.1 vendor/plugins/rspec_on_rails/spec/rails/mocks/stub_model_spec.rb
radiant-0.6.5 vendor/plugins/rspec_on_rails/spec/rails/mocks/stub_model_spec.rb
radiant-0.6.6 vendor/plugins/rspec_on_rails/spec/rails/mocks/stub_model_spec.rb
radiant-0.6.7 vendor/plugins/rspec_on_rails/spec/rails/mocks/stub_model_spec.rb
radiant-0.6.8 vendor/plugins/rspec_on_rails/spec/rails/mocks/stub_model_spec.rb
radiant-0.6.9 vendor/plugins/rspec_on_rails/spec/rails/mocks/stub_model_spec.rb