Sha256: 68e114a0720215a2d8352526e6387f9904e206018ba904657043ebae97172823

Contents?: true

Size: 748 Bytes

Versions: 9

Compression:

Stored size: 748 Bytes

Contents

RSpec.describe Mutest::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) { Mutest::Actor::Mailbox.new }

    let(:yields) { [] }

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

    before do
      expect(Mutest::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
      is_expected.to be(mailbox.sender)
    end

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

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
mutest-0.0.10 spec/unit/mutest/actor/env_spec.rb
mutest-0.0.9 spec/unit/mutest/actor/env_spec.rb
mutest-0.0.8 spec/unit/mutest/actor/env_spec.rb
mutest-0.0.7 spec/unit/mutest/actor/env_spec.rb
mutest-0.0.6 spec/unit/mutest/actor/env_spec.rb
mutest-0.0.5 spec/unit/mutest/actor/env_spec.rb
mutest-0.0.4 spec/unit/mutest/actor/env_spec.rb
mutest-0.0.3 spec/unit/mutest/actor/env_spec.rb
mutest-0.0.2 spec/unit/mutest/actor/env_spec.rb