Sha256: b4736f0637e08dd0f7ecc1308d376dfb4ad321d35e264811c09506ee07ed52cc

Contents?: true

Size: 1.49 KB

Versions: 32

Compression:

Stored size: 1.49 KB

Contents

require 'spec_helper'

module Spec
  module Mocks
    describe "A chained method stub" do
      before(:each) do
        @subject = Object.new
      end

      it "returns expected value from chaining only one method call" do
        @subject.stub_chain(:msg1).and_return(:return_value)
        @subject.msg1.should equal(:return_value)
      end

      it "returns expected value from chaining two method calls" do
        @subject.stub_chain(:msg1, :msg2).and_return(:return_value)
        @subject.msg1.msg2.should equal(:return_value)
      end

      it "returns expected value from chaining four method calls" do
        @subject.stub_chain(:msg1, :msg2, :msg3, :msg4).and_return(:return_value)
        @subject.msg1.msg2.msg3.msg4.should equal(:return_value)
      end

      it "returns expected value from two chains with shared messages at the end" do
        @subject.stub_chain(:msg1, :msg2, :msg3, :msg4).and_return(:first)
        @subject.stub_chain(:msg5, :msg2, :msg3, :msg4).and_return(:second)

        @subject.msg1.msg2.msg3.msg4.should equal(:first)
        @subject.msg5.msg2.msg3.msg4.should equal(:second)
      end

      it "returns expected value from two chains with shared messages at the beginning" do
        @subject.stub_chain(:msg1, :msg2, :msg3, :msg4).and_return(:first)
        @subject.stub_chain(:msg1, :msg2, :msg3, :msg5).and_return(:second)

        @subject.msg1.msg2.msg3.msg4.should equal(:first)
        @subject.msg1.msg2.msg3.msg5.should equal(:second)
      end
    end
  end
end

Version data entries

32 entries across 32 versions & 11 rubygems

Version Path
rspec-instructure-1.3.3 spec/spec/mocks/stub_chain_spec.rb
radiant-1.0.0 ruby-debug/ruby/1.8/gems/rspec-1.3.2/spec/spec/mocks/stub_chain_spec.rb
rspec-1.3.2 spec/spec/mocks/stub_chain_spec.rb
rspec-1.3.1 spec/spec/mocks/stub_chain_spec.rb
rspec-1.3.1.rc spec/spec/mocks/stub_chain_spec.rb
rspec-1.3.0 spec/spec/mocks/stub_chain_spec.rb
hubbub-0.0.11 lib/vendor/plugins/rspec/spec/spec/mocks/stub_chain_spec.rb
hubbub-0.0.10 lib/vendor/plugins/rspec/spec/spec/mocks/stub_chain_spec.rb
hubbub-0.0.9 lib/vendor/plugins/rspec/spec/spec/mocks/stub_chain_spec.rb
hubbub-0.0.8 lib/vendor/plugins/rspec/spec/spec/mocks/stub_chain_spec.rb
hubbub-0.0.6 lib/vendor/plugins/rspec/spec/spec/mocks/stub_chain_spec.rb
simple-templater-0.0.1.4 gems/gems/rspec-1.2.9/spec/spec/mocks/stub_chain_spec.rb
media-path-0.1.2 vendor/rspec/spec/spec/mocks/stub_chain_spec.rb
simple-templater-0.0.1.3 vendor/rspec/spec/spec/mocks/stub_chain_spec.rb
pupu-0.0.2.pre vendor/rspec/spec/spec/mocks/stub_chain_spec.rb
media-path-0.1.1.pre vendor/rspec/spec/spec/mocks/stub_chain_spec.rb
simple-templater-0.0.1.2 vendor/rspec/spec/spec/mocks/stub_chain_spec.rb
media-path-0.1.1 vendor/rspec/spec/spec/mocks/stub_chain_spec.rb
simple-templater-0.0.1.1 vendor/rspec/spec/spec/mocks/stub_chain_spec.rb
pupu-0.0.2 vendor/rspec/spec/spec/mocks/stub_chain_spec.rb