Sha256: dffb43047f57cb5ca29bfc13aee43d23565e1c6f2210ada1400ce26dd2ee0306

Contents?: true

Size: 979 Bytes

Versions: 1

Compression:

Stored size: 979 Bytes

Contents

require 'helper'

class TestSideband < MiniTest::Unit::TestCase

  def test_autoinitialization
    assert Sideband.queue << -> { 'work' }
  end

  def test_has_queue
    Sideband.initialize! do
      assert_kind_of Sideband::Queue, Sideband.queue
    end
  end

  def test_can_access_queue_or_send_jobs
    Sideband.initialize! do
      assert Sideband.queue(-> { 'work' })
      assert Sideband.enqueue(-> { 'work' })
    end
  end

  def test_manager_stored_in_thread_current
    Sideband.initialize! do
      assert_kind_of Sideband::Manager, ::Thread.current['sideband.manager']
    end
  end

  def test_can_be_used_in_separate_threads
    work_a, work_b = 'work', 'work'
    Sideband.initialize! do
      Sideband.queue << -> { work_a = 'finished' }

      Thread.new {
        Sideband.initialize! do
          Sideband.queue << -> { work_b = 'finished' }
        end
      }.join
    end

    assert_equal 'finished', work_a
    assert_equal 'finished', work_b
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
sideband-1.0.2 test/test_sideband.rb