Sha256: c85d1d9384e90efc40ae447de55e46eb0aa19831ca24042e636c6fd6127f2325

Contents?: true

Size: 1.4 KB

Versions: 58

Compression:

Stored size: 1.4 KB

Contents

require 'spec_helper'

describe FactoryGirl::Strategy::Stub do
  it_should_behave_like "strategy with association support", FactoryGirl::Strategy::Stub
  it_should_behave_like "strategy with callbacks", :after_stub
  it_should_behave_like "strategy with strategy: :build", FactoryGirl::Strategy::Stub

  context "asking for a result" do
    before { Timecop.freeze(Time.now) }
    after  { Timecop.return }
    let(:result_instance) do
      define_class("ResultInstance") do
        attr_accessor :id
      end.new
    end

    let(:assigner)  { stub("attribute assigner", object: result_instance) }
    let(:to_create) { lambda {|instance| instance } }

    it { subject.result(assigner, to_create).should_not be_new_record }
    it { subject.result(assigner, to_create).should be_persisted }

    it "assigns created_at" do
      created_at = subject.result(assigner, to_create).created_at
      created_at.should == Time.now

      Timecop.travel(150000)

      subject.result(assigner, to_create).created_at.should == created_at
    end

    [:save, :destroy, :connection, :reload, :update_attribute].each do |database_method|
      it "raises when attempting to connect to the database by calling #{database_method}" do
        expect do
          subject.result(assigner, to_create).send(database_method)
        end.to raise_error(RuntimeError, "stubbed models are not allowed to access the database")
      end
    end
  end
end

Version data entries

58 entries across 58 versions & 4 rubygems

Version Path
classiccms-0.7.5 vendor/bundle/gems/factory_girl-3.0.0/spec/factory_girl/strategy/stub_spec.rb
classiccms-0.7.4 vendor/bundle/gems/factory_girl-3.0.0/spec/factory_girl/strategy/stub_spec.rb
classiccms-0.7.3 vendor/bundle/gems/factory_girl-3.0.0/spec/factory_girl/strategy/stub_spec.rb
classiccms-0.7.2 vendor/bundle/gems/factory_girl-3.0.0/spec/factory_girl/strategy/stub_spec.rb
classiccms-0.7.1 vendor/bundle/gems/factory_girl-3.0.0/spec/factory_girl/strategy/stub_spec.rb
classiccms-0.7.0 vendor/bundle/gems/factory_girl-3.0.0/spec/factory_girl/strategy/stub_spec.rb
classiccms-0.6.9 vendor/bundle/gems/factory_girl-3.0.0/spec/factory_girl/strategy/stub_spec.rb
classiccms-0.6.8 vendor/bundle/gems/factory_girl-3.0.0/spec/factory_girl/strategy/stub_spec.rb
classiccms-0.6.7 vendor/bundle/gems/factory_girl-3.0.0/spec/factory_girl/strategy/stub_spec.rb
classiccms-0.6.6 vendor/bundle/gems/factory_girl-3.0.0/spec/factory_girl/strategy/stub_spec.rb
classiccms-0.6.5 vendor/bundle/gems/factory_girl-3.0.0/spec/factory_girl/strategy/stub_spec.rb
classiccms-0.6.4 vendor/bundle/gems/factory_girl-3.0.0/spec/factory_girl/strategy/stub_spec.rb
classiccms-0.6.3 vendor/bundle/gems/factory_girl-3.0.0/spec/factory_girl/strategy/stub_spec.rb
classiccms-0.6.2 vendor/bundle/gems/factory_girl-3.0.0/spec/factory_girl/strategy/stub_spec.rb
classiccms-0.6.1 vendor/bundle/gems/factory_girl-3.0.0/spec/factory_girl/strategy/stub_spec.rb
classiccms-0.6.0 vendor/bundle/gems/factory_girl-3.0.0/spec/factory_girl/strategy/stub_spec.rb
classiccms-0.5.17 vendor/bundle/gems/factory_girl-3.0.0/spec/factory_girl/strategy/stub_spec.rb
classiccms-0.5.16 vendor/bundle/gems/factory_girl-3.0.0/spec/factory_girl/strategy/stub_spec.rb
classiccms-0.5.15 vendor/bundle/gems/factory_girl-3.0.0/spec/factory_girl/strategy/stub_spec.rb
classiccms-0.5.14 vendor/bundle/gems/factory_girl-3.0.0/spec/factory_girl/strategy/stub_spec.rb