Sha256: 1d43b460cbce782455ee97de6a5f7c1dce14fa864388ddbfbeb4d1b0996f1162

Contents?: true

Size: 740 Bytes

Versions: 6

Compression:

Stored size: 740 Bytes

Contents

RSpec.describe Mutant::Actor::Env do
  let(:thread)      { instance_double(Thread) }
  let(:thread_root) { class_double(Thread)    }

  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

6 entries across 6 versions & 1 rubygems

Version Path
mutant-0.8.16 spec/unit/mutant/actor/env_spec.rb
mutant-0.8.15 spec/unit/mutant/actor/env_spec.rb
mutant-0.8.14 spec/unit/mutant/actor/env_spec.rb
mutant-0.8.13 spec/unit/mutant/actor/env_spec.rb
mutant-0.8.12 spec/unit/mutant/actor/env_spec.rb
mutant-0.8.11 spec/unit/mutant/actor/env_spec.rb