Sha256: 6e6d886acd37181ebd474b680499fa853f65791eaa0fca3df8f047b0ffda4290

Contents?: true

Size: 736 Bytes

Versions: 17

Compression:

Stored size: 736 Bytes

Contents

RSpec.describe Mutant::Actor::Env do
  let(:thread)      { double('Thread')      }
  let(:thread_root) { double('Thread Root') }

  let(:object) { described_class.new(thread_root) }

  describe '#spawn' do
    subject { object.spawn(&block) }

    let!(:mailbox) { Mutant::Actor::Mailbox.new }

    let(:yields) { [] }

    let(:block) { ->(actor) { yields << actor } }

    before do
      expect(Mutant::Actor::Mailbox).to receive(:new).and_return(mailbox).ordered
      expect(thread_root).to receive(:new).and_yield.and_return(thread).ordered
    end

    it 'returns sender' do
      should be(mailbox.sender)
    end

    it 'yields actor' do
      expect { subject }.to change { yields }.from([]).to([mailbox])
    end
  end
end

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
mutant-0.8.8 spec/unit/mutant/actor/env_spec.rb
mutant-0.8.7 spec/unit/mutant/actor/env_spec.rb
mutant-0.8.6 spec/unit/mutant/actor/env_spec.rb
mutant-0.8.5 spec/unit/mutant/actor/env_spec.rb
mutant-0.8.4 spec/unit/mutant/actor/env_spec.rb
mutant-0.8.3 spec/unit/mutant/actor/env_spec.rb
mutant-0.8.2 spec/unit/mutant/actor/env_spec.rb
mutant-0.8.1 spec/unit/mutant/actor/env_spec.rb
mutant-0.8.0 spec/unit/mutant/actor/env_spec.rb
mutant-0.7.9 spec/unit/mutant/actor/env_spec.rb
mutant-0.7.8 spec/unit/mutant/actor/env_spec.rb
mutant-0.7.7 spec/unit/mutant/actor/env_spec.rb
mutant-0.7.6 spec/unit/mutant/actor/env_spec.rb
mutant-0.7.5 spec/unit/mutant/actor/env_spec.rb
mutant-0.7.4 spec/unit/mutant/actor/env_spec.rb
mutant-0.7.3 spec/unit/mutant/actor/env_spec.rb
mutant-0.7.2 spec/unit/mutant/actor/env_spec.rb