Sha256: 1c7e8f7553dc1ecdba1ac5440362da6debd5bf53087d19fe7f67adb014a6271d

Contents?: true

Size: 1.63 KB

Versions: 14

Compression:

Stored size: 1.63 KB

Contents

require 'spec_helper'

describe Module do

  describe 'each_forward' do
    context "with correct params" do
      let(:klass) do
        Class.new do

          each_forward :bli, :bla, :blu, :to => :@some_enumerable

          def initialize some_enumerable
            @some_enumerable = some_enumerable
          end

        end
      end
      it 'should send each a bli' do
        bli = stub :bli
        delegating = klass.new [bli, bli, bli, bli]

        bli.should_receive(:bli).exactly(4).times

        delegating.bli
      end
    end
    context "without correct params" do
      it 'should raise an error' do
        lambda do
          Class.new do
            each_forward :bli, :bla, :blu # :to missing
          end
        end.should raise_error(ArgumentError)
      end
    end
  end
  
  describe 'forward' do
    context "with correct params" do
      let(:klass) do
        Class.new do

          forward :bli, :bla, :blu, :to => :@some_thing

          def initialize some_thing
            @some_thing = some_thing
          end

        end
      end
      it 'should send each a bli' do
        bli = stub :bli
        delegating = klass.new bli

        bli.should_receive(:bli).exactly(1).times
        bli.should_receive(:bla).exactly(1).times
        bli.should_receive(:blu).exactly(1).times

        delegating.bli
        delegating.bla
        delegating.blu
      end
    end
    context "without correct params" do
      it 'should raise an error' do
        lambda do
          Class.new do
            forward :bli, :bla, :blu # :to missing
          end
        end.should raise_error(ArgumentError)
      end
    end
  end

end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
picky-4.14.0 spec/lib/extensions/module_spec.rb
picky-4.13.1 spec/lib/extensions/module_spec.rb
picky-4.13.0 spec/lib/extensions/module_spec.rb
picky-4.12.13 spec/lib/extensions/module_spec.rb
picky-4.12.12 spec/lib/extensions/module_spec.rb
picky-4.12.11 spec/lib/extensions/module_spec.rb
picky-4.12.10 spec/lib/extensions/module_spec.rb
picky-4.12.8 spec/lib/extensions/module_spec.rb
picky-4.12.7 spec/lib/extensions/module_spec.rb
picky-4.12.6 spec/lib/extensions/module_spec.rb
picky-4.12.5 spec/lib/extensions/module_spec.rb
picky-4.12.4 spec/lib/extensions/module_spec.rb
picky-4.12.3 spec/lib/extensions/module_spec.rb
picky-4.12.2 spec/lib/extensions/module_spec.rb