Sha256: fe5c2d4bc5746495fc1c4b25edbfab9c934b4202101e06c153f119ad7b9d38fe

Contents?: true

Size: 1.78 KB

Versions: 19

Compression:

Stored size: 1.78 KB

Contents

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

class MockableModel < ActiveRecord::Base
  has_one :associated_model
end

class SubMockableModel < MockableModel
end

class AssociatedModel < ActiveRecord::Base
  belongs_to :mockable_model
end

describe "mock_model", :type => :view do
  before(:each) do
    @model = mock_model(SubMockableModel)
  end
  it "should say it is_a? if it is" do
    @model.is_a?(SubMockableModel).should be(true)
  end
  it "should say it is_a? if it's ancestor is" do
    @model.is_a?(MockableModel).should be(true)
  end
  it "should say it is kind_of? if it is" do
    @model.kind_of?(SubMockableModel).should be(true)
  end
  it "should say it is kind_of? if it's ancestor is" do
    @model.kind_of?(MockableModel).should be(true)
  end
  it "should say it is instance_of? if it is" do
    @model.instance_of?(SubMockableModel).should be(true)
  end
  it "should not say it instance_of? if it isn't, even if it's ancestor is" do
    @model.instance_of?(MockableModel).should be(false)
  end
end

describe "mock_model with null_object", :type => :view do
  before(:each) do
    @model = mock_model(MockableModel, :null_object => true, :mocked_method => "mocked")
  end
  
  it "should be able to mock methods" do
    @model.mocked_method.should == "mocked"
  end
  it "should return itself to unmocked methods" do
    @model.unmocked_method.should equal(@model)
  end
end

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

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

Version data entries

19 entries across 19 versions & 3 rubygems

Version Path
picolena-0.0.99 app_generators/picolena/templates/vendor/plugins/rspec_on_rails/spec/rails/mocks/mock_model_spec.rb
picolena-0.1.0 rails_plugins/rspec_on_rails/spec/rails/mocks/mock_model_spec.rb
picolena-0.1.1 rails_plugins/rspec_on_rails/spec/rails/mocks/mock_model_spec.rb
picolena-0.1.3 rails_plugins/rspec_on_rails/spec/rails/mocks/mock_model_spec.rb
picolena-0.1.4 rails_plugins/rspec_on_rails/spec/rails/mocks/mock_model_spec.rb
picolena-0.1.2 rails_plugins/rspec_on_rails/spec/rails/mocks/mock_model_spec.rb
picolena-0.1.5 rails_plugins/rspec_on_rails/spec/rails/mocks/mock_model_spec.rb
spree-0.0.9 vendor/plugins/rspec_on_rails/spec/rails/mocks/mock_model_spec.rb
spree-0.0.8 starter-app/vendor/plugins/rspec_on_rails/spec/rails/mocks/mock_model_spec.rb
spree-0.2.0 vendor/plugins/rspec_on_rails/spec/rails/mocks/mock_model_spec.rb
typo-5.0.1 vendor/plugins/rspec_on_rails/spec/rails/mocks/mock_model_spec.rb
typo-5.0.2 vendor/plugins/rspec_on_rails/spec/rails/mocks/mock_model_spec.rb
typo-5.0.3.98.1 vendor/plugins/rspec_on_rails/spec/rails/mocks/mock_model_spec.rb
typo-5.0 vendor/plugins/rspec_on_rails/spec/rails/mocks/mock_model_spec.rb
typo-5.0.3.98 vendor/plugins/rspec_on_rails/spec/rails/mocks/mock_model_spec.rb
typo-5.1.2 vendor/plugins/rspec_on_rails/spec/rails/mocks/mock_model_spec.rb
typo-5.1.1 vendor/plugins/rspec_on_rails/spec/rails/mocks/mock_model_spec.rb
typo-5.1.3 vendor/plugins/rspec_on_rails/spec/rails/mocks/mock_model_spec.rb
typo-5.1 vendor/plugins/rspec_on_rails/spec/rails/mocks/mock_model_spec.rb