Sha256: 513843b8b262187fb36d7969834774047ce23d8a1ac96ec8be89e49aeb444d77

Contents?: true

Size: 914 Bytes

Versions: 152

Compression:

Stored size: 914 Bytes

Contents

require "spec_helper"

describe "a double receiving to_ary" do
  shared_examples "to_ary" do
    it "returns nil" do
      expect do
        obj.to_ary.should be_nil
      end.to raise_error(NoMethodError)
    end
    
    it "doesn't respond" do
      obj.should_not respond_to(:to_ary)
    end

    it "can be overridden with a stub" do
      obj.stub(:to_ary) { :non_nil_value }
      obj.to_ary.should be(:non_nil_value)
    end
    
    it "responds when overriden" do
      obj.stub(:to_ary) { :non_nil_value }
      obj.should respond_to(:to_ary)
    end

    it "supports Array#flatten" do
      obj = double('foo')
      [obj].flatten.should eq([obj])
    end
  end

  context "double as_null_object" do
    let(:obj) { double('obj').as_null_object }
    include_examples "to_ary"
  end

  context "double without as_null_object" do
    let(:obj) { double('obj') }
    include_examples "to_ary"
  end
end

Version data entries

152 entries across 98 versions & 14 rubygems

Version Path
classiccms-0.7.5 vendor/bundle/gems/rspec-mocks-2.10.1/spec/rspec/mocks/to_ary_spec.rb
classiccms-0.7.5 vendor/bundle/gems/rspec-mocks-2.9.0/spec/rspec/mocks/to_ary_spec.rb
classiccms-0.7.4 vendor/bundle/gems/rspec-mocks-2.10.1/spec/rspec/mocks/to_ary_spec.rb
classiccms-0.7.4 vendor/bundle/gems/rspec-mocks-2.9.0/spec/rspec/mocks/to_ary_spec.rb
classiccms-0.7.3 vendor/bundle/gems/rspec-mocks-2.9.0/spec/rspec/mocks/to_ary_spec.rb
classiccms-0.7.3 vendor/bundle/gems/rspec-mocks-2.10.1/spec/rspec/mocks/to_ary_spec.rb
tnargav-1.3.3 vendor/bundle/ruby/1.9.1/gems/rspec-mocks-2.11.3/spec/rspec/mocks/to_ary_spec.rb
tnargav-1.2.3 vendor/bundle/ruby/1.9.1/gems/rspec-mocks-2.11.3/spec/rspec/mocks/to_ary_spec.rb
classiccms-0.7.2 vendor/bundle/gems/rspec-mocks-2.10.1/spec/rspec/mocks/to_ary_spec.rb
classiccms-0.7.2 vendor/bundle/gems/rspec-mocks-2.9.0/spec/rspec/mocks/to_ary_spec.rb
classiccms-0.7.1 vendor/bundle/gems/rspec-mocks-2.10.1/spec/rspec/mocks/to_ary_spec.rb
classiccms-0.7.1 vendor/bundle/gems/rspec-mocks-2.9.0/spec/rspec/mocks/to_ary_spec.rb
classiccms-0.7.0 vendor/bundle/gems/rspec-mocks-2.10.1/spec/rspec/mocks/to_ary_spec.rb
classiccms-0.7.0 vendor/bundle/gems/rspec-mocks-2.9.0/spec/rspec/mocks/to_ary_spec.rb
sunrise-cms-0.5.0.rc1 vendor/bundle/ruby/1.9.1/gems/rspec-mocks-2.10.1/spec/rspec/mocks/to_ary_spec.rb
classiccms-0.6.9 vendor/bundle/gems/rspec-mocks-2.10.1/spec/rspec/mocks/to_ary_spec.rb
classiccms-0.6.9 vendor/bundle/gems/rspec-mocks-2.9.0/spec/rspec/mocks/to_ary_spec.rb
rspec-mocks-2.12.1 spec/rspec/mocks/to_ary_spec.rb
rspec-mocks-2.12.0 spec/rspec/mocks/to_ary_spec.rb
classiccms-0.6.8 vendor/bundle/gems/rspec-mocks-2.10.1/spec/rspec/mocks/to_ary_spec.rb